Gdzie Erlang spadnie na spektrum zwięzłości między, powiedzmy, Java/.net na mniej zwięzłym końcu i Ruby/Python na bardziej zwięzłym końcu spektrum? Mam problem z RSI, więc zwięzłość jest dla mnie szczególnie ważna ze względów zdrowotnych.Czy Erlang jest zwięzłym językiem z perspektywy programisty?
Odpowiedz
zwięzłość jak funkcja języka jest źle zdefiniowany i prawdopodobnie nie jednolity. Różne języki mogą być mniej lub bardziej zwięzłe w zależności od problemu.
Erlang jako język funkcjonalny może być bardzo zwięzły, poza Ruby lub Python. W szczególności dopasowywanie wzorców często zastępuje, jeśli instrukcje i rekurencje oraz wyliczenia listy mogą zastępować pętle.
Na przykład Java miałby coś takiego:
String foobar(int number){
if (number == 0) {
return "foo";
} else if (number == 1) {
return "bar";
}
throw new Exception();
}
natomiast kod Erlang wyglądałby następująco:
foobar(0) -> "foo";
foobar(1) -> "bar".
Z wyjątkiem będącej nieodłącznym ponieważ nie ma klauzuli o wejściu inne niż 0 lub 1. Jest to przyczyną problemu, który dobrze nadaje się do rozwoju stylu Erlang.
Generalnie wszystko, co można zdefiniować jako transformację, będzie szczególnie dobrze pasować do języka funkcjonalnego i może być napisane bardzo zwięźle. Ponieważ wielu funkcjonalnych zelotów językowych twierdzi, że każdy problem w programowaniu jest transformacją.
Erlang pozwala na realizację funkcjonalności w bardzo niewielu liniach kodu, w porównaniu do moich doświadczeń w Javie i Pythonie. W przeszłości zbliżał się do mnie tylko Smalltalk lub Scheme. Dostajesz tylko niewiele, ale zazwyczaj masz tendencję do mówienia identyfikatorów dla modułów, funkcji, zmiennych i atomów. Sprawiają, że kod jest bardziej czytelny. Masz wiele normalnych, kręconych i kwadratowych nawiasów klamrowych. Zależy więc od układu klawiatury, jak wygodne będzie to. Powinieneś spróbować.
mue
Erlang jest zaskakująco zwięzły, szczególnie gdy chcesz osiągnąć wydajność i niezawodność.
Erlang jest zwięzły, nawet w porównaniu do Haskell:
http://thinkerlang.com/2006/01/01/haskell-vs-erlang-reloaded.html
I jest zaskakująco szybki (i niezawodny), nawet w porównaniu do C++:
(18 razy mniej SLOC nie jest zaskoczeniem).
W każdym razie zawsze zależy to od Twoich preferencji i celu, jaki chcesz osiągnąć.
Musisz spędzić trochę czasu, napisać kod, aby zrozumieć erlangowskie miejsce, w porównaniu do wszystkich innych pojawiających się narzędzi, DHT, dokumentów, mapreduce frameworks, hadoop, GPU, scala, ... Jeśli spróbujesz zrobić , powiedzmy, aplikacje typu SIMD poza słodkim miejscem, prawdopodobnie skończy się walka z paradygmatem i pisanie pełnego kodu, natomiast jeśli trafisz na problemy, które wymagają skalowania serwerów i oprogramowania pośredniego płynnie w górę iw dół, to płynie naturalnie.(I wydaje się, że powstanie scala w jej słodkim miejscu jest również nieuniknione)
Dobrym pomysłem będzie eksperyment Tim Bray Wide Finder (destylacja dużych plików rejestru Apache'a) sprzed kilku lat, oraz jak był rozczarowany erlangiem.
ja generalnie nie zaleca umieszczenie dużo Przechowywać w rzutach Alioth, ponieważ nieuchronnie kończy się porównując naprawdę dobry i zły kod, ale jeśli trzeba umieścić numery LOC, Erlang vs. C, Ruby cokolwiek
- 1. Co to jest wydobywanie danych z perspektywy programisty?
- 2. Czy bash jest językiem interpretowanym?
- 3. Poza językiem deklaratywnym, czy SQL jest językiem funkcjonalnym?
- 4. Czy ASP.Net jest językiem skryptowym lub ramowym?
- 5. Jaki jest związek między językiem asemblera a językiem maszynowym?
- 6. Czy język programowania Erlang a Constraint-Logic?
- 7. Parser z językiem DOT
- 8. Erlang, Czy konieczne jest zamknięcie pliku tutaj?
- 9. regexp z rosyjskim językiem
- 10. Erlang: czy wiele timerów jest ok?
- 11. Co u licha jest właściwością perspektywy CSS3?
- 12. Czy jest dostępna wersja programu Smalltalk z komunikatem rozproszonym w stylu Erlang?
- 13. Czy język komputerowy "Erlang" jest powiązany z chińskim bóstwem?
- 14. Czy to prawda, że JavaScript jest językiem "pojedynczego wątku"?
- 15. Czy C# jest językiem pojedynczej wysyłki lub wysyłki wielokrotnej?
- 16. Problemy Html2Canvas z językiem tajlandzkim
- 17. Jaki jest profil programisty SharePoint?
- 18. Jest groovy potencjalnym językiem programowania dla Androida
- 19. vim: rozszerzenie skojarzone z językiem
- 20. Projekcja perspektywy - pomoc Noobowi
- 21. Czy potrzebuję konta programisty Apple?
- 22. HTML 5 niezależne przewijanie z perspektywy iluzji
- 23. Zmiana z perspektywy na macierz ortograficzną
- 24. Czy AJAX jest oddzielnym językiem od Javascript, czy jest to framework JavaScript?
- 25. Czy jest lepszy pasek narzędzi programisty dla IE8?
- 26. Czy mogę używać camelCase z elokwentnym językiem Laravel 4?
- 27. Dlaczego zmienna Erlang jest nieużywana?
- 28. Czy Clojure jest bliżej schematu lub wspólnego Lispa z perspektywy początkującego?
- 29. Jak wyjść z perspektywy debugowania Eclipse?
- 30. Arkusze kalkulacyjne z językiem programowania funkcjonalnego