Erlang rocks (Re: Eppur si sugat)

Peter-Henry Mander erlang@REDACTED
Thu May 29 11:08:48 CEST 2003


Have a look here:

http://www.sics.se/fdt/projects/vericode/index.html

However, I'm not so sure that the proof of correctness is either 
absolutely necessary or even achievable. But I'm a pragmatist, not a 
mathematician, and pragmatically I find that Erlang has a vastly 
superior way of dealing with the unexpected. In all other languages I 
know there is nothing that equals the process linking and exit trapping 
provided by Erlang. Being able to effectively and efficiently firewall 
suspect code with supervisor processes is remarkably powerful. It 
doesn't guarantee that code will _always_ work correctly, but it does 
prevent a mistake becoming a disaster!

<rant>
Even when there is a basic error trapping mechanism, as with C++ 
exceptions, I've found that some programmers *avoid* using it due to 
efficiency concerns with stack unrolling! When something has failed, 
what's the point of rushing to bring the *whole* system down?! If the 
error is handled correctly by a conscientious programmer, they would 
perform the same process of unrolling with no discernable benefit and 
possibly introduce more bugs too.

I've tried to explain this to these hot-heads but they didn't get it! 
How can one sell the virtues of program verification to code monkeys 
like them? I think firewalling their code is the only solution!
</rant>

Pete.

Dr.Dr.Ruediger M.Flaig wrote:
> Hi all,
> 
> from my bit of Italian, I think it ought to be "Eppur suga" -- the Latin -t is dropped in the 3rd person singular AFAIK, and it is certainly not reflexive... it does not suck itself, thaat were recursion.
> ;-)))
> 
> Now for something more serious... I think the basic sentiment we all share is that Java sucks, and that C++ sucks. They do, and very badly too, and it is annoying to see that they have become a kind of de facto standard. 
> 
> I have used both (more than Erlang, I am afraid -- as a molecular biologist, I have to deal with megabyte arrays, and that is not quite what Erlang was designed for -- sinnerr repent -- well Ocaml is quite nice too ;-) ), and I am equally fed up with the cobolesque boilerplate of 
> "private final static paralyzed karl.otto.gustav emil = (karl.otto.gustav) ((egon.kasimir) foo.bar().blah[anything])" 
> and the orkish scrawls of 
> "#define n<m>(x,i,j) {*++(*x)->y %= (i>j)?&i--:--&j}", not to mention memory leaks and, and, and... Maybe OO itself does not suck but a concept without implementation is  void. 
> 
> But I think we are missing the point. The important thing is not that OO is an inferior concept but that FP (or COPL, if you please) is a superior one. Erlang were still great even Stroustrup and Gosling had never come near a computer -- because it enables you to be productive, to write clear and concise code, to cope with errors and, last but not least, becaause it allows reasoning.
> 
> This latest thing is what I have really been missing. Erlang is a functional language, so it should be possible to employ automatic theorem provers and all that kind of stuff. Cummings wrote about ML: "We are not trying to develop 'safer' programs by testing, but developing SAFE programs by reasoning." This is a very philosophical matter. Let me say that Java and C++ rely on induction, Erlang allows deduction, and Sir Karl Popper has said the rest about that, decades ago. So are there any theorem provers for Erlang, as there are for Lisp and ML? Can we prove a program's correctness by reasoning? If not, let's do that!
> 
> The other point is that the power of Erlang's concurrency is often underestimated by folks who are not interested in parallelism itself. I am a complete layman to that field but I think that neuronal networks would be a great thing do with Erlang. Has anybody tried this before? Are there any projects in similar fields? Personally, I was attracted to Erlang because I felt that simulation of complex biological processes would be easy to implement. Imagine you have a microbe with some 4000 genes, each with a state of activity and each influencing a couple of others. In Erlang, this would be straightforward... I met a guy who did the like and spend a year on that programming the basic mechanism in Java! So I think we could get away from that "Erlang? Oh, that's for telephones only" image. 
> 
> Has anybody worked on this yet?
> 
> 
> Skål,
>    Ruediger Marcus Flaig
> 
> 
> 
> 
> 
> Dr. Dr. Ruediger Marcus Flaig
> Institute for Immunology
> University of Heidelberg
> Im Neuenheimer Feld 305
> D-69120 Heidelberg
> <flaig@REDACTED>
> Tel. +49-172-7652946 
>   | +49-6221-56-5402 
>   | +49-6221-432963
> 
> _____________________________________________________________
> Free eMail .... the way it should be....
> http://www.hablas.com
> 
> _____________________________________________________________
> Select your own custom email address for FREE! Get you@REDACTED w/No Ads, 6MB, POP & more! http://www.everyone.net/selectmail?campaign=tag
> 
> 






More information about the erlang-questions mailing list