<div dir="ltr"><div><div><div>In that case: welcome to the wonderful world of Erlang!<br><br></div><div>One thing that I think you will see after a while of working with Erlang is how simple and small the language is. Some of the concepts regarding supervision and fail fast takes a bit of time to wrap your head around, but the language itself is small and easy to understand. Ericsson designed it like that.<br>
<br></div><div>Simplicity is good - a quote from Hoare's Turing Award Lecture:<br><div style="margin-left:40px">If our basic tool, the language is which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution.<br>
</div><br></div><div>Read the whole thing - it is a marvel of software engineering insights.<br></div><div><br></div><div>Erlang allows you to focus on the hard parts - how to solve the problem.<br><br></div><div>Any person that claims that Scala is simple needs some sort of mental examination.<br>
</div><div>Don't get me wrong - you can do wonderful things in Scala, but you have to be a wizard of it to get that done. It is bloated with a number of concepts that I'm not sure works out well for the average programmer.<br>
<br></div><div>The last paragraph can also be read with C++ substituted for Scala ;-)<br><br>Cheers,<br></div></div>Torben<br><br></div>p.s. you can steal some Emacs stuff from my standard set-up: <a href="https://github.com/lehoff/lehoff-emacs">https://github.com/lehoff/lehoff-emacs</a><br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On 31 January 2014 07:25, kraythe . <span dir="ltr"><<a href="mailto:kraythe@gmail.com" target="_blank">kraythe@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Well I think after seeing the arguments and the response of the community I am trending seriously towards Erlang. I will probably make the mental investment to learn and become good with emacs. And then move on from there. I may still have a ton of questions. I would still, for example, love to know who to 'reload' my application once it is started.</span><br>
<div class="gmail_extra"><div><div dir="ltr"></div></div>
<br><br><div class="gmail_quote">On Fri, Jan 31, 2014 at 12:24 AM, kraythe . <span dir="ltr"><<a href="mailto:kraythe@gmail.com" target="_blank">kraythe@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Well I think after seeing the arguments and the response of the community I am trending seriously towards Erlang. I will probably make the mental investment to learn and become good with emacs. And then move on from there. I may still have a ton of questions. I would still, for example, love to know who to 'reload' my application once it is started.</div>
<div class="gmail_extra"><br clear="all"><div><div dir="ltr"><div><div style="font-family:arial;font-size:small"><b>Robert Simmons Jr. MSc. - Lead Java Architect @ EA</b></div></div><div><div style="font-family:arial;font-size:small">
<i>Author of: Hardcore Java (2003) and Maintainable Java (2012)</i></div>
</div><div><i style="font-family:arial;font-size:small">LinkedIn: </i><font face="arial"><i><a href="http://www.linkedin.com/pub/robert-simmons/40/852/a39" target="_blank">http://www.linkedin.com/pub/robert-simmons/40/852/a39</a></i></font></div>
</div></div><div><div class="h5"><div><div>
<br><br><div class="gmail_quote">On Thu, Jan 30, 2014 at 10:29 PM, Richard A. O'Keefe <span dir="ltr"><<a href="mailto:ok@cs.otago.ac.nz" target="_blank">ok@cs.otago.ac.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
On 31/01/2014, at 7:49 AM, Steve Strong wrote:<br>
> On Thursday, 30 January 2014 at 19:10, kraythe . wrote:<br>
</div><div>>> 1) Code completion. Sorry but I can't be bothered to type the same flipping method name in its entirety 40 times.<br>
<br>
<br>
</div>There are three causes for "completion" in languages like<br>
Prolog and Erlang:<br>
<br>
(a) Definitions with multiple clauses.<br>
Your editor should be able to turn "add a clause" into a<br>
single command.<br>
<br>
(b) Recursion.<br>
Your editor should be able to turn "add a recursive call"<br>
into a single command (basically the same as (a), just<br>
different stuff wrapped around it).<br>
<br>
A programming style using higher order procedures can<br>
eliminate a lot of this.<br>
<br>
(c) Repetitive patterns of code.<br>
<br>
A programming style using higher order procedures can<br>
eliminate a lot of this.<br>
<br>
There's a thing I find myself saying more and more often:<br>
<br>
Why can't I see the structure?<br>
<br>
I was reviewing a page or two of Prolog code for someone the<br>
other day. By the end of three hours, I'd made some progress,<br>
but I was troubled. The code was clean, but it wasn't OBVIOUS.<br>
What finally dawned on me would have been instantly obvious to<br>
a real functional programmer: the code was an interweaving of<br>
a "compute argmax of a partial function over a finite domain"<br>
and "here is this partial function". Actually introducing the<br>
higher order function in question let me explore several ways<br>
of implementing that *without* any effect on the rest of the<br>
code. Breaking the specific partial function out and naming<br>
it let me see that memoising *that* function -- which hadn't<br>
previously existed -- stood an excellent chance of reducing<br>
the overall cost of the algorithm down *hugely*.<br>
<br>
So I say, if you find yourself _wanting_ a method name to<br>
appear 40 times in a day's work, you are doing something<br>
badly wrong.<br>
<br>
For another data point, as part of building up my Smalltalk<br>
skills, I used to pick up Java code and rewrite it in Smalltalk.<br>
There were two invariable results: first, the code would<br>
shrink by about a factor of six, and second, it would become<br>
painfully obvious that the original code was really really<br>
bad design, and that in a *good* OO design, most of the<br>
classes wouldn't just shrink, they'd disappear. A good part<br>
of this is down to Smalltalk's support for and extensive use<br>
of higher order functions from day 1.<br>
<div><br>
><br>
> 3) Syntax coloring. (VIM color codes a file so that is there, emacs I don't know AT ALL.)<br>
</div>To which Steve Strong replied<br>
<div>> I don’t know of any editor that doesn’t do this -<br>
> even github displays syntax colouring on erlang files.<br>
<br>
</div>My own text editor doesn't do syntax colouring.<br>
Frankly, I hate syntax colouring. I could give you<br>
a long rant about why. One big issue is that the<br>
name is a lie. It's *lexical* colouring; the colour<br>
depends on what kind of token something is. But I<br>
can *see* that. If you offered me an editor where<br>
calls to functions whose definitions had been edited<br>
recently were brightly coloured, or where the functions<br>
imported from a particular module were brightly coloured,<br>
or where slicing was used to colour the places where a<br>
particular variable could be *changed* and *used*, I'd<br>
find that really really helpful. Why waste colour<br>
telling me something that is already obvious at a glance?<br>
I once came across a compiler (written in Finland) where<br>
several passes had had to be woven together because of<br>
the language it was written in, so they had coloured<br>
each declaration and statement according to which pass<br>
it was logically part of. Now _that's_ good use of colour!<br>
<br>
><br>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr"><div><a href="http://www.linkedin.com/in/torbenhoffmann" target="_blank">http://www.linkedin.com/in/torbenhoffmann</a><br></div>@LeHoff<br></div>
</div>