On Jul 5, 7:30 pm, Sean Corfield <seancorfi...@gmail.com> wrote: > On Sun, Jul 3, 2011 at 8:04 PM, Sean Corfield <seancorfi...@gmail.com> wrote: > > On Sun, Jul 3, 2011 at 3:34 PM, James Keats <james.w.ke...@gmail.com> wrote: > >> For example I suggest you look at this video/transcript and pay > >> attention in particular to the point of debate between Joe Armstrong > >> of Erlang and Martin Odersky of > >> Scalahttp://www.infoq.com/interviews/functional-langs > >> , in particular around the point where Odersky says "I’m not quite > >> sure I buy that...". (also of additional relevance to those two points > >> arehttp://erlang.org/pipermail/erlang-questions/2011-May/058769.html > >> and alsohttp://www.scala-lang.org/node/1637), and if you're further > >> interested you may wish to read Eric Meyer's essay in the book > >> Beautiful Architecture regarding a previous Simon Peter Jones Haskell- > >> related publication, titled "Software Architecture: Object-Oriented > >> Versus Functional". > > > I've read that book (a month or two ago) but I'll go back and re-read > > that essay in light of this thread. > > I think you mean Bertrand Meyer's piece, extolling the virtues of OO > in general (and Eiffel in particular)? I thought it was a terribly > self-serving piece. Meyer has a strong bias and quite a bit of disdain > for anything that isn't Eiffel - which shines right thru that essay to > the point of making it fairly worthless, IMO. It has no objectivity :) >
It was an amusing read somewhat - at points hilarious (I'm actually a fan of Meyer!), but it needs to be considered within a long... what to call it... well, debate or dispute that I've long observed between the Haskell and Eiffel communities; both are concerned with correct software, but come at it in different ways. I believe both are relevant, Haskell's statelessness and Meyer's design by contract. > I read the interview transcript for Syme, Armstrong and Odersky and I > have to be honest that I found Armstrong almost incoherent and half > the time couldn't figure out what he was trying to argue at all - so > I'm not sure what point you're trying to make by referring to that > interview, sorry. Similarly Armstrong's musings on the Erlang list > about the entire world being a single flat "namespace" full of > functions that are globally unique seems rather incoherent too. He > talks about the problems with using modules to organize functions > (and, yes, modularity can be hard) but then proposes something that > would be no different (functions made unique by either having nearly > random names or a structured set of metadata that would really be > indistinguishable from modules in the first place - > seehttp://erlang.org/pipermail/erlang-questions/2011-May/058773.html). > Armstrong can come across as incoherent but if you read him again and again and again I find more and more and more in what he says. In any case, what he's suggesting there reminds me of something I read years ago by Dr Richard Hipp of Sqlite and Tcl core, where he suggests instead of putting your program in files you put it in a database http://www.tcl.tk/community/tcl2004/Papers/D.RichardHipp/drh.html > The Scala forum discussion is more useful and relevant: TL;DR - > objects are occasionally the most natural model for solving a problem. > And in Clojure, mutable (shared) state is "occasionally" the most > natural model for solving a problem. That doesn't seem newsworthy to > me, just that a pure functional approach might not always lead to the > cleanest solution. That's kind of a "duh!" because otherwise why would > we need STM... I think the point he was making was not so much that, but that OOP allows you to defer implementation and there's value in that. > > And then there's the Ruby rant. Yeah, I'd be pretty ticked off that I > got shot in the foot by combining two or three libraries that > otherwise ought to behave reasonably together. Global method injection > is pretty nasty. When I first read about multi-methods and protocols > in Clojure I was a bit worried that library code might cause a similar > problem by redefining functions out from under me, by virtue of more > specific "overloading" but it hasn't been a problem yet and when I > look at how those features are used in various libraries, I'm no > longer so worried. > > I have other reasons for not liking Ruby so it's ability to shoot you > in the foot like that doesn't change my opinion of the language (nor > does it change its widespread popularity for a certain class of > programmers / companies). > > Overall then, modularity is hard and sometimes a shared / mutable > state solution is cleaner... And I agree with both points. Am I > missing something in your concerns? No, you're spot on. I wasn't advocating anything in particular, I was merely suggesting that some of the finest minds in the industry do still find this a hard problem and can disagree on to how best to deal with it. :-) I personally don't feel that much of a schism between functional and OO, but perhaps that's because I actually quite like both (yeah, hate me, I actually quite like Java!!). :-D > -- > Sean A Corfield -- (904) 302-SEAN > An Architect's View --http://corfield.org/ > World Singles, LLC. --http://worldsingles.com/ > Railo Technologies, Inc. --http://www.getrailo.com/ > > "Perfection is the enemy of the good." > -- Gustave Flaubert, French realist novelist (1821-1880) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en