C++, C, and Objective C are all equal peers in the Xcode universe. Freeway is written in C++, and yes, you can import C++ code into an Xcode project and do things with it. Even scripting languages like Ruby, Lua, and JavaScript can coexist with other “long pants” languages in the same project, through a bridge system that’s baked into Mac OS X. All that is trivial, as you suspected.
But nobody (nobody in their right mind) writes an application from only C (in any of the flavors) alone. If I said ALL programs are written with a framework, I probably would not be over-reaching. Frameworks keep you from needing to do things like write your own clipboard handling code, or your own file-writing code, or your own library parsing code, or countless thousands of other base-level things that an application must do.
Freeway is built with MacApp, which was originated in the '80s by Apple, and sunsetted years ago during the great migration from Carbon to Cocoa. (Carbon and Cocoa are also frameworks – frameworks of APIs that allow user-level programs to talk to the system and through the system, to the hardware.) In modern Mac OS X, MacApp talks to Carbon, which talks to the OS and the hardware.
That Softpress have managed to keep their investment in MacApp going all these years is a testament to their skill as engineers, and also to a certain stubbornness. It is easy in hindsight to say that had they jumped on the Cocoa bandwagon when it first came up the lane, Softpress today would have all the modern conveniences to deploy on our behalf. But that ignores the fact that had they done that, there would have been no Freeway for a large chunk of time, and when they first launched the product of that learning experience, it probably would not have done the same things that Freeway of the same time did, and Freeway currently does.
All frameworks encourage a certain mental model in the projects that use them. In the Web programming framework that I use (Ruby on Rails) this is spoken of as being “opinionated”. There is a “right” way to do things, a “correct” place to put certain objects, and a “proper” way for those objects to communicate with one another. C++ and Objective C are different enough to make this opinion clear, but Cocoa and Carbon are worlds apart conceptually and practically. It’s not enough to just use another framework with your existing code, you also need to re-think how you do things, and possibly throw away working features because they cut across the grain of your framework.
Ultimately, the decision of what direction to take with Freeway development has always rested with the Managing Director, and is flavored by the economic realities of Softpress as much as the technical aspirations of Freeway. When Cocoa was first announced, a brilliant high school student who was interning at Softpress looked it over, declared it to be the future, and set about trying to convince the Powers That Be that it should form the base for all future development. However, looking back, had Softpress embraced the infectious enthusiasm of youth and gone that way, they would have been ignoring the painful realities of how badly Softpress had been burned in the past by Apple – by being “Steved” with QuickDraw GX – when they chose to hitch their wagons to the next “insanely great” star out of Cupertino. I agreed with Finlay at the time, but I can also see with the many years’ perspective that Richard Logan took the only sane course open to him at the time.
We can all play “what if” here, and frankly, if it was so easy, and the market opportunity was so great, some pair of 20-somethings in their loft would have spun up the Cocoa equivalent of Freeway long ago, and built the ecosystem that sustains Softpress today. And eaten Freeway’s lunch. Plainly, that has failed to happen.
Apple set the example here – you should not let someone else make you obsolete, you should do that yourself by making something better. Here’s to hoping that Exhibeo (which is written in Cocoa) has been a valuable learning experience for Softpress, and that they have some new ideas to take the Web by storm.
Walter
On Jul 7, 2014, at 3:14 AM, Thomas Kimmich wrote:
I’m not aware what language Freeway is based on (or initially written in). If it would be dead easy to quick import it in xCode, make some small adjustments to the code and right after that, simply “Save as …” shiny new cocoa objective-c based blah-blah, … well I’m sure the towers already did it (even without our decent tipps).
freewaytalk mailing list
email@hidden
Update your subscriptions at:
http://freewaytalk.net/person/options