Sometimes I feel like I’m the only one around ready to pay for good tools…
I have spent the last couple of weeks working on a Mac project under Codewarrior. For those of you who don’t know what CW is, imagine that a few years ago we had very little choice for developing Mac applications. There were Borland C++, MPW (a kind of programming shell), and Codewarrior, and probably a few others but I never saw any project running on something else.
Codewarrior allowed mac programmers to use pascal / c / c++, and to target mac or windows platforms. For most developers out there, it was THE developer tool.
And since they wanted to stay ahead of the market, there was a complete API to develop new compilers, linkers, scm plugins, etc… A dream come true.
Then, Mac OS X came with free dev tools. They were not so great. But they were free. Codewarrior still was the reference tool for Carbon development, since gcc can’t do PEF (OS9 linkage). The applications became multilingual and package-based, which CW had a lot of trouble dealing with, and the debugger wouldn’t work at first.
But Metrowerks tried to keep in the race. They updated their tools, and since they were the only way to develop apps for OS9 and carbon plugins, they still had a customer base. With CW9, we had almost all the functionnalities Project Builder had, but oh so much cleaner and easier to use. We had code completion, class browsers, the full monty. And we still had the SDK to develop our own tools.
When Xcode came, OS9 was dead. No one would start projects that would run on both platforms. And most of the SDKs out there evolved towards a “modern” tool chain. CW was a tool of the past, no new developers knew about it, and most of us were forced into using Xcode anyway, since the Mac OS X APIs were meant to be used with it.
With Xcode 2.4, the codewarrior compatibility with the system headers was broken. It was a sign that we were not supposed to use it anymore.
But Xcode doesn’t have the same elegance CW had. Call me nostalgic, but I really think CW is vastly superior to Xcode. But it costs money. And it isn’t available anymore, since no one would pay for it (it is still widely used for embedded developments, though). And Xcode is closed. Not closed as opposed to open source… closed as opposed to “has a SDK”. Which means that we have to do with the available tools, without any possibility to expand its features, work around its bugs, or customize the way it presents its data to us.
A couple of weeks ago, I had the opportunity to work with CW again. And let me tell you it’s been a pleasure ever since. Of course, it’s outdated, and you kinda have to push your way through sometimes, but it’s solid, and expandable. You can use CVS/SVN/Perforce/… with it. You can build PEF or MachO binaries, and even Windows programs right on your mac. And the editor is just fast and reliable.
What’s the point of this? It’s not that Xcode is lousy. Xcode is now kind of complete, for Cocoa development. It is still lacking in other departments, but hey, it’s getting there. But the general trend of the business is that good&expensive will always be less appealing than restricted and free.
People who are ready to spend a hundred bucks for a game they’ll finish in a week don’t want to pay for tools that will allow them to make more money. And great tools disappear.