On Tue, Jul 12, 2011 at 6:27 PM, Tamreen Khan <histor...@gmail.com> wrote: > What does something being shiny and new have to do with how good its > libraries, community, platforms, and support are?
See below. > Heck, I'd say something being new would detract from it library-wise. Not necessarily, if it can interoperate with existing libraries, such as is often the case with new JVM languages that can use existing Java libraries. > Sergey's point was that when > someone begins a new project they have the options of all those languages; > Clojure isn't just competing with new and shiny things. In Sergey's own words: When people are looking for a new shiny thing among 100 of other just new things, they can turn into "scanning mode" despite the fact that in other conditions they "do that sort of "analytical comprehension"" So the discussion was specifically about a hypothetical developer checking out *new* things. That developer probably already knows about (and has rejected, for whatever reasons) C#, Python, Javascript, etc. (aside from whatever they're currently using, but may want to move beyond or supplement). It's not hard to think up the likely objections from a lot of people, too, and why they'd be looking for something new: C#: Microsoft; no complete free software implementation Python: poor performance Javascript: interpreted, so slow; "isn't this just for adding annoying ads to web pages"?; "I turn that shit off in my browser, why would I want to actually write the stuff?" :) Haskell: in its own universe without familiar tools and libraries; ditto Scheme, Common Lisp, Smalltalk Erlang: too different (but this is also likely to be leveled at Lisps including Clojure). C, C++: Pointer arithmetic, SIGSEGV, what is this, the dark ages? Sounds like the goddamned Spanish inquisition! Java: verbose, you need to write three classes and implement a whole passel of interfaces, dependency inject a few megabytes of XML, and apply the Singleton, Visitor, and Iterator patterns just to blow your nose in this language. Of course, there are others whose objections are much simpler: C#: Not Lisp. Erlang: Not Lisp. Java: Not Lisp. Python: List comprehensions and first class functions, but where are my macros? Not Lisp. Javascript: eval works on *strings*? You have *got* to be kidding me. Not Lisp. Next! Haskell: A bit like Scheme and it even has monads but syntaxy, with type warts everywhere and no macros. So, not Lisp. Smalltalk: the BlockContext lacks some of the capabilities of true first class functions and *where* are my macros? Not Lisp. C, C++: function pointers but no ability to declare anonymous functions that close over locals and return them? And what the hell kind of macro system is THAT?! Sorry. Not Lisp. ;) -- Protege: What is this seething mass of parentheses?! Master: Your father's Lisp REPL. This is the language of a true hacker. Not as clumsy or random as C++; a language for a more civilized age. -- 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