Hear hear! I have absolutely no wish to knock Objective C as a language. But to give it a ready-made monoculture and deny competition, instead of allowing it to compete on its own merits? Now that's just wrong, and people WILL start criticising it because it ain't what they want to be using, but they're forced too.
I actually don't take "reflexive criticisms" to be an insult in this circumstance, "knee-jerk reactions" would also be valid. But... to use an analogy, if a state religion were suddenly forced upon you that you previously had no objection to, but it ran counter to your personal beliefs, and all other religions were banned (including atheism), then wouldn't your critique of said religion also rightfully be called "reflexive"? Incidentally, the macs are nearly as bad, ever since Java-Cocoa bindings were ditched, and JVM releases delayed to make it a second-class citizen. I like the iPhone, truly I do, it's a marvel of engineering. So is the Nexus One, plus it offers freedom of speech and language-tolerance. I've voted with my wallet and mine is already in the post. That's the thing about voting - if people are well informed then they do inevitably tend towards democracy... On 27 April 2010 16:47, Christian Edward Gruber < [email protected]> wrote: > > On Apr 27, 2010, at 11:28 AM, Kevin Wright wrote: > > The latest draft document on the design of scala.swing isn't bad: > http://www.scala-lang.org/sid/8, through it doesn't show much beyond the > use of closures/function pointers. > > > Yes - I'm a fan of scala, except that I wish it were more coherent and > consistent in syntax. That's a personal nit though. > > > Even more interesting is this document on "Deprecating the Observer > Pattern", which really does bring the full power of FP to the problem, > including delimited continuations: > http://infoscience.epfl.ch/record/148043/files/DeprecatingObserversTR2010.pdf > [warning: pdf] > > > I've come to the conclusion that FP is a degenerate case of the Observer > pattern - which is why Clojure works so nicely in an object-oriented > bytecode virtual machine. > > And there's JavaFX of course! All of these are very definitely using > functional elements in their design, although the need to interact with > Swing is understandably going to restrict the possibilities here (less so in > the deprecating observers document) > > > Yep. All of this is awesome. And starts to make up for some of Java's > flaws. We're working on a side project called "noop" which is a different > take - trying not to push the limits of software language theory, but to > design a language that fits some constraints of what we've learned about > software applications and patterns people use/abuse. These are all great, > and I might like some of these almost as much as Objective-C. Add in AOP > features and I feel you've surpassed it. (see, I'm not just a fanboi ;-) > > In Scala I've certainly used a lot of functional thinking to implement > designs: > - pattern-matching to select the appropriate behaviour in response to an > event > - use of a function-pointers and closures to define an event handler (no > clunky xxxListener interface needed) > - map and flatmap to implement component models in terms of other > collections > - higher-order functions > > > Yes - I do like how you can think O-O AND functionally in a mixed > environment in Scala. that's what I found with Objective-C as well, but you > can go typeless in Objective-C (the id pointer type with selectors) which is > harder in Java/Scala/etc. But that could all be implemented. > > plus actors, though these aren't strictly speaking unique to functional > programming. > > > Yeah - I like this paradigm - we're looking at this for noop too. (oh, > ironically, we've implemented most of the early interpreter for noop in > scala) > > The point is that "best OO" still leaves a lot of other things to be good > at, it's by no means the end of the game! It would therefore be a real > shame if OO were the only realistic language-supported option available to > me (i.e. C++/objective C), and that has now become the sad but unavoidable > truth for iGadget development. > > > Also agreed. Yeah - my point, as I said, is not to defend apple's decision > - it was to object to the kinds of statements people are reflexively making > about Objective-C because of (what I perceive to be) fundamentally emotional > reactions to Apple's stupidity, being taken out on a language that has, > frankly, produced high-quality software for over two decades. One might > argue that it only recently changed because it didn't much need to - it > already had mixed OO/functional capabilities, a dynamic runtime with > typeless/typed options, a really workable set of base-classes and > application classes with a nice GUI builder to assemble them (without > generating code to be maintained), AOP capabilities, and, with 2.0, garbage > collection. Most of the actual arguments are stylistic. It's a thoroughly > modern language in most respects... it's its style and position in history > and industry and fashions in software development which have relegated it to > perceptions of antiquity. I would argue that most of Java's "evolution" was > "fixing what had been broken from the beginning" so we finally get somewhere > workable. And since I was in Javasoft around the time of Java 1.1, I have > some credibility on that point. > > Being one of the "best OO programmers" a person knows is a worthy > achievement and something to be quite rightly proud of. Then again, so is > "best COBOL developer". > > > This is absolutely true, and I've met some damned great assembly and Forth > programmers whom I have nothing but respect for. > > cheers, > Christian. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<javaposse%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > -- Kevin Wright mail/google talk: [email protected] wave: [email protected] skype: kev.lee.wright twitter: @thecoda -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
