Wo würde Erlang auf das Spektrum der Prägnanz zwischen, sagen wir, Java/.net auf dem weniger prägnanten Ende und Ruby/Python auf dem knapperen Ende des Spektrums fallen? Ich habe ein RSI-Problem, daher ist Prägnanz für mich aus gesundheitlichen Gründen besonders wichtig.Ist Erlang aus der Perspektive eines Programmierers eine präzise Sprache?
Antwort
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.
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
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++:
(18x weniger SLOC ist keine Überraschung).
Egal, es hängt immer von Ihren Vorlieben und Ziel, was Sie erreichen wollen.
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
- 1. Registry-Reiniger aus der Sicht eines Programmierers
- 2. Die Vorteile und Vorteile eines Alleskönner-Programmierers?
- 3. Facebook-Verbindung oder OpenID? Aus der Perspektive eines Entwicklers
- 4. Gibt es eine "Dokumentvorlage" eines Programmierers mit Tags für Windows?
- 5. Was ist eine gleichzeitige Sprache?
- 6. Ist R eine kompilierte Sprache?
- 7. OpenCV: Perspektive Matrix aus Übersetzung und Rotation
- 8. Drucken eines Sonderzeichens in Erlang
- 9. Erlang Implementierung eines Sternsuchalgorithmus
- 10. Präzise Metronom für Android
- 11. Erlang: Verwenden Sie von der Konsole aus?
- 12. Wie führe ich eine Erlang-Anwendung in der Erlang-Shell
- 13. Ist Vala eine plattformübergreifende Sprache?
- 14. Ist SCALA eine theoretische Sprache?
- 15. Ist Mathematica eine untypisierte Sprache?
- 16. CouchBase 1.8 und 2.0 Erlang SDKs? Warum ist Erlang ausgelassen?
- 17. Rückwärtsprojektion Perspektive
- 18. Verteilung eines Erlang Chat-Systems
- 19. Konvertieren eines Erlang-C-Portbeispiels in Erlang-Golang
- 20. Was ist eine Erlang-hrl-Datei?
- 21. Präzise Tonbeginn/Dauermessung?
- 22. Erlang über eine JVM/CLR
- 23. definieren präzise Größe Speicherstrukturen
- 24. Präzise Messung der verstrichenen Wanduhrzeit in .NET
- 25. Was ist der Zweck der SQL-Sprache?
- 26. Präzise Positionierung in Android
- 27. Eine unendliche Sprache kann nicht regelmäßig sein? Was ist eine endliche Sprache?
- 28. C# Wie wähle ich eine Sprache aus?
- 29. NSTimer nicht präzise genug
- 30. JavaScript Multiplizieren nicht präzise