[erlang-questions] The quest for the perfect programming language for massive concurrency.
Sylvain Benner
sylvain.benner@REDACTED
Tue Feb 4 14:44:42 CET 2014
Oops seems that I missed 2 full pages of discussion... EDTS has already
been mentioned.
Le mardi 4 février 2014 08:39:59 UTC-5, Sylvain Benner a écrit :
>
> If you are familiar with Vim I recommend installing the evil-mode right
> away, it is the one of the most complete Vim key bindings emulation. You
> will feel like home with it and you will be one of the happy Emacs/Vim
> strange kind of user (monster?!) which can enjoy the best* text editor on
> this planet: Emacs+Vim.
>
> Annnnnnd you will be able to enjoy the best* programming environment for
> Erlang: EDTS [1] which is of course written partly in Erlang :-)
> For example, EDTS evaluates eunit tests as you modify them and show the
> result visually in the buffer by underlining the test name in green en red,
> put the cursor on the test name and you have your failed assertion. And
> this is just a small example of what EDTS does.
>
> cheers,
> syl20bnr
>
> [1] https://github.com/tjarvstrand/edts
> * very personal opinion there :-)
>
>
> Le vendredi 31 janvier 2014 01:25:17 UTC-5, kraythe a écrit :
>>
>> 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.
>>
>>
>> On Fri, Jan 31, 2014 at 12:24 AM, kraythe . <kra...@REDACTED> wrote:
>>
>>> 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.
>>>
>>> *Robert Simmons Jr. MSc. - Lead Java Architect @ EA*
>>> *Author of: Hardcore Java (2003) and Maintainable Java (2012)*
>>> *LinkedIn: **http://www.linkedin.com/pub/robert-simmons/40/852/a39
>>> <http://www.linkedin.com/pub/robert-simmons/40/852/a39>*
>>>
>>>
>>> On Thu, Jan 30, 2014 at 10:29 PM, Richard A. O'Keefe <
>>> o...@REDACTED> wrote:
>>>
>>>>
>>>> On 31/01/2014, at 7:49 AM, Steve Strong wrote:
>>>> > On Thursday, 30 January 2014 at 19:10, kraythe . wrote:
>>>> >> 1) Code completion. Sorry but I can't be bothered to type the same
>>>> flipping method name in its entirety 40 times.
>>>>
>>>>
>>>> There are three causes for "completion" in languages like
>>>> Prolog and Erlang:
>>>>
>>>> (a) Definitions with multiple clauses.
>>>> Your editor should be able to turn "add a clause" into a
>>>> single command.
>>>>
>>>> (b) Recursion.
>>>> Your editor should be able to turn "add a recursive call"
>>>> into a single command (basically the same as (a), just
>>>> different stuff wrapped around it).
>>>>
>>>> A programming style using higher order procedures can
>>>> eliminate a lot of this.
>>>>
>>>> (c) Repetitive patterns of code.
>>>>
>>>> A programming style using higher order procedures can
>>>> eliminate a lot of this.
>>>>
>>>> There's a thing I find myself saying more and more often:
>>>>
>>>> Why can't I see the structure?
>>>>
>>>> I was reviewing a page or two of Prolog code for someone the
>>>> other day. By the end of three hours, I'd made some progress,
>>>> but I was troubled. The code was clean, but it wasn't OBVIOUS.
>>>> What finally dawned on me would have been instantly obvious to
>>>> a real functional programmer: the code was an interweaving of
>>>> a "compute argmax of a partial function over a finite domain"
>>>> and "here is this partial function". Actually introducing the
>>>> higher order function in question let me explore several ways
>>>> of implementing that *without* any effect on the rest of the
>>>> code. Breaking the specific partial function out and naming
>>>> it let me see that memoising *that* function -- which hadn't
>>>> previously existed -- stood an excellent chance of reducing
>>>> the overall cost of the algorithm down *hugely*.
>>>>
>>>> So I say, if you find yourself _wanting_ a method name to
>>>> appear 40 times in a day's work, you are doing something
>>>> badly wrong.
>>>>
>>>> For another data point, as part of building up my Smalltalk
>>>> skills, I used to pick up Java code and rewrite it in Smalltalk.
>>>> There were two invariable results: first, the code would
>>>> shrink by about a factor of six, and second, it would become
>>>> painfully obvious that the original code was really really
>>>> bad design, and that in a *good* OO design, most of the
>>>> classes wouldn't just shrink, they'd disappear. A good part
>>>> of this is down to Smalltalk's support for and extensive use
>>>> of higher order functions from day 1.
>>>>
>>>> >
>>>> > 3) Syntax coloring. (VIM color codes a file so that is there, emacs I
>>>> don't know AT ALL.)
>>>> To which Steve Strong replied
>>>> > I don’t know of any editor that doesn’t do this -
>>>> > even github displays syntax colouring on erlang files.
>>>>
>>>> My own text editor doesn't do syntax colouring.
>>>> Frankly, I hate syntax colouring. I could give you
>>>> a long rant about why. One big issue is that the
>>>> name is a lie. It's *lexical* colouring; the colour
>>>> depends on what kind of token something is. But I
>>>> can *see* that. If you offered me an editor where
>>>> calls to functions whose definitions had been edited
>>>> recently were brightly coloured, or where the functions
>>>> imported from a particular module were brightly coloured,
>>>> or where slicing was used to colour the places where a
>>>> particular variable could be *changed* and *used*, I'd
>>>> find that really really helpful. Why waste colour
>>>> telling me something that is already obvious at a glance?
>>>> I once came across a compiler (written in Finland) where
>>>> several passes had had to be woven together because of
>>>> the language it was written in, so they had coloured
>>>> each declaration and statement according to which pass
>>>> it was logically part of. Now _that's_ good use of colour!
>>>>
>>>> >
>>>>
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140204/de2c88ea/attachment.htm>
More information about the erlang-questions
mailing list