Abstract: One of questions I was most often asked during DConf 2014 was "Why is switching to D2 that difficult?". Even some of the Sociomantic developers were surprised when they heard the initial time estimates. But while the porting process itself is not rocket science and does not require any special expertise, our actual case is not that simple:
To address all these issues, we are currently using a formal 3-stage process and certain tools to ensure a steady (though slow) transition with absolutely no interruption to main development. General idea behind the proces is to get into special intermediate state that is still valid D1 but can be turned into working D2 code with a simple automated tool. A description of this process and an explanation of the most problematic issues will be the main topic of this talk.
This is also a good context to talk about breaking changes in general and how they affect commercial users - at least from Sociomantic's perspective. Why do we both want and don't want breaking changes at the same time? How to evaluate the "Investment" part of ROI metrics in the context of such changes? How can tools greatly reduce transition pains? Such questions are likely to be of more practical interest to the D community than a discussion of legacy code problems.
Speaker Bio: One of the software developers working for Sociomantic Labs, one of the biggest commercial D users. For the last 6 months I have been primarily responsible for designing and operating the transition process from D1 to D2. Occasional contributor to the D toolchain and an Arch Linux Trusted User.