11 ms·
Home at Last, or, The Last Programming Language I Will Ever Learn
- qoobster 16y agoOf course this would make its way to the front page of PG's website...
- chailatte 16y agoThe punchline is...."So about six weeks ago I picked up Cloure" - If you're linkbaiting your article, you should always spellcheck.
- ynniv 16y agoflag. Not something that I generally do, but (a) clojure won't be in any spellchecker, and (b) your snark adds nothing to the discussion. If you wanted to say "and that language was clojure", you could have left it at that.
- ghotli 16y agoNot sure why this is being down voted. It was a comment that added absolutely nothing to do the discussion.
- mikeryan 16y agohmmm ... kind of a long road to a small house.
- unoti 16y agoYeah. A more detailed post on the same topic for those interested: http://thecleancoder.blogspot.com/2010/08/why-clojure.html http://thecleancoder.blogspot.com/2010/08/why-clojure.html
- swannodette 16y agoOr a cathedral ... it all depends on your perspective.
- wpeterson 16y agoI was really excited for an article about the merits of clojure or LISP for a problem the author was solving. Instead we get hand waving and some elegant, but abstract analogies.
- sgt 16y agoGreat article!
- TheSOB88 16y agoPoetic, but not particularly informative.
- wccrawford 16y agoSo you've decided to give up programming, then? Because otherwise, it's not.
- metamemetics 16y agoIt depends. If he writes and supports all of his own programs and has success doing so it very well could be. Computers don't care, just as long as it compiles down or uses standardized interfaces. If he plans to live a lot longer, hire a lot of employees, or collaborate with others on code, then your statement could be valid.
- neilc 16y agoIf you really put your mind to it, sure, you could avoid learning any new programming languages. Hell, many people still make a very healthy living working with COBOL. But if you really enjoy being a software developer and want to be the best at what you do, I don't think you'll ever stop learning new languages.
- metamemetics 16y agoLet's look at spoken language. As humans move from a type 0 to a type 1 civilization [borrowing terminology from Michio Kaku], English is becoming the global language. It's certainly possible to never learn another language after English and be well off in a global economy. Advantages of English [paraphrased from "ESB" on antimoon]: -Germanic base has been mixed with the Roman vocabulary, giving it the best of both worlds -English is succinct. Sentenced translated from English into other languages take up at least 30% more space. English words are concise and so are its sentences. -Absence of sophisticated grammar systems. A noun can be easily turned into an adjective or a verb and vice versa. [ LISPy, eh? ] -It's spoken by the most influential and powerful countries on earth. This is not accidental, but perhaps an important underlying cause for their success. Just as English is dominating and will far outlive anyone's lifespan, the same could happen with a programming language as our languages continue to mature. Python is incredibly close to Psuedocode and LISP\LISP-variants are extremely flexible. It could be quite possible to get by without learning a new language until you either A) die or B) a paradigm shift occurs.
- swombat 16y agoA bit light on detail? How is that worth posting?
- pavel_lishin 16y ago"When you start your company, start it by doing consulting. (See, he already knew I’d caught the Bug.)" Maybe I watched too much Wire, but when I read "caught the Bug", I assume he means HIV.
- deleted 16y ago[deleted]
- harold 16y agoI think the phrase should be: "The last programming language I will ever learn - until the next one comes along."
- bluesnowmonkey 16y ago> Because, you see, as soon as I saw Java, I knew I hated it. I have never written even a single line of Java code, not for money, and definitely not for fun. I think that I already knew, deep down, that it would change me, as a coder. For the worse. That's just like how I've never been to Argentina, but I saw a picture of it in a magazine and knew for sure that I would hate the country. I had a feeling deep down. /sarcasm
- tiles 16y agoExcept Java has a poor reputation (on the "fun to program in" scale) and not much in the way of intellectual growth for a programmer (in terms of new, effective paradigms for coding). This is a generalization of the opinions I've read about it, in addition to my own experience. It's like hearing all your friends saying how much they hated Argentina, and how you would too. They might be wrong, or not, but you still trust them because they think the same way as you.
- aaronblohowiak 16y agoJava as a language is quite boring. Java as an ecosystem is interesting; its tooling, libraries, and business-centric culture are worthy of respect and some thought, even for us rubyistas. Some of the most generic software has been written in Java. In the flexibility vs expressivity spectrum, many Java libraries pick flexibility and it is neat to see how that is accomplished.
- sp4rki 16y agoArgentina is in no way a good comparison to Java. Argentina is a beautiful country. A better comparison (without the sarcasm) would be that you heard someone talk about how fun it is to visit Niger, Chechnya, or Iraq, and you just knew you'd have no fun there. I'd say the same thing happens with Visual Basic, Php and - of course - Java... In that particular order. (bonus points if you get the associations!)
- mmphosis 16y agoMy mentor (Art Mellor – scumpa.com) at Cayman Systems gave me two pieces of advice that have stayed with me to this day: • When you start your company, start it by doing consulting. (See, he already knew I’d caught the Bug.) Get paid to learn the space and develop for your customers, using their expertise and funding, and then turn all that into a product. • Learn LISP.
- the-b 16y agoObligatory to post: http://xkcd.com/297/ http://xkcd.com/297/ (Lisp Cycles)
- gvb 16y agoand http://xkcd.com/224/ http://xkcd.com/224/ (Lisp)
- silentbicycle 16y agoLooks like you're new to HN. xkcd is never obligatory.
- BarkMore 16y agoIt's probably not the last language that he will ever learn. If he's going to build a major project in Clojure, then he's going to need learn about Java.
- jodrellblank 16y agoWhy does it seem that people find LISP first, and then do post-hoc justification by spoken language analogy?
- Rantenki 16y agoSo. Torn. Lisp is awesome, kudos for realizing this and falling in love with it. A bit weird to write a story about the awesome new language you learned, and focus on how hard you can slam the doors on ever learning again.
- leif 16y agoI had guessed this was about clojure before I followed the link, somehow, I think because in part, I feel the same way. Is this common? Anyone else feel like clojure is, or is on the path to becoming, the perfect language? I won't say I'll never need anything else or will stop learning new languages, but it feels...complete. I still use C for algorithmically simple, memory- and time-sensitive tasks, and I still use perl and awk for line-oriented text munging, but I feel like all the other languages I used to use for less specific tasks have fallen by the wayside. Java, C++, Python, Ruby...I don't really have a reason to touch these anymore. Am I the only one? (all this aside, I swear, one of these days I am going to get my f*ing head around type systems and get a workable understanding of haskell and scala)
- strlen 16y agoYou don't need to fully understand Scala's type system to write working code in it. The features like Higher Kindred seem intimidating, but you only have to deal with them as a library implementer (and in many cases the syntactic sugar e.g., %> helps gloss over a lot of it). Unlike with Haskell, type classes ("Higher-Kindred types" in Scala) are just one way to have a certain kind of polymorphism, you also have a more traditional type of polymorphism through traits and sub-classing.
- cinch 16y agosimilar situation here. except i picked Common LISP. for a couple of reasons: speed of your app; SLIME is great; more documentation (books); a long history :)
- bitsai 16y agoJust wanted to point out that you can use slime with clojure as well: http://github.com/technomancy/swank-clojure http://github.com/technomancy/swank-clojure
- johnmw 16y ago>And LISP, as it turns out, isn’t a programming language. LISP is a way of mind. I wish could find a good post that doesn't just say this, it really makes me get it. Any suggestions? Edit: Thanks unoti - http://news.ycombinator.com/item?id=1845104 http://news.ycombinator.com/item?id=1845104 , I'm going to be reading this next http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/
- deleted 16y ago[deleted]
- cylinder714 16y agoI like to refer people to The Road to Lisp Survey Highlight Film (http://wiki.alu.org/rtl_highlight_film http://wiki.alu.org/rtl_highlight_film). If it's down, Google for the cached version.
- noglorp 16y agoThat Paul Graham quote - “Programming languages are not merely technologies, but habits of mind as well.” Reminds me of an excellent Dijkstra quote, from A Discipline of Programming - "A most important, but also a most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use."
- jforman 16y agoSpoken languages affect our thought patterns: http://www.newsweek.com/2009/07/08/what-s-in-a-word.html http://www.newsweek.com/2009/07/08/what-s-in-a-word.html It seems a natural extension that computing languages affect our logical thought patterns. In college, I took a class on intelligence testing (I gave a lot of IQ tests that semester). The prof told me that his experience was that computer programmers score noticeably higher on the Verbal IQ scale, moreso than on the Performance IQ scale (these are the two scales the WAIS is divided into).
- kunjaan 16y agoWait what was it about Clojure that he really liked?
- cageface 16y agoThis is exactly the kind of cultish triumphalism that put me off Common Lisp. The inability of many lispers to see lisp, like all languages, as a collection of design tradeoffs instead of the one true way just clashed too sharply with reality for my tastes. It's certainly true that lisp has been an important testbed for many concepts that have later made their way into the programming mainstream, but I suspect that many of the traits that make a good research language may actually be undesirable in a production language.
- neptun 16y agoCommon Lisp is not a research language. The goal of the comitee was to produce a language fit to industry needs.
- tomjen3 16y agoThen I urge you to look at it again - who cares what the users believe? What matters is what you get out of it.
- cageface 16y agoI hacked a lot of CL back in 2002-2003 and I've dabbled in Clojure lately. Clojure has a lot of promise but I'm waiting for some of the rough edges to get smoothed out (stacktraces in particular).
- gphil 16y agoI agree about Clojure's rough edges. I'm a beginner, and when something goes wrong it is very opaque to me what happened. That said, I do enjoy the language--especially the baked-in data structures.
- swannodette 16y agoIf you're adventurous enough to try out the 1.3 alphas you'll find the stack traces immensely improved.
- swannodette 16y ago
- bdesham 16y agoLike many, I've been meaning to learn [some kind of] LISP since I first heard of it. I use OS X, though, and it seems Apple has decided that Java is on its way out. Should I be worried about Java-related incompatibilities or hassles in the future if I start writing a lot of Clojure code?
- Goladus 16y agostrongly recommend not stopping with clojure. Find other languages outside your comfort zone, that require you to learn about different technologies and different ways of thinking. You should know at least one language with a strong type system that's closely modelled on the hardware environment. (eg C or Java) Databases and SQL. OS-level tracing/debugging languages like Dtrace or SystemTap. Puppet/system administration Javascript/Browsers Mobile/? (I don't know much about phones) An ML-style language.
- mark_l_watson 16y agoI am old enough (late 50s) that settling down on just one programming language would not be a bad strategy if I was not a consultant. Maybe. Over the last several years, I have been hoping to mostly just use Ruby for future work, but in the last 5 years almost half of my consulting jobs used a Lisp language (Common Lisp or Clojure) and the rest mostly Ruby, with some Java. The Clojure language and libraries are very nice, and I am sure that problems with the development experience like poor stack traces (good work already in progress), etc. will get ironed out soon. If you are an entrepreneur with your own product or web services based company, then pick one great language and use it until a better great language comes along. For those of us who enjoy consulting, we will mostly use what best fits customers' needs.