It was actually designed to solve actual problems. Specifically, extremely high reliability in some of Ericsson's core networking gear.
I'd recommend Learn You Some Erlang[0] if you intend to look at it again. It explains the language, then OTP (the Open Telephony Platform - a framework for defining Erlang process trees and failure modes), then basic outside communication and disk storage.
i.e. showing him how his thought was wrong doesn't change the fact that many other people will probably make a similar thoughts.
> "that the online reference doesn't cover interaction with anything outside of your program" This does NOT mean it does not teach you IO. The full bullet point is
> "How to communicate with the outside world and/or software written in other languages (ports). There is however a separate tutorial for this, Interoperability Tutorial"
It means it won't teach you FFI in a tutorial.
> "guessing that Erlang is one of those functional languages that are great for mathematical proof-like software development but not practical for solving actual problems because the world is mutable and the language constructs are not."
I don't know how you got to this dumb conclusion when "What is Erlang?" on the main page clearly states:
> Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.
The Google comparison is comical. You are wildly over-estimating how well known Erlang is, even in the dev community.
> Do you really decide whether you'd learn a language by looking at its website?
Most devs learn a new language when it helps them solve a problem. Anyone who needs to solve the problems that Erlang addresses has already at least looked at Erlang.
This thread was also directed at those who have never used Erlang. Starting with the Erlang website makes eminent sense.
Specific example :
Compare the Erland and Rust websites. I've never used Rust or Erlang. I can confidently say that the Rust website does a better job of familiarizing a new user with the language. It's not just a matter of the Rust syntax being C-derived, either. It's simply harder to find any useful information on the Erlang website.
Rust :
* code sample on landing page
* comprehensive tutorial linked directly from landing page
Erlang : * no code on landing page
* "quick start guide" which is basically a link to a non-free book
* Getting to actual code requires 3-4 clicks from the landing page
* e.g. Documentation -> Course -> Sequential Programming
Conclusion : The Erlang website isn't as useful as that of at least 1 other non-mainstream language.Of course it does. But stopping at the Erlang website because of the website makes much less sense. Find some other way to know more about the language and then decide whether you'll use it or not.
Well, it's pretty well known in the competent dev community. Some guy doing CRUD apps for some enterprise might not know it, true.
I've worked for enterprise.
Also I didn't say it is divided "neatly". Why do people always assume that when you talk about a group of people being Y, all of them must be Y?
It's enough that the statistical majority of them be Y (e.g 90% of enterprise developers not really knowing about the wider world outside enterprise software practices). That there will be exceptions it's obvious -- there are exceptions everywhere.
Kind of! Irrespective of Erlang's site, a well-maintained, informative, and newbie friendly website is often a signal. Maybe it's not a very accurate signal. But it's a signal which suggests that, for lack of a better term, the community exists and has its act together.
There are enough other things to occupy programmers' time. People adopt heuristics like these — "how professional/modern does the website look?" — as a way to save time.
I certainly could see myself doing that. It's usually indicative of the leadership and community that's associated with the language. In Erlang's case I understand that it's pretty niche in the big scheme of things, and that might be the reason. In terms of languages if the information presented isn't on the level of Java, PHP, Ruby, Python and others it comes off as sub-par. That may not be the reality but it's the perception IMO.
You seem to be looking into this from the perspective that everyone must already know what Erlang is all about, so there doesn't need to be an effort to reach out to new users - which would contradict the questions the OP is asking.
This is a list of compile-to-javascript languages: https://github.com/jashkenas/coffee-script/wiki/List-of-lang...
Is any developer going to give every language on that list the same consideration?
No. Not possible.
It obviously stands for Outlaw Techno Psychobitch ;).
http://www.youtube.com/watch?feature=player_detailpage&v=rRb... (Erlang The Movie II)
Why are you saying a link to Learn You Some Erlang for Great Good [1] is a dead end? Have you missed the "Read it online" button?
Well, you can read the book online, so how's that a dead end?
>So I'm going to stop here, and do some real work in a pragmatic language.
Well, $16B for WhatsApp, for a company with like 40 engineers, proves that Erlang can be quite pragmatic itself.
The person who can't be bothered to even find 'Learn You Some Erlang' also won't have the motivation to learn Erlang. It does take effort, but there now are many good resources available (unlike the situation just a few years ago).
What am I trying to say? Put effort into presenting your language and I will put effort into going through the material.
Give me two shit and that's how much interest you will get from me.
However, I put my own effort into finding more resources. I tried Erlang, it was OK, but I wasn't very comfortable working with the syntax. I've never needed any special feature in Erlang that I couldn't accomplish in another language.
> Put effort into presenting your language and I will put effort into going through the material. Give me two shit and that's how much interest you will get from me.
See, I really don't think it's worth courting people who have that attitude. If your motivation is _that_ low, it's probably not for you anyway. At this point, even people who don't have a real need for Erlang/OTP, but who still enjoy learning for the sake of learning, can find great introductory material.
What attitude? Someone goes to a website out of curiosity, but it isn't very helpful so they leave. (Who hasn't done this?)
Erlang might be EXACTLY the thing they need, but on the subject of why Erlang isn't more popular--subpar marketing is more than relevant.
I was so impressed with Erlang that i'm still banging my head on it nearly 10 (half-hearted) years later.
1. Know what the Fibonnaci numbers are.
2. How to compute them.
3. Said computation is straight-forward, but it requires some form of looping (either recursion or iteration) and some form of arithmetic.
The combination of those traits means that if I present code to compute the Fibonnaci number for an arbitrary number in some random programming language, you can infer a lot about that programming language. In other words, the only variable in that situation is the programming language itself, which allows you to use the other information you already know to learn about that language relatively quickly.
Following the Erlang Quickstart [2] link, I get a page that doesn't really tell me anything about the language. It demonstrates a program that implements a factorial function, then tells me to go write games. Other than "Burn the CPU", I'm not sure what kind of games I can write with what I learned here.
The first link to more documentation at the bottom of the page goes to a book's website, so that's a dead end. The second link goes to an online reference guide [3] which seems more promising, until I read the introduction [4]. Under "Things Left Out" is "How to communicate with the outside world". Hrm...
So, what I have so far is that Erlang is a functional language, and that the online reference doesn't cover interaction with anything outside of your program. Based on this I'm guessing that Erlang is one of those functional languages that are great for mathematical proof-like software development but not practical for solving actual problems because the world is mutable and the language constructs are not. Yes, I'm making a big inference here, but that definitely seems like where I'm heading.
So I'm going to stop here, and do some real work in a pragmatic language.
[1] http://www.erlang.org
[2] http://www.erlang.org/static/getting_started_quickly.html
[3] http://www.erlang.org/doc/getting_started/users_guide.html
[4] http://www.erlang.org/doc/getting_started/intro.html#id62800