from Hacker News

Why Not Erlang? The Lack of Onramps

by ibgeek on 6/23/14, 2:40 AM with 50 comments

  • by 88trh on 6/23/14, 6:16 AM

    Is anyone else extremely bored of the "why you/I shouldn't use Language x" blog posts.

    If people spent as much time contributing to their programming language of choice, rather than writing about why they don't use competing languages - well, that sounds like time better spent to me?

  • by jw2013 on 6/23/14, 4:06 AM

    While I do agree there should be less "activation energy" for the newbies to enter the Erlang community (https://www.youtube.com/watch?v=Djv4C9H9yz4), I don't think "identify ways to expand the scope of Erlang and Elixir to other potential use cases" is the way to go. Each language has its strength and weakness, being highly concurrent and fault-concurrent is the design goal of erlang/elixir, and erlang/elixir achieves that. Making them a general-purpose language seems a bad idea to me (think message-passing a large size of message in a non-concurrent situation where the shared-memory should be used. it just deteriorate the performance of the general-purpose program). Being able to built a great concurrent system is enough to make a language become popular in industry, the problem is really not about more use cases, but is how to make the barrier of entry lower. Also, it does matter to have a warming community, like most of Ruby communities I know.
  • by jtmoulia on 6/23/14, 8:51 AM

    > Erlang/Elixir certainly doesn't have the necessary breadth of libraries to support general-purpose tasks.

    After doing quite a bit of work with Erlang lately, this sentence jumped out at me. Specifically, I think Erlang does have a breadth of libraries, but they're not easy to find. I've had to pluck lone source files out of larger projects, or depend on an obscure github fork since the original was unmaintained. epgsql was a great example of this, though no longer thanks to davidw's yeoman work [1]

    Maybe not the right place to ask this, but would anyone be interested in something like the Clojure Toolbox [2] for Erlang? I've always found having that reference of libraries organized by task to be super handy when working with Clojure.

    [1] http://journal.dedasys.com/2014/04/27/an-erlang-postgres-dri...

    [2] http://www.clojure-toolbox.com/

  • by optimiz3 on 6/23/14, 4:53 AM

    Erlang doesn't look like it Just Works on Windows and Visual Studio. No Intellisense? Productivity--. No MSVC build? Productivity--. It better be that much better to sacrifice that much engineering productivity relative to it's competitors.

    In contrast...Node.js? Works. C/C++? Works. MongoDB? Works. etc. At least they could pretend to make an effort.

    EDIT: It's 2014, serious tools need to integrate into IDEs and support inline development, debugging, and testing. It's ridiculous to be coding in simple text editors that lack the ability to deploy and debug code on the fly. Save that slog for live environments.

  • by mattdeboard on 6/23/14, 5:29 AM

    It's not fair to speak about Elixir & Erlang as a single piece of tech any more than it is to speak about Scala & Java that way. Elixir targets BEAM, but that doesn't mean it's anywhere near as mature as Erlang.

    Elixir is on v0.14 or something. Far sub-1.0. It's a really beautiful language, but it's not surprising to me it doesn't have a Rails/Django analog when they're still introducing backward incompatible changes to the core language.

    Also I really have no interest in learning a language just to write yet another website in.

  • by donn on 6/23/14, 6:20 AM

    My biggest gripes:

    • No public bug tracker. The erlang-bugs mailing list is not a substitute.

    • Questionable releases — stuff like https://gist.github.com/chewbranca/07d9a6eed3da7b490b47

    These two things combined with a small community make me uncomfortable depending on Erlang.

  • by jsnell on 6/23/14, 4:31 AM

    It's not clear to me what "onramp" actually means here, since it's not defined anywhere. Given the examples it appears to be something as generic as "a reason to use the language", and the whole argument becomes pretty much a tautology. Yes, of course most people will only use the language if they have a reason to use it. Unfortunately that's not a very actionable insight.

    Incidentally, I'm not finding some of those examples of "onramps" very convincing. For example I would be stunned if a large proportion of current Go users said that they're using Go because it comes from Google. That (and the pedigree of the authors) might have gotten it some early buzz, but that's unlikely to carry the project very far by itself. The trail of failed or failing development tools from Google should be proof enough of that.

  • by csmattryder on 6/23/14, 6:20 AM

    I know it's not full-on adoption, but one thing I noticed is that Erlang.org lacks an interactive REPL on their website, instead opting to just post a factorial demo[1] without really explaining it (akin to tryruby.org et al.)

    A quick Google found TryErlang.org, which doesn't seem to be linked to the official Erlang website.

    I'm a lot more inclined to learn about a language if I can try it in my browser without a download required. TryRuby.org was my first taster in Ruby and here I am 2 years later.

    [1] http://www.erlang.org/static/getting_started_quickly.html

  • by dschiptsov on 6/23/14, 3:57 AM

    Not Erlang? Facebook? Whatsapp? Leave alone all that Ericsson GSM hardware..
  • by CmonDev on 6/23/14, 7:53 AM

    It is simply not a general purpose language (practically speaking, theoretically of course it is). How many hoops do you need to jump to build a native feel mobile app on major mobile platforms? Scala might be not perfect for this as well, but somehow feels more realistic.
  • by 616c on 6/23/14, 4:07 AM

    I am curious why iPython-like tools are not possible in Erlang. As far as long you have a REPL, is that not a solid base to start an iPython like project in any language?

    (Notice I said base, not the whole enchilada; I recognize that would be going too far.)

  • by rdtsc on 6/23/14, 4:48 AM

    > The Erlang/Elixir language is not ideal for projects requiring lots of data manipulation, math, graphics, or low-latency performance (games).

    It is not. Erlang is not the best tool for fast math and data crunching. Now it could supervise and feed data to a specialized data cruncher.

    There is Wings3D, a subdivision 3D modeler, but that is kind of an exception.

    > Python is easy to get started with, [...] especially due to its ability to easily integrate with C.

    Erlang can also integrate with C. Granted not in ctypes or ffi type way, but with Python C-extension like way. It is not that bad. There are good examples of c libraries integrated that way (LevelDB for example, JSON parsers, etc).

    > None of these are strong areas for Erlang/Elixir, but they are for Python.

    Python is a great language. Use Python, why try to force yourself to not use it if you know and it works great.

    > Erlang/Elixir certainly doesn't have the necessary breadth of libraries to support general-purpose tasks.

    Erlang has been used for a wide variety of tasks. From messaging systems, to databases, to controlling hardware, to running websites, streaming video, real-time bidding systems, very large file storage back-ends, message brokers, chat systems, presence systems, game "lobby" services. Payment systems. The list goes on. In this sort of "concurrent and reliable backend systems" domain it solve quite a bit of general tasks if you wish. It can certainly open files, match patterns on binary data, talk to databases, send data over the networks.

    > I'm starting to become interested in Scala. Why? My new job at Red Hat involves working with and hacking on software built in Java and Scala

    Well presumably could have interviewed with Baho, Tail-f, Klarna. It sounds the author wants an excuse to use Erlang or Elixir, it seems applying for jobs that will lead to using those technologies might help with that.

    > In my mind, if Erlang and Elixir want to grow, the community needs to identify ways to expand the scope of Erlang and Elixir to other potential use cases so that there are a larger number of natural onramps.

    Agree with that. It seems there is repeated mention of ipython. Wonder if that is what is needed. Some kind of a shell with easy commands for saving and sharing modules and code. A lot of stuff ipython does recently with distribution and connecting to other nodes and so on is already baked in.

    Heck someone even started one such project not too long ago (I just found it via a quick search).

    https://github.com/robbielynch/ierlang

    Maybe that is what's needed?

  • by AceJohnny2 on 6/23/14, 3:51 AM

    s/onramps/killer app/

    But I guess the latter is overused and diluted, and the former is the new cool term.

  • by mantraxC on 6/23/14, 5:03 AM

    People who need Erlang, know about Erlang and don't need "onramps". Dumbing it down hasn't been necessary for Amazon and Facebook to adopt it, among many.

    Not every bicycle is intended to be driven by toddlers, so not every bicycle needs mounts where you attach the training wheels.