Jaki język programowania ma najbardzej estetyczną składnie?

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
Przeglądając fora trafiłem na dość proste, lecz ciekawie zadane pytanie, dotyczące 'fajności' języków programowania i pomyślałem sobie, że zadam je też tutaj (bo tamto jest francuskojęzyczne).

Który język ma wg was najbardziej *estetyczną* *składnie* i dlaczego? Co się wam w niej podoba? Co was drażni, co byście w niej zmienili, jakich konstrukcji składniowych brakuje wam?

//EDIT
poprawilem literówke w nazwie tematu
 
Ostatnio edytowane przez moderatora:

widmo17

Były Moderator
Dołączył
Lipiec 16, 2007
Posty
1089
Batch jak nic. ; d
Lubię czytać kod php, wg mnie nawet bez wcięć jest całkiem ładny ; ]

btw.: jak znasz francuza, to powiedz mi, jak się czyta `porter qqch`? ; d
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
@widmo17
Czyta się 'porte kelkeszóz', przynajmniej ja bym to tak przeczytał, nie wiem, czy dobrze, strasznie trudno się mówi po francusku :) PHP nie lubię za wszytko, za składnie też :->


Mi najbardziej podoba się Pyhon, zarówno część składni obiektowej, imperatywnej, jak i funkcyjnej, fajnie są oddzielone od sobie, nie gryzie się to. Haskell też jest fajny, zwłaszcza definiowanie funkcji anonimowych. LISP podoba mi się za użycie nawiasów, do otoczenia nazwy funkcji + jej parametrów a IMHO gdy jako argument funkcji poda się inną funkcje, która to znowu jako argument przyjmuje inną funkcje to można nieźle nagmatwać i nie wiadomo, które nawiasy do czego są.

W pewnym zakresie podoba mi się też składnia R, tu fajne jest np, jak przypisywana jest wartość do zmiennej (w C mamy i=8 a w R mamy i <- 8 ) ale to już temat na inny wątek (w matematyce znak = stosuje się w co najmniej kilku kontekstach, np. żeby coś przyrównać, zdefiniować, porównać, w językach programowania ciężko uchwycić ten kontekst).

Ostatnio zrobiła na mnie też dobre wrażenie składnia algola i lua - za prostotę. Asembler też ma swój klimat, tylko że ten pod procki x86 ma sporo mnemoników, planuje się nauczyć programować mikroprocesory, tam rozkazów jest mniej więc to bardziej zjadliwe dla mnie :)

No i na koniec SQL, też całkiem fajny, w kontekście języka deklaratywnego ale mieszanie tego z programowaniem imperatywnym niezbyt przypadło mi do gustu (np. plpgsql).
 
Ostatnia edycja:

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
a mnie wlasnie podoba sie najbardziej asm za to ze jak napisze to wiem jak dziala i to czyni go pięknym językiem.
Pozatym lubie go tez dlatego ze nie ma tam zadnych dwuznacznosci i ograniczen. Duzy kod wydaje sie ciezki do ogarniecia ale to kwestia dobrego komentarza i znajomosci wlasnego kodu.

Z bardziej wysokopoziomowych jezykow to C/C++ ze wzgledu na jasna skladnie
np. nie moglbym pisac kozystajac z pascalowego begin end przeciez { } sa o niebo wygodniejsze :)
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
Według mnie Assembler i język C.
 
Ostatnia edycja:

thc_flow

Zbanowany
Dołączył
Listopad 13, 2008
Posty
649
Wg mnie najczystszą składnię ma właśnie wspomniany python, mój ulubiony język, nie tylko dlatego, że jego składnia jest czysta, ale także z powodu łatwości pisania programów i oszczędności czasu dzięki temu. Jedyne co mam mu do zarzucenia to..prędkość, no ale cóż, taka wada interpretacji. Ale można to zmienić używając dodatków typu psyco czy wersji pythona dla .NET pod nazwą IronPython. Jeszcze jedna luka - brak switch case, znowu jest oczywiście sposób obejścia, jednak nie jest on bez wad.

Drugim językiem jest bez wątpienia Object Pascal (nie mówię o Delphi) który ma bardzo czytelną składnię, choć niektórych denerwuje "begin..end" zamiast klamerek. Do zarzucenia mam mu jedynie przenośność, chociaż ostatnio nie jest źle dzięki projektowi FPC.

Trzeci język to XHTML 1.1 Strict, głównie przez wymogi pochodne od XML'a, przez co kod jest przejrzysty. Co prawda jest to język czysto webowy, ale wg mnie świetnie zaprojektowany i to w nim cenię.
 
Ostatnia edycja:

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
@grzonu
A co powiesz na wcięcia, jako oznaczanie bloku kodu?

@D.F.
Co konkretnie podoba Ci się w składni tych języków, czego nie mają inne? Nie napisałeś :)

@thc_flow
IMHO switcha prawie można zastąpić czymś lepszym, bardziej elastycznym, zależy od sytuacji, tak na szybko np:

Kod:
# akcje                                                                                                                                                                   
def foo():                                                                                                                                                                
    print "cos"                                                                                                                                                           
                                                                                                                                                                          
def bar():                                                                                                                                                                
    print "cos innego"                                                                                                                                                    
                                                                                                                                                                          
# przyporzadkowanie we switchu klucz - akcja                                                                                                                              
cases = { 'ala' : foo(), 'tola': bar() }                                                                                                                                  
                                                                                                                                                                          
                                                                                                                                                                          
# cos jak wywolanie switcha                                                                                                                                               
cases['ala']                                                                                                                                                              
cases['tola']


Co do szybkości wykonywania kodu w pythonie (jako dygresja) to po napisaniu aplikacji, jeżeli jest taka potrzeba, można zmierzyć, w których miejscach kod działa niewydajnie i przepisać to do C :)
 
Ostatnia edycja:

amex

Użytkownik
Dołączył
Marzec 11, 2007
Posty
934
Mi osobiście najbardziej podoba się malbolge
A tak na serio to imho jeśli chodzi o estetykę, to każdy język potrafi taki być, zależy od użytkownika.
Ja osobiście najbardziej lubię Delphi, z sentymentu xD
 
Ostatnia edycja:

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
@robertg
poprostu nawiasy klamrowe IMO lepiej obrazuja to czym sa. To takie moje odczucie kazdy moze miec inaczej.
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
@amex, i tak i nie. Jak ktoś ma duże doświadczenie i/albo jest dobry to napisze czytelny kod w każdym języku ale jeśli ktoś jest się przeciętnym, jeśli gonią terminy, ludzie piszący kod odchodzą, a na ich miejsce przychodzą nowi to IMHO jedne jezyki będą do przodu a inne do tyłu.

@grzonu, nie no ok, ok, tak tylko pytam.

BTW dzięki za komentarze!
 

untam3d

Użytkownik
Dołączył
Październik 2, 2009
Posty
36
Grzonu: powiedz tak szczerze - programowałeś, albo nie, napisałeś coś na ponad 300 linijek w innych językach jak C/C++,Asm,PHP/HTML/CSS/JS ?
Pisałeś w Pythonie? Pascalu - begin i endy da się ścierpieć kwestia przyzwyczajenia. To jest niemal identyczna sytuacja jak w pythonie - blok wyznacza nie klamra ale wcięcia - a jakby do pythona dodać słówka begin i end to powstanie pascalowy styl.

Ja np. nigdy nie mogłem (i nadal nie mogę) zrozumieć po cholerę w PHPie używa się znaków dolara przed nazwą zmiennej, ale cóż. Nie żeby to przeszkadzało - nawet śmieszniej wygląda jak wszędzie w edytorze dolary mi się przewijają przed oczami (jak się jest zmęczonym - efekt bombowy (np. żółte znaczki na czarnym tle) ).

ASM? Lubię go tylko za to że faktycznie nie ma ograniczeń, większa kontrola nad kodem, ale nienawidzę go za to jak prosty program potrafi się rozsrosnąć w kodzie. Oczywiście pisanie np. GUI (WinAPI) nie wchodzi nawet w grę, samobójcą nie jestem.
A jeśli chodzi o jego składnie, estetykę - to jestem jak najbardziej za.
Najlepsze w składni assemblera jest to że każda instrukcja jest w osobnej linii, a jak dotego dba się o wcięcia między operandem, a argumentami to już w ogóle (a jak jeszcze pod etykietą walnie się wcięcie ekstra - to już zupełnie odlot :] ).

Nie mówcie proszę, jaki to C/C++ ma najlepszą składnię, gdy ograniczacie swoje doświadczenia programistyczne tylko do tego (albo w przeważającym stopniu) do tego języka/języków. Nawiasem mówiąc - C to mój faworyt.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
GUI sie pisze normalnie jak w kazdym jezyku pozatym istnieja dialogi z zasobow ;)
Programowalem w innch jezykach ale nie przypadaja mi do gustu. Poprostu nie trawie ich skladni.
Ale co moge zarzucic jeszcze jezykom typu Object Pascal to to ze nienawidze ich debuggowac bo wypluwaja tak pogmatwany kod ze ciezko to sie czyta.
Moze to ja mam jakis problem ale lubie prostote i czytelnosc skladni jezyka i uwazam dlatego ze jezyki C-podobne sa 10x czytelniejsze od pascalo-podobnych
 

D.F.

Były Moderator
Dołączył
Listopad 4, 2009
Posty
493
@D.F.
Co konkretnie podoba Ci się w składni tych języków, czego nie mają inne? Nie napisałeś :)
A, no tak.
Assembler wydaje się trudny, ale podoba mi się ten układ "instrukcja po instrukcji" co czyni go na swój sposób prostym.
Natomiast język C cenię właśnie za tą estetykę, którą dla mnie są klamry {}, podobają mi się te skrócone zapisy i++, i-- itp.
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
@widmo17
W Perlu (z którego pochodzi spora część składni PHP) też, obok zmiennej pisze się odpowiednik PHPowego dolara, tylko że tam w zależności od tego, czy jest to skalar, tablica, czy hasz, to znaczek jest inny, dzięki czemu widząc np @i i $i wiadomo, że raz myślimy o i jako o tablicy, raz jako o zwykłej zmiennej. W PHP jest tylko dolar - mi się osobiście nie podoba.
Co do tego, czemu te dolary i inne rzeczy wsadzono do składni Perla i PHP część osób twierdzi, że dla ułatwienia kodu, część, że tak łatwiej było napisać interpreter. Nie wiem.

@all
Przyglądaliście się może Go i jego składni, jak wypada w zestawieniu do C? A jak oceniacie składnie D w porównaniu do C++?
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390

loganek

Były Moderator
Dołączył
Listopad 11, 2006
Posty
563
W Perlu (z którego pochodzi spora część składni PHP) też, obok zmiennej pisze się odpowiednik PHPowego dolara, tylko że tam w zależności od tego, czy jest to skalar, tablica, czy hasz, to znaczek jest inny, dzięki czemu widząc np @i i $i wiadomo, że raz myślimy o i jako o tablicy, raz jako o zwykłej zmiennej. W PHP jest tylko dolar - mi się osobiście nie podoba.
i to jest plus, ponieważ w każdej chwili do zmiennej możesz przypisać inny typ wartości
 

tobix10

Użytkownik
Dołączył
Luty 25, 2009
Posty
65
Python'owe wcięcia są bardzo fajne. :) Tyle, że trzeba w nim pamiętać, która zmienna jest czym, bo nie ma żadnych narzuconych znaków przed nazwami. :)
 
Do góry Bottom