Every so often I dig out my Xcode stuff and have a go at exploring developing an idea for Mac OS X. Everytime the same thing happens to me: Objective-C is such an offensive language to my sensibilities that I get diverted into doing something else.
All the lessons that we have learned the hard way over the years -- the importance of strong static typing, the importance of tools for large scale programming -- seem to have fallen on deaf ears in the Objective-C community. How long did it take to get garbage collection into the language? I also feel that some features of Objective-C represent an inherent security risk (in particular categories) that would make me very nervous to develop a serious application in it.
As it happens, I am currently developing a programming language for Complex Event Processing.
Almost every choice that I am making in that language is the opposite to the choice made for Objective-C -- my language is strongly, statically typed; it is designed for parallel execution, it uses a functional programming foundation, it is symbolic in nature, designed to permit development of large programs, etc. etc.
Hence my allergic reaction and yet again I veer off into something that does not involve actually making a beautiful application for a platform that I much admire.
I have to also admit that I regret Apple's choice to abandon Java development. I am not an apologist for Java, but it is significantly better for programming in than Objective-C.
I have heard that some of the features of Cocoa are impossible to do in Java. I have strong doubts about that.
I just wish that Apple's sense of design extended to the underlying technologies as much as it does to user engineering.
All the lessons that we have learned the hard way over the years -- the importance of strong static typing, the importance of tools for large scale programming -- seem to have fallen on deaf ears in the Objective-C community. How long did it take to get garbage collection into the language? I also feel that some features of Objective-C represent an inherent security risk (in particular categories) that would make me very nervous to develop a serious application in it.
As it happens, I am currently developing a programming language for Complex Event Processing.
Almost every choice that I am making in that language is the opposite to the choice made for Objective-C -- my language is strongly, statically typed; it is designed for parallel execution, it uses a functional programming foundation, it is symbolic in nature, designed to permit development of large programs, etc. etc.
Hence my allergic reaction and yet again I veer off into something that does not involve actually making a beautiful application for a platform that I much admire.
I have to also admit that I regret Apple's choice to abandon Java development. I am not an apologist for Java, but it is significantly better for programming in than Objective-C.
I have heard that some of the features of Cocoa are impossible to do in Java. I have strong doubts about that.
I just wish that Apple's sense of design extended to the underlying technologies as much as it does to user engineering.