Ruby. Przyjemny, ładny, elegancki :).
Ruby można pisać na różne sposoby, jeden problem rozwiązać na wiele różnych sposobów i tu już inny programista ma problem przy odczytywaniu pomysłów drugiego. Powinien powstać język podobny do Javy, gdzie pisze się jednym stylem programowania i nie można za bardzo, wymyślać po swojemu innych sposobów rozwiązywania problemu, ale o dużo zwięzłej składni. Na razie Python jest najbliżej temu. Kompilowany język o składni bliskiej Pythona, z dobrym statycznym typowaniem i brakiem tworzenia 20 rozwiązań na jedno zagadnienie czy problem do rozwiązania.
Chyba jednak Python.
U mnie różnie, zależy od problemu.
Przy niskopoziomowych zabawach, będzie to: Rust
Przy matematycznych zabawach: Haskell + Unicode
Przy web: Elixir
Skrypty: Ruby, Lua, Fish, w zależności od potrzeb
Ogólnie ciężko powiedzieć, że język A ma najładniejszą składnię, bo IMHO to zależy od zadania.
Skrypty: Ruby, Lua, Fish, w zależności od potrzeb
Do czego używasz LUA? Słyszałem, że LUA nadaje się głównie do systemów embedded. Czasem niektóry programy są skryptowane w LUA (np. Lightroom, Darktable).
@winterfresh a dlaczego tak promujesz często ten Elixir, jak nikt tego nie używa w Polsce, a za granicą chyba też nie zyskał dużo.
Trzeźwy Szewc napisał(a):
W sumie to Go sam w sobie jakos bardzo sliczny nie jest.
Ale jest na tyle restrykcyjny, ze korzystajac z narzedzi z nim dostarczonym powoduje to, ze kod moze byc calkiem podobny w roznych projektach.
A w Scali to mozna pisac poezje jak i horrory ;)
Jednak najwiecej zalezy od ludzi.
To w którym języku można pisać prozą, aby unikać horrorów i dramatów tragicznych? Ludzie chwalą Kotlin za czytelność i prostotę, ponoć dużo lepszy i nowocześniejszy od Javy i Go. Zawsze będziesz miał do niego dobre IDE.
Szalony Jumper:
@winerfresh a dlaczego tak promujesz często ten Elixir [...]
Jeśli się czegoś używa i zna się temat to niczym nadzwyczajnym jest chwalenie tego czegoś;
[...] jak nikt tego nie używa w Polsce [...]
Masz pod ręką jakieś dane statystyczne, albo inny, sensowny argument?
[...] a za granicą chyba też nie zyskał dużo.
A no, chyba nikt nie używa i chyba nie zyskał popularności, ale co mi tam - posieję ferment, będzie fun.
Szalony Jumper napisał(a):
@winterfresh a dlaczego tak promujesz często ten Elixir, jak nikt tego nie używa w Polsce, a za granicą chyba też nie zyskał dużo.
"Nikt tego nie używa w Polsce"? Jaja sobie robisz? Twórca Elixira mieszka w Polsce, jedno z wielkich biur Erlang Solutions jest w Krakowie, znam przynajmniej 3 firmy, które wszystkie projekty jak mogą migrują na Elixira (sam w jednej pracuję). Oczywiście nie jest to super popularny język, ale nie oszukujmy się, żaden z nowych języków nie zdobędzie takiej popularności jak powiedzmy C, bo jest tego więcej na rynku.
EDIT: Dodatkowo co ma popularność języka do "piękna składni"? Scheme dla części osób będzie paskudny, bo Lisp, a dla części (która rozumie ideę idącą za składnią) będzie wzorem do naśladowania i przykładem absolutnego piękna. Ja jestem ogólnie raczej fanem Lispów, ale nie zawsze ta składnia daje radę.
Dla mnie najładniejszy język to taki, który można czytać na głos i brzmi rozsądnie. Przykładowo SQL:
"SELECT * FROM EMPLOYEE"
można przeczytać jako:
"SELECT EVERYTHING FROM EMPLOYEE"
I oczywiście możemy zamienić SELECT (jeśli wykonujemy zapytanie bezpośrednio na bazie danych):
"SHOW ME EVERYTHING FROM EMPLOYEE"
Itp. itd.
I tak, z tego względu najładniejszy kod wg mnie produkuje się pisząc w językach czwartego poziomu. Schodząc jednak niżej, to Haskell ma całkiem przyjemnie wyglądający kod. I Swift2.
Na estetykę kodu wpływają:
- Brak wszędobylskich nawiasów. To:
if condition {
//...
}
jest dla mnie dużo ładniejsze niż:
if(condition){
//...
}
- Słówka kluczowe w stylu "let", "take", "for-in" itp.
- Brak sztywnych struktur a'la klasy Javowe.
Swoją drogą Java ma u mnie dodatkowe punkty za dużą liczbę bibliotek z fluent API.
To nie jest klamra tylko nawias klamrowy, który nadal jest nawiasem. To czy bloki kodu trzeba oznaczać czy nie, zależy od języka - są takie, które nie potrzebują do tego syfiastych znaczków. - somekind dziś, 12:12
No OK, to może ja źle się wyraziłem, powinno być "bez wszędobylskich nawiasów okrągłych". Same nawiasy mi nie przeszkadzają - przeszkadzają mi ich nadmiarowe ilości.
Np:
if(myObject.isValid()){
// do something
}
wygląda słabiej niż same:
if myObject.isValid() {
// do something
}
a przecież nie ma żadnego uzasadnienia w tym pierwszym okrągłym nawiasie
Podobnie taki for-each:
for(Condition condition: conditions){
// ...
}
wygląda paskudnie, ale już takie coś:
for condition in conditions {
// ...
}
etc. itd.
Same nawiasy mi nie przeszkadzają, a używanie klamrowych do bloków kodu jest dla mnie czytelne.
if MyObject.IsValid then
begin
// do something
end;
for Enumerator in Collection do
begin
// do something
end;
@wartek01 - nie ma żadnych nawiasów :]