[erlang-questions] node.js vs erlang
Joe Armstrong
erlang@REDACTED
Thu Jun 19 17:20:57 CEST 2014
On Thu, Jun 19, 2014 at 1:33 PM, Loïc Hoguin <essen@REDACTED> wrote:
> On 06/19/2014 01:06 PM, Joe Armstrong wrote:
>
>> You can - Here is an example of a single file cowboy server that computes
>> fib(N) -
>>
>> [snip huge file]
>
>
>> Put this in a file. chmod it to u+x and run it
>>
>> Then got to http://localhost:8124/fib?n=10
>>
>> And fib(10) will be returned
>>
>
> Joe, your one file example is longer than my many files getting started,
> not to mention completely cryptic.
I *explicitly* said at the end "With a small amount of refactoring this
could be
make just as simple as the node.js examples"
This was a quick cut-and-paste job to show that it could be done - it was
*never*
intended an a beginners example.
To make a beginners example - I'd move most of the code into the libraries
and rename
things fro clarity
> The shebang up there isn't something you can just drop on people, you have
> to explain it.
Yes
> You also have to say why you have an infinite receive
Can be refactored out of the code
> and how to stop the program.
easy
> Plus, doing this you'd also have to explain them that they have to
> download 3 different projects manually and to put them in the appropriate
> folder.
>
this is what something like npm should do
>
> And of course, the worst is that by taking this one file example, people
> immediately get stuck. How do they add a second handler? I personally have
> no idea how to go from that one handler escript to something bigger.
>
>
read the rebar example at
https://github.com/basho/rebar/blob/develop/bootstrap
Actually bigger apps should not be built the same way as smaller apps,
just because large apps need a particular structure, there is no reason why
small apps
need the same structure.
> 2) make a packed escript that packs all the compiled code into a
>> single file
>> rebar is a good example of this
>>
>
> That script takes an OTP application and bundles it into one escript. It
> makes little difference with taking an OTP application and generating a
> release, except the release is a lot more useful for servers.
>
>
> Erlang was not designed to be complex - the primitives in Erlang
>> (spawn_link, trap_exits, etc.) were designed to be as simple as possible
>> and were intended to be called from library routines.
>>
>
> I didn't say Erlang was designed to be complex. I'm saying running the
> Erlang VM is of higher complexity than dropping a PHP file into a folder or
> running nodejs myfile.js. And yes, that's true even if you use escripts.
>
>
>
To run the erlang VM I say
$ erl -s ....
To run node.js I say
$ node ...
I don't see why one is more complex than the other.
Cheers
/Joe
--
> Loïc Hoguin
> http://ninenines.eu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140619/9b60a89f/attachment.htm>
More information about the erlang-questions
mailing list