Tulipa tässä kaverin kanssa väiteltyä, onko ohjelmointi taidetta vai ei. Päätinpä sitten kysäistä teidän mielipidettä, joten: Onko ohjelmointi taidetta vai ei?
http://www.ioccc.org/years.html Joku voisi pitää esimerkiksi tuon kilpailun tuotoksia hyvinkin taiteellisina.
Wikipediassa sanottiin: "Se, onko jokin teos taidetta, riippuu tarkastelijan omaksumasta taidekäsityksestä."
Itse sanoisin että ohjelmointi voi olla taidetta. Toisaalta se voi olla myös mekaanista puurtamista.
Onko maalaaminen taidetta? Yleensä ei, paitsi jos se tehdään korostetun hienosti ja tyylikkäästi tai esimerkiksi osana näytelmää. Maalaamisen lopputulos voi olla taidetta (esim. taulu) tai jotain yksinkertaista ja käytännöllistä (esim. yksivärinen seinä, joka toisaalta voi jonkun mielestä olla taidetta sekin).
Sama pätee ohjelmointiin: yleensä ohjelmointi sinänsä ei ole kovin taiteellista, ja suuri osa jokapäiväisistä tuotoksistakin jäänee väistämättä taiteen määritelmän ulkopuolelle, mutta kyllä esimerkiksi ohjelman käyttöliittymä voi olla taidetta tai ohjelma voi tuottaa taiteeksi tarkoitettua musiikkia tai grafiikkaa.
Metabolix kirjoitti:
suuri osa jokapäiväisistä tuotoksistakin jäänee väistämättä taiteen määritelmän ulkopuolelle, mutta kyllä esimerkiksi ohjelman käyttöliittymä voi olla taidetta tai ohjelma voi tuottaa taiteeksi tarkoitettua musiikkia tai grafiikkaa.
Voihan toki kehittää niin esteettisen ja elegantin algoritmin tai menetelmän, että sen itsessäänkin voi katsoa olevan taidetta. Tietty jos nuottien itsessään ei katso olevan taidetta ilman niiden esitystä, niin sitten ei välttämättä voi pitää ohjelmakoodiakaan taiteena.
Ohjelmoimalla voidaan luoda taidetta, mutta en pitäisi ohjelmointia itsessään taiteena. Yksi perustelu on, että ohjelmoinnista puuttuvat tyylit, joista tunnistaisi yksilölliset taiteilijat. Esimerkiksi jos katsoo Mozartin kirjoittamaa nuottia, siitä voi havaita Mozartille ominaisia piirteitä. Ohjelmien lähdekoodit ovat sen sijaan persoonattomia kuvauksia ohjelmien toiminnasta.
Antti Laaksonen kirjoitti:
Ohjelmien lähdekoodit ovat sen sijaan persoonattomia kuvauksia ohjelmien toiminnasta.
Tästä voisin olla eri mieltä. Samalla tavalla kuin Mozartin kirjoittamassa nuotissa voi havaita Mozartille ominaisia piirteitä toisaalta käsialassa ja toisaalta sisällössä, on kullakin ohjelmoijalla oma käsialansa ja omanlaisensa ajattelutapa. Koodin asettelu sisennyksineen sun muineen on vähintäänkin tyypillistä kullekin ohjelmoijalle, mutta voihan se parhaimmillaan olla taidettakin. http://99-bottles-of-beer.net/language-perl-737.html :)
Jos kymmenen ohjelmoijaa toteuttaa samanlaisen ohjelman, tuloksena on kymmenen erilaista lähdekoodia. En pitäisi eroja kuitenkaan taiteellisina, vaan ne johtuvat vain siitä, että ihmiset eivät toimi kaavamaisesti. Ei ole syvällinen taiteellinen päätös, antaako muuttujalle nimeksi "kohta" vai "paikka".
Ohjelman koodin voi muotoilla niin, että tulosta voi pitää taiteena. Tässä ei ole kuitenkaan merkitystä sillä, että lähtökohtana on ohjelman koodi, vaan minkä tahansa tekstitiedoston voisi muotoilla vastaavasti.
Taiteiden ja ohjelmoinnin erot näkyvät myös opiskelussa. Tulevat säveltäjät perehtyvät esimerkiksi siihen, miten Bach sävelsi fuugia. Tulevat ohjelmoijat eivät todellakaan perehdy siihen, miten Linus Torvalds käyttää for-silmukkaa.
Uskaltaisin olla erimieltä arvoisan kaiman kanssa. Wikipediaa tarkemmin lainaten:
"Taide on yksi kulttuurin peruselementeistä. Se koostuu ihmisen luomista teoksista, jotka saavat hänessä aikaan esteettisen kokemuksen. Taide on ilmaisun, viestinnän, kannanoton ja mielihyvän tuottamisen väline. Taiteessa pyritään yleensä kauneuteen; silti taidetta voi olla myös sellainen, joka aiheuttaa kokijassaan muitakin kuin esteettisyyden tunteita. Se, onko jokin teos taidetta, riippuu tarkastelijan omaksumasta taidekäsityksestä."
Näin ollen, jos taidekäsitykseni sisältää ohjelmointikoodin ja sen tarkastelu tuottaa minulle mielihyvää, se täytyy luokitella taiteeksi. :D
Perl-ohjelmointi voisi olla nykytaidetta sikäli, että kukaan ei ymmärrä siitä mitään.
Mutta olen samaa mieltä Putkan perustaneen Antin kanssa: Ohjelmia voi toki tehdä taideteoksiksi (esimerkiksi demoscenessä), mutta itse ohjelman tekeminen on vain mekaanista oikean lopputuloksen saavuttamista. Koodin kirjoittamisessa päätöksiä tehdään optimointia ja bugien hakkaamista varten eikä humaanin, suuren taiteellisen ilmaisun nimissä. Lisäksi jos tekee ohjelmakoodin sellaiseksi, että visuaalisesti se näyttää vaikkapa Pikachulta, tekele on enemmänkin kuvataidetta kirjoitusmerkeillä kuin ohjelmointitaidetta.
Antti Laaksonen kirjoitti:
Jos kymmenen ohjelmoijaa toteuttaa samanlaisen ohjelman, tuloksena on kymmenen erilaista lähdekoodia. En pitäisi eroja kuitenkaan taiteellisina, vaan ne johtuvat vain siitä, että ihmiset eivät toimi kaavamaisesti. Ei ole syvällinen taiteellinen päätös, antaako muuttujalle nimeksi "kohta" vai "paikka".
Niissä kymmenessä lähdekoodissa on paljon muitakin eroja. Osasta käy heti ilmi, että ne ovat laadukkaita teoksia. Osa näyttää toimivan lähinnä tuurilla. Osassa on jokin erityisen luova ratkaisu. Lähdekoodi voi herättää lukijassaan tunteita ihan yhtälailla kuin mikä tahansa muukin kirjallinen tuotos. Kaikki kirjoitettu ei ole erityisen taiteellista - kirjoittamalla voi kuitenkin tehdä taidetta. Sama pätee ohjelmointiinkin.
lainaus:
Ohjelman koodin voi muotoilla niin, että tulosta voi pitää taiteena. Tässä ei ole kuitenkaan merkitystä sillä, että lähtökohtana on ohjelman koodi, vaan minkä tahansa tekstitiedoston voisi muotoilla vastaavasti.
Tämä on vähän kuin miettisi kirjallisuuden taiteellisuutta siltä pohjalta että on olemassa hieroglyfit ja Arial. Hieroglyfit lienevät kauniimpia.. Tämä on kuitenkin ihan yhtä oleellista kuin käytetty fontti useimmissa kirjallisuuden lajeissa.
lainaus:
Taiteiden ja ohjelmoinnin erot näkyvät myös opiskelussa. Tulevat säveltäjät perehtyvät esimerkiksi siihen, miten Bach sävelsi fuugia. Tulevat ohjelmoijat eivät todellakaan perehdy siihen, miten Linus Torvalds käyttää for-silmukkaa.
Itseasiassa, silmukkarakenteet ovat aika oleellisia koodin kauneuden kannalta.
Kyllähän erilaisten silmukkarakenteiden hallinta on tärkeä osa ohjelmointia ja niiden käyttötapoja pitää opetella. Siinä on vissi ero, käytetäänkö goto-rakenteita, perinteistä for-silmukkaa vai jotain vielä modernimpaa. Sitten tietty voi nostalgisoida ja kikkailla assemblerilla ja joku pitää esitystä hauskana :-)
Itse olen siinä keskirajalla.
[OFF]
Onko kukaan tullut huomaamaan, että netissä surffailijat eivät kiinnitä paljoa huomiota mihinkään ulkoasuun tai toimivuuteen.
[/OFF]
Aihe on jo aika vanha, joten et voi enää vastata siihen.