Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Mitä on kielen eleganttius?

Sivun loppuun

Oskuz [19.08.2015 14:37:21]

#

Pitkän googlettelun jälkeen en löytänyt mitään kovin hyödyllistä aiheesta, muuten kuin funktionaalisia kieliä pidettään usein elegantteina. Joten ajattelin kysyä teiltä.
Millainen on elegantti kieli? Tiedätkö jotain esimerkkiä, mikä on sinusta elegantti?

Chiman [20.08.2015 13:17:48]

#

Nähdäkseni eleganttius on kielen sovelluskohtainen ominaisuus, ei yleinen. Vielä tarkemmin rajattuna: osaava tekijä pystyy luomaan elegantteja ratkaisuja tarkoitukseen sopivalla kielellä.

Metabolix [23.08.2015 12:23:32]

#

Yleensä elegantti ratkaisu tarkoittaa lyhyttä ja selvää ratkaisua. Kuten Chiman totesi, kaikkia asioita ei välttämättä pysty tekemään elegantisti kaikilla kielillä. Ehkä elegantti kieli tarkoittaa kieltä, jolla voi tehdä monia asioita elegantisti.

Grez [23.08.2015 14:11:33]

#

Ei sen varsinaisesti tarvitse olla lyhyt ollakseen tyylikäs eli elegantti. Toki tyylikkyyden ja lyhyyden tilastollinen korrelaatio on minunkin uskoakseni positiivinen.

groovyb [23.08.2015 14:23:48]

#

Ohjelmoinnissa lyhyt tapa tietenkään ei usein ole se selkein vaihtoehto, jos ylläpidettävyysaspekti otetaan huomioon. Tästä nyt esimerkkinä vaikka regex, jolla voi hyvinkin lyhyesti toteuttaa vaativan tarkistuksen, selkeyden kustannuksella.

Tyylikästä on toteuttaa tilanteeseen loogisin ratkaisu, sen hetken standardeja ja Best practise -malleja käyttäen.

Ja mitä tulee funktionaalisiin kieliin, voi niillä tehokkaasti toteuttaa Core - ja enginetason koodeja, mutta taasen lähestyttäessä uloimpia layereitä, hyödyt pienenevät suhteessa käutännöllisimpiin tapoihin.

fergusq [23.08.2015 17:49:36]

#

Eleganttius on usein subjektiivista ja riippuu mielipiteenantajan omista taipumuksista ja mieltymyksistä. Siksi Internetistä löytyviä todisteluja kielten elegantteudesta ei voi aina pitää kovin luotettavina tietolähteinä.

On totta, että joitain asioita voi tehdä funktionaalisilla kielillä paljon selkeämmin kuin imperatiivisilla. Vastaavasti joitain asioita ei voi tehdä. Siksi moniin ei-funktionaalisiin kieliin onkin lisätty funktionaalisia ominaisuuksia, kuten vaikkapa nimettömiä ja/tai sivuvaikutuksettomia funktioita. Nykyään tämä on muodissa ja esimerkkejä löytyy Javasta, C++:sta, Pythonista, PHP:stä, JavaScriptistä, Rubysta sekä monista muista. Yksikään näistä kielistä ei kuitenkaan määritelmän mukaan ole funktionaalinen.

Oskuz [23.08.2015 19:46:23]

#

Okei eli eleganttius on toteutuksessa ei kielessä, vaikka muualla taas tuli esiin että esim "turha" syntaxi tai sen määrä syö eleganttiutta.
Btw. eikö sulla fergusq ollu joku mahd. elegantti kieli sivuilasi?

fergusq [23.08.2015 20:37:28]

#

Ei kielen eleganttius ole toteutuksessa. Kielellä ja toteutuksella on omat eleganttiutensa. Olinko minä jotenkin epäselvä?

Kuten sanoin, eleganttius tarkoittaa eri ihmisille eri asioita. Usein elegantiksi koodiksi sanotaan selkeää ja yksinkertaista ohjelmaa. Elegantiksi kieleksi sanotaan kieltä, jolla on helppo tehdä eleganttia (hyvää) koodia. Toisinaan taas kauniita kieliä sanotaan eleganteiksi. Koska matematiikka on kaunista, joskus sitä muistuttavia funktionaalisia kieliä sanotaan eleganteiksi. Esoteerisia kieliä sanotaan joskus eleganteiksi, sillä niissä monesti korostuu jokin yksinkertainen, kaunis idea (ei niin, että niillä olisi hyvä ohjelmoida). Tein jokin aika sitten kielen, jonka oli tarkoitus olla ruma. Siitä tuli kaunis. Eleganttia.

Juu kaikki minun tavallisetkin kieleni ovat elegantteja, mikä tarkoittaa sitä, että niillä voi kirjoittaa elegantteja ratkaisuja ongelmiin (joskus). Usein käytännöllisyys ajaa kuitenkin eleganttiuden ohi, kuten vaikkapa Svessä, jonka syntaksi on tarkoitettu helpoksi kirjoittaa. Kirjoitan tällä hetkellä muuten uutta versiota toisesta kielestäni PHL:stä, joten jos on vinkkejä eleganttiuden parantamiseen niin kertokaa toki.

jlaire [23.08.2015 21:39:03]

#

Netistä löytyvä sanakirjamääritelmä on aika hyvä:

lainaus:

elegant
ˈɛlɪɡ(ə)nt/
adjective

2. (of a scientific theory or solution to a problem) pleasingly ingenious and simple

Stackoverflow'sta löytyy myös juttua aiheesta, jos eri ihmisten näkemykset jaksavat kiinnostaa.

Ohjelmointikieliäkin voi ajatella ratkaisuina erilaisiin ongelmiin, kuten "miten shelliskriptauksesta voisi tehdä helpompaa", "miten kielestä saisi samaan aikaan sekä alustariippumattoman että mahdollisimman tehokkaan", "miten puhtaasti funktionaalisesta kielestä voisi tehdä käytännöllisen" tai "miten surkeita ohjelmoijia voisi auttaa koodaamaan vähemmän bugista softaa". Veikkaan että moni pitää esimerkiksi C:tä elegantimpana kielenä kuin PHP:tä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta