Álmaim kéklő egén

bebasztam, mint egy tehén

Nyuszikának meglepő dolgai vannak. Este heverészünk az ágyon, én rejtvényt fejtek, Zita a szókeresőt nyomja a telefonomon, Gergő a tableten Tom és Jerryt néz. Egyszerre fogja a gépet, és mutatja: "Nézd, anya, egy kis golf!" És tényleg az volt., de akkor még csak a keresőben...
Utána megkért, hogy rajzoljak neki "S" betűt. "S", mint hóember.
Meglepő dolog, frissítés után, ha nincs újraindítva a gép, a Midori rakonctlan. Úton-útfélen összeesik. De csak az asztali gépen. Mellékesen csinál még érdekesebbeket is, ennél még semmi közös eseményt nem találtam. Időnként csontra fagyasztja a gépet, de úgy, hogy még a varázslatos billnetyűkre sem reagál. Ekkor resetelve a BIOS felüvölt, hogy a CPU túlmelegedett, és különben is, nem jól van beállítva a frekvencia, ami csak azért érdekes, mert a hőmérséklet ~20 fokkal alatta szokott lenni a maximumnak, és a frekvenciát sem állítja át senki. legalábbis a beállításoknál a szokásos szokott megjelenni.
A diákok meg szokták kérdezni minden évben, hogy mi a szép az xy tantárgyban. Megpróbálok nekik válaszolni, de oda lyukadunk ki, hogy tudományáganként változik az esztétikum értelmezése, ami ráadásul még meglehetősen szubjektív kategória is. Utána meg lehet beszélni, hogy a természettudományok szépségfogalma milyen formában jelenik meg. Ilyen a matematika tételek bizonyítása, vagy ilyen lehet egy-egy fizikai/kémiai kísérlet. Nemrég viszont egy srác jót kérdezett: az informtikában hol jelenik meg a szépség fogalma, azaz mire érti egy informatikus, hogy az a dolog szép vagy nem szép? Addig jutottunk, hogy ez valahol a programkód környékén keresendő, de igazából nem sikerült még az én számomra sem kielégítően megválaszolni.
Thergothron - Who Rides the Astral Wings
Skepticism - Pendulum
Funeral - When Light Will Dawn

Hozzászólások

A természettudományok nem feltétlenül szépek, de leginkább praktikusak: arra hivatottak, hogy meg tudd magyarázni, meg tudd érteni, hogy működik körülötted a világegyetem, majd ezt a tudást felhasználva jobbá tudd tenni a sajátod és mások életét. A világegyetem pedig önmagában gyönyörű! (tipp: http://apod.nasa.gov/apod/astropix.html erősen ajánlott elolvasni a magyarázatokat is, néhány igazán pofaleszakító is szokott lenni!)
Persze a szépség és praktikusság nem zárja ki egymást, de ahhoz már kell egy bizonyos szintű perverzió (vagy hivatástudat?), nem halmozni az élvezeteket, hanem élvezni a halmazokat :D
Az informatikában a szépség pedig szvsz valahol a matematika és a logika szépségében rejlik, hogy egy-egy változónak, vagy konstansnak a létrehozására, tárolására és visszakérdezésére több lehetőséged is van, kihasználva az adott programnyelv előnyeit, hátrányait. Mutass neki demoscene demokat, és rá fog jönni, miről is van szó.

----------------------------------------------------------
"One should strive to achieve; not sit in bitter regret."
www.xonotic.org

Szerintem a matematika nem természettudomány.
Lányom (az 5 éves) minap magyarázta a nagypapájának: a kanyargós betűt finnül essznek, magyarul essnek hívják.
Csaba

Szerintem itt is ervenyes: szep mindaz, mi erdek nelkul tetszik. Viszont az, hogy kinek mi tetszik, az meglehetosen egyenfuggo. Nekem peldaul tetszik a kulonfele programokkal valo butykoles, de mast esetleg halalra idegesit a dolog. En nem kulonosebben kedvelem a feszitett munkatempot, mig mast esetleg eppen ez mozgat, ez tart a palyan.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

A programok jellemzően egy problémákat oldanak meg.

Szerintem a programok szépsége abban rejlik, hogy a problémákat, amelyek megoldására vállalkoznak, hogyan oldják meg. A szép programok jellemzően elegánsak, a problémákat sokszor váratlan, nem triviális összefüggések mentén oldják meg. Sokszor meglepően kevés erőforrással tudnak összetett problémákat megoldani. Más szóval: a szép program kicsit mindig az írója/tervezője eszét dicséri.

Ahová pedig példákért mehetünk: Demoscene - a műszaki ügyesség, a váratlan fordulatok tárháza, ahol a legkevesebb erőforrásból/program kódból igyekeznek a legtöbbet kihozni. Elosztott nagyvállalati infrastruktúrák: ahol a magas szintű tervezés és absztrakció szépségeit lehet megfigyelni. (Persze mindkét kategóriában van rengeteg ijesztő hulladék is, de rengeteg elegáns megoldással lehet találkozni bennük)

Zavard össze a világot: mosolyogj hétfőn.

Nem tudom, hogy pontosan kiknek szeretnéd ezt elmagyarázni, de maga a kérdés filozofikus.

Ha a gyerekek szintjén akarod ezt megfogalmazni, akkor azt hiszem, hogy itt maga a varázslat a lényeg. Az, hogy fogsz egy editort, belemormolsz jó sok varázsigét, és a gép ezeket értelmezi és végrehajtja. Valami olyanra tanítod a gépet, amit előtte nem tudott. Amikor az ember megalkotta a számítógépet, valójában "életre" keltett egy kupacnyi élettelen anyagot, és azt "tudással" látta el. Ha gyereknek kell magyarázni a programozás szépségét, akkor én ebbe az irányba indulok. Ez a gondolat meg szokta fogni őket.

Egyébként ha már forráskód: a szép forráskódban van valami minimalizmus, valami nemes visszafogottság. Hogy vadulhatnék kódírás közben, de mégsem vadulok. A szép kód úgy viszonyul a csúnya kódhoz, mint egy letisztult művészi alkotás a giccshez. Amikor a giccsből kiszedsz mindent, ami fölösleges, akkor jutsz el a művészethez. Ha úgy általában kamaszoknak/felnőtteknek mondom el egy gyors válasz keretében, hogy mi a szép a programozásban, akkor ebbe az irányba szoktam elindulni. Ezt ugyanúgy nem értik, mintha függvényekről és programtervezési eljárásokról beszélnék nekik, de legalább megéreznek belőle valamit.

Egyébként amit szeret az ember, azt mindentől függetlenül képes szépnek látni. A forráskód nekem például olyan, mint egy vers. De nem csak a forráskód gyönyörű. Szép egy alaplap is, maga a processzor is, csak gondolj bele, hogy miféle komplex, láthatatlan élet zajlik ott belül! És a számítógép hálózatok, igen, a klaszterek is például. Hátborzongató az a komplexitás, amit ma egy számítógép, vagy akár sok számítógép ma művelni képes. Akár a hardver, akár a szoftver komponenseket nézem, milyen ember alkotta tárgy képes ezt a komplexitást felülmúlni?

Ilyesmit szoktam válaszolni, ha kamaszok teszik föl ezt a kérdést. Egyetemen, főiskolán vagy programozó szakközépben bele lehet menni a különféle algoritmusok, a kódoptimalizálás, a programozási nyelvek vagy a programtervezés szépségeibe. Például amikor bemutatsz egy algoritmust, egy mintát, egy tervet, ne csak azt mutasd meg, hogyan kéne ezt csinálni, hanem azt is, hogyan ne. Ez jó út szerintem a szépség részleteinek megértése felé. Bár alacsonyabb szinten a kevesebb "magyarázat" úgy vélem, többet ér.

Mondjuk egy általános tantervű gimiben mindegy mit mondasz nekik tulajdonképpen. Mert piszkosul nem az érdekli őket, hogy mit válaszolsz, megfelelő háttértudás híján úgyis két perc múlva elfelejtik. Sokkal inkább az fog rájuk hatni, hogy te magad szépnek látod-e, amiről beszélsz.

De hogy válaszoljak is: a szépséget ott látom például egy szoftver elkészítésében, hogy minden apró részletében egyszerűen és letisztultan kell megtervezned, megfogalmaznod valamit, ami végül egy komplex, szinte átláthatatlan kerek egészet fog adni eredményül. Vhoá! Ez elég jó érzés, hogy ezt tudjuk szépnek látni. Nem? :-)

Rangsorolni? Elég szubjektív műfaj, de miért ne lehetne. A rajzverseny meg a versmondó verseny is szubjektív műfaj, aztán mégis él és virul. Például már csak a szakma szabályai szerint is van jónéhány szempont, ami alapján gond nélkül pontozható egy program jósága. Például a benne lévő ötletek, a bővíthetőség, a részletek és a hibakezelés kidolgozottsága, a kommentek minősége, a kód egységessége, olvashatósága.

A Tiszta kód című könyvben van egy jópofa kép. Remek pontozási alap lenne. :-)

A szokásos versenyeken nem nézik a kódszépséget, csak a működést. Az az elmélet, hogy a csúnya kóddal az ember önmagát bünteti. Én ezzel nem értek egyet. Egy versenyen sokszor gyorsabb összegányolni valamit, ami minden szélsőértéknek megfelel, mert a feladatok rövidek, átláthatók. Míg egy nagy projetben nem igazán lehet gányolni, mert fejbevágnak a többiek.

A szépség fogalma azonban nemcsak egyénenként, de az időben is változik. Míg régen a gyors, hatékony kód volt a menő, mert szűkösek voltak a gépek erőforrásai (kímélni kellett a processzort, és a tárakat), és a tömör, trükkös kód volt a nyerő, most inkább az emberi erőforrások a szűkösek, emiatt jobban számít az áttekinthetőség.

De hogy válaszoljak is. Igen, lehet látni, hogy melyik kód mennyire szép, csak felülről nézve. Egy profi bármelyik tanítványod kódját simán lepontozza, míg ez fordítva értelmetlen feladat volna.

Egy tehén mióta csinál ilyet? Legfeljebb csattanó maszlagot fal be, amitől felfúvódik. :)