CodeGear, are you listening?
Unless you've been hiding under a rock for the past week, you've no doubt heard that CodeGear has published their roadmap. I'm not going to comment much about it, because to be honest I don't have anything new to say. They've more or less been giving hints and comments in public about what their intentions are. One thing that did disappoint me is the lack of full Generics support. In any case, this blog post isn't really about my thoughts on the roadmap. I posted it because I was amused by some of the comments in Nick's blog. I find it incredible that CodeGear's customers, who are mostly developers think that off-the-shelf software has to meet their demands.
There are those that want .NET support now. Others that say the VCL needs to be expanded. There are the 64 Biters, Unicoders, and of course those that think the world is going compact. There are those that need to migrate from the BDE (You're still using it???), and of course we have the MS/.NET haters, who think there is no need for .NET since there's the VCL (dude, you seriously need to do some reading). All in all, it should make for an interesting tea party.
Then we start getting to the threats: "if you don't add Generics I will leave", "If you don't support CF I'm going to MS". It's not all going to happen, whether you stay or leave. Get over it. Companies have limited resources and they
prioritize their items as they see fit (taking into account customer
needs). We do this, you do this and CodeGear does this.
However, this again raises the same subject of putting all your eggs in one basket. Why do people still think that it has to be all or nothing? Why is it not possible to develop certain applications or even parts of your application in one tool and other parts in another? I can "imagine" a few reasons for this
- You're a Delphi shop and will not use MS tools because of your ideals. It's not even worth trying to debate this one
- You're a Delphi shop because you think Delphi is the best technology out there and that things like .NET are just a mere copy of what you have now. Read. Investigate and see what .NET really is. Then come back.
- You're a Delphi shop and all you know is Delphi, you know it best and love it. This one poses a technical challenge. You need to learn new technology. However, being a developer in itself is about constant innovation. The same way we've been learning new things with the tools we use for the past decade, we can learn new platforms and languages. In fact I think any developer should know at least 2 or 3 different languages. However, this scenario is not new. It repeats itself mostly in manufacturing. In fact recently there was a similar case in Spain. A large company called Delphi Automative System has a plant in the southern part of Spain, Cadiz. They are closing the plant down and putting many families out of jobs. Many of the people who work at the plant have been doing the same thing for the past X years of their lives. The first thing they say when they appear on TV is "doing xxx is all I know how to do, who's going to offer me a job now?". As much as I feel for these people, nobody ever prevented them from learning other things. As developers we are in the same boat. We can't just focus our entire life on one product/technology. You could argue that it's not all about work, maintaining a company or 100 customers is hard work, you need time off. Of course you do. I do too, we all do. However, you have to weight the advantages and disadvantages of spending certain amounts of your free time in learning new technologies. It could pay off some day, like being able to offer a WinCE interface for your application to your existing customers and not having to wait for the tool you master to support it.
- We have 50.000.000 lines of code in Delphi and we cannot afford to port it to C#/VB/Java. First off, VB should not even be there. This really is conditioned by the type of application we are talking about. Most applications that have 50.000.000 lines of code normally involve more than one module, have a database and are normally business applications. Here you need to value your reasons for trying a new technology. The most probable reasons is that your current tools don't get the job done. This however does not imply that you need to port your existing code. You can inter operate between existing systems. If it's a new interface you are offering (such as WinCE), you could interact with your existing system by exposing your business logic via web services. If it's taking advantage of certain things that you need in the new platform, you could look at options for interoperability such as COM or tools like Hydra. It's not always an all or nothing situation. You have the roadmap published, you know you what is going to come and you know better than anyone your own needs and your future roadmap. You need to decide where to go from here. But you don't need to jump off a cruise ship in the middle of the ocean. You can start by going to the beach and wetting your foot in the water.
- Can't teach an old dog new tricks. Dude, if you're still developing software, you're not an old dog!
(if anyone has any other reasons, feel free to mail me and I'll post them)
It's not all about one technology. As developers we have the choice and the advantage that with little effort (in comparison to a lawyer learning medicine or a car manufacturer worker learning how to develop software) we can learn new technologies, we can invest a couple of hours a day to learn new languages, platforms and emerging technologies and see how all these can fit in to our current and future needs. It's not about sitting around and waiting for a roadmap to be published and complain that it doesn't include everything we need at a certain moment in time.
[Updated 11 June 2007]
TDaniel sent me this email as another reason:
Hi Hadi,
Atozed helped us a lot to achieve our goals using only 1 dev platform. I really appreciate that. Maybe Atozed should have stimulated 4th party development for additional components more (hint hint tutorials).
The reason I don’t want to shift to other tools is the way MS treats its developers. If I would have chosen VB 15 years ago, I would feel abandoned now for sure. That’s one important reason mentioned by many people missing in your list.
(I don't entirely agree with his point of view).

