648 karma · joined December 20, 2008
It's not clear who came up with what first. However, the other designers submissions seem to be consistent with their general style while there is not so much consistency in Jon's style. There are no upload dates though on the StockArt.com stuff. This might be fishy...
Along these lines, it strikes me as odd how people that would want to run open-source software on their own computers are completely content with running closed web applications where they have no freedom and no control at all. It may be the same reason people are willing to pay for bottled tap-water: convenience - it seems to trump other factors (including ethics and morality) by far.
The Haskell version turned out to be much more compact and some parts of the business logic could be expressed in a really straightforward way. The Haskell version also had a meta-programming based mechanism for automatically deriving and parsing XML representations of the domain objects. The persistence layer could also be made very unobtrusive due to Haskell's type-classes.
Nevertheless, the absence of extensible data types and the clunkiness of Haskell's record system made the domain model rather unwieldy. This is not a necessary limitation of FP. It rather seems that most users of FP today don't need such facilities because they are not normally building systems that require these kind of models.
It's also very important to note that object oriented programming and FP are not conflicting. Mainstream OOP languages tend to embrace an imperative execution model (Turing Machines) and FP languages are modeled around Lambda Calculus. Projects like Scala show how FP and OOP can augment each other nicely.
This is based on the assumption that Apple is able to develop a superior operating system because they can support the effort with hardware sales. If everyone would install their copy of OSX on hardware where Apple doesn't make money, how can they continue to improve OSX?
They might start to license the "right" to run OSX o hardware manufacturers but that would get them into the same compatibility hell Microsoft has gotten themselves into. I can very well understand how they don't want to get into that spot.
It's a nice pass-time and I don't think it hurts anyone given the small scale on which this is happening. Plus it may keep the folks in Cupertino on their toes for coming up with better hardware in the future.
Furthermore, as for the Linux comparisons. This clearly shows how Linux' most glaring deficiency is the lack of a consistent UI experience. There is a heavily fragmented mess bolted on top of dear old X11. It works - sort of - and as long as you stay within your chosen camp (Gnome, KDE...) you might not be off too bad. Sooner or later when you need other applications you'll get into toolkit hell.
If you want to have fun driving a Ferrari, you better learn driving stick ;)
I think most of the fame for actually pulling this off for Mono/.NET needs to go to the Unity engineers and not so much to the Mono gang. Although this is speculation on my part.
I don't find databases well suited for expressing complex behavior - programming languages are far better at that.