9 ms·
Why The Cool Kids Don't Use Erlang
- bwf93 12y agoA 130 slide presentation. No thanks
- DiabloD3 12y agoIt took 5 minutes for me to read, its actually really short.
- mooism2 12y agoI'm on a tablet, couldn't work out how to page through it.
- WorldWideWayne 12y agoIts not a matter of time taken. Having to swipe/scroll/space/key to read 1 new sentence, 130 times, really sucks.
- lelf 12y agohttp://vimeo.com/98639067 http://vimeo.com/98639067
- metaobject 12y agoWhat is this video?
- spooneybarger 12y agovideo of the talk that accompanies the slides linked here.
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- Joeboy 12y agoI would think that the "Hard to find developers" takeaway was a pretty good incentive for developers to start learning erlang.
- rwmj 12y agoI don't get this thing about having to find developers in a particular language. I work on a lot of OCaml programs, and have used and hired developers to work on the same programs. None of them had OCaml experience before, but they just learned it as they went along (because they are intelligent programmers). I actively don't want someone who only knows one language. Also we're using RabbitMQ (written in Erlang). At the moment there are a couple of us mostly just reading the code and fixing the odd bug -- I guess we'll want to extend it in future. You just plug away at it, read the code, read the Erlang docs. It's not that difficult.
- crdb 12y agoThis would be a valid reason: http://paulgraham.com/pypar.html http://paulgraham.com/pypar.html I agree with you that whilst familiarity with a rare, powerful language might be a signal of quality, lack of familiarity with rare languages does not imply the reverse.
- MCRed 12y agoThis effect is even more pronounced with erlang, which has had several waves of popularity, going back to at least 2007. Because the language is harder to learn than most other languages due to the syntax being perceived as "difficult" (and it is for a week or two before you see its elegance) the barrier for entry is actually higher than many other languages. Someone coming from Java has to learn both FP and the erlang syntax at the same time.
- Almaviva 12y agoThere's something worth talking about, which is that a sophisticated and ingenious mess is orders of magnitude more costly than a simple minded mess. My experience with brilliant functional programmers is that it's hard to know whether you're getting someone who can use it as the best tool for a job in a simple, elegant, and maintainable way, or a cargo-cultist who delights in sophistication and cleverness and purity for their own sake, to great excess, and leaves a codebase that needs to be scrapped and re-written when they get bored and leave the company 6 months later, when everyone realizes that the twisty baroque monstrosity could just be handled by an imperative loop one quarter of the size that any high schooler could understand.
- hershel 12y agoSince there are actor libraries like akka targeting the JVM and claiming to offer similar benefits, why should someone prefer erlang?
- waffle_ss 12y agoBecause Akka can't magically patch over the JVM's shared memory model: http://doc.akka.io/docs/akka/snapshot/general/jmm.html#jmm-shared-state http://doc.akka.io/docs/akka/snapshot/general/jmm.html#jmm-s... And because the JVM does global stop-the-world garbage collection, which makes soft real-time implausible because of the unpredictability of GC affecting your actors. Erlang has per-process heaps. Basically the Erlang VM was created for this use case while the JVM was not, and its not something you can just add with a library. edit: Also the lightweightness of Erlang processes compared to Java threads[1] and hot code upgrades. [1]: http://i.imgur.com/hKMJ3HD.png http://i.imgur.com/hKMJ3HD.png
- rational-future 12y ago>> JVM does global stop-the-world garbage collection Does it? Back when I was in HFT, we were definitely running a JVM with background thread GC.
- waffle_ss 12y agoWere you paying huge money for Azul? http://www.azulsystems.com/zing/pgc http://www.azulsystems.com/zing/pgc
- rdtsc 12y agoOnly Azul's JVM has managed to create a pause-less garbage collector. They use some pretty cool tricks. It is really a fantastic piece of technology: http://www.azulsystems.com/zing/pgc http://www.azulsystems.com/zing/pgc Even just marveling at the complexity and how they got it working. Otherwise, besides those tricks, how would you do it when you have multiple threads accessing objects on a shared heap? Erlang's VM is another even wonderful piece of engineering. Each little process lives in its own memory heap. Then pauseless garbage collection become trivial. It has many other really cool and unique features (hot code reloading, inter-node distribution, ability to load C code, etc etc...)
- disputin 12y agoDoes that RedMonk chart not show that it is fairly cool? You have C# and Java at the top - I wouldn't call them cool, widespread, not cool. It's above, on both axes Arduino, Dart, TypeScript. It's in the vicinity of Clojure, Go, CoffeeScript.
- cwp 12y agoYeah. The cool kids are using Erlang. If everybody was doing it, it wouldn't be cool.
- jnbiche 12y ago>It's above, on both axes Arduino... Does anyone know why they would include a hardware device among a ranking of programming languages? The most prominent language used to program Arduinos is probably C, followed by C++ and then AVR assembly. I don't understand why they would include it among programming languages.
- cw0 12y agoFrom the official docs: "The Arduino programming language is an implementation of Wiring, a similar physical computing platform, which is based on the Processing multimedia programming environment." and "the Arduino language is merely a set of C/C++ functions that can be called from your code."
- jnbiche 12y agoJust saw this, but please note that Processing is not being run on the Arduino, but rather it is controlling the Arduino through the serial connection. And you can control an Arduino via a serial connection using just about any programming language, including Python and JavaScript. So again, you can't run Java or Processing on the Arduino. Keep researching.
- orclev 12y agoI think the "cool kids" part of this is somewhat rhetorical. The whole point of the slides is basically what are the deficiencies of Erlang, and how can we fix them. The results are fairly interesting although not entirely surprising. It's also worth considering that these questions were asked of Erlang users, so it's the communities opinion of itself. I as an outsider would say my biggest issue with Erlang is that it's a highly event driven system and I don't like event based systems. Events are basically a more opaque form of GOTO and thus suffer the same criticisms. Events are sometimes the simplest way to model something, but as a general paradigm to solve all problems they really suck and do terrible things to your program architecture.
- candoprog22 12y ago1. It is good the cool kids are not drawn to Erlang because then we would end up in the state Ruby and Node are now. 2. The biggest fail in IT - "I can't find experienced developers in Erlang/<some other tech>": Most employers are muppets. Rather than hire a decent developer and allow them to learn a new tech on the role, they scour the market for candidates that are probably just lying on the resume/CV. I have already seen resumes/CVs claiming 5 years+ of Swift on iOS. Quite a few retarded HR departments will fall for this.
- alttab 12y agoInterestingly enough, in both the start up and corporate world I've seen hiring when the developer has NO skill in the language. This was true about Java, this was true about Ruby. This was true about python... I think what would be a more interesting analysis is what cohort pre-selects themselves to functional languages, or projects where that technology is used? Out of all the software today, where is the most prominent functional code use and why?
- walshemj 12y agoThat's what happened at my first job hired as a research assistant at a world leading research place. My instructions where Keith will give you an hours instruction on how to use the PDP there is a book on fortan in the company library go and learn it. Oh BTW that was leaving high school with 5 O Levels
- perturbation 12y agoWhat is an O Level?
- deleted 12y ago[deleted]
- hga 12y agoIf you're familiar with the Harry Potterverse, NEWTS are modeled on O Levels. Perhaps a bit like US Advanced Placement courses and tests, but much more institutionalized, and I gather they're part of how the U.K. university system can get away with 3 year bachelor's degrees. I once worked with a Jamaican who'd earned several O Levels (Caribbean counties had their own versions of them modeled on the British system), he was very smart and productive (and like many other good EEs had his own MOSIS chip to flash). Hearing someone got 5 O Levels immediately causes my talent antennae to twitch ^_^, and I'm not surprised he picked up FORTRAN easily (then again, I found it very easy to learn starting a couple of years earlier than walshemj, and I'll bet with quite a bit less mathematical maturity, just Algebra I and Geometry, with concurrent Algebra II, but all taught by very good to excellent teachers).
- decentrality 12y agoWhat I would like addressed by someone from Erlang is the reality of Celluloid in Ruby, and do honest comparisons. http://celluloid.io http://celluloid.io Otherwise, the speaker seems like a good representative, but the presentation is so verbose it makes me want to concurrently handle his thesis asynchronously in parallel threads and remove the human... in jRuby, using Celluloid.
- lelf 12y agoIt's different game. Nothing is shared (think: one gc per thread), can run 10M+ threads on one cpu and effectively schedule all of them (it has one-of-a-kind scheduler counting reductions, you cannot cpu lock even if you want), really transparent distributive programming, state of the art introspection: "login" to remote process on different node, see how many messages in the mailbox of some process, hot (= replace running code) code reloading etc. Edit: Essentially: some actor library for language X is not even remotely (if any) erlang. Maybe cloud haskell some day will be there, but its all introspection parts is basically nonexistent right now.
- rubiquity 12y agoI'm a long time Rubyist that is new to the Erlang world by way of Elixir mostly. I did use Celluloid in Ruby and it is actually what eventually lead me to Erlang/Elixir. I think Celluloid is neat and a great set of abstractions for multi threading in Ruby. However, there's more to actors than just having it implemented in a library. Erlang's VM was designed for the actor model whereas Ruby MRI is not. Celluloid actors run in OS threads which can't scale to hundreds of thousands where as Erlang processes can. Using Celluloid with JRuby is closer but still not quite the same. All that said, Celluloid is damn cool and Tony Arcieri did incredible work on it.
- Allan_Smithee 12y agoEverybody thinks that the identifying characteristic of Erlang is the "Actor"(-like) model. This is untrue. This is also why all the "Actor"(-like) libraries grafted on to other programming languages that proudly proclaim themselves "Erlang-like" are wrong and make me laugh out loud when I run across them.
- cscurmudgeon 12y agoAn interesting thing is Common Lisp's place in the graph. It roughly translates to saying Common Lispers have less woes relatively. The CL nerds were right all along :)
- Almaviva 12y agoThat or they just would rather suffer than talk to or work with another human being.
- mrottenkolber 12y agoWhy did you even bother writing that, is it supposed to be funny? Because there is certainly no truth or utility to this ridiculous speculation.
- qbrass 12y agoJust like the comment it was replying to.
- mrottenkolber 12y agoNo, it translates into CL is quite widespread but we don't use SO (we have CLHS/good documentation, c.l.lisp, #lisp, loads of mailing lists etc.). Also SO is kind of geared towards entry level programmers, which applies to few CL folks.
- _broody 12y agoThen, too, unlike other languages that frequently attract veteran programmers rather than newbies, CL doesn't appear utterly baffling to an initiate.
- mrottenkolber 12y agoYep, its not like CL isn't a good first language. You'll just find few people recommending it as such, even more since scheme also exists.
- kyberias 12y agoA semi-interesting observation of the graph on one of the first slides: C# is highest on StackOverflow metric because the site has been historically concentrating more on Microsoft technologies. This also shows on how the different languages are separated by the diagonal line: technologies/languages closer to Microsoft are above the line and more "open" alternatives are under the line.
- CmonDev 12y agoHow can an open free Q&A site be concentrated on something? It simply reflects what people want and need.
- judk 12y agoBecause Joel Spolsky is a famous Microsoftie whose community and fan base originally skewed toward Microsoft.
- coldtea 12y agoSo? What percentage of those were (and is) in StackOverflow? Compared to whole languages communities, for languages like PHP, Java, etc (and .NET), the number of "people who follow Spolsky and started using SO because of that" is miniscule. A statistical noise at best.
- readme 12y agoBecause early adopters of the website were prominent Microsoft developers. Such as Jon Skeet. This caused network effects. To suggest just because a door is opened that every developer has an equal chance of walking through is absurd. This is not evidence that the general software community wants or needs c# more than any other thing. For many developers more traditional channels of q and a are still popular, such as mailing lists.
- CmonDev 12y agoJon Skeet is a Google developer. Well early Git adopters were Linux developers. Does it mean that GitHub is not really mainstream apart from a narrow group of people?
- walshemj 12y agoInteresting that the old warhorse FORTRAN is still in relatively high demand on their graph slide 4
- josteink 12y agoThis thing is completely unreadable on a phone. Does it have a more phone-friendly version somewhere?
- cpncrunch 12y agoIt's not really much better on a browser. It took me about 10 minutes of clicking and swiping to figure out that you're meant to use the cursor keys to navigate. What a shitty user experience...
- cpncrunch 12y agoExplain downvote please.
- micampe 12y agoNegativity. I didn’t downvote but even agreeng with you and being frustrated with the website I was put off by the tone of your comment.
- cpncrunch 12y agoI feel I have a right to a bit of negativity after trying in vain for 10 or 15 minutes to use a website which is completely unusable on an ipad, and not very usable on other devices either (I just have to figure out that you're meant to use cursor keys). I'm just honest - if something is shitty I'll say so. I don't think that was a reason for getting downvoted. I've seen quite a lot of articles posted here with (usually gratuitous) swearwords in the title. The site also crashes the ipad most of the time, although I think that is just iOS being shitty rather than any fault of the website.
- micampe 12y agoSure, and other people have the right to not like reading the negativity.
- deleted 12y ago
- ritchiea 12y agoMeta but I really wish we could ban the phrase "cool kids" from the programming community. It has a terrible connotation (high school cliques). And it feels out of place, especially when we're talking about something like practical choices about what programming language and tooling we choose. Even when talking about "trendy" languages and frameworks it's a poor choice of words because no one really make these choices to be "cool" and it would actually be interesting to take time to better understand what drives adoption (which, to be fair, is what the speaker of this talk is actually doing with his real work, he just choices a grating title). To be cool people wear trendy clothes, listen to particular music, etc. with the intent of signaling to other "cool" people. People make choices about programming languages & tooling because they've heard something good about the language, it seems to solve a problem you have or it's new and presumably someone else thinks it solves an existing problem in the programming ecosystem.
- glibgil 12y agogar1t is the guy that blew up "cool kids". He is doing better than banning the phrase. He is making it ridiculous. http://youtu.be/5GpOfwbFRcs?t=2m30s http://youtu.be/5GpOfwbFRcs?t=2m30s
- unoti 12y agoIf you watch the video of the talk on vimeo below, the author addresses this issue head on at the start of his talk. The thesis is that there are many developers that use technologies for capricious reasons such as because other people do it, rather than for solid reasons of engineering. In my experience, huge swaths of the real world of software development are not wholly reasonable, objective, nor immune to groupthink. There's plenty of posturing and social signaling going on among developers.
- ritchiea 12y agoI'm definitely going to take time to watch his talk because the slides are excellent. And I agree with you wholeheartedly that the real world of software development is not wholly filled with reasonable people that strive for objectivity. Though in a serious conversation about technology adoption I'm not sure the best strategy is to target the unreasonable people. After all, are those even the people you want as advocates of your favorite technology? What you probably want is to win over the reasonable people and let the followers follow. Also, "other people do it" is not a capricious reason for adopting technology. It's not an engineering reason, but there are reasons to follow the crowd. If there is a crowd there will probably be lots of libraries, if there is a crowd there are more people that may do the thankless work of documenting and patching libraries, if there is a crowd there are more people to answer questions on stack overflow. The crowd may not be an engineering reason but it can definitely be a productivity reason.
- quarterwave 12y agoAre Erlang-based start-ups more likely to be acquired because Erlang has gained a Jedi Knight reputation for "sorcerer's ways"?
- coldtea 12y agoNo, business doesn't work that way. And nobody much cares what you startup runs on if he's to part with his money basically.
- dizzystar 12y agoIf I'm interpreting these slides correctly, I see an interesting bit of irony as a Clojure programmer. I can't tell you how many times I've been asked about my opinions of Erlang and I've lost count of how many times I've been told to learn Erlang because company X needs Erlang, or I should learn about scaling NoSQL databases, or whatever perception. As far as I can tell, Erlang may not have a visible mind-share, but it has a much higher impact on mind-share and companies than it appears. Of course, this may just because many people consider Erlang / Haskell / Clojure languages that solve similar problems and are thus diametrically opposed to each other. One person told me about how he asked a bunch of Haskellers about Erlang. Their answer: "Why would we learn a language no one uses?"
- michaelneale 12y agoI think it is used more than people perhaps realise - and if you are deep into clojure - you are probably already on the bleeding edge (at least as far as mainstream programmers are - remember there are a LOT of them) - thus would tend to come up against places that use erlang or clojure (self selecting?). (FYI I like both erlang and clojure, and have used both in anger). I learned erlang before clojure - it I think the former helped me quickly pick up the latter, strangely.