4 ms·
It's "whatever programming language is not mainstream paradox" to be precise (and the author of the blog post would agree since he also nominates Haskell, Erlan
by hassy 16y ago
It's "whatever programming language is not mainstream paradox" to be precise (and the author of the blog post would agree since he also nominates Haskell, Erlang, and Clojure). Which is obvious. And since "whatever programming language is not mainstream paradox" is a mouthful, "Python paradox" is a much better name. Those unfamiliar with the term can always be directed to PG's article to enjoy.
EDIT: Using "esoteric" languages can also be a good long-term hiring strategy. It's pretty easy to get a place in people's minds as the "go to" company to work with a language. Google did that with Python, Twitter is doing it with Scala, Basho are doing it with Erlang.
- billmcneale 16y ago> Using "esoteric" languages can also be a good long-term hiring strategy. Actually, it's a good short term hiring strategy but a terrible long term strategy. Most of these languages remain a niche (Ruby, Scala, Clojure, etc...) and hiring more than a couple of people that know how to use them turns out to be a very, very tough challenge. I have seen several companies try that and then revert back to Java just because they couldn't staff up to meet the demand. Overall, color me still extremely skeptical of Paul Graham's original argument (which was that Lisp gave his company an advantage over the competition). Interestingly, ViaWeb was quickly switched back to a more mainstream language shortly after PG sold out. Deduce from that what you will.
- msg 16y agoI deduce from this that the fault was not in the language, but in the company, specifically in the resume filter that asks for 3+ years of production Clojure. A programmer who learns languages can learn Clojure for production work. That's better than trying to bring a soaring program back down to earth (or for C++, chaining it to a cart and dragging it into the salt mines). But don't listen to me, here's Paul Graham from Beating the Averages (Footnote Edition). And ponder this question: why didn't Yahoo just rewrite the templates in C++? [1] Viaweb at first had two parts: the editor, written in Lisp, which people used to build their sites, and the ordering system, written in C, which handled orders. The first version was mostly Lisp, because the ordering system was small. Later we added two more modules, an image generator written in C, and a back-office manager written mostly in Perl. In January 2003, Yahoo released a new version of the editor written in C++ and Perl. It's hard to say whether the program is no longer written in Lisp, though, because to translate this program into C++ they literally had to write a Lisp interpreter: the source files of all the page-generating templates are still, as far as I know, Lisp code. (See Greenspun's Tenth Rule.)
- bartonfink 16y agoI deduce that some people prefer some tools, and you get a big win when you match a highly skilled person with tools they feel best augment those skills. However, it's the pairing that is the big win. If I had to guess as to which element was more important, I'd bet that the skilled person with imperfect tools is better than a Blub programmer with tools that are above him. PG left the equation, and when he did, a big argument in favor of keeping Lisp around did as well. Without another similarly skilled Lisp hacker to fill the void, it's easier to make a strong case for a more mainstream language so that ViaWeb could still maintain some forward velocity even if they never got to move quite as fast as they did when PG/Lisp were driving. tl;dr - I bet that it's not Lisp that made ViaWeb tick - it was Lisp + PG.
- harryh 16y ago> hiring more than a couple of people that know how to use > them turns out to be a very, very tough challenge That's tackling the wrong challenge. Almost none of engineering staff at foursquare had used scala before starting here. But they're all talented engineers who can learn new skills and thought that learning scala would be interesting. We've had very few problems with people picking up the language.
- billmcneale 16y agoThat was my point: by choosing an esoteric language, you raise the bar for the people you need to hire, which makes hiring very challenging. Now go scale that up to 50 or 100 engineers and you understand why it's not a viable strategy. Try it yourself, go pitch a startup and then tell the VC's and their consultants that you're going to use Scala... I know you're going to say that they don't know their stuff and you should be the one deciding, but it's actually the other way around: they know how to grow a business, and nobody with that knowledge will ever recommend to go with non mainstream language and technologies.
- technomancy 16y agoIt almost sounds like you're saying raising the hiring bar is a bad thing.
- technomancy 16y agogot cut off on my phone; meant to add: why would you ever need 50 Clojure engineers?
- billmcneale 16y agoFor the exact same reason you might one day need 50 programmers in any language: if your company flourishes. What makes Clojure so special that you'll never need that many?
- harryh 16y ago
- hassy 16y agoCross the bridge when you come to it. You only need a handful of programmers in the first couple of years of a startup's life. The better they are the better. Worrying about whether you'll be able to hire 20+ Clojure programmers is best left for when/if the company is successful.
- icefox 16y agoHmm my next project has to be a website written in brainfuck... But more seriously I did write a search engine using only sed for a little site of mine (http://toybin.org/ http://toybin.org/) just to see how far I could push sed. Its only feature is that you can have negative works like 'blue -car' will show search results for blue and not car. Haven't yet found any hard core sed hackers out there though... :D Edit: GitHub would also be another Erlang company (with a ruby frontend)
- kenjackson 16y agoThe problem with esoteric languages in this modern era (with the web) is what I called the "college music problem" with the increase of college radio. By the time the early 2000s hit, the people who listened to college radio no longer self-selected for people who knew a lot about music, but rather were just people who were generally anti-establishment. But they hadn't built up an especially rich musical knowledge base. Fast forward to 2011 and languages. Now I'm almost as likely to see Clojure on a resume as C++. Yet the quality of applicants doesn't seem to have gone up all that much. TDD knowledge seems to be MUCH more prominent, but I haven't noticed an uptick in knowledge of algorithms, complexity, anything under the hood, or programming (as can be judged in a day long interview). In 2011 the choice of language says less about the programming ability of the person, and probably more about their personality. Much like the college radio heads weren't especially musically sophisticated (on average, but of course some were brilliant), but they all seemed to share a counter-cultural vibe (even when you went from goth to hip hop to polka).
- chris_j 16y agoDo you think that choosing a non-mainstream language is really the result of some sort of counter-culture vibe? Some desire to be different? I ask this because I am a fan of Python and Clojure. I got into both as a result of reading pg's essays on Python and Lisp many years ago. Both languages were sold to me not as an act of rebellion but as more-powerful, higher-level languages that could get the job done more quickly. I quickly found this to be the case, compared to Java which I was used to. Nowadays, I grimace when I have to use Java or C and find myself missing a language feature from Python or Clojure that could have saved me an awful lot of typing and repeating myself. So, in my experience, was the choice of esoteric languages born of a desire to be different? No. Does it make me out as being an amazing programmer? Sadly no, not necessarily. I'd like to think, though, that it at least shows that I was enthusiastic enough to learn and use languages that I get a lot of benefit from.
- kenjackson 16y agoDo you think that choosing a non-mainstream language is really the result of some sort of counter-culture vibe? Some desire to be different? Not necessarily, but often so. More specifically, I think it used to signal someone who was more enthusiastic, passionate, engaged -- but now people will use them because they think it signals these things. And I don't think its intentional. But I think a lot like college radio, you see the guy who is leading the crew of outsiders and you see what he listens to. You see a lot of people who are signaling what resonates with you and follow that. It's odd that C++ is one of the most denigrated languages on the planet -- yet it really does seem like the people I know who most write C++ code still are a lot more hardcore than those I know who do Clojure (and its odd that I may know more people that do Clojure than C++). To put it another way the people doing the less mainstream languages are often putting themselves in the middle of it... "look at me -- look at the language I'm using". People doing C++ are saying, "look at my code -- look at my app".