Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
voi ( osaa? ) ohjelmoida.
--
Ari Rantala | a...@tukki.jyu.fi | http://www.jyu.fi/%7eajr/
Toritie 13, 40520 JKL | p. 040 550 7702
--> Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
--> voi ( osaa? ) ohjelmoida.
Minkähänlainen väittely tästä on tulossa?
Sinänäsä äijä puhu kolumnissaan asiaa.
Kaikki jotka ovat oppineet suomea puhumaan (vaikea kieli oppia),
voi oppia ohjelmoimaan (helppo ja suppea kieli). Sama pätee
muihinkin kieliin.
* Sakari Forsberg za...@cc.tut.fi * Aika avutonta väittää *
* Information: finger za...@assari.cc.tut.fi * minun käyneen väärillä *
* sivuilla - JK 1999 *
hötömölökoodareita on hirveesti, kaikki osaa käyttää visuaalisia
hötömölö kehitysympäristöjä.
--
--ytti - ::3585:0512:1378
> Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
> voi ( osaa? ) ohjelmoida.
No tässä tullaan taas siihen mitä pidetään (oikeana) ohjelmointina. Kyllä
minun mielestäni esim. Delphillä tehty valmiista komponenteista kasattu
Windows-ohjelma on ohjelmointia. Tällaisen pienimuotoisen ohjelman kyllä
kuka tahansa oppii ohjelmoimaan.
Eli kuka tahansa oppii kyllä ohjelmoimaan jopa ihan näyttäviäkin
sovelluksia, mutta tasoja joilla ohjelmointia osaan on ehkäpä nykyään
useampia kuin entisaikaan. (vrt. komponenttien kirjoittajat vs. käyttäjät)
--
*- I contend that we are both atheists. I just believe in one fewer god
than you do. When you understand why you dismiss all the other possible
gods, you will understand why I dismiss yours. -*
Stephen Roberts
Vaikka kaikki osaavat puhua suomea, vain harvat osaavat kirjoittaa
hyvää suomea (tarkoitan esimerkiksi kirjallisuutta, lehtiartikkeleita, jne).
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Ja harva osaa kirjoittaa hyviä ohjelmia :-)
Ikävä kyllä tuo on totta siltä osin että kuka vain osaa tehdä
sovelluskehittimellä ohjelma. Samoin myös (luulisin) 70 % ihmisistä jotka
osaavat ajaa autoa, eivät ymmärrä kyseisen vekottimen päälle yhtään mitään.
Ei ole samaa tehdä ohjelma VB:llä ja saada se toimimaan kuin ymmärtää miksi
se toimii niin kuin se toimii. En nyt hauku VB:tä, se on ihan okei jos
tietää mitä tekee ja ymmärtää miten tietokone taustalla toimii. Jos
väitetään että kaikki sovelluskehitystyökaluilla näppäilijät ovat koodereita
niin varmistetaan todellisten asiaan perehtyneiden ns. arvonlasku ja saadaan
taas harmiksemme paljon kivoja lähestoimivia ohjelmia.
Totta tossa on se osa jossa kirjoittaja huomautti että apua ei tahdo saada
tai siihen suhtaudutaan nuivasti. Siihen törmää täälläkin välillä. Kysyt
helpon niin nauretaan, mutta vaikeisiin ei osata vastata :-)
Ja taas takaisin näpäilemään.
> hötömölökoodareita on hirveesti, kaikki osaa käyttää visuaalisia
> hötömölö kehitysympäristöjä.
Oletkos itse kayttanyt? Usien nimenomaan niilla jotka eivat ole
kayttaneet on mielikuva, etta he koodaavaat C:lla ja vi:lla ja
ovat kovia jatkia. Visuallisen ymapriston kayttajat ovat pehmoja
kun siihen kaikki pystyvat. Mutta kun objekteja pitaakin luoda
dynaamisesti tai tehda omia komponentteja, ei visuaalinen ymparisto
valttamatta auta mitaan. Eli semita luullaan osaamiseksi, on se,
etta siirrellaan valmiita komponentteja suunnitteluaikana ympariinsa.
Mutta vasta sittenhan se ohjelmointi alkaakin ja se on ihan yhta
vaikeaa kuin ilman visuaalista ymparistoa. Tietysti nykyisilla
komponenteilla saa jo vaikka mita ohjelmia aikaiseksi kirjoittamalla
0-muutaman rivin koodia. Mutta sen uuden tuottaminen, mita muut
eivat ole tehneet, vaatii edelleen osaamista.
Mutta alkuperaiseen kysymykseen, uskon etta kaikki osaavat
"ohjelmoida". Kyse on vain siita mika maaritellaan ohjelmoinniksi.
Jos Excelin makron nauhoittaminen on ohjelmointia (tuotetaanhan siina
joukko ohjelmakaskyja), niin sen varmasti oppii jokainen.
Tuskinpa tallakaan palstalla likikaan kaikki osaavat esim.
kayttaa "desing patterneja" hyvakseen ja kuvittelevat silti osaavansa
ohjelmoida (esim. mina olen vasta lukemassa em. teosta).
Eli jos Execl makron nauhoittaminen ei ole ohjelmointia, onko
mikaan, mika tehdaan ilman patterneja, ohjelmointia?
"Ohjelmointitaito" riippuu motivivaatiosta. Esim. yksi kaveri, joka
ei osaa kopioida tidostoa paikasta toiseen, osaa kirjoittaa
tehdasautomaation logiikkaohjelmaa. Eli silloin kun "ohjelmointi"
selvasti auttaa itselle tuttujen rutiinitoimien tekemista ja
kieli on lahella tuttuja termeja, on oppiskynnys matala.
Mutta jos ruvetaan C:n merkkijonoja opettamaan tavalliselle
sihteerille, niin voi motivaatio olla vahaista. Tavallinen
ihminen haluaa "ohjelmansa" tekevan jotakin hyodyllista...
Vesa
====================================
Tapio Haapala
E-mail: ta...@pudis.fi
Webbi: www.pudis.fi/~tapsa
************************************
Minusta se on aivan mahdollista.
Ohjelmointi on hyvin loogista, eikä vaadi älyä läheskään
niin paljoa kuin (kuten jo Forsberg sanoikin), puhutun
kielen ymmärtäminen.
Tietysti ihmisellä on geeneissä jo se, että kielen oppiminen
on synnynnäinen ominaisuus kuten myös puheen tunnistaminen
jne, mutta silti, ohjelmointi on hyvin mekaanista.
Ohjelmien suunnittelu ja algoritmien keksiminen tietenkin
on vähemmän mekaanista, se vaatii jo enemmän ajattelua jos
mielikuvitustakin. Ymmärtääkseni siinä vaaditaan samanlaista
älykkyyttä kuin matemaattisessa ajattelussakin.
"Tavallinen" käskyjen peräkkäin latominen ei kuitenkaan
ole monimutkaista. Kuka hyvänsä pystyy siihen, olen samaa
mieltä Samu Mielosen kanssa tuosta.
--
main(C,f,s){for(/** gcc sig.c;a.out>/dev/audio ## http://iki.fi/bisqwit/ **/
write(C=0,"(C)Bisqwit\n",11);f=99;++C){for(s="+%7%+%7%5%4%2%457%0%0%754%2%+"
"%%%5%542%457%0%0%042%2#+%!#0%+%$%%%"[C&63];s--;f=f*89/84);for(s=999+99*(C&2
);--s;putchar(((s*(f-776?f:0)&32767)*s/199999+39-(C&2?rand()%s/24:0))/16));}}
Kun ohjelmointiin verrataan, niin hyvä suomi ei edes riitä.
Pitää osata kirjoittaa kieliopiltaan täydellistä kieltä ja
pitää myös olla jotakin järkevää sanottavaa.
--
Antti S. Brax - a...@iki.fi - Old school - http://www.iki.fi/asb/
"The term `enterprise' implies highly scalable, highly available, highly
reliable, highly secure, transactional, distributed applications."
-- ENTERPRISE JAVABEANS(tm) TECHNOLOGY
En ole käyttänyt visuaalisia hötömölö kehitysympäristöjä. Itseasiassa
en edes osaa tehdä kunnollisia hypertekstidokumentteja.
--> Kun ohjelmointiin verrataan, niin hyvä suomi ei edes riitä.
--> Pitää osata kirjoittaa kieliopiltaan täydellistä kieltä ja
--> pitää myös olla jotakin järkevää sanottavaa.
No onneksi sentään useimmat kääntäjät alkavat vinoilemaan, jos sitä
täydellistä kieltä ei heti synny.
Seuraava kysymys?
Markku
Tässä tullaan ammattitaitoon. Hyvä taksin ohjelmoija tietää missä se rafla on,
pystyy korjaamaan taksin, jos se hajoaa, ja pystyy vaikka ensin ajamaan sydärin
saaneen taksikuskin sairaalaan jne.
Markku
>> Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
>> voi ( osaa? ) ohjelmoida.
>
>Minusta se on aivan mahdollista.
>Ohjelmointi on hyvin loogista, eikä vaadi älyä läheskään
>niin paljoa kuin (kuten jo Forsberg sanoikin), puhutun
>kielen ymmärtäminen.
Ei se logiikka nyt ihan kaikille ole selvää. Kunhan ihmiset ensin
alkaisivat uskaltaa käyttämään ja kokeilemaan omin neuvoin mitä
tietokoneella voi tehdä eikä aina katsoa ohjetta, niin oltaisiin jo
askel lähempänä.
"Emmä uskalla" ja "mitä mä nyt teen" tilanteessa jossa kone kysyy
vaikkapa varmistusta tallennetaanko tiedosto on tullut kuultua turhan
usein ihan järkevien ihmisten suusta, enkä pystyisi millään
kuvittelemaan tälläisiä ihmisiä ohjelmoimassa, ainakaan itsekseen.
Ehkäpä nykyistä houkuttelevamman ja vähemmän teknisen näköisten
sovelluskehittimien (tyyliin my first sony vai mitä ne oli :) tultua
markkinoille ohjelmointi jollakin tasolla onnistuu kaikilta.
Ari Rantala <a...@tukki.jyu.fi> wrote:
> http://www.tietokone.fi/webkolumnit/kolumni.asp?id=327
> Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
> voi ( osaa? ) ohjelmoida.
Luultavasti ainakin jokainen, joka kohtuudella osaa yläasteen
matematiikan (polynomit ym.) oppii halutessaan ohjelmoimaan
pieniä ohjelmia. Uskon, ettei se ole edes kovin vaikeaa. Toisaalta
epäilen, että suurin osa ihmisistä ei uskalla kokeillakaan, kun
pitää ohjelmointia Gurujen hommana.
"Oikeissa" ohjelmissa joudutaan kuitenkin mm. huomioimaan virhetilanteet,
mikä hankaloittaa tehtävää huomattavasti. Samoin ohjelmoijan pitää
aina ajatella mahdollisia poikkeustilanteita (laske N:n luvun
keskiarvo --> entä jos N on nolla?). Monet eivät tunnu hallitsevan
ohjelmoijalle tyypillistä ajattelutapaa, ongelman jakamista osiin
ja äärimmäistä tarkkuutta, joten tuskinpa kaikista saa tehtyä
"oikeita" ohjelmoijia.
Mutta sikäli kolumni on IMHO oikeassa, että melkein jokainen oppii
tekemään mahdollisesti hyvinkin hyödyllisiä pikkuohjelmia, tyyliin
"10000 markan lainan korko on 10%. Vuosittain maksetaan 2000 markkaa.
Osuudella, joka ei kulu korkoihin maksetaan velkapääomaa. Kaunko
maksaminen kestää?"
--
= = = = Jori Mäntysalo - jm5...@uta.fi = = = =
-"Herrasmies ei puhu tuollaisia." -"Minä olenkin teekkari!" --MP
[ Moderoijat tavoittaa osoitteesta saom-...@cc.jyu.fi ]
[ Ryhmän säännöt: http://www.iki.fi/gaia/saom/saannot.html ]
[ Ryhmän FAQ: http://www.iki.fi/gaia/faq/sao-faq.html ]
Itsekin vastustin aikani mm. VB:ta, koska olin suurella vaivalla
opetellut Win-API-ohjelmoinnin C:lla. Ja tuntui hyvin kohtuuttomalta,
etta jokin homma, jota olin vasannyt monta viikkoa (esim. DDE), onnistui
pienella ranteen liikkella. Ei siina voi olla silloin kaikki kohdallaan.
Ties mita verukkeita yritin keksia itselleni ja oppilaille siita, miksi
VB:lla ei tee mitaan ja silla ei opi ohjelmointia.
Onneksi tuli Delphi ja voin edelleen olla uskossa etta VB:lla ei tee
mitaan :-)
Mutta vakavasti ottaen KAIKKIEN ohjelmoijien ja tyokalujen kehittajien
pitaisi tutustua Delphin tapaiseen vekottimeen ja pitaa sita MINIMIna
siita, millainen pitaa ohjelman kehityksen tanapaivana olla.
Eli edelleen olen sita mielta, etta sina paivana kun Delphi for Linux
on maailmalla, niin M$:in osakkeet alkavat menna alamakeen.
Syy 1) "kuka tahansa" voi tehda "ohjelmia"
Syy 2) osaavat voivat tehda hyvia ohjelmia vahemmalla vaivalla.
Nyt rupean pelkaamaan, etta olet perakkaiskoodin kirjoittaja, jolle
siirtyminen tapahtumaohjattuun ohjelmointiin tulee olemaan jarkytys.
Jos aloittaa suoraan tapahtumaohjatun ympariston ohjelmoinnilla, on
pakko jattaa ohjelman osien valisia riippuvuuksia ja mystisia
lippuja pois ja tehda pienia itsenaisia koodinpatkia, jotka mieluiten eivat
tieda mitaan toisistaan. Toisaalta juuri se tekee asioista helpompaan,
koska tietyssa mielessa ei enaa tarvitse kantaa huolta kokonaisuudesta.
Ja tahan vaaditaan melkein vakisin mukaan olio-ohjelmointia. Esim.
WinApilla oli varsin usein pakko turvautua globaaleihin muuttujiin
(pystyi ne kiertamaan ikkunaan sidotuilla muistialueilla, joista itse
pidettiin huolta, yak...). Nykyisin en enaa tieda oikein mitaan syyta
globaaliin MUUTTUJAAN (vakiot erikseen, tosin nekin voi valttaa
aika pitkalle). (Ja valitettavasti esim. Delphi tekee oletuksena
jokaisesta lomakkeista yhden uuden globaalin muuttujan).
Eli jos alkuun saa pienta ohjausta, oppii heti kattelyssa minun
mielestani paremmaksi ohjelmoijaksi kuin kiertamalla vaivalloisen
C - C++ - yms. polun.
Ja nyt kysymys:
Onko oikeasti sellaisia, jotka ovat oikeasti ohjelmoineet Delphilla
tai C++Builderilla ja viela haluavat palata johonkin
vanhempaan (jos tyonantaja pakottaa, niin sita ei lasketa)?
Jos on, niin olisi kiva kuulla perusteluja.
Jos alkuperainen kirjoituksesi oli trolli (=alykasta satiiria?),
niin hyva, mutta silti tuolla tavalla uskovia on viela monia
(itsekin olin, pistihan se "ammattiylpeyden" koville).
Vesa
Selvä. Paljonko olet valmis maksamaan tuosta korjauksesta? Joutuisi ensin
ostamaan Microsoftin ja varmaan Intelin ja pari korealaista firmaa, jonka
jälkeen pitäisi koodata koko roska uusiksi sekä tehdä sama hardware puolelle.
Markku
Kaikki muotialan lehdet laittavat joka ikinen kevät kansilööppiin tai
pääkolumniinsa jutun tyyliin "Kevään -99 muoti hehkuu pastelliväreissä".
Ja atk-lehden kolumnin aiheeksi kelpaa vähintään kerran parissa vuodessa
se ikivanha, ja kymmeniä kertoja puhkikaluttu aihe "Uudet jokaiselle so-
veltuvat helpot ohjelmointimenetelmät". Että ei siinä mitään..
Seuraavassa muuten vähän luetteloa omista 'kaikki osaa' hommistani:
-Kaikki osaavat korjata autoja
-Kaikki osaavat hoitaa yrityksen kirjanpitoa
-Kaikki osaavat ommella vaatteita
-Kaikki osaavat asentaa kylppäriin lattialämmityksen
Eli osaan siis kaikki nuo hommat, ja oikeastaan en osaa mitään noista
hommista. Auton lamput, sulakkeet ja öljyn tarkistukset teen, mutta
kaikki muu pitää antaa verstaan ammattiukkojen hommaksi.
Osaan neuloa ompelukoneella auki päässeen housunsauman. Mutta jos ha-
luaisin osata tehdä vaikka viisi paria suoria housuja, niin en osaisi,
enkä edes halua opetella. Citymarket voi luottaa siihen, että jatkossa-
kin nöyrästi haen heiltä valmiita suoriahousuja.
Silti olen aina hitsin tyytyväinen, kun se ratkennut sauma hätätilassa
korjaantui Singerillä ja omalla räätälin osaamisellani. Samaa ohjelmoin-
nin osaamisen riemua kokee varmaan myös räätäli tai autonasentaja, joka
saa tietokoneohjelmoitua oman www-kotisivunsa toimimaan.
MNe
No korjaa nyt sitten vaikka tämä jatkuvasti kaatuileva Windows (oli mikä
versio tahansa), niin nähdään kuinka hyvä taksikuski olet ...
Eli toisinsanoen turha täällä kenenkään on lähteä itseään kehuskelemaan ja
luokittelemaan toisia milloin mihinkin VB-kastiin. Maailma on väärällään
kaiken maailman bugeja, joita me itse kukin olemme saaneet aikaiseksi ja
tämmöistä tämä tulee aina olemaan oli väline mikä tahansa.
Terv: Harri
Olenko kenenkään mielestä edes yhtään oikeilla jäljillä?
>
> Eli toisinsanoen turha täällä kenenkään on lähteä itseään kehuskelemaan ja
> luokittelemaan toisia milloin mihinkin VB-kastiin. Maailma on väärällään
> kaiken maailman bugeja, joita me itse kukin olemme saaneet aikaiseksi ja
> tämmöistä tämä tulee aina olemaan oli väline mikä tahansa.
Klik klik. Vähän asiaa hipaisten tulee mieleen kun raputin 500 riviä
joissa oli 2 bugia (toinen oli ; puuttuminen ja toinen oli " puuttuminen)
Seuraavana päivänä tein sitten "vähän" väsyneenä ja edellisen päivän
tapahtumasta hieman turhankin itsevarmana 200 riviä joissa oli ainakin 50
bugia(lukuisia erinlaisia).
Öitä. Menen nukkumaan onhan tuo kellokin jo aika paljon.
Ei se ihan noin suoraviivaista ole. Vaikka kaikki voivat oppia
puhumaan kieltä, sitä kieltä pitää myös oppia *käyttämään*
eri tilanteissa eri tavalla. Kielen käyttöön liittyy tietyt
säännöt, aivan kuten ohjelmoinnissakin. Mutta ohjelmoinnissa
säännöt ovat usein ehdottomat: pitää hallita sekä kielioppi
että "kohdeyleisö" so. ympäristö, johon ohjelmoi. Ihmisten kielessä
saa tulla virheitä ja kuulija tai tulkkaaja ymmärtää viestin silti.
Tietokoneen kielessä virheitä ei saa tulla.
--
Jari Laaksonen
> "Emmä uskalla" ja "mitä mä nyt teen" tilanteessa jossa kone kysyy
> vaikkapa varmistusta tallennetaanko tiedosto on tullut kuultua turhan
> usein ihan järkevien ihmisten suusta, enkä pystyisi millään
> kuvittelemaan tälläisiä ihmisiä ohjelmoimassa, ainakaan itsekseen.
Tuollaiseen tietokoneen esittämään kysymykseen vastaaminen vaatii jo
jonkinasteista tietotekniikkatuntemusta: yrittäkääpä selittää yhdellä
lauseella a) mitä on tallennus ja b) mitä on tiedosto, käyttämättä
tietotekniikkasanastoa...
Kumallakaan noista termeistä ei ole mitään tekemistä esimerkiksi kirjeen
kirjoittamisen kanssa (jos yllämainittu järkevä ihminen oli sitä
tekemässä). Kysymys 'Tehdäänkö kirjoittamastasi kirjeestä kopio siltä
varalta, että kirjeellesi tapahtuu tulevaisuudessa
jotain peruuttamatonta?' saattaisi olla huomattavasti ymmärrettävämpää.
Joni
--
Joni Niemi | Prediction is difficult,
Joni....@iki.fi | especially of the future.
http://www.iki.fi/joni/ | - Niels Bohr -
Silloin, jos taksikuski ei tiedä missä ravintola on, sinun
pitää valita joku muu taksi tai toinen liikkumistapa.
Aivan kuten valitsisit ohjelmointikielen.
--> Tässä tullaan ammattitaitoon. Hyvä taksin ohjelmoija tietää missä se rafla on,
Väärin. Hyvä taksin käyttöliittymä (kuski) tietää missä se rafla on. Taksin
ohjelmoijan ei tarvitse tietää missä paikat on.
--> pystyy korjaamaan taksin, jos se hajoaa,
Anna mulle tapahtuma, jossa joku on ruvennut korjaamaan
taksia, kun se on hajonnut. :-> Taksikuskin hommia tää on,
hoitaa taksi korjaamoon, tai ostaa uus taksi.
--> ja pystyy vaikka ensin ajamaan sydärin
--> saaneen taksikuskin sairaalaan jne.
No huh huh. Eihän tämmöisiä asioita voi kuljettavilta
odottaa! Kuljetettavan pitää osata hälyttää ensiapu paikalle...
Olen ohjelmoinut sekä delphillä, että builderilla ja vielä vb:lläkin,
mutta kuitenkin tykkään koodin kirjoittamisesta enemmän
kuin tuosta controllien lätkimisestä formille. Totta kyllä että
mielummin sen formin teen visuaalisesti kuin koodaamalla.
(kotona koodaan yhä watcomilla dossille :-)
Ja pitäähän sitä koodia kuitenkin kirjoittaa. Odotan sitä
päivää kun esim. directdraw:n voi alustaa pelkästään
tunkemalla jotain formille visuaalisesti :-)
-->> "Emmä uskalla" ja "mitä mä nyt teen" tilanteessa jossa kone kysyy
-->> vaikkapa varmistusta tallennetaanko tiedosto on tullut kuultua turhan
-->> usein ihan järkevien ihmisten suusta, enkä pystyisi millään
-->> kuvittelemaan tälläisiä ihmisiä ohjelmoimassa, ainakaan itsekseen.
--> Kysymys 'Tehdäänkö kirjoittamastasi kirjeestä kopio siltä
--> varalta, että kirjeellesi tapahtuu tulevaisuudessa
--> jotain peruuttamatonta?' saattaisi olla huomattavasti ymmärrettävämpää.
Kysymyksen pitäisi olla "Laitetaanko kirje odottamaan turvalliseen
paikkaan, jos tulevaisuudessa haluat katsella tai kirjoittaa siihen lisää?"
Toi sinun lauseeesi oli lähinnä varmuuskopiointia, anteeksi
pilunviilaaminen :-) ja toi turvallinen paikkakin on aika kyseenalainen
juttu :-)
Niinhän sitä luulisi kun itse osaa. Olen yhdellä kurssilla missä
erikoistutaan ohjelmistotuotantoon. Suurin osa porukasta
ei tätä ennen edes tiennyt mitä ohjelmointi on. Kyllähän ne
syntaksia oppii ja muutaman funktionkin, mutta kun pitää
joku yksinkertainen laskin tehdä niin kaikilla menee sormi
suuhun kun ei muuttujiakaan osata käyttää hyväksi.
Tammikuusta lähtien tätä on ollut ja vieläkään ei porukka osaa.
Itse olen porukan nuorin (20v.) ja vanhimmat kai nelikymppisiä :-)
Tietysti etuna on että olen jo aikoinani itse opiskellut ja halunnut
ohjelmoida jo ala-asteen kolmannella luokalla :-)
--> Forsberg Sakari kirjoitti viestissä <7mfa8g$hdk$1...@baker.cc.tut.fi>...
-->>Kaikki jotka ovat oppineet suomea puhumaan (vaikea kieli oppia),
-->>voi oppia ohjelmoimaan (helppo ja suppea kieli). Sama pätee
-->>muihinkin kieliin.
--> Niinhän sitä luulisi kun itse osaa. Olen yhdellä kurssilla missä
--> erikoistutaan ohjelmistotuotantoon. Suurin osa porukasta
--> ei tätä ennen edes tiennyt mitä ohjelmointi on.
No mikähän sen kurssin pituus on? Yhtä pitkä
aika, kuin missä oppii suomea? :-)
--> Kyllähän ne
--> syntaksia oppii ja muutaman funktionkin, mutta kun pitää
--> joku yksinkertainen laskin tehdä niin kaikilla menee sormi
--> suuhun kun ei muuttujiakaan osata käyttää hyväksi.
--> Tammikuusta lähtien tätä on ollut ja vieläkään ei porukka osaa.
Mitä suomenkielestä osasit puolen vuoden jälkeen? :-)
--> Itse olen porukan nuorin (20v.) ja vanhimmat kai nelikymppisiä :-)
--> Tietysti etuna on että olen jo aikoinani itse opiskellut ja halunnut
--> ohjelmoida jo ala-asteen kolmannella luokalla :-)
No itse asiassa se on hyvä ettei kaikkia kiinnosta ohjelmointi,
koska muutenhan tässä jäisi varmaankin työttömäksi.
11kk. Melkein yhtä pitkä ;-)
>--> Tammikuusta lähtien tätä on ollut ja vieläkään ei porukka osaa.
>Mitä suomenkielestä osasit puolen vuoden jälkeen? :-)
En varmaan mitään :-) mutta yleensäkkin ohjelmoinnin oppii
paljon nopeammin kuin jonkun puhutun kielen.
--> Forsberg Sakari kirjoitti viestissä <7mhcrt$39m$2...@baker.cc.tut.fi>...
-->>--> Tammikuusta lähtien tätä on ollut ja vieläkään ei porukka osaa.
-->>Mitä suomenkielestä osasit puolen vuoden jälkeen? :-)
--> En varmaan mitään :-) mutta yleensäkkin ohjelmoinnin oppii
--> paljon nopeammin kuin jonkun puhutun kielen.
Noniin, nyt olemme siinä pisteessä, mistä lähdettiinkin :-)
Forsberg Sakari wrote:
> Antti S Brax <a...@iki.fi> wrote:
> --> Nieminen Mika <wa...@cc.tut.fi> wrote in sfnet.atk.ohjelmointi:
> -->> Vaikka kaikki osaavat puhua suomea, vain harvat osaavat kirjoittaa
> -->> hyvää suomea (tarkoitan esimerkiksi kirjallisuutta, lehtiartikkeleita, jne).
>
> --> Kun ohjelmointiin verrataan, niin hyvä suomi ei edes riitä.
> --> Pitää osata kirjoittaa kieliopiltaan täydellistä kieltä ja
> --> pitää myös olla jotakin järkevää sanottavaa.
>
> No onneksi sentään useimmat kääntäjät alkavat vinoilemaan, jos sitä
> täydellistä kieltä ei heti synny.
Koska olen tänä aamuna hirvittävän humoristisella tuulella, ajattelin leikkiä
kääntäjää ja huomauttaa, että oikea syntaksi lienee "alkavat vinoilla"? ;-)
Simo
--> Koska olen tänä aamuna hirvittävän humoristisella tuulella, ajattelin leikkiä
--> kääntäjää ja huomauttaa, että oikea syntaksi lienee "alkavat vinoilla"? ;-)
Hmmm. Onneksi määkin, juuri postaillut vastauksia ihmiselle, joka
osti CD-R -levyjä, muttei saanut kansipapereita :-)
Siis tästä asiasta (alkaa/ruveta) oli kyllä puhetta äidinkielen tunneilla
yläasteella. Meniköhän se nyt sitten väärin.
kääntäjät alkavat vinoilemaan...
kääntajät rupeavat vinoilemaan...
kääntäjät alkavat vinoilla...
kääntäjät rupeavat vinoilla... HUONO
perhana, olisko se sittenkin ollut niin. No toivottavasti
kenenkään päivä ei mennyt pilalle moisesta.
Varsinainen "kääntäjä" vai onko sittenkin vinoilija ...
Miikka Kulmala wrote:
Katoppas http://www.microsoft.com/directx/developer/information/vb.asp
On Microsoft ehtinyt sua ennen ;-)
Jukka
> Taasen mikkisofta päkyttää sorsaa muutaman tuhannen koodaajan voimin
> (en tiedä todellista määrää) ja debuggaajia ja samat häiskät
> debuggaavat koodin SITTEN kun joku ohjelmasta MAKSANUT sen huomaa.
Kyllä niitä Mikrosoftin softiakin kuulema testataan, joskin joudut itse
maksamaan niistä beta versoistakin. Ihmettelen useita juttuja Windows95:ssä,
kuten modeemin tunistusta. Jostain syystä W95 löytää aina Agilerin
sarjahiireni, mutta luulee sitä USR:n modeemiksi. Sitä en tiedä miksi. Toden
näköisesti Windows huomaa että portissa on jotain, ja lykkää sinne n+1 AT
komentoa, ja jos muut ei toimi, päätellään että se on USR:n modeemi.
Lisäksi Windowsin koodia tehdään mm. USA:n vankiloissakin aika reippaalla
vauhdilla...
> Olenko kenenkään mielestä edes yhtään oikeilla jäljillä?
Kuten joten.
Dj
--
Endless the world's turn, endless the sun's spinning
Endless the quest;
I turn again, back to my own beginning,
And here, find rest.
>Lisäksi Windowsin koodia tehdään mm. USA:n vankiloissakin aika reippaalla
>vauhdilla...
Koen valaistumisen, tämähän selittää kaiken. Ihmekös tuo jos tulee bugista
softaa kun joku sähkötuolissa istuva psykopaatti koodaa kerneliä.
Aivan. Enää ei tarvitse ihmetellä koneen kaatumista, vaan se selittyy
seuraavalla dialogialla:
"En mää nyt vielä tule, kun mulla on koodaus kesken"
"tulethan"
"no mää otan tän ohjelman mukaan ja koodaan nää viimeiset hetket vielä"
"senkun"
tap tap tap tap...
"enää paria riviä..."
"myöhäistä"
Zap zap zap zzz ääärrg...
Kyllähän noita perusteluja on maailma pullollaan!
Oletkohan koskaan tullut ajatelleeksi, että on olemassa muitakin ohjelmia
kuin Windows 9x/NT/2000-ympäristössä "pyörähtäviä" käyttöliittymiä...
Kyllä sinun pitäisi tietää että on olemassa myös sulautettuja järjestelmiä
joissa ei kerta kaikkiaan voi "mässäillä" muistilla.
Samaan sarjaan voi laskea myös useat Windows CE-pohjaiset laitteet.
Niissäkään ei yleensä ole pohjattomasti resursseja käytettävissä...
Toinen esimerkki ovat esim. Windowsin laiteohjaimet (kernel-mode).
Pidän tätäkin ohjelmointina - jopa suhteellisen vaativana sellaisena, muttei
mieleeni aivan ensimmäiseksi tule ruveta komponenttien perään
haikailemaan...
Kuvitellaanpa, että pitäisi kirjoittaa ajuri vaikkapa 100 Mb
Ethernet-kortille...
Eiköhän kaikille ole täysin selvää, että tässä tapauksessa on parasta
"hoitaa hommat" mahdollisimman nopeasti ja ilman mitään turhia
"vitkutteluja"...
Näin menetellen jää koneelle aikaa muillekin tehtäville. (Korotetulla
IRQL:llä oltaessa Windowsin skeduleri on disabloituna, joten jos sinun
ajurisi "jyyrää" niin koko kone "jyyrää"!)
Eli eipä taida olla C-kielen voittanutta tässä tilanteessa!
("Sorsakoodi"-portattavuus + järkevä suorituskyky)
Riittävätkö perustelut?
En missään tapauksessa kyseenalaista komponenttiteknologioita.
Komponenttien käyttö on hyvinkin perusteltua esim. käyttöliittymiä
koodattaessa.
Mutta olisikohan aika pysähtyä hetkeksi miettimään omia asenteitasi?
Mitä oikeastaan on muuttunut?
Onko entisestä "Windows API -fanaatikosta" kehittynyt ainoastaan nykyinen
"Delphi-fanaatikko"?
(Tämä ei ole syytös! Minä ainoastaan kyseenalaistan muutaman kommenttisi.)
Voisiko sittenkin olla niin, että maailma ole pullollaan vähintäänkin
kohtuullisen hyviä ohjelmointikieliä ja -työkaluja?
Kenties näistä työkaluista voisi valita kulloiseenkin tilanteenseen
parhaiten sopivan, eikö?
Siis kokonaan ilman turhaa "fanatisointia" ja kilpailevien tuotteiden
mustamaalausta...
Mitä sitten Linux + Delphi yhdistelmään tulee?
Valitettavasti tilanne ei taida olla aivan niin hyvä kuin yrität vakuuttaa.
Linux ei nimittäin VALITETTAVASTI ole vielä valmis todella "kampittamaan"
Windowsia.
Perusteluna tälle oudolle väitteelle olkoon vaikkapa seuraava aritkkeli:
http://www.winntmag.com/Magazine/Article.cfm?ArticleID=5048
Sekä esim. seuraava Mindcraftin (siis EI Microsoftin) tekemä
suorituskykytesti:
http://www.mindcraft.com/whitepapers/first-nts4rhlinux.html
Toisaalta moni yritys kyseenalaistaa myös Delphin.
Miksi luottaa ainoastaan yhden yrityksen tukemaan tuotteeseen?
Varsinkin kun Borland on perinteisesti ollut viime aikoina aika lailla
"kuralla"...
(Pelastiko Inprise sitten Borlandin vai ei? Se nähdään tulevaisuudessa,
mutta tämä haiskahtaa monen henkilön mielestä varsin suurelta RISKILTÄ!)
Kerronko lopuksi vielä muutaman oman mielipiteeni?
Mielestäni Linux-porukka saisi nyt keskittyä turhan leuhkimisen, Microsoftin
mustamaalaamisen ja henkselien paukuttelun sijasta kehittämään Linuxista
vielä parempi tuote!
Minä todella toivon, että muutaman vuoden sisällä se voisi olla todellinen
uhka Windowsin valta-asemalle.
Korostan, etten tunnusta olevani mikään Windows-fanaatikko tai Microsoftin
puolestapuhuja.
Tutustuin ensimmäisen kerran Linuxiin vuonna 1994 mutta petyin...
Seuraavan kerran "tyyppäsin" Linuxia vuonna 1996 tai 1997... Kehitystä oli
tapahtunut huomattavasti, mutten edelleenkään ollut tyytyväinen...
Siitä huolimatta aion asentaa Linuxin jälleen kerran koneelleni
lähitulevaisuudessa.
Kenties se tällä kertaa "kolahtaa"...
- Timo -
PS. Tunnustan tutustuneeni niin Delphiin kuin Microsoftin
COM-teknologiaankin, mutta silti olen palannut "juurilleni" C/C++-kielen
pariin.
Jopa omasta vapaasta tahdostani!
Tällä hetkellä Windows NT:n ja Windows 2000:n "kernel-mode" on meikäläisen
"koti" - joku toinen saa tehdä käyttöliittymät y.m.s.
> Kyllä sinun pitäisi tietää että on olemassa myös sulautettuja järjestelmiä
> joissa ei kerta kaikkiaan voi "mässäillä" muistilla.
Onhan meilla tuossa toisessa pari kiloa ja toisessa 32 k.
> Toinen esimerkki ovat esim. Windowsin laiteohjaimet (kernel-mode).
> Pidän tätäkin ohjelmointina - jopa suhteellisen vaativana sellaisena, muttei
> mieleeni aivan ensimmäiseksi tule ruveta komponenttien perään
> haikailemaan...
Mutta sen opin peraan, jonka komponenttiohjelmoinnissa saa, kannattaa
haikailla. Eli riippumattomien ohjelmanosien komminikointi.
Ja tuotakin on tehty C:lla ja C++:lla, jos se sinut tekee iloiseksi.
Tosin nyt tekisin senkin mieluummin Delphilla.
Pascalin ja C:n valilla ei ole mitattavaa nopeuseroa.
Paitsi virheiden korjaamiseen menevassa ajassa...
> Kuvitellaanpa, että pitäisi kirjoittaa ajuri vaikkapa 100 Mb
> Ethernet-kortille...
Totta ihmeessa hommat silla tyokalulla, mika istuu kateen ja milla
homma hoituu. Ei ruohoakaan leikata motolla.
> Eli eipä taida olla C-kielen voittanutta tässä tilanteessa!
> ("Sorsakoodi"-portattavuus + järkevä suorituskyky)
Ala puhu portattavuudesta koodatessasi Wintoosan ytimeen...
> Riittävätkö perustelut?
Mihin? Siihenko etta uskon etta on olemassa muutakin kuin Delphi?
Vai siihenko etta uskon ettet ymmartanyt mita ajoin takaa. Sita
et nimittain ymmartanyt.
> Mutta olisikohan aika pysähtyä hetkeksi miettimään omia asenteitasi?
Kylla varmaan, koska opetan aloittelijoita C++:lla koodaamaan ja en
itse kayta sita juuri lainkaan...
> Onko entisestä "Windows API -fanaatikosta" kehittynyt ainoastaan nykyinen
> "Delphi-fanaatikko"?
En ole ikina ollut API-fanaatikko. Kyseenalaistin jo ensimmaisella
lukemisella esim. Petzoldin. Miksi kirjoittaa aina uudestaan
sama 90% koodista ja erityisesti miksi listata jokaiseen ohjelmaan
kirjassa aina tama sama toistuva osa. Saadaan sivuja (kylla Petzold
on hyva kirja, mutta kritiikiton). Kehittelinkin silloin makrokirjaston,
jossa se 90% oli muutamana makrokutsuna, jossa oli muutamia parametreja.
Ja VAIN se uusi osa kirjoitettiin itse. Vahan samanlaisilla
tapahtumankasittelijoilla kuin Delphissa tai VB:ssa.
Mutta kun Delphissa se kaikki oli sitten tehty paremmin, niin
miksen voi pitaa sita alarajana sovelluskehittimelle ja VCL:aa
kirjastolle. Esim. Javaan rakennetut jutut tuntuvat paljon
monimutkaisemmilta, syvallisesta olemuksesta en ole viela paassyt
perille, eli saako niilla sitten jotakin parempaa aikaiseksi.
Ja sita paitsi Pascal on kielena C:ta parempi ainakin aloittelijalle,
ja siitahan koko thredissa oli alunperin kyse. Javakin lienee
parempi kui C/C++ (mutta Perl ei, hih).
> Voisiko sittenkin olla niin, että maailma ole pullollaan vähintäänkin
> kohtuullisen hyviä ohjelmointikieliä ja -työkaluja?
Aloitetaan kohta uusi thredi Perlista, kunhan ehdin kirjoittaa...
Ja tervetuloa, meilla on syksylla seminaari aiheesta...
> Siis kokonaan ilman turhaa "fanatisointia" ja kilpailevien tuotteiden
> mustamaalausta...
Mitapa olen mustamaalannut?
> Valitettavasti tilanne ei taida olla aivan niin hyvä kuin yrität vakuuttaa.
> Linux ei nimittäin VALITETTAVASTI ole vielä valmis todella "kampittamaan"
> Windowsia.
Minulla ei ole talla hetkelle Linuxia mihinkaan omiin koneisiini asennettuna,
enka ole sen kummemmin Wintoosa kuin Linux-fanikaan. Minulle
kayttojarjestelma on alusta kaynnistaa ja pyorittaa ohjelmia.
Ja siihen tarvitaan ohjelmia. Talla hetkelle minun kayttooni
paremmat ohjelmat loytyvat Wintoosa-puolelta, mutta kannatan tervetta
kilpailua ja muista kuin Linuxista ei siihen talla hetkella ole...
Ja erityisesti vastustan perustettomia monopoleja ja puolustan
miellummin heikkoja...
> Toisaalta moni yritys kyseenalaistaa myös Delphin.
> Miksi luottaa ainoastaan yhden yrityksen tukemaan tuotteeseen?
> mutta tämä haiskahtaa monen henkilön mielestä varsin suurelta RISKILTÄ!)
Joo... Hyvin moni... Tyhmyytta vastaan jne...
1) Vaikka Delphin kehitys loppuisi tahan paikkaan, niin kuka tulee
ottamaan Delphi 4:n pois mun koneesta. Sen tietysti tiedan etta
M$ tekee kaikkensa, jotta se saisi seuraavaan kayttikseen jotakin, mika
tekee entisen koodin toimimattomaksi tai "vanhanaikaiseksi".
Mutta vaikeaa on tehda vipusia, jotka estavat vain Delphilla
tehdyt ohjelmat toimimasta. Eli nykyisella Delphin versiolla
voin koodata ihan hyvin ainakin seuraavat 5 vuotta.
2) Jos ohjelma syntyy 1/4 ajassa C++/standardi MFC -kamaan verrattuna,
niin esim. jos MFC-ohjelmaan menee 4 henkilovuotta, niin Delphilla
sama syntyy 1 vuodessa. Eli tuote on aikaisemmin markkinoilla.
Ja jaljella on 3 henkilovuotta kaytettavana sitten, kun se
Delphi-koodia on vanhanaikaista. Ja sen ajan kehitysvalineilla.
Eli jos mina olisin firman johtaja, niin en mitenkaan uskaltaisi
pitaytya vain M$:in kehitysvalineissa. En tieda paljonko on tutkittu
sita, miten paljon vanhaa koodia kannattaa kayttaa uudelleen.
Verrattuna siihen, etta kun vanha ohjelma on pohjana nayttamassa
mita tehdaan, niin kokonaan uuden ohjelman kirjoittaminen kay
aivan eri vauhdilla. Tosin esim. VTKK:lta tama ei onnistunut
Tekon-tapauksessa ainakaan.
> Minä todella toivon, että muutaman vuoden sisällä se voisi olla todellinen
> uhka Windowsin valta-asemalle.
WWW-palvelimissa kai se on ollut jo pitkaan...
Vesa
PS! Sen verran otan takaisin, etta ei esim. Delphi ratkaise
kaikkia ongelmia. Esim. viimeaikoina taalla ja s.a.o.a:ssa
kysytyista "Delphi"-kysymyksista monet ovat olleet luonteeltaan
sellaisia, jossa ensin koko asian yleisempi hahmottaminen on
jaanyt tekematta. Ja tama on taito, jota ei voi opettaa
kaikille.
Ohjelmointi taasen on helppoa kun sitä voi "luotettavasti" debugata ja
testata toisin kuin jollain oikolukialla joka ei pysty (tietenkään)
eroittamaan puuta kuusta.
Noh juu. Teimäs varmaan taas lukuisia virheitä, mutta en taaskaan löytänyt
ainuttakaan kun luin tämän tekstin...
Blaah... Olisikohan maata jossa puhuttaisiin perliä...
> >
> Forsberg Sakari wrote:
>
> > Antti S Brax <a...@iki.fi> wrote:
> > --> Nieminen Mika <wa...@cc.tut.fi> wrote in sfnet.atk.ohjelmointi:
> > -->> Vaikka kaikki osaavat puhua suomea, vain harvat osaavat kirjoittaa
> > -->> hyvää suomea (tarkoitan esimerkiksi kirjallisuutta, lehtiartikkeleita, jne).
> >
> > --> Kun ohjelmointiin verrataan, niin hyvä suomi ei edes riitä.
> > --> Pitää osata kirjoittaa kieliopiltaan täydellistä kieltä ja
> > --> pitää myös olla jotakin järkevää sanottavaa.
> >
> > No onneksi sentään useimmat kääntäjät alkavat vinoilemaan, jos sitä
> > täydellistä kieltä ei heti synny.
>
> Koska olen tänä aamuna hirvittävän humoristisella tuulella, ajattelin leikkiä
> kääntäjää ja huomauttaa, että oikea syntaksi lienee "alkavat vinoilla"? ;-)
>
> Simo
Eipäs nyt puhuta vb:stä :-)
Tarkoitin lähinnä bcb:tä tai delphiä.
: Niinhän sitä luulisi kun itse osaa. Olen yhdellä kurssilla missä
: erikoistutaan ohjelmistotuotantoon. Suurin osa porukasta
: ei tätä ennen edes tiennyt mitä ohjelmointi on.
Varsin mielenkiintoista.. erikoistutaan ohjelmistotuotantoon
ilman, että edes osataan ohjelmoinnin perusteita. Missä
tälläistä tapahtuu..?
Kurikassa :-) (tosin Seinäjoen akk:n järjestämä)
Minäkin vähän ihmettelen tätä touhua. Ensin opetellaan
c:n alkeita monta viikkoa ja sitten ruvetaankin tekemään
delphillä sovelluksia. Oikein hyvä kun jätetään vielä
pascalin syntaksi täysin pimentoon. Opettaja kaiketi oletti,
että kun kerran osataan tehdä hello world c:llä, niin osataan
myös pascalilla käsitellä tiedostoja ja structuureja.
Pascalin syntaksia ei siis tosiaankaan opetettu ollenkaan.
C:kin oli pelkästään vc++6.0:lla consoleapplicationeja.
Minä olen nähnyt kyseisen teoksen pari kertaa, koskaan en ole sitä
avannut. Silti kyllä mielestäni osaan ohjelmoida. Vai onko nuo patternit
jotenkin autuaaksitekeviä, ilman niitä ei voi Ohjelmoida Oikein? Jos ovat,
pitänee muistaa sitten tutustua myös antipattern-asiaan. Käsittääkseni on
aika monia paikkoja, joissa patternien mukaan tehdyt asiat menevätkin
pieleen (Älkää fleimatko, en todellakaan ole niin tarkasti tutustunut
asiaan, luin vain artikkelin antipatterneista).
Excel-makron nauhoittaminen ei IMHO ole ohjelmointia kuitenkaan. Silti
esimerkiksi laitteistoajurin, kompressorin, tilavuusmallinnussoftan tai
vaikkapa symbolisen laskimen tekeminen mielestäni on. Välittämättä siitä,
onko jotain patterneja käytetty vai ei.
Joku voisi nyt varmaankin kertoa mitä upeaa noissa patterneissa on. Ja
miksi ilman niitä ei ole Ohjelmointia?
PS. Miten Delphi vai VB liittyy visuaaliseen hötömölökoodaukseen? ;)
--
Sami Kuhmonen | sa...@iqs.fi | http://feenix.iqs.fi/
iQs Partners Finland | i...@iqs.fi | http://www.iqs.fi/
!!Webhotellit ilman avausmaksua!! | http://www.saitti.net/
* Tutustu verkkokauppaan! | http://kauppa.iqs.fi/ *
Tässä tietysti voidaan myös miettiä, onko talon rakentaminen valmiista
elementeistä talon rakentamista vai palasten kasaamista. Luovaa työtähän
se kuitenkin on, samoin kuin valmiista palikoista ohjelman kasaaminen.
Silti jos miettii ohjelmointi-termiä, käsitän sen itse hieman eri tavalla
kuin palikoiden lyömisestä kasaan.
Tietysti rajan vetäminen on vaikeaa. Jos on ohjelma, jossa käytetään
kymmentä palikkaa ja siinä on kirjoitettu kymmenen riviä koodia, onko se
ohjelmointia? Entä jos koodia on yksi rivi, tai tuhat? Pelkistä palikoista
rakentamalla tekemistä kutsuisin varmaankin ohjelman koostamiseksi. En
suoranaiseksi ohjelmoijaksi.
>Eli kuka tahansa oppii kyllä ohjelmoimaan jopa ihan näyttäviäkin
>sovelluksia, mutta tasoja joilla ohjelmointia osaan on ehkäpä nykyään
>useampia kuin entisaikaan. (vrt. komponenttien kirjoittajat vs. käyttäjät)
Sanoisin, että melkein kuka tahansa voi oppia _tekemään_ näyttäviäkin
ohjelmia. Eri asia on sitten onko se ohjelmointia. Mielestäni tietynlainen
ohjelmankehityksen eri tasojen eriyttäminen olisi hyväksi, eihän
palikoista rakentava _välttämättä_ todellakaan pärjää työssä, jossa pitää
'oikeasti' ohjelmoida jotain, ilman palikoita. Samoin päin vastoin. Ei
'oikeasti' ohjelmoivakaan välttämättä todellakaan osaa lätkiä palikoita
oikein.
Simo
Kannattaneisi ostaa fakta. Microsoftin betatestaajat eivät maksa mitään
tuotteiden betaversioista. Betaversiot tulevat kauniisti CDillä suoraan
kotiin jakelufirman kautta. Tai sitten ne voi hakea netistä, jos haluaa ja
on sopivat yhteydet.
Se, että Microsoft myy betaversiota käyttiksistä, ei liity tähän. Vai
oletko missannut esimerkiksi sen faktan, että 98:n betaversiossa
muistaakseni ilmoitettiin selkeästi, ettei bugiraportteja oteta vastaan
tavallisilta käyttäjiltä. En tiedä onko sama W2k:n betan kanssa. Nuo
myytävät betat on tarkoitettu esimerkiksi kehittäjille, jotka haluavat
testata tuotteitaan ennen uuden käyttiksen julkaisua. Tai tutustua uusiin
teknologioihin, ylläpitäjillekin on aika tärkeää päästä tutustumaan uusiin
ominaisuuksiin paljon ennen kuin se käyttis on kaikissa koneissa. Tällöin
muutaman satasen hinta ei meinaa mitään.
Mikä tahansa voi mennä pieleen, riippumatta siitä miten hyvät ohjeet
ja hyvät suunnitelmat on tehty, joku voi kuitenkin ymmärtää jotain
väärin.
>Joku voisi nyt varmaankin kertoa mitä upeaa noissa patterneissa on.
Ja
>miksi ilman niitä ei ole Ohjelmointia?
Ilman niitä ON ohjelmointia.
Se, mikä niissä on hyvää on se, että ne ovat eräänlaisia kaavoja joita
voi käyttää ohjelmoidessa (valmiit luokkakirjastot joihin vain
lisätään hieman omaa toiminnallisuutta, frameworkit, olioiden välinen
kommunikaatio - kaikissa näissä patterneilla on käyttöä) sekä ohjelman
lähdekoodeja lukiessaan ja ohjelman toimintaa tutkiessaan.
Patternien käytön suurimman edun huomasin itse kun opiskelin erään
järjestelmän "sielunelämää". Siellä täällä huomasin näitä patterneja
ja sen sijaan että minun olisi nyt pitänyt miettiä että mitä tämäkin
nyt oikeastaan tekee, patternin huomattuani minun tarvitsi tutkia vain
että mihin tätä käytetään - se, mitä ko. osan koodi tekee oli jo
patternin puolesta selvää.
Jos ohjelmaa on tekemässä useampi kuin yksi henkilö, patternien käytön
mielekkyys tulee esille myös siinä, että kun yksi tekee jonkin
komponentin tai muun osan ohjelmaan, muille tarvitsee vain kertoa että
tämä käyttää tätä ja tuota patternia ja se toimii näin. Se, miksi joku
on tehnyt asian jotenkin on kaikille nyt selvää ja jos jonkun muun
pitää muuttaa koodia, tämä tietää mitä voi tehdä ja mitä ei.
Yksinkertainen esimerkki: joku voisi luulla olevansa nokkela ja
muuttaa inline-koodiksi pari metodikutsua jotka eivät teekään mitään:
class foo
{
protected:
virtual int do( int x ) { return 0; }
virtual int is_ok( int x ) { return 0; }
public:
int bar( int x, int y )
{
if (is_ok( x ))
return do( y );
else
return 0;
}
};
Hän joka tunnistaa tässä template method-patternin, alkaa heti miettiä
mitä osia aliluokissa voi määritellä, mitä niiden pitää palauttaa ja
ottaa parametreina jne. Hän joka ei tunnista, ihmettelee miksi tuossa
on kaksi metodia jotka eivät tee mitään, eikö tuo bar() olisi ihan
sama näin:
void bar( int x, int y )
{
return 0;
}
ja mieluummin vielä ilman parametreja.
Monimutkaisempien patternien kanssa tilanne on vielä selvempi.
Jospa MS onkin käyttänyt laittomia keinoja (ei kai!) ja Billin sijaan
vankilaan on joutunut tavallisia rivikoodaajia. Koodia kuitenkin kun
osaavat vääntää niin työpaikkaa eivät ole menettäneet. :)
(Jatkot s.k.huumoriin, taas kerran)
>Lukekaapa:
> http://www.tietokone.fi/webkolumnit/kolumni.asp?id=327
>Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
>voi ( osaa? ) ohjelmoida.
Minä puolestani uskon maailmaan, jossa kuka tahansa osaa toimia lääkä-
rinä. Ongelmanahan tällaisen maailman saavuttamisessa on vain, että la-
tinankieliset termit ovat tavalliselle ihmiselle käsittämättömiä. Jos
ruumiinosista käyttäisiin niiden suomenkielisiä nimiä, niin kuka tahan-
sa voisi tällöin oppia lääkäreiden työssään tarvitsemat asiat. Hienolta
kuulostavan jargonin käyttö on vain statuksensa puolesta pelkäävien
asiantuntijagurujen salaliitto, jolla tavallisia ihmisiä estetään näke-
mästä, miten yksinkertaista lääketiede loppujen lopuksi on.
Lääketiede tai yleensäkin sairaan ihmisen parantaminen on useimmille
terveydestäänkin huolehtiville mystinen asia. Sydänleikkaus, etenkin
vaikeaselkoinen sellainen, saa maallikon yleensä esittämään suurta ihai-
lua ja vähintäänkin nero-tason arvosanoja lääkäriä kohtaan. Tosiasiassa
lääketieteelliset operaatiot kuten esimerkiksi laastarin laittaminen
sormeen tai pillerireseptin kirjoittaminen ovat normaalielämän työteh-
täviä huomattavasti suppeampia, helpompia oppia ja jopa helpompia käyt-
tää. Niistä ei vain anneta sellaista kuvaa.
Rajanveto lääketieteen ja usein ammattilaisten mielestä vähäpätöisem-
pien, lääketieteen kaltaisten toimenpiteiden välillä onkin mielenkiin-
toinen. Kyynisesti voisi väittää, että "oikea lääketiede" on haluttu
eriyttää muusta erikseen ihmisten ammatti-identiteetin ja osaamisalueen
varjelemiseksi. Oikeasta lääketieteestä voi myös pyytää enemmän palkkaa
ja kaikille kysyjille voi vastata vaikeampiselkoisesti, kun on oikea
asiantuntija. Vaikeaselkoisuus on ominaisuus, jota odotetaan oikealta
lääkäriltä ja sen puute tulkitaan usein merkiksi pätevyyden puutteesta.
Oikean lääketieteen raja-aitojen pystyttämisestä huolimatta aikaisemmin
ala-arvoisemmiksi koetut tavat ovat tulleet yhä keskeisemmäksi osaksi
terveydenhuollon arkipäivää: erilaiset laserveitset ja telekirurgia ovat
tulleet osaksi ammattilaisten työkalupakkia. Samalla työläät ja vaikeina
pidetyt työkalut, kuten skalpellit ja intubointipakkaukset ovat menettä-
neet merkitystään.
Suuntaus näyttäisi terveydenhoidossakin olevan yhä laajemman ja helpom-
man parannustekniikan leviämiseen. Työkalut, kielet ja oppaat ovat sekä
entistä helpompia että tarjonnaltaan parempia. Jotain jää silti vielä
uupumaan, nimittäin jo lääketiedettä harjoittavien ihmisten asenne. Ihmi-
set nimittäin oppivat parhaiten toisiltaan, eivätkä vain kirjoja lukemal-
la. Itse olen opettanut ja saanut opetusta diagnoositilanteessa muilta
ihmisiltä ja pidän näitä parhaina oppimiskokemuksina. Ikävä kyllä lähes-
kään kaikki eivät ole tähän valmiita, osa jopa pitää ylpeyden aiheenaan
alkavien lääkäreiden nolaamista ja haukkumista.
Negatiivinen suhtautuminen aloittelevien ponnistuksiin saa helposti aloit-
telijan luopumaan aikeistaan, myös lääketieteessä. Tämä on sääli, koska
kuka tahansa osaa toimia lääkärinä ja kuka tahansa voi oppia parantamaan
ihmisiä. Tämän on viime vuosikymmenen ihmisen ajattelun ja logiikan tutki-
mus osoittanut. Ajatus ei vain ole kantautunut kaikkien korviin.
Jos unohdamme hetkeksi lääketieteeseen liittyvät imago-arvostukset, olisi
jopa suotavaa että yhä useammasta kehittyisi asiantuntija myös lääketie-
teen osalta. Se tasoittaisi hieman tilannetta perinteisten sairaaloiden
ja yksityisten parantajien välillä. Tästä näkökulmasta asiansa osaavien
lääkäreiden tulisikin hieman tarkistaa toisinaan asennettaan aloittelijoi-
ta kohtaan ja miettiä haluaako uskoa maailmaan, jossa kuka tahansa voi
toimia lääkärinä. Minä uskon. Uskotko sinä?
--
http://www.cs.tut.fi/~imk
"Whenever I see an old lady slip and fall on a wet sidewalk, my first
instinct is to laugh. But then I think, what if I was an ant, and she
fell on me. Then it wouldn't seem quite so funny." --- Jack Handy
<GoFin kirjasta>
> Minä olen nähnyt kyseisen teoksen pari kertaa, koskaan en ole sitä
> avannut. Silti kyllä mielestäni osaan ohjelmoida. Vai onko nuo patternit
> jotenkin autuaaksitekeviä, ilman niitä ei voi Ohjelmoida Oikein? Jos ovat,
Kyllä ne aika autuaaksi tekevät. Suunnittelumallit (onko muuta
suomennosta?) tuottavat ainakin seuraavaa iloa:
1. Niissä on kuvattu määrätyllä tavalla (Pattern Language) jokin ongelma
ja sen ratkaisu. Esimerkki olkoon Facade, jolla jemmataan
monimutkainen toiminnallisuus yhden rajapinnan avulla. Toinen
klassikko on Pipes and Filters, joka on ideana tuttu ainakin kaikille
Unixin kanssa puuhastelleille.
2. Ne tehostavat kommunikointia ja dokumentointia: Suunnitteluryhmä
näkee ensimmäistä kertaa vaatimusmäärittelyn. Miehet lukevat
johdantoa minuutin, katsahtavat toisiinsa, ja sanovat yhtä aikaa:
"äMVeeCee". Been there.
Suhtautuisin varauksella mallien käyttöön opetusmenetelmänä.
Minuun nuo kolahtivat kun kirjaa tavaillessani havaitsin joidenkin
ylpeydenaiheideni olevan suorastaan klassikkoja :)
3. Ne kokoavat suuren määrän kokemusta tiiviisti. Ralph Johnson kävi
pari viikkoa takaperin Helsingissä, ja kertoi mm. tuon kirjan
synnystä. GoFin (Gang of Four, Design Patternsin kirjoittajat)
jäsenillä oli hemmetisti olio-ohjelmointikokemusta. Mukaan otettiin
ne mallit, jotka olivat ennestään kaikille tuttuja. Kirja sisältää
vain monesti koeteltuja hyviä ratkaisuja. Idea on lähes aina tuottaa
muutosta kestäviä ratkaisuja käyttämällä harkiten perintää ja
koosteisuutta.
Design Patternit eivät aina ole ohjelmointikielestä riippumattomia,
GoFin kirjan esimerkit ovat C++:lla. Kaveriksi kirjalle on kirjoitettu
'Smalltalk companion', ja osa malleista on otettu Javaan mukaan jo
kielen kirjastoihin (esim. Observer löytyy sekä
java.util.Observer-luokkana että AWT:n eventtimallista).
Suunnittelumalleista osa on melko kiinteästi olio-ohjelmoinnissa kiinni,
mutta useimmat periaatteet pätevät ainakin proseduraalisella puolella.
Lispistä ja kumppaneista en uskalla sanoa mitään.
AntiPatterneista. Brownin ja kumppaneiden kirja kuvaa olemassaolevia
ongelmia, ja tapoja päästä niistä eroon joutumatta tuhoon, ei niinkään
suunnittelumallien aiheuttamia ongelmia. Käsite 'AntiPattern' voi kyllä
olla paljon kuormitetumpi, kuin mitä minä tiedän.
Laitan nyt vain yhden viitteen:
http://hillside.net/patterns/
--
Mä oon matkalla sinne missä
-a...@iki.fi - http://iki.fi/as/
Tätä minä en koskaan ole kyseenalaistanut.
> Ja tuotakin on tehty C:lla ja C++:lla, jos se sinut tekee iloiseksi.
Ja tehdään edelleen päivittäin...
Eikä tuo tieto minun mielialaani millään tavalla muuttanut.
> > Eli eipä taida olla C-kielen voittanutta tässä tilanteessa!
> > ("Sorsakoodi"-portattavuus + järkevä suorituskyky)
> Ala puhu portattavuudesta koodatessasi Wintoosan ytimeen...
Äläkä sinä rupea väittämään, etteikö sama C-koodi (oikein kirjoitettu
sellainen) kääntyisi sellaisenaan niin "Pena" kuin "Alpha"-ympäristöönkin.
En minä sitä UNIX:iin ollut porttaamassakaan!
>
> > Riittävätkö perustelut?
> Mihin? Siihenko etta uskon etta on olemassa muutakin kuin Delphi?
> Vai siihenko etta uskon ettet ymmartanyt mita ajoin takaa. Sita
> et nimittain ymmartanyt.
Yllätys, yllätys!
Minäpä kuule uskoisin että ymmärsin aika hyvin mitä halusit sanoa.
Miten muuten voit tietää mitä minä ymmärrän ja mitä en?
Käsittääkseni emme ole koskaan edes tavanneet kasvotusten?
Ja se seikka, olenko liian tyhmä ymmärtämään selvää suomen kieltä on
kokonaan toisen foorumin aihe.
Alkuperäinen kysymys lienee ollut, miksi Delphi-komponentteja ei mielestäni
voi käyttää joka tilanteessa...
...eli jos vastaukseni ei tyydyttänyt - ei voi mitään.
Katsoin kuitenkin oikeudekseni esittää omana, henkilökohtaisena
mielipiteenäni että työkalut tulee ensisijaisesti valita tarpeen mukaan, ei
millään tunnepohjaisilla menetelmillä.
Jotenkin minusta tuntuu, ettet itse ymmärtänyt - tai halunnut ymärtää - mitä
minä ajoin takaa.
>
> > Onko entisestä "Windows API -fanaatikosta" kehittynyt ainoastaan
nykyinen
> > "Delphi-fanaatikko"?
> En ole ikina ollut API-fanaatikko. Kyseenalaistin jo ensimmaisella
> lukemisella esim. Petzoldin. Miksi kirjoittaa aina uudestaan
> sama 90% koodista ja erityisesti miksi listata jokaiseen ohjelmaan
> kirjassa aina tama sama toistuva osa. Saadaan sivuja (kylla Petzold
> on hyva kirja, mutta kritiikiton). Kehittelinkin silloin makrokirjaston,
> jossa se 90% oli muutamana makrokutsuna, jossa oli muutamia parametreja.
> Ja VAIN se uusi osa kirjoitettiin itse. Vahan samanlaisilla
> tapahtumankasittelijoilla kuin Delphissa tai VB:ssa.
> Mutta kun Delphissa se kaikki oli sitten tehty paremmin, niin
> miksen voi pitaa sita alarajana sovelluskehittimelle ja VCL:aa
> kirjastolle. Esim. Javaan rakennetut jutut tuntuvat paljon
> monimutkaisemmilta, syvallisesta olemuksesta en ole viela paassyt
> perille, eli saako niilla sitten jotakin parempaa aikaiseksi.
> Ja sita paitsi Pascal on kielena C:ta parempi ainakin aloittelijalle,
> ja siitahan koko thredissa oli alunperin kyse.
>
Pascalilla minäkin olen aloittanut.
Ja olen minä sattumalta tutustunut sinunkin kirjallisiin tuotoksiisi...
>
> Mitapa olen mustamaalannut?
Et mitään - edellisessä kirjoituksessasi - mutta tämä olikin yleisempää
kritiikkiä...
Ei tarkoitettu pelkästään sinulle.
> paremmat ohjelmat loytyvat Wintoosa-puolelta, mutta kannatan tervetta
> kilpailua ja muista kuin Linuxista ei siihen talla hetkella ole...
> Ja erityisesti vastustan perustettomia monopoleja ja puolustan
> miellummin heikkoja...
>
Kuin myös.
> > Toisaalta moni yritys kyseenalaistaa myös Delphin.
> > Miksi luottaa ainoastaan yhden yrityksen tukemaan tuotteeseen?
> > mutta tämä haiskahtaa monen henkilön mielestä varsin suurelta RISKILTÄ!)
> Joo... Hyvin moni... Tyhmyytta vastaan jne...
Kuka tässä on tyhmyydestä ketään syyttänyt?
Jotkut käyttää Delphiä - toiset taas ei.
Kyse ei ole välttämättä lainkaan tyhmyydestä/viisaudesta.
> Vesa
>
> PS! Sen verran otan takaisin, etta ei esim. Delphi ratkaise
> kaikkia ongelmia.
Hyvä! Sittenhän me taidamme olla aika monesta asiasta hyvinkin samaa mieltä.
- Timo -
PS. En aio jatkaa tätä keskustelua tämän pidemmälle.
Juupas-eipäs -jankutus ei nimittäin ole meikäläisen laji.
Tavallaan kävi jo kaduttamaan että tuli ensinkään kommentoitua...
Heitäpä tänne ryhmään se sulla jo oleva lähdekoodi,
niin katsotaan minkä olisi voinut tehdä paremmin.
--
main(C,f,s){for(/** gcc sig.c;a.out>/dev/audio ## http://iki.fi/bisqwit/ **/
write(C=0,"(C)Bisqwit\n",11);f=99;++C){for(s="+%7%+%7%5%4%2%457%0%0%754%2%+"
"%%%5%542%457%0%0%042%2#+%!#0%+%$%%%"[C&63];s--;f=f*89/84);for(s=999+99*(C&2
);--s;putchar(((s*(f-776?f:0)&32767)*s/199999+39-(C&2?rand()%s/24:0))/16));}}
Kiitoksia selvityksestä ja linkistä, tutustunen heti kun aikaa löytyy.
Kiitos myös Jani Miettiselle selityksestä.
Luettu. Hyvä kolumni.
> Itse en jaksa uskoa maailmaan, jossa _kuka tahansa_
> voi ( osaa? ) ohjelmoida.
Ei sellainen maailma olekaan mahdollinen lyhyellä aikavälillä.
Ei kuitenkaan pidä sulkea pois mahdollisuutta, että joskus
tulevaisuudessa päätetään ohjelmointitaitojen olevan kansallisen
menestymisen kannalta niin keskeisiä, että poliittisella päätöksellä
tehdään jo peruskoulujen opetukseen tilaa ohjelmoinnille.
--
Kari Heinonen / Veikko Heinonen Oy
Viikonloppuja itse kullekin,
Simo
Kari Heinonen <kari.h...@pp1.inet.fi> wrote:
> tulevaisuudessa päätetään ohjelmointitaitojen olevan kansallisen
> menestymisen kannalta niin keskeisiä, että poliittisella päätöksellä
> tehdään jo peruskoulujen opetukseen tilaa ohjelmoinnille.
Mitä, ettekö te ohjelmoineetkaan yläasteella, kysyy nimimerkki
comal & logo rulez! (Ja 256 kilotavun Compis rulettaa myös...)
Mitä nykyään kuuluu yläasteen viralliseen atk:n opetusohjelmaan?
Mitä yläasteilla oikeasti opetetaan? Entä lukiossa?
--
= = = = Jori Mäntysalo - jm5...@uta.fi = = = =
-"Herrasmies ei puhu tuollaisia." -"Minä olenkin teekkari!" --MP
[ Moderoijat tavoittaa osoitteesta saom-...@cc.jyu.fi ]
[ Ryhmän säännöt: http://www.iki.fi/gaia/saom/saannot.html ]
[ Ryhmän FAQ: http://www.iki.fi/gaia/faq/sao-faq.html ]
Kai sen on enemmän kääntäjästä kiinni? Ja muutenkin ihmiset pitää Pascalia
hitaana kielenä, johtuen varmaan siitä että ne ovat joutuneet leikkimään
hitailla koneilla sen kanssa.
> Paitsi virheiden korjaamiseen menevassa ajassa...
Jep. C-koodista korjaa virheet nopeammin kuin Pascalista. Tosin
Pascal-koodari on toista mieletä, tietysti.
Pascalin pahin vika on mielestäni se, ettei sille löydy kääntäjiä eri
ympäristöihin. C kääntäjä löytyy melkein poikkeuksetta.
> Ala puhu portattavuudesta koodatessasi Wintoosan ytimeen...
Riippuen siitä miten koodaa, voi saada jonkinlaista portattavutta tuossakin
aikaiseksi, tosin koodita tulee _hidasta_.
> Ja sita paitsi Pascal on kielena C:ta parempi ainakin aloittelijalle,
> ja siitahan koko thredissa oli alunperin kyse. Javakin lienee
> parempi kui C/C++ (mutta Perl ei, hih).
Miksi Pascal on parempi aloittelijalle? Yritin pitkään oppia Pascalin juuri
sen takia kun näin tuota väitettä kaikkialla, en oikein oppinut. C:tä opin
yllättävän nopeasti.
Dj
--
Endless the world's turn, endless the sun's spinning
Endless the quest;
I turn again, back to my own beginning,
And here, find rest.
>> Pascalin ja C:n valilla ei ole mitattavaa nopeuseroa.
> Kai sen on enemmän kääntäjästä kiinni? Ja muutenkin ihmiset pitää Pascalia
> hitaana kielenä, johtuen varmaan siitä että ne ovat joutuneet leikkimään
> hitailla koneilla sen kanssa.
Pascal-kääntäjässä olen nähnyt taulukon rajojen tarkistusvivun. Olen
kuullut, että jokin kääntäjä olisi tehnyt koodista
for i:=1 to 1000 do a[i]=0;
konekoodia, jossa indeksin oleminen sallitulla välillä olisi tarkistettu
tuhat kertaa, ja joku toinen kääntäjä olisi tehnyt tuollaisen
tarkistuksen vain silmukan ala- ja ylä-arvoille, ja että väite
hitaudesta olisi tullut ensimmainitusta kääntäjästä. Joku viisaampi
voinee vahvistaa/kumota tämän.
>> Paitsi virheiden korjaamiseen menevassa ajassa...
> Jep. C-koodista korjaa virheet nopeammin kuin Pascalista.
Niin varmaan...
> Pascalin pahin vika on mielestäni se, ettei sille löydy kääntäjiä eri
> ympäristöihin. C kääntäjä löytyy melkein poikkeuksetta.
Totta. Pitää käyttää enemmän pascalia, että sille tehtäisiin
enemmän kääntäjiä. Miten paljon pascal-to-c -käännös muuten
hidastaa lopullista koodia? (Siis p2c:llä tai vastaavalla ohjelmalla
tehty käännös.)
>> Ja sita paitsi Pascal on kielena C:ta parempi ainakin aloittelijalle,
> Miksi Pascal on parempi aloittelijalle?
int x=-5,8; // Mikä tulee x:n arvoksi?
Siirtynemme jossain vaiheessa .sotiin... toistaiseksi ohjasin
jatkot .moderoituun.
No mitahan nyt akkia tulisi mieleen:
1) C:n merkkijonot ovat kelvottomia, tosin niin on "std"-Pascalinkin.
Delphin Object Pascalissa taas merkkijonot ovat kuten pitaakin
(kuten Basiceissa on ollut lahes aina :-)
Ei erikseen mitaan pelleilya string ja stringbuffer-kanssa kuten
Javassa (ja Pythonissa)
2) Pascalissa helpompi parametrin valitys.
procedure swap(var a,b:integer);
var t:integer;
begin
t := a; a := b; b := t;
end;
kutsu: vaihda(a,b);
void swap(int *a, int *b)
{
int t;
t = *a; *a = *b; *b = t;
}
kutsu: vaihda(&a,&b);
void swap(int &a, int &b)
{
int t;
t = a; a = b; b = t;
}
kutsu: vaihda(a,b);
Eli tuossa C++ parantaa tilannetta.
Tassa suhteessa esim. Perl on minusta katastrofi!
3) Pascalissa ei turhan takia mitaan sijoitus palauttaa arvon juttuja.
if ( a = b ) ...
4) Pascalissa tiukempi tyypitys.
Minusta kohtuullinen kompromissi on kirjoittaa C++:lla kuten Pascalilla
(referenssi parametrit, merkkijonot) ja silla tavalla meilla aloitetaan
opetuskin talla hetkella ("lasten" C++).
Mutta pitkalle erot ovat "merkinnallisia", kuten Delphi vs. C++ Builder
osoittaa, eli ei tasta asiasta .sotiin asti tarvitse lahtea.
Vesa
1) Pascalista ei ole standardia :-(
2) Pascalissa ei voi olla staattisia (arvonsa säilyttäviä)
muuttujia siten, että ne näkyisivät vain yhdelle funktiolle
(tai vaikka tietylle ryhmälle). Ne pitää aina määritellä
globaaleiksi.
3) Pascalissa muuttujia ei voi alustaa -> pitää olla sata
funktiota, joita kutsutaan alustamaan muuttujien arvot.
(Eihän niitä voi samaan paikkaan päärutiinin alkuun
laittaa kun sitten ei olisi sitä vähääkään moduuliajatusta.)
Pascal soveltuu jossain määrin opetukseen, johon se on alunperin
syntynyt (ja ilmeisesti nimenomaan syntynyt, ei tehty), mutta
siinä on paljon ongelmia, jotka unohdetaan kun halutaan vain
verrata niitä C:ssä pieleen menneitä kohtia..
-Pasi
(Nimim. pascal-kääntäjän sparcille kirjoittanut)
--
"What is he? And what was on that data crystal he gave you?"
"Reflection. Surprise. Terror. For the future."
-- Talia Winters and Kosh in Babylon 5:"Deathwalker"
Tietääkseni on, mutta se on
sellaisenaan melko käyttökelvoton.
> 2) Pascalissa ei voi olla staattisia (arvonsa säilyttäviä)
> muuttujia siten, että ne näkyisivät vain yhdelle funktiolle
> (tai vaikka tietylle ryhmälle). Ne pitää aina määritellä
> globaaleiksi.
Turbo Pascalissa kuitenkin:
Procedure dah;
Const i: Integer = 5;
Begin
Inc(i);
WriteLn(i);
End;
Vastaa c:ssä tätä:
static void dah(void)
{
static int i = 5;
printf("%d\n", ++i);
}
> 3) Pascalissa muuttujia ei voi alustaa -> pitää olla sata
> funktiota, joita kutsutaan alustamaan muuttujien arvot.
> (Eihän niitä voi samaan paikkaan päärutiinin alkuun
> laittaa kun sitten ei olisi sitä vähääkään moduuliajatusta.)
Liekö tämäkin Turbo Pascal -laajennus:
Const
b: Word = 5;
a: Array[1..5]Of Real = (0.1, 0.2, 0.3, 0.4, 0.5);
c: Array['a'..'c']Of Record x,y: Integer End =
((x:1,y:2), (x:3,y:4), (x:5,y:6));
> Pascal soveltuu jossain määrin opetukseen, johon se on alunperin
> syntynyt (ja ilmeisesti nimenomaan syntynyt, ei tehty), mutta
> siinä on paljon ongelmia, jotka unohdetaan kun halutaan vain
> verrata niitä C:ssä pieleen menneitä kohtia..
Niinpä.
Borland/Turbo Pascalilla kyllä jo voi saada kaikenlaista
aikaan, ja Delphi on jo kerrassaan edistyksellinen.
Itse kuitenkin pidän eniten C:n syntaksista juuri
sen näppäryyden suhteen (yhdellä lauseella voi saada
aikaan paljon, olematta pakotettu epäselkeyteen
(signatureni ei ole kuitenkaan tämän todiste)).
Pascalissa kaikki pitää tehdä yksittäisilllä komennoilla,
tosin siinä on tiettyjä tilanteita jolloin puolipiste
ei ole pakollinen.
> -Pasi
> (Nimim. pascal-kääntäjän sparcille kirjoittanut)
Aika hyvin.
> 1) Pascalista ei ole standardia :-(
Kyllä on: <http://www.employees.org/~samiam/pascal.html>.
--
Protect the freedom of innovation: http://www.freepatents.org
Tiedä häntä. Kuka tahansa voi kirjoittaa "virheetöntä" koodia, joka
menee kääntäjästä läpi ja näyttäisi jopa toimivan. Eri asia kuitenkin on,
onko se hyvää koodia, eli hyvien ohjelmointitapojen mukaista, helposti
muokattava ja kehitettävä, jne.
Esimerkiksi jos vuoden 2000 takia joutuu käymään läpi kymmenen miljoonaa
koodiriviä ohjelman korjaamiseksi sen sijaan, että tarvitsee tehdä muutoksia
vain muutamalle riville, kyseessä on ohjelma, joka on tehty huonosti. On
hassua, että useimmat näistä ohjelmista on nk. "ammattilaisten" tekemiä...
Jos ohjelma on hyvin tehty (modulaarisesti jne), ja sitten havaitaan että
oho, meillähän on vuosi 2000-ongelma kun me tallennamme vuosiluvun vain
kahdella numerolla, niin sitten muutetaan ne muutama kymmenen riviä koodia,
jotka käsittelevät päivämääriä niin, että ne käsittelevätkin ne neljällä
numerolla ja asia on sillä selvä (toki pitää vielä muuttaa tietokannat
uuteen muotoon, mutta semmoisen konvertterin kirjoittaa kuka tahansa
muutamassa minuutissa).
Ja kaikki ei siltikään välttämättä koskaan opi ohjelmoimaan kunnolla edes
aloittelijatasolla. Ohjelmointikieli ja puhekieli ovat loppujen lopuksi
aika lailla eri asioita. Puhekielessä ei esimerkiksi pahemmin ole silmukoita,
muuttujia, tietorakenteita, jne.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
> Kyllä ne aika autuaaksi tekevät. Suunnittelumallit (onko muuta
> suomennosta?) tuottavat ainakin seuraavaa iloa:
Hahmot :-)
Joni
--
Joni Niemi | Prediction is difficult,
Joni....@iki.fi | especially of the future.
http://www.iki.fi/joni/ | - Niels Bohr -
> edes aloittelijatasolla. Ohjelmointikieli ja puhekieli ovat loppujen
> lopuksi aika lailla eri asioita. Puhekielessä ei esimerkiksi pahemmin
> ole silmukoita, muuttujia, tietorakenteita, jne.
Tarkemmin kun miettii niin ...
Sanat tai substantiivit voisivat olla kielen muuttujia, koska niihin on
"talletettu" jokin merkitys. Lauseet ja niiden sanajärjestykset
lienevät eräänlaisia (tieto)rakenteita. Silmukoita ei välttämättä ole
löydettävissä kuin ehkä ns. "lakimiestekstistä" tai savon murteesta :)
--
Iso-J
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.
>Sanat tai substantiivit voisivat olla kielen muuttujia, koska niihin on
>"talletettu" jokin merkitys. Lauseet ja niiden sanajärjestykset
>lienevät eräänlaisia (tieto)rakenteita. Silmukoita ei välttämättä ole
>löydettävissä kuin ehkä ns. "lakimiestekstistä" tai savon murteesta :)
Markku
Nope. Ne ovat vakioita, koska niiden "sisältö" ei muutu.
En keksi puhekielessä mitään muuttujaa vastaavaa asiaa. Ainoat asiat, jotka
jotenkin liittyvät niihin (tyyliin "laske 2 plus 2 ja kerro tulos sitten
neljällä") eivät varsinaisesti liity puhekieleen, vaan korkeamman tason
abstraktioon (kuten matematiikkaan).
: Lauseet ja niiden sanajärjestykset
: lienevät eräänlaisia (tieto)rakenteita.
Ei ihan. Puhekielen lauseet vastaavat ohjelmointikielen lauseita. Eivät
ne sisällä (mahdollisesti muuttuvaa) informaatiota. Jotkut listat ja
taulukot ovat sitten eri asia. Ne eivät tosin ole puhekieltä (paitsi
tietenkin jos luetellaan joukko asioita).
Sanan "sisältö" nimenomaan on kulttuurisidonnainen ja voi myös ajan
mittaan muuttua (vaikka itse sana ei muutu). Itä-Suomessa esimerkiksi ei
aina ymmärretä miten lännempänä voidaan syödä itikoita. Sitä paitsi,
jokainen lukija tai kuulija tulkitsee sanat omalla tavallaan, josta ei
voi muilla olla täyttä varmuutta.
> En keksi puhekielessä mitään muuttujaa vastaavaa asiaa.
Lähinnä tulee mieleen jokin "keitä seosta kunnes väri muuttuu
ruskeaksi. Lisää seokseen 3 dl appelsiinimehua..." Tuossa
'seos' muistuttaa jollain tapaa ohjelmointikielen muuttujaa.
--
= = = = Jori Mäntysalo - jm5...@uta.fi = = = =
- "Miksi tämä sota pitää aloittaa uudelleen joka toinen päivä?"
- "Koska en ehdi joka päivä." - sfnet.atk.sodat
Nieminen Mika 1999-07-26T08:10:44Z:
NM> is...@hotmail.com wrote:
NM> : Sanat tai substantiivit voisivat olla kielen muuttujia, koska
NM> : niihin on "talletettu" jokin merkitys.
NM> Nope. Ne ovat vakioita, koska niiden "sisältö" ei muutu.
Hmm... Ei ehkä kovin nopeasti, mutta toisaalta niiden "sisältö" on
monitulkintaista ja mahdotonta määritellä täsmällisesti.
NM> En keksi puhekielessä mitään muuttujaa vastaavaa asiaa.
Tuohan on selvä henkilödeiksis-esimerkkilause! Ts. "en" (="_minä_ en")
on tavallaan muuttuja, jonka "arvo" riippuu siitä, kuka sen sanoo.
NM> Puhekielen lauseet vastaavat ohjelmointikielen lauseita. Eivät ne
NM> sisällä (mahdollisesti muuttuvaa) informaatiota.
?? Siis luonnollisen kielen lauseet eivät sisällä informaatiota??
Joka tapauksessa tällainen vertailu (ilmeisesti proseduraalisen)
ohjelmointikielen ja luonnollisen kielen välillä vaikuttaa hieman
ontuvalta.
--
Janne Rinta-Mänty
> > Nope. Ne ovat vakioita, koska niiden "sisältö" ei muutu.
>
> Sanan "sisältö" nimenomaan on kulttuurisidonnainen ja voi myös ajan
> mittaan muuttua (vaikka itse sana ei muutu).
Tietysti voin vain arvailla, mitä alkuperäinen kirjoittaja on
tarkoittanut. Minusta kuitenkin sanat ovat vakioita, koska niiden
"sisältöä" ei voi muuttaa. Tai siis niiden sisältö ei muutu "ajon" eli
ohjelman suorituksen aikana.
--
Juha Autero Helsinki University of Technology
http://www.iki.fi/jautero Computer Science
Eschew obscurity!
Niin... nyt pistit pahan (oletan, että kyse tässäkin on luonnollisesta
kielestä). Minä en aivotutkimuksesta niin paljoa tiedä, että voisin
ottaa kantaa sanan sisällön muuttumiseen "ajon" aikana. Luin tuon
lauseen joku minuutti sitten ja "ajan" sitä edelleen (aivon itse ajon
aikana luomissa aliohjelmissa?)... muiden prosessien ohella tietysti...
Jos ajolla tarkoitetaan vain sanan lukemista/kuulemista, niin ei kai se
siinä muutu, mutta ei kai myöskään ilman sitä.