[erlang-questions] node.js vs erlang

Miles Fidelman <>
Thu Jun 19 15:29:27 CEST 2014


Loïc Hoguin wrote:
> On 06/18/2014 10:22 PM, Kenneth Lundin wrote:
>> That is what I meant, you are using a more complex setup with Erlang in
>> order to get more features. So the comparision with other languages
>> "simple setup" is not fair.
>
> The setup is more complex but the way we get there isn't. Have you 
> read the getting started chapter[1]? The release part is smaller than 
> it would take to explain "erl -run" or "erl -s": we don't have to 
> write extra code for it, we don't have to manually setup paths, we 
> don't have to deal with reltool, and so on. It's literally "create 
> relx.config, put this in it, run make again". Bam you got a release. 
> That part can't get any simpler.
>
> Erlang *is* more complex to use than many other languages (it is still 
> simpler than C, C++ and the like though). Either you do things 
> manually by downloading dependencies manually and such, or you use a 
> build system like erlang.mk (or rebar) to automate things which 
> requires you to create an OTP application.

I think that's highly debatable.  At least from my perspective, Erlang 
ISN'T more complex than many other languages, and is perhaps simpler, 
when you factor in the entire ecosystem required to do any kind of 
serious work.

For example, to get serious work done in C, you need to know about:
- a text editor or IDE - I wouldn't call emacs, or vim, or Eclipse 
trivial to learn
- version control
- language details - including libraries
- program/application structure - header files, linking
- run-time environments and dependencies
- build system (anybody know an easy tutorial for gnutools?, and these 
days add in Jenkins)
- packaging system(s)
- logging, monitoring hooks
- and probably stuff I've left out

Java is no different, but is maybe easier to pick up if you already know 
all of the above for C:
- OOP is a new set of concepts (but not if you've been doing C++ or 
Objective-C)
- you're still using emacs, or vim, or Eclipse
- you're still using git or svn (or switching to something similar)
- when it gets to everything else, there's pretty much a 1-1 
relationship between things your familiar with and the new environment 
(e.g., gnutools vs. maven, ant, etc.)

In once sense, Erlang is no different - "Hello, World" is easy, it's the 
details and the ecosystem that require serious learning.  In another 
sense, it's different in several key respects:
- the core concepts are unfamiliar to many (functional programming, 
actor model)
- the run-time environment is different
- the structure of applications is different (as is the tooling)
I.e., one is not simply learning the same concepts in new clothing. In 
that regard, one does have to learn more (unless Erlang is the first 
language you learn).  But whether it's more complex is debatable (e.g., 
no header files to worry about, no automake, and so forth).

Miles Fidelman




-- 
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra




More information about the erlang-questions mailing list