2009-03-18 3 views

Antwort

8

Prägnanz als ein Sprachfeature krank und wahrscheinlich nicht einheitlich definiert ist. Abhängig vom Problem könnten verschiedene Sprachen mehr oder weniger präzise sein.

Erlang als eine funktionale Sprache kann sehr knapp sein, außer Ruby oder Python. Speziell der Mustervergleich ersetzt häufig, wenn Anweisungen und Rekursions- und Listenkompromittierungen Schleifen ersetzen können.

Zum Beispiel Java wäre so etwas wie dieses:

String foobar(int number){ 
    if (number == 0) { 
    return "foo"; 
    } else if (number == 1) { 
    return "bar"; 
    } 
    throw new Exception(); 
} 

während würde Erlang Code wie folgt aussehen:

foobar(0) -> "foo"; 
foobar(1) -> "bar". 

Mit Ausnahme inhärent zu sein, weil es keine Klausel für die Eingabe ist, andere dann 0 oder 1. Dies ist natürlich ein Problem, das sich gut für die Erlang-Stilentwicklung eignet.

Im Allgemeinen passt alles, was Sie als Transformation definieren könnten, besonders gut zu einer funktionalen Sprache und kann sehr präzise formuliert werden. Viele Fanatiker der funktionalen Sprache geben an, dass jedes Problem bei der Programmierung eine Transformation ist.

2

Erlang ermöglicht es Ihnen, Funktionalität in sehr wenigen Codezeilen zu realisieren, im Vergleich zu meinen Erfahrungen in Java und Python. Nur Smalltalk oder Scheme kamen mir in der Vergangenheit nahe. Sie haben nur einen geringen Overhead, aber Sie sprechen in der Regel Identifikatoren für Module, Funktionen, Variablen und Atome. Sie machen den Code lesbarer. Und Sie haben viele normale, geschweifte und eckige Klammern. Es hängt also von Ihrem Tastaturlayout ab, wie angenehm es ist. Du solltest es versuchen.

mue

1

Erlang ist überraschend kurz, besonders wenn Sie Leistung und Zuverlässigkeit erreichen wollen.

Erlang ist noch prägnanter, wenn Haskell Vergleich:

http://thinkerlang.com/2006/01/01/haskell-vs-erlang-reloaded.html

Und ist überraschend schnell (und zuverlässig), auch wenn im Vergleich zu C++:

http://www.erlang.se/euc/06/proceedings/1600Nystrom.ppt

(18x weniger SLOC ist keine Überraschung).

Egal, es hängt immer von Ihren Vorlieben und Ziel, was Sie erreichen wollen.

1

Sie müssen etwas Zeit verbringen, Code schreiben, um Erlangs Sweetspot zu verstehen, im Gegensatz zu allen anderen aufstrebenden Tools, DHT, Doc-Stores, MapReduce-Frameworks, Hadoop, GPU, Scala, ... Wenn Sie es versuchen sagen SIMD-Apps außerhalb des Sweet-Spots, werden Sie wahrscheinlich am Ende mit dem Paradigma kämpfen und verbalen Code schreiben, während, wenn Sie Probleme treffen, die Server und Middleware nahtlos auf und ab skalieren müssen, fließt es natürlich.(Und der Aufstieg von Scala in seinem Sweet Spot ist auch unvermeidlich, denke ich)

Eine gute Sache zu suchen wäre das Tim Bray Wide Finder Experiment (destillieren große Apache Log-Dateien) von vor ein paar Jahren, und Wie war er enttäuscht von Erlang?

ich wirklich gut und schlecht Code empfehlen generell nicht viel Speicher im Alioth Schießen setzen, da man unweigerlich den Vergleich am Ende, aber wenn Sie benötigen Anzahl von LOC zu setzen, erlang vs. C, Rubin, was auch immer

http://shootout.alioth.debian.org/u32q/erlang.php

Verwandte Themen