Core Data looks like a simple, useful data extension to the Next Step, er, Cocoa, framework. (via Bill Bumgarner)
Objective-C and Cocoa seems to be an ongoing counter-example to Jon Udell's take on Microsoft's apparent dynamic language strategy. Jon wrote...
Jim Hugunin, who created first Jython and then IronPython, may be the world's foremost expert on this topic. When I met with him recently, I asked if he thought we'd see official .NET Framework classes written in IronPython. He said that, although dynamic languages will accelerate the development of the framework, extensions written in Python will likely be rewritten in statically-compiled languages for production use. To some dynamic-language advocates that may sound old-fashioned, but to me it sounds pragmatic.The counter-example is Objective-C itself and the way Next (now Apple) has developed its frameworks. Objective-C makes C available where developers determine to use it, but the key to its capabilities is the dynamic object language cleanly integrated into C.
Objects in the language are fully dynamic and first-class. They enable C and other static languages to participate easily in the object-oriented frameworks without extensions or modifications to those languages. But they also enable dynamic languages to participate easily as well.
Witness the really neat integrations of Python, Smalltalk, and Lisp with the Next Step frameworks. No contortions or compromises, just simple, straightforward integration of reusable frameworks into your language of choice, static or dynamic.
Objective-C and Next/Apple's use of it is underrated and overlooked in its technical simplicity relative to the struggles of dynamic languages in the C++, C#, and Java environments. Notably, this approach dates back to Next's original effort around 1985. This is a twenty year old approach, which satisfies those of us who live in the past. 8^)
2 comments:
I commented the other day to a co-worker that the technologies I am most fascinated with are at least 20 years old, i.e. Smalltalk, Lisp, Objective-C, Unix. OpenCroquet is based on old technologies, just some have never been implemented before. I find that both remarkable and embarassing.
I think it has everything to do with late binding -- it makes integrating disparate systems easy. It also encourages opaque objects -- in late-bound language you don't expect to know anything about your objects except that you do specific stuff to them. When that's your perspective it's much easier to integrate objects coming from foreign sources, like separate runtimes and languages.
Post a Comment