Tango For D2

There has been an ongoing effort to port Tango to D2 for some time now. I remember hearing the first whispers of such a project a couple of years ago. Well, it’s definitely more than whispers now.

I don’t know the history behind this particular branch, but SiegeLord has finished an initial port of Tango to D2. The announcement says it works fine alongside Phobos, a serious validation of one of the reasons behind D2′s adoption of DRuntime. This means that, as long as they use D2, library developers can make use of either Phobos or Tango without care. And app developers can use any library that suits their app, regardless of whether it’s using Phobos or Tango under the hood. Awesome stuff.

To be sure, the old religious Phobos/Tango divide has not been a problem for quite some time, as it’s been pretty much settled that you use Tango with D1 and Phobos with D2. Well, for those in the know at least. There are a lot of unenlightened people out there who go on hearsay. Now, with D2, you can get the best of both worlds. Use whichever suits your style, or both at once, and no guilty feelings. Hopefully, this will put the old infamous legend to rest once and for all.

I’ve rarely looked at Tango since moving to D2 some time ago, except for an occasional compile to make sure Derelict still builds with it. From a practical point of view, I think it’s useful to make use of both libraries. So now that we have the ability to do so, I’m more excited than I expected to be. There are certain features one has that the other lacks, or that are more complete in one than the other. There I can see great benefit. It all depends on how well they play together. From what I’ve heard so far, they seem to get along swimmingly.

Of course, I’ll have to investigate this more to see if it really is as useful for me as it appears on the surface. In the meantime, thanks for the effort, SiegeLord, Jacob Calrborg, Igor Stepanov, and whomever else contributed!

Orange 1.0.0 Beta

Jacob Carlborg has announced a beta version of the Orange serialization library. Orange supports D1 Phobos/Tango and D2, is licensed under the Boost Software License, and the codebase has recently been moved to github. From the announcement:

Orange is a serialization library for D1 and D2, supporting both Tango and Phobos. It can serialize most of the available types in D, including third party types and can serialize through base class references. It supports fully automatic serialization of all supported types and also supports several ways to customize the serialization process. Orange has a separate front end (the serializer) and back end (the archive) making it possible for the user to create new archive types that can be used with the existing serializer.