Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ohjelmointikieli ajattelun kehittäjänä

0 views
Skip to first unread message

ajna

unread,
Sep 2, 2003, 4:13:49 AM9/2/03
to
Kun olin jotain 11 vuotias, aloin ohjelmoimaan Basicilla. Opettelin
tekemään yksinkertaisia pelejä. Jossain vaiheessa innostus lopahti
enkä jaksanut opetella kehittyneempää ohjelmointikieltä. Kuitenkin
Basicin opettelu kannatti. Muistan sen ainakin kehittäneen ajatteluani
yhdellä tavalla. Kun myöhemmin yläasteella matematiikassa käsittelimme
muuttujia, huomasin että minun oli muita helpompi käsittää mistä on
kyse.

Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
jollain tavalla?

Noin vuosi sitten pyysin ihmisiä selittämään minulle
filosofia-keskustelualueella Platonin ideoita. Joku kaveri käytti
apuna ohjelmointikieltä, jota en täysin käsittänyt, mutta hän tuntui
löytäneen erittäin toimivat apuvälineet ohjelmointikielestä.

Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
opeteltavaksi.

-tomi

Kimmo T. Kallio

unread,
Sep 2, 2003, 5:08:26 AM9/2/03
to
ajna wrote:
> Kun olin jotain 11 vuotias, aloin ohjelmoimaan Basicilla. Opettelin
> tekemään yksinkertaisia pelejä. Jossain vaiheessa innostus lopahti
> enkä jaksanut opetella kehittyneempää ohjelmointikieltä. Kuitenkin
> Basicin opettelu kannatti. Muistan sen ainakin kehittäneen ajatteluani
> yhdellä tavalla. Kun myöhemmin yläasteella matematiikassa käsittelimme
> muuttujia, huomasin että minun oli muita helpompi käsittää mistä on
> kyse.

Helppous varmasti liittyy Basicista saamaasi käytännön sovellukseen
asiassa, joka muille oli lähinnä teoreettista himphamppua.

> Noin vuosi sitten pyysin ihmisiä selittämään minulle
> filosofia-keskustelualueella Platonin ideoita. Joku kaveri käytti
> apuna ohjelmointikieltä, jota en täysin käsittänyt, mutta hän tuntui
> löytäneen erittäin toimivat apuvälineet ohjelmointikielestä.

Tässäkin on kyse käytännöstä saatavalla analogialla, mikä varmasti
auttaa joissain asioissa, mutta liian fanaattinen soveltaminen voi myös
rajoittaa ymmärrystä. On siis hyvä muistaa analogioiden -- varsinkin
ohjelmointisellaisten -- muut analogiat poissulkeva aspekti, mistä
tässäkin ryhmässä on aikojen saatossa nähty paljon esimerkkejä.

optimistx

unread,
Sep 2, 2003, 5:51:00 AM9/2/03
to

"Kimmo T. Kallio" <ktka...@suomi24.fi> kirjoitti viestissä
news:3F545DF...@suomi24.fi...
--- poistettua----

On siis hyvä muistaa analogioiden -- varsinkin
> ohjelmointisellaisten -- muut analogiat poissulkeva aspekti, mistä
> tässäkin ryhmässä on aikojen saatossa nähty paljon esimerkkejä.

Kalikka kalahti, kun olen elämäni varrella mielestäni selventänyt
ajatteluani paljon, kun yritän selittää ja opettaa ne lapsille ja ----
tietokoneelle ohjelmoimalla.

Mitkähän tärkeät analogiat ehkä ovat silloin jääneet huomiotta? (ei ole
ironiaa, vaan ihan oikeasti kiinnostaa)


Timo

unread,
Sep 2, 2003, 8:22:26 AM9/2/03
to
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?
>

Kyllä kai se jollain tavalla johonkin suuntaan. Lueskelin vuosi sitten
nykyaikaisista käyttöjärjestelmistä. Aiemmin olin tutustunut Unified
Modelling Languageen. Vähän sen jälkeen innostuin yhteiskuntatieteistä ja
ymmärsin valtion ja muut yhteiskunnalliset asiat vähän niinkuin
käyttöjärjestelmän prosesseina. Se oli jännää ja olin mallintamassa uutta
Täydellistä Yhteiskuntaa UML:n ja iteratiivisten sovelluskehitysmallien
avulla. Nyttemmin projekti on kyllä jäänyt.


Markku Poysti

unread,
Sep 2, 2003, 11:36:27 AM9/2/03
to
>Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
>toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
>opeteltavaksi.

Kunhan nyt ensin saadaan aikaan ohjelma, joka ajattelee... sittenhän
ei enää varmaan ihmisten ajattelua tarvitakaan.

Paul Pekkarinen

unread,
Sep 2, 2003, 4:52:33 PM9/2/03
to
tomaeoahi...@surfeu.fi (ajna) wrote in message

> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?

Kai se nyt jollain tavalla on kehittänyt sitä. Mihin suuntaan
niin siitä en ole varma..

> Noin vuosi sitten pyysin ihmisiä selittämään minulle
> filosofia-keskustelualueella Platonin ideoita. Joku kaveri käytti
> apuna ohjelmointikieltä, jota en täysin käsittänyt, mutta hän tuntui
> löytäneen erittäin toimivat apuvälineet ohjelmointikielestä.

Filosofiassa on käytetty apuna matematiikkaa ja sillä on
sen vuoksi yhtäläisyyksiä ohjelmointiin, erityisenä osa-alueena
tulee mieleen logiikka ja miksei myös jo muinoin esiintynyt
tarve luokitella oliot.

> Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
> toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
> opeteltavaksi.

Valitse vaikka C++. Se saa aivot savuamaan.

Matti Rantala

unread,
Sep 3, 2003, 2:42:32 AM9/3/03
to

"ajna" <tomaeoahi...@surfeu.fi> kirjoitti viestissä

> Basicin opettelu kannatti. Muistan sen ainakin kehittäneen ajatteluani
> yhdellä tavalla. Kun myöhemmin yläasteella matematiikassa käsittelimme
> muuttujia, huomasin että minun oli muita helpompi käsittää mistä on
> kyse.
>
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?

Jos olet opetellut Basicin niin olio-ohjemointikielet kuten C++ tai Java
antaa hiukan toisenlaisen lähestymistavan käsitellä ohjelmilla erilaisia
tehtäviä. Samalla oppimasi Basic myös nostaa kynnystä nyt oppia
oliopohjaista ohjemointia, mutta samalla kaiketi kehittää myös sitä
ajattelukykyä.

Ohjelmoinnissa oppii ainakin sen ettei voi "luistaa" mistään, kaikki on
oltava pilkulleen paikoillaan, ja ohjelma vastaa pilkulleen asettamiisi
tehtäviin, välittämättä siitä, että onko niissä tehtävissä järkeä vai ei.

Java-ohjelmoinnin alkuun pääset seuraavassa osoitteessa, ja ihan ilmaiseksi
(tai rahastus on ainakin epäsuoraa jos sellaista on).
http://java.sun.com/

t. Matti


Jari Kettunen

unread,
Sep 3, 2003, 3:01:01 AM9/3/03
to
Hyvää materiaalia löytyy lähempääkin ja suomeksi:
http://www.mit.jyu.fi/~vesal/kurssit/winohj/html/moniste.htm

"Matti Rantala" <matti....@phpoint.fi> wrote in message
news:3f558d7f$1...@news.dnainternet.net...

Juhani Simola

unread,
Sep 3, 2003, 4:01:08 AM9/3/03
to
"Matti Rantala" <matti....@phpoint.fi> writes:

> Jos olet opetellut Basicin niin olio-ohjemointikielet kuten C++ tai Java
> antaa hiukan toisenlaisen lähestymistavan käsitellä ohjelmilla erilaisia
> tehtäviä. Samalla oppimasi Basic myös nostaa kynnystä nyt oppia
> oliopohjaista ohjemointia, mutta samalla kaiketi kehittää myös sitä
> ajattelukykyä.

Itse aloitin ohjelmoinnin myöskin Basicilla, mutta en ole ehtinyt
havaita sillä mitään negatiivisia vaikutuksia oliomallin
tajuamiseen.

(Jos tunnet tarvetta käydä pyhiä sotia, älä lue tästä eteenpäin. Jos
tunnet tarvetta kertoa miten oikeassa bisnesmaailmassa ohjelmoidaan,
älä erityisesti lue tästä eteenpäin)

Sen sijaan, jos oikeasti haluaa vääntää aivonsa solmuun kannattaa
opetella joku Lisp-variantti. Ajattelutapa on aivan täysin eri kuin
proseduraalisissa ja oliokielissä mutta osa periaatteista on silti
sovellettavissa.

Lisp-variantiksi ihan käypä voisi olla Scheme. Se on suhteellisen
yksinkertainen esimerkiksi Common Lispiin verrattuna, mutta kaikki
olennaiset ominaisuudet löytyvät. Ilmaisia toteutuksia on saatavilla
eri käyttöjärjestelmille ja yksi parhaista lukemistani
ohjelmointikirjoista, Structure and Interpretation of Computer
Programs kertoo siitä.

Alkuun pääsee vaikka sivulta http://www.schemers.org ja SICP löytyy
kokonaisuudessaan osoitteesta http://www-mitpress.mit.edu/sicp/.

Ja ennen kuin kukaan muu ehtii oikaisemaan, kerron itse: On erittäin
todennäköistä, että Lispin mainitseminen CV:ssä ei auta sinua saamaan
työpaikkaa. Tuskin se kyllä sitä haittaakaan.

Logiikkaohjelmointikielen opiskelu olisi myös opettavaista,
mutta ilman henkilökohtaista kokemusta en sano enempää.

Juhani

Aatu Koskensilta

unread,
Sep 3, 2003, 7:12:33 AM9/3/03
to
Juhani Simola wrote:

> "Matti Rantala" <matti....@phpoint.fi> writes:
>
>
>>Jos olet opetellut Basicin niin olio-ohjemointikielet kuten C++ tai Java
>>antaa hiukan toisenlaisen lähestymistavan käsitellä ohjelmilla erilaisia
>>tehtäviä. Samalla oppimasi Basic myös nostaa kynnystä nyt oppia
>>oliopohjaista ohjemointia, mutta samalla kaiketi kehittää myös sitä
>>ajattelukykyä.
>
>
>

> Sen sijaan, jos oikeasti haluaa vääntää aivonsa solmuun kannattaa
> opetella joku Lisp-variantti. Ajattelutapa on aivan täysin eri kuin
> proseduraalisissa ja oliokielissä mutta osa periaatteista on silti
> sovellettavissa.
>
> Lisp-variantiksi ihan käypä voisi olla Scheme. Se on suhteellisen
> yksinkertainen esimerkiksi Common Lispiin verrattuna, mutta kaikki
> olennaiset ominaisuudet löytyvät. Ilmaisia toteutuksia on saatavilla
> eri käyttöjärjestelmille ja yksi parhaista lukemistani
> ohjelmointikirjoista, Structure and Interpretation of Computer
> Programs kertoo siitä.
>
> Alkuun pääsee vaikka sivulta http://www.schemers.org ja SICP löytyy
> kokonaisuudessaan osoitteesta http://www-mitpress.mit.edu/sicp/.
>
> Ja ennen kuin kukaan muu ehtii oikaisemaan, kerron itse: On erittäin
> todennäköistä, että Lispin mainitseminen CV:ssä ei auta sinua saamaan
> työpaikkaa. Tuskin se kyllä sitä haittaakaan.
>
> Logiikkaohjelmointikielen opiskelu olisi myös opettavaista,
> mutta ilman henkilökohtaista kokemusta en sano enempää.


Basic ja Lisp ovat molemmat dynaamisesti tyypitettyjä kieliä. Ihan
vaihtelun vuoksi kehotan vakavasti kokeilemaan jotain kieltä, jossa on
*inhimillinen* staattinen tyyppisysteemi (Haskell). Jos haluaa kokeilla
epäinhimillistä tyyppisysteemiä, voi sitten kokeilla C++:aa. Luulisin,
että tarpeeksi ilmaisuvoimaisen tyyppisysteemin pohjalta toimiva
funktionaalinen kieli ihan oikeasti auttaa ajattelemaan uusilla tavoilla.

Sopivaksi formaaliksi harjoitteluksi sopii korkeamman kertaluvun
funktionaalinen leikittely C++:n templateilla. Kiinnostava tutkittava
voisi olla myös http://www.autoreason.com/ontic-spec.ps, jonka
ilmaisuvoima vastaa jotakuinkin sopivaa impredikatiivista joukko-oppia.

--
Aatu Koskensilta (aatu.kos...@xortec.fi)

"Wovon man nicht sprechen kann, daruber muss man schweigen"
- Ludwig Wittgenstein, Tractatus Logico-Philosophicus

optimistx

unread,
Sep 3, 2003, 7:21:28 AM9/3/03
to

"ajna" <tomaeoahi...@surfeu.fi> kirjoitti viestissä
news:b36a0866.0309...@posting.google.com...

> Kun olin jotain 11 vuotias, aloin ohjelmoimaan Basicilla. Opettelin
> tekemään yksinkertaisia pelejä. Jossain vaiheessa innostus lopahti
> enkä jaksanut opetella kehittyneempää ohjelmointikieltä. Kuitenkin
> Basicin opettelu kannatti. Muistan sen ainakin kehittäneen ajatteluani
> yhdellä tavalla. Kun myöhemmin yläasteella matematiikassa käsittelimme
> muuttujia, huomasin että minun oli muita helpompi käsittää mistä on
> kyse.
>
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?
> -tomi
---- poistettua---

Hyvä aihe. Viime vuosina olen yrittänyt opetella ymmärtämään todella
erikoisten ihmisten, esim. naisten, ajattelua. Siihen kuulunee olennaisena
jotain muuta kuin kaksiarvoinen tosi/epätosi-logiikka. Yritin perehtyä
sumeaan logiikkaankin, mutta sehän palautui oikeastaan vanhaan tuttuun.

Miten naiset ajattelevat?

Millä ohjelmointikielillä ja konsepteilla voisi yrittää ymmärtää heitä?

Esim. tällaisiin asioihin törmään yhtenään:

lause on kyllä totta, mutta sitä ei saa sanoa

lause on totta ja ei ole totta.

niitä väitelauseita ei ole olemassa, jotka pahoittavat mieltä.

edellinen ei pidä paikkaansa.

Vaikka logiikan mukaan nämä jutut saattavat olla epäloogisia, niin onhan
tässä elettävä kaikenlaisten ihmisten kanssa sovussa. Tarvitsisi kehittää
vaikka tuo epälogiikka käytännössä kelvolliseksi oppirakennelmaksi. Olisi
hyvä myös voida simuloida sen mukaisia toimintoja ohjelmistoilla. Esim.
epälogiikan mukaan toimiva käyttöliittymä saattaisi olla jopa kaupallinen
menestyskin. Epälogiikan tilalle joku vetävämpi nimi olisi ensi askel.
Empatialogiikka?

Tämä ei ole (pelkästään) satiiria, vaan ihan oikeasti pohdin.

Miikka Lahti

unread,
Sep 3, 2003, 8:10:33 AM9/3/03
to

Miikka Lahti wrote:

>
>
> ajna wrote:
>
>
>>
>> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
>> jollain tavalla?
>>
>> Noin vuosi sitten pyysin ihmisiä selittämään minulle
>> filosofia-keskustelualueella Platonin ideoita. Joku kaveri käytti
>> apuna ohjelmointikieltä, jota en täysin käsittänyt, mutta hän tuntui
>> löytäneen erittäin toimivat apuvälineet ohjelmointikielestä.
>>
>> Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
>> toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
>> opeteltavaksi.
>
>
>

> En nyt tiedä. Ohjelmointia mystifioidaan pahoin.


Käytännön ohjelmointihan on kuitenkin, nykyisin, enimmäkseen teknisten
detaljien ja valmiiden kirjastofunktioiden yms. tuntemista kuin niinkään
mitään ajattelua. Sopii katsoa vaikkapa sfnet.atk.ohjelmointi-palstan
aiheita.

Miikka Lahti

unread,
Sep 3, 2003, 8:04:55 AM9/3/03
to

ajna wrote:


>
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?
>
> Noin vuosi sitten pyysin ihmisiä selittämään minulle
> filosofia-keskustelualueella Platonin ideoita. Joku kaveri käytti
> apuna ohjelmointikieltä, jota en täysin käsittänyt, mutta hän tuntui
> löytäneen erittäin toimivat apuvälineet ohjelmointikielestä.
>
> Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
> toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
> opeteltavaksi.

Toni Nikkanen

unread,
Sep 3, 2003, 8:27:45 AM9/3/03
to
Juhani Simola <osi...@cc.kebab.hut.fi.invalid> writes:

> Lisp-variantiksi ihan käypä voisi olla Scheme. Se on suhteellisen
> yksinkertainen esimerkiksi Common Lispiin verrattuna, mutta kaikki
> olennaiset ominaisuudet löytyvät. Ilmaisia toteutuksia on saatavilla
> eri käyttöjärjestelmille ja yksi parhaista lukemistani
> ohjelmointikirjoista, Structure and Interpretation of Computer
> Programs kertoo siitä.

Hassu sattuma, mutta sain samanlaisen idean noin 2 viikkoa sitten, eli
ajattelin opetella funktionaalista ohjelmointia jonkin kielen
avulla. Aloittelin Ocamlilla, mutta jotenkin kyllästyin. Harkitsin
sitten hetken aikaa eri LISP-variantteja kunnes päädyin Schemeen,
pieni on kaunista-ajattelu ja leksikaalinen skooppi (mitä se on
suomeksi?) viehättivät. Löysin kaikenlaista materiaalia kuten
mainitsemasi SICP:n jonka kovakopioversio odottaakin minua juuri
kirjakaupassa, mutta eniten hyödyin kuitenkin teoksesta "Teach
Yourself Scheme in Fixnum Days"
http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html Se on
tarkoitettu ihmisille jotka osaavat jo jotakin imperatiivista kieltä,
eli kuin nakutettu minulle. Samalla löysin myös mielestäni varsin
loistavan täysin ohjelmointia osaamattomille tarkoitetun kirjan: How
To Design Programs http://www.htdp.org/

Viime viikonloppu menikin intensiivisesti Schemeä
vääntäessä, erityisesti pidin siitä että lopulta ohjelmassani
ei ollut yhtäkään asetuslausetta ja oudolla tavallaan
koodista tuli kaunista.. kun töikseen vääntää C-koodia,
ei jaksa enää välttämättä harrastuksena sitä jatkaa ja tästä
sainkin loistavaa vaihtelua.


Simo Tappola

unread,
Sep 3, 2003, 9:54:29 AM9/3/03
to
Miikka Lahti wrote:
>
> Käytännön ohjelmointihan on kuitenkin, nykyisin, enimmäkseen teknisten
> detaljien ja valmiiden kirjastofunktioiden yms. tuntemista kuin niinkään
> mitään ajattelua.

Tätä ohjelmointi on ollut niin kauan kuin on ollut koneita, joita
ohjelmoida. Se ajattelu tulee mukaan paljon ennen itse toteutusta
(ja "teknisten detaljien tuntemista") eli avainsana on
SUUNNITTELU. Kuka tahansa osaa ohjelmoida, mutta kokemusta (ja
ajattelun "kehitystä", mitä se tarkoittaakaan) tarvitaan siihen,
että lopputuloksesta tulee millään/jollakin tavoin järjellinen.
Jos esimerkiksi työpaikkailmoituksessa haetaan "ohjelmoijaa",
"suunnitteluinsinööri" tai "ohjelmistosuunnittelija" tuskin
viitsii vaivautua.

En ota kantaa ohelmoinnin "mystifiointiin" tai siihen, miten
ohjelmointi mahdollisesti ajattelua kehittää, mutta sinä et
selvästikään tiedä mistä puhut. Tai sitten voisit ainakin
selvittää vähän täsmällisemmin mitä tarkoitat.


Simo

--
"Mixing bowl set designed to please a cook
with round bottom for efficient beating."
- Classified Ads

Miikka Lahti

unread,
Sep 4, 2003, 7:25:40 AM9/4/03
to

Simo Tappola wrote:

> Miikka Lahti wrote:
>
>>Käytännön ohjelmointihan on kuitenkin, nykyisin, enimmäkseen teknisten
>>detaljien ja valmiiden kirjastofunktioiden yms. tuntemista kuin niinkään
>>mitään ajattelua.
>>
>
> Tätä ohjelmointi on ollut niin kauan kuin on ollut koneita, joita
> ohjelmoida. Se ajattelu tulee mukaan paljon ennen itse toteutusta
> (ja "teknisten detaljien tuntemista") eli avainsana on
> SUUNNITTELU.


Usein kuultu, mutta pahoin idealisoitu näkökulma. Oikeasti toimivia
suunnitelmia voidaan tehdä vain, jos objektikirjastojen yms. tekniset
detaljit tunnetaan kunnolla. Käytännössä useinkaan ei, ja kun yllätyksiä
tulee, muuttuu hieno "täysin tekniikasta riippumaton" suunnitelma
toteutusvaiheessa valmiiden kirjastojen teknisten yksityiskohtien
ehdoilla toimivaksi purkkaviritelmäksi.

> Kuka tahansa osaa ohjelmoida, mutta kokemusta (ja
> ajattelun "kehitystä", mitä se tarkoittaakaan) tarvitaan siihen,
> että lopputuloksesta tulee millään/jollakin tavoin järjellinen.


Yliarvostettua. Kuka tahansa osaa. Oleellista on juuri erinnäisten
teknisten yksityiskohtien tuntemus, ja ennen muuta kiinnostus niihin.


Miikka Lahti

unread,
Sep 4, 2003, 9:21:22 AM9/4/03
to

Simo Tappola wrote:

> Miikka Lahti wrote:
>
>>Käytännön ohjelmointihan on kuitenkin, nykyisin, enimmäkseen teknisten
>>detaljien ja valmiiden kirjastofunktioiden yms. tuntemista kuin niinkään
>>mitään ajattelua.
>>
>
> Tätä ohjelmointi on ollut niin kauan kuin on ollut koneita, joita
> ohjelmoida. Se ajattelu tulee mukaan paljon ennen itse toteutusta
> (ja "teknisten detaljien tuntemista") eli avainsana on
> SUUNNITTELU.


Ainakaan ohjelmointi ei näemmä kehitä ajattelua näkemään ikiklisheiden
ja hokemien taakse.;-) Käytännössä hienot "tekniikasta riippumattomat"
suunnitelmat degeneroituvat toteuttamisvaiheessa usein valmiiden
kirjastofunktioiden teknisten yksityiskohtien ehdoilla toimiviksi
purkkaviritelmiksi, ellei erinnäisiä teknisiä diitaljeja sun muita
outoja anomalioita ole osattu jo suunnitteluvaiheessa riittävästi huomioida.

> Kuka tahansa osaa ohjelmoida, mutta kokemusta (ja
> ajattelun "kehitystä", mitä se tarkoittaakaan) tarvitaan siihen,
> että lopputuloksesta tulee millään/jollakin tavoin järjellinen.


Kuka tahansa osaa tehdä paperille hienoja suunnitelmia siitä, miten
asioiden pitäisi toimia.


Simo Tappola

unread,
Sep 4, 2003, 9:39:16 AM9/4/03
to
Miikka Lahti wrote:
>
> Ainakaan ohjelmointi ei näemmä kehitä ajattelua näkemään ikiklisheiden
> ja hokemien taakse.;-) Käytännössä hienot "tekniikasta riippumattomat"
> suunnitelmat degeneroituvat toteuttamisvaiheessa usein valmiiden
> kirjastofunktioiden teknisten yksityiskohtien ehdoilla toimiviksi
> purkkaviritelmiksi, ellei erinnäisiä teknisiä diitaljeja sun muita
> outoja anomalioita ole osattu jo suunnitteluvaiheessa riittävästi huomioida.

Kerro ihmeessä missä olet saanut näin pätevän näkemyksen
ohjelmistoalan nykytilasta! Tiedänpähän sitten välttää sen puljun
tuotteita kuin ruttoa.

Edelleenkään sinulla ei ole harmainta aavistusta mistä puhut. Jos
haluat jatkaa tästä asiasta "keskustelua", perustele väitteesi
muullakin kuin sisällöttömällä retoriikalla. Muuten ohitan sinut
trollina (joka mitä ilmeisimmin olet).

Aleksi Kallio

unread,
Sep 4, 2003, 10:07:02 AM9/4/03
to
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?

Toki. Mieli muovaa ohjelmia ja ohjelmat muovaavat mieltä.

Nykyään tekninen alusta ei enää kovinkaan paljon rajoita ohjelmien
toteutusta. Pääasiassa liiketoiminnan säännöt sanelevat mitä
ohjelmointitekniikoita käytetään: komponentit ja web servicet ovat
kustannustehokkaita, joten niitä hehkutetaan. Minusta se on kuitenkin
huono kehityssuunta. Markkinat määräilevät meitä jo ihan riittävästi.

Erittäin kiinnostava kysymys on, että mitä ihmisen ajattelusta opittua
voisi siirtää ohjelmointimaailmaan. Olen aiheesta yhden tutkielman
väsännyt ja sen pohjalta tärkeimpiä asioita minun mielestäni ovat:
abstraktiot, moniparadigmaisuus ja vuorovaikutteisuus.

Abstraktiot alkavat olla jo melko peruskamaa. Tietokone on kuitenkin
vielä kaukana ihmisestä. Hyvä shakinpelaaja pystyy käymään läpi vain
kourallisen siirtoja sekunnissa, kun taas Deep Blue tai vastaava
shakkisuperkone laskee niitä.. no, paljon. Silti ne (Kasparov vs. Deep
Blue) ovat aika tasavertaisia. Kuinka paljon tarpeettomia yksityiskohtia
ihminen onnistuukaan heittämään mäkeen?

Moniparadigmaisuus on myös tiettyyn rajaan asti peruskamaa. Suurin osa
webbikaupoista pyörii olio/proseduurisoftan päällä, joka säilöö datansa
deklaratiiviseen SQL-kantaan. Ongelma on mielestäni siinä, että
paradigmat eivät limity: dataa manipuloidaan SQL:llä ja toimintoja
tehdään Javalla. Mikäli samaa ohjelmaa/dataa voisi tarkastella eri
paradigmojen kautta, oltaisiin paljon lähempänä ihmisen ajattelua ja
erityisesti lähempänä luovaa ajattelua. Hieman tämän suuntaista on
visioitu Pragmatic-kielen kehityksessä (saas nähdä tuleeko siitä koskaan
mitään).

Vuorovaikutteisuus on kaikkea muuta kuin peruskamaa. Ohjelmia tehdään
yhä koodaa-käännä-kokeile-korjaa -syklillä. Ohjelmointi on kuin
kirjoittaisi erittäin yksityiskohtaista manuaalia täydelliselle
idiootille. Entäs jos voisikin tarttua konetta kädestä kiinni ja
keskustellen selvittää, että mitä haluaa ohjelman tekevän? Olisi hienoa
jos esimerkiksi voisi tehdä "tietokantahakuja" koodimassaan (millä
kaikilla tavoin ohjelma käsittelee sosiaaliturvatunnuksia?), voisi
kirjoittaa koodia korkealla abstraktiotasolla ja kehitysympäristö
kyselisi tarkentavia kysymyksiä jos matalamman tason koodin generointi
sitä vaatisi, ympäristö oppisi tekemään älykkäitä arvauksia jne...

> Ajattelin että ohjelmointi voisi olla mukavaa luovaa työtä, mutta
> toisaalta olisi hyvä valita ajattelua kehittävä ohjelmointikieli
> opeteltavaksi.

Minun neuvoni olisi: valitse monta, ja eri paradigmoista. Ainakin
proseduureja (C), olioita (Java, Smalltalk) ja funktioita (Lisp/Scheme).

Aleksi Kallio

unread,
Sep 4, 2003, 10:08:00 AM9/4/03
to
> Oletteko huomannut että ohjelmoiminen olisi kehittänyt ajatteluasi
> jollain tavalla?

Ai juu, vielä aihetta liippaava linkkivinkki.

Taiteellisen ohjelmoinnin ystävien seura:
http://www.cc.jyu.fi/yhd/toys/

Miikka Lahti

unread,
Sep 4, 2003, 10:12:13 AM9/4/03
to

Simo Tappola wrote:

> Miikka Lahti wrote:
>
>>Ainakaan ohjelmointi ei näemmä kehitä ajattelua näkemään ikiklisheiden
>>ja hokemien taakse.;-) Käytännössä hienot "tekniikasta riippumattomat"
>>suunnitelmat degeneroituvat toteuttamisvaiheessa usein valmiiden
>>kirjastofunktioiden teknisten yksityiskohtien ehdoilla toimiviksi
>>purkkaviritelmiksi, ellei erinnäisiä teknisiä diitaljeja sun muita
>>outoja anomalioita ole osattu jo suunnitteluvaiheessa riittävästi huomioida.
>>
>
> Kerro ihmeessä missä olet saanut näin pätevän näkemyksen
> ohjelmistoalan nykytilasta! Tiedänpähän sitten välttää sen puljun
> tuotteita kuin ruttoa.
>
> Edelleenkään sinulla ei ole harmainta aavistusta mistä puhut. Jos
> haluat jatkaa tästä asiasta "keskustelua", perustele väitteesi
> muullakin kuin sisällöttömällä retoriikalla. Muuten ohitan sinut
> trollina (joka mitä ilmeisimmin olet).


No en varmasti halua. Antisi tähän "keskusteluun" - eli lähinnä
iänikuinen klishe-liturgia siitä, miten suunnittelu on se vaikein ja
vaativin osuus ja miten suunnitteluvaiheessa ei tarvitse tietää
tekniista mitään - on ollut sitämyöten köyhää.


Simo Tappola

unread,
Sep 4, 2003, 10:25:19 AM9/4/03
to
Miikka Lahti wrote:
>
> No en varmasti halua. Antisi tähän "keskusteluun" - eli lähinnä
> iänikuinen klishe-liturgia siitä, miten suunnittelu on se vaikein ja
> vaativin osuus ja miten suunnitteluvaiheessa ei tarvitse tietää
> tekniista mitään - on ollut sitämyöten köyhää.

Just... Sinun on edelleen syytä pysytellä ihmissuhderyhmässä,
siellä tyhjänjauhaminen on korkeammassa kurssissa kuin täällä.

Äläkä turhaan vastaa, en kuitenkaan näe sitä.

KK

unread,
Sep 4, 2003, 10:37:42 AM9/4/03
to
> > Jos olet opetellut Basicin niin olio-ohjemointikielet kuten C++ tai Java
> > antaa hiukan toisenlaisen lähestymistavan käsitellä ohjelmilla erilaisia
> > tehtäviä. Samalla oppimasi Basic myös nostaa kynnystä nyt oppia
> > oliopohjaista ohjemointia, mutta samalla kaiketi kehittää myös sitä
> > ajattelukykyä.
>
> Itse aloitin ohjelmoinnin myöskin Basicilla, mutta en ole ehtinyt
> havaita sillä mitään negatiivisia vaikutuksia oliomallin
> tajuamiseen.

Tuskin sillä onkaan negatiivisia vaikutuksia, Basic ja muut perinteiset
imperatiiviset kielet
kehittävät mielestäni algoritmista ajattelua, jota
tarvitaan myös olio-ohjelmoinnissa (mitäs sinne metodien sisälle oikein
laitetaan..)


KK

unread,
Sep 4, 2003, 10:40:00 AM9/4/03
to

Minun neuvoni olisi: valitse monta, ja eri paradigmoista. Ainakin
> proseduureja (C), olioita (Java, Smalltalk) ja funktioita (Lisp/Scheme).

Yep ja Prologia kannattaa myös ihmetellä =)

Miikka Lahti

unread,
Sep 5, 2003, 4:58:14 AM9/5/03
to

Simo Tappola wrote:

> Miikka Lahti wrote:
>
>>No en varmasti halua. Antisi tähän "keskusteluun" - eli lähinnä
>>iänikuinen klishe-liturgia siitä, miten suunnittelu on se vaikein ja
>>vaativin osuus ja miten suunnitteluvaiheessa ei tarvitse tietää
>>tekniista mitään - on ollut sitämyöten köyhää.
>>
>
> Just... Sinun on edelleen syytä pysytellä ihmissuhderyhmässä,
> siellä tyhjänjauhaminen on korkeammassa kurssissa kuin täällä.


? Toisin sanoen jotkin henk. koht kaunat olivat siis käsittämättömän,
aggressiivisen vastaamistyylisi taustalla (itse olet kyllä meikäläiselle
täysin tuntematon nimi). Äärettömän kiinnostavaa.


> Äläkä turhaan vastaa, en kuitenkaan näe sitä.


Varmaankin paha menetys meikäläiselle.

Juha M Ranta

unread,
Sep 5, 2003, 6:16:03 AM9/5/03
to

Ei tuokaan aivan vastaa omia kokemuksiani ohjelmoinnista (duunissa,
koulussa tai harrastelijana). Jotain yliopistoissa opetettavia
algoritmien suunnittelun ja analyysin kaltaisia taitoja tarvitsee
yleensä aika harvoin, lähinnä suunniteltaessa paria ohjelman
tärkeimmistä algoritmeista. Itse ohjelmointi on sitten enemmän
sellaista, että on se valtavan monimutkainen möykky, jota yrittää
muovata yksinkertaisemmaksi, toimivammaksi ja nätimmäksi esimerkiksi
tarkastelemalla järjestelmää monilta eri kanteilta ja niin edelleen.
Minusta sitä voisi kyllä verrata moneen muuhun luovaan toimintaan,
kuten kirjan kirjoittamiseen.

Parhaimmillaan ohjelmointi muistuttaa hieman jotain lapsuuden
lego-palikoilla rakentelua, jossa rakentaja ja rakennus vain
kehittyvät jonkilaisessa symbioosissa ilman muuta maailmaa ja sen
erilaisia huolia. Yksi huono puoli työn vuoksi ohjelmoinnissa sitten
on, että sitä rakennusta ei voi lopuksi tuhota tuhansiksi päreiksi. ;)
Lisäksi on myönnettävä, että usein käytännön ohjelmistotuotanto on kyllä
ikävän monimutkaista ja sotkuista.

Juha


Kimmo T. Kallio

unread,
Sep 5, 2003, 1:26:29 PM9/5/03
to

optimistx wrote:
> "Kimmo T. Kallio" <ktka...@suomi24.fi> kirjoitti viestissä
> news:3F545DF...@suomi24.fi...
> --- poistettua----
> On siis hyvä muistaa analogioiden -- varsinkin
>
>>ohjelmointisellaisten -- muut analogiat poissulkeva aspekti, mistä
>>tässäkin ryhmässä on aikojen saatossa nähty paljon esimerkkejä.
>

> Mitkähän tärkeät analogiat ehkä ovat silloin jääneet huomiotta? (ei ole
> ironiaa, vaan ihan oikeasti kiinnostaa)

Voisin vastata tähän luettelemalla n määrän esimerkkejä, joissa
joku saattaa käyttää ohjelmointianalogiaa tai alkaa penkoa tämän ryhmän
tietokoneanalogisia kirjoituksia (niitä löytyy kyllä paljon muiltakin
kuin nimim. optimistix:iltä) ja sitten esittää vaihtoehtoisen analogian.

Mutta (!)

koska esitetty kysymys on ns. itsestään selvä so. vie paljon aikaa
selittää, jos joku ei sitä itse ymmärrä (sillä en voi tietää, mitä
kysyvä henkilö jo tietää, eli mitä hänelle olisi selitettävä, Vrt.
keskusteluun "tietoisuudesta") ja koska itse aihe ei ole kovinkaan
lähellä sydäntäni tyydyn vain toteamaan, että ohitettavat, toimivat
ja vaihtoehtoiset analogiat riippuvat _täysin_ käsiteltävästä aiheesta,
eli mitään yleisluontoista struktuuria niistä ei voida esittää.

Huomautan myös tämän koskevan _kaikkia_, tarpeeksi hyvän jalansijan
saaneita analogioita käytetyssä diskurssissa (tämähän ei ole mikään
mullistava keksintö, ei edes omani), kuten jo aiemmin mainitsin.

On kuitenkin aika älytöntä keskustella jostain tietokoneanalogioista
yhtenä homogeenisenä joukkona, sillä tietokoneeseen voidaan viitata
miltei millä tavalla tahansa. Koska pidempi käsitteenmäärittelykään
ei juuri nyt kiinnosta, en pölise aiheesta enempää.

Tämä viesti ei kyllä todellakaan kuulu ohjelmointiryhmään, joten
se ei sinne mennyt.

Kimmo T. Kallio

unread,
Sep 5, 2003, 1:31:28 PM9/5/03
to
Kimmo T. Kallio wrote:
> kuin nimim. optimistix:iltä) ja sitten esittää vaihtoehtoisen analogian.

Suothan anteeksi nimimerkkisi väärinkirjoituksen?

optimistx

unread,
Sep 5, 2003, 2:09:54 PM9/5/03
to

"Kimmo T. Kallio" <ktka...@suomi24.fi> kirjoitti viestissä
news:3F58C86F...@suomi24.fi...

> Kimmo T. Kallio wrote:
> > kuin nimim. optimistix:iltä) ja sitten esittää vaihtoehtoisen analogian.
>
> Suothan anteeksi nimimerkkisi väärinkirjoituksen?
>
Kylläpä kirjoitat perusteellisesti ja sivistyneesti, kiitos. Etkä nimimerkin
suhteen ole ainoa :), ei erehdys haittaa. Olet näköjään googlannutkin
tietoisuusasiasta, jossa tosiaan tietokoneanalogia johti aika vakaasti
tuntemaan, että muut tulkinnat ovat joko höpöhöpöä tai minulla ei ole niista
harmaata aavistusta niistä. Siksi olen yhä utelias, mitähän on jäämässä
huomaamatta. Mutta kyllä taitaa liian laaja olla kenttä, jos n on yli 42.


Kimmo T. Kallio

unread,
Sep 5, 2003, 3:05:11 PM9/5/03
to
optimistx wrote:
> Kylläpä kirjoitat perusteellisesti ja sivistyneesti, kiitos. Etkä nimimerkin

Sinä se sitten jaksat kehua, ainakin meikäläistä (olettaen, ettet
harrasta sarkasmia sen enempää kuin olen antanut itseni ymmärtää).
Varokin etten ylpisty.

> suhteen ole ainoa :), ei erehdys haittaa. Olet näköjään googlannutkin
> tietoisuusasiasta, jossa tosiaan tietokoneanalogia johti aika vakaasti

En, valitettavasti, ole googlannut, vaan "saanut" seurata tuota
keskustelua välillä itsekin siihen turhautuneena osaaottaen.

> tuntemaan, että muut tulkinnat ovat joko höpöhöpöä tai minulla ei ole niista
> harmaata aavistusta niistä. Siksi olen yhä utelias, mitähän on jäämässä
> huomaamatta. Mutta kyllä taitaa liian laaja olla kenttä, jos n on yli 42.

Niin, minulla ei ole oikeastaan minkäänlaista hajua siitä, mitä minun
pitäisi nyt kirjoittaa (Wittgenstein varmaankin sanoisi, "ettemme tiedä
mitä ajatella, kun meitä kehotetaan ajattelemaan" vastausta
kysymykseesi). Haluatko keskustella "tietoisuudesta" aihetta jo
käsittelevien threadien hengessä? Vai etkö oikeasti usko, että
tietojenkäsittelyanalogioille olisi missään tapauksessa _minkäänlaisia_,
paremmin toimivia vaihtoehtoja?

Ps. Tietoisuuskeskustelussa päästiin jo jonkinlaiseen sulkeumaan, kun
todettiin, ettei muiden olioiden "sisäisiä tiloja" voida todeta millään
empiirisellä kokeella. Tästä vedät päätelmän, ettei niitä tarvitse ottaa
missään keskustelussa huomioon, so. siitä ei tule puhua missään
tieteellisessä yhteydessä. Toiset taas olettavat tietoisuuden muille
ihmisille, ei tieteen, vaan tottumuksen perusteella. Viimekädessä
kakki kommunikaatio, myös tiede, perustuu tälle oletukselle (Huomaa!
myös mahdollinen "kommunikaatio" ihmisenkaltaisen androidin
kanssa perustuu juuri tuon "tietoisuuden" koettelulle).

Kommunikaatio loppuu, kun toinen tai molemmat osapuolet ymmärtävät
perustavat eronsa, ettei kukaan oikeastaan koskaan kohtaa toisen
ajatuksia. Näin ironisesti kävi myös tietoisuuskeskustelulle, so.
lopputulos, joka tulee todennäköisesti miltei väistämättä vastaan
ihmisen ja "ajattelevan koneen" välisessä "kommunikaatiossa".


Huhhuh, olipa taas selitys..

Aleksi Kallio

unread,
Sep 8, 2003, 3:29:52 AM9/8/03
to
> Minun neuvoni olisi: valitse monta, ja eri paradigmoista. Ainakin
>>proseduureja (C), olioita (Java, Smalltalk) ja funktioita (Lisp/Scheme).
> Yep ja Prologia kannattaa myös ihmetellä =)

Itseasiassa oli tarkoitus myös mainita Prolog, mutta se näköjään
unohtui. Prolog on minusta äärettömän opettavainen kieli: jotkin
hemmetin vaikeat algoritmiset ongelmat ratkeavat parin rivin ohjelmalla,
mutta toisaalta taas jokin niin yksinkertainen asia kuin jono on
järkevästi toteutettuna lähes käsittämätön...

Ari T Koistinen

unread,
Oct 6, 2003, 4:58:56 AM10/6/03
to
In sfnet.atk.ohjelmointi Miikka Lahti <miil...@cc.jyu.fi> wrote:

:> En nyt tiedä. Ohjelmointia mystifioidaan pahoin.

: Käytännön ohjelmointihan on kuitenkin, nykyisin, enimmäkseen teknisten
: detaljien ja valmiiden kirjastofunktioiden yms. tuntemista kuin niinkään
: mitään ajattelua. Sopii katsoa vaikkapa sfnet.atk.ohjelmointi-palstan
: aiheita.

Ymmärsin, että M. Lahden mielestä esim. runojen laatiminen on sitä
"ajattelua".

Käytännön runoiluhan on kuitenkin, nykyisin, enemmänkin lyyristen
detaljien ja valmiiden ideoiden tuntemista kuin niinkään minkään ajattelua.

Suurin osa ideoista kun on jo jossain muodossa esitetty. Toki hyvä runo
yhdistelee ja muuntelee ideoita sekä esittää niitä uudella tavalla,
mutta niinpä hyvä (tai käyttökelpoinen) tietokoneohjelmakin yleensä
tekee noille teknisille detaljeille ja kirjastofunktioille...

Uskoisin, että kaikki älyllinen toiminta, kuten ohjelmointi, runoilu,
romaanin kirjoittaminen, säveltäminen, matemaattisten lauseiden
todistaminen tai sanaristikoiden ratkaiseminen, kehittävät ajattelua.
Tietenkin noissa korostuvat ajattelun eri osa-alueet vaihtelevilla tavoilla.

Runon rustaamisessa on muuten tietokoneohjelman laatimiseen verrattuna
sellainen helpotus, että bugit jäävät useammin huomaamatta jopa
loppukäyttäjältä... :) Tai jos lukija kuuluu hyvin avarakatseiseen ja
moderniin koulukuntaan, ei bugeja ole edes olemassa.

--
Ari Koistinen
www.helsinki.fi/~atkoisti

0 new messages