Earlier quoted context omitted.
A correlation between people who use a language and the previous languages they have used does not imply a correlation (or intellectual/philosophical inheritance) between the language under discussion and the previous languages used. I've never used Haskell, so I can't speak the specifics of the observation. But I don't believe much can be inferred from the observation alone.
"A correlation between people who use a language and the previous languages they have used does not imply a correlation (or intellectual/philosophical inheritance) between the language under discussion and the previous languages used." And yet, that is exactly the basis for Yegge's point: attributing a philosophical label based on a perceived (and incorrect) background for a group. Goose, gander. Kettle, pot.
Clojure is not Software Conservative
31–40 of 44 posts
Re: Clojure is not Software Conservative
#32These people try to debunk Yegge's idea by proving, point by point, how their language isn't conservative. But no matter how much counter-arguments and rational fodder they provide, it doesn't change a bit anywhere because what Yegge offers is a perception, viewpoint, an idea, a gut feeling of his with some semirandom examples for the sake of examples. And you can't attack someone else's idea or perception with ratio…
Why is "striking a chord" what matters? Shouldn't being right matter? Gut feelings may be what matters to some people, but that doesn't make those people right and it doesn't make rational people wrong. People are very capable of valuing things wrongly. This mindset you seem to be advocating here has a disturbing similarity to Stephen Colbert's famous idea of "truthiness." And that brings us to tonight’s word: Truthi…
Re: Clojure is not Software Conservative
#33Half of the liberal features illustrate the worst aspects of language (non-)design. Automatic type conversion, stringification, semantic nulls? Sounds exactly like PHP and Javascript.
The other half of the liberal features are either inconsequential, or actually significant to conservative languages. Bitstrings, function overloading by arity, a global namespace, convention over configuration? Sounds like Erlang/OTP. Preprocessing and DSLs? Try ML (Meta Language), not to mention macros in Lisp-likes.
Re: Clojure is not Software Conservative
#34I'm not going to submit this as a separate link, but here's Haskell: http://blog.ezyang.com/2012/08/is-haskell-liberal-or-conserv... I want to make a bit of a snarky comment about everyone rushing to disclaim being conservative, but I think this really reflects the fact that the distinction isn't a very useful one for languages, and very dubious even for communities. If it's useful at all, which I don't particularly…
There is a reasonable point, which is you can't argue with someone who doesn't share your definition of 'good' and 'bad'. But the labeling thing is unfortunate.
Re: Clojure is not Software Conservative
#35These people try to debunk Yegge's idea by proving, point by point, how their language isn't conservative. But no matter how much counter-arguments and rational fodder they provide, it doesn't change a bit anywhere because what Yegge offers is a perception, viewpoint, an idea, a gut feeling of his with some semirandom examples for the sake of examples. And you can't attack someone else's idea or perception with ratio…
I think he made a mistake by trying to extend the liberal/conservative dichotomy from programmers to languages. His obsession with static typing versus dynamic typing (which he apparently sees as the universal Manichean struggle underlying every single programming question ever) causes him to label languages in a way that contradicts the way he labels programmers. This is especially apparent right now when many of his "liberal" languages (notably Perl 5, PHP, Python, Visual Basic, and Javascript) are safe, established, corporate-friendly languages that any timid Blub programmer would tackle without anxiety, while many of his "conservative" languages (notably Scala, Clojure, Erlang, ML, and Haskell) are widely considered alien, exotic, and high-risk (from both a project management standpoint and a career standpoint.)
Perhaps he sees no contradiction in conservative languages like Haskell appealing mostly to risk-tolerant programmers and risk-averse programmers feeling quite at home with liberal languages like Javascript, but I find it incoherent.
Re: Clojure is not Software Conservative
#36I don't think pointing to surveys showing few Clojure users came from Haskell/ML, is sufficient to disprove Yegge's assertion. If a language's designers came from camp A, yet the majority of users came from camp B, that does not mean the language is not strongly influenced by camp A.
To me the survey suggests that the division between camp A and camp B is immaterial to the decision to use the language. Obviously the designers think the language is worthwhile, otherwise they wouldn't have made it. Obviously the users think the language is worthwhile, otherwise they wouldn't use it.
Since both find value in the language, this political/conservative spectrum is about as valuable as judging physical fitness by hair color.
Re: Clojure is not Software Conservative
#37Earlier quoted context omitted.
Rich Hickey, the designer of Clojure, isn't from Haskell/ML background. His background is C, C++ and Java.
With a little Lisp, incl. two Java CL attempts: http://jfli.sf.net & http://foil.sf.net
Re: Clojure is not Software Conservative
#38Steve is wrong about macros - they don't compose as well as functions, and that's why people don't recommend them where a function works just as well. As far as adding new things into the language, though, Clojure does tend to be conservative. There is a lot of thought (hammock time) that goes into each potential addition, and whether the increase in complexity is worth the increase in functionality. This seems like…
So under its expressive covers, everything about Clojure is strongly
conservative, with a core overriding bias towards protecting
programmers from mistakes.
he's probably talking about macros and the focus on immutability/FP. With respect to macros, I really don't get why he interpreted Christophe Grand's presentation like that unless he walked away after the first two slides or so (and even then it's a stretch). Rich Hickey debunked his statement on macros very well here on HN (http://news.ycombinator.com/item?id=4366661) - the view Christophe expresses is precisely the opposite of conservative: it's about increasing composability and flexibility, very liberal attributes by Yegge's own definition. Although "protecting programmers from mistakes" is definitely one side of FP/immutability, I seem to recall Rich and others arguing for it more in terms of reducing the cognitive overhead of programming by reducing incidental complexity - not having to hold as many things in your head while thinking about your system allows your brain to handle bigger systems and move faster. Removing mental obstacles for the programmer who is impatient to create furiously seems pretty damn liberal to me.I had fun reading Yegge's post, as with most of his posts. But the part about Clojure really missed the mark. Which is a shame, given Yegge's arguing for lisp in the past and Clojure being a really cool, viable lisp for getting stuff done in the 21st century.
Re: Clojure is not Software Conservative
#39These people try to debunk Yegge's idea by proving, point by point, how their language isn't conservative. But no matter how much counter-arguments and rational fodder they provide, it doesn't change a bit anywhere because what Yegge offers is a perception, viewpoint, an idea, a gut feeling of his with some semirandom examples for the sake of examples. And you can't attack someone else's idea or perception with ratio…
Basically, he seems quite right, give or take a bad example or two. I think he made a mistake by trying to extend the liberal/conservative dichotomy from programmers to languages. His obsession with static typing versus dynamic typing (which he apparently sees as the universal Manichean struggle underlying every single programming question ever) causes him to label languages in a way that contradicts the way he label…
Re: Clojure is not Software Conservative
#40I'm not going to submit this as a separate link, but here's Haskell: http://blog.ezyang.com/2012/08/is-haskell-liberal-or-conserv... I want to make a bit of a snarky comment about everyone rushing to disclaim being conservative, but I think this really reflects the fact that the distinction isn't a very useful one for languages, and very dubious even for communities. If it's useful at all, which I don't particularly…
In this case I think the snark would be accurate. I was surprised at how the snark , "What are you? Republican?" was tossed about at my former search company. Thematically there is power in labels, and Yegge goes out of his way to attach the 'bad' label to things he doesn't like. Not much different than 14 year old boys calling each other gay on game chat boards. Take a label that is offensive, associate it with some…