Miten tehdä ohjelma?

pöllöli

Moikka.

Eli aloitan datanomiopinnot ensi kuussa. Muuten opiskelen itse, mutta koulussa tulisi tehdä pienimuotoinen ohjelma. Mitäköhän meinaa pienimuotoinen? Olen asiakasrekisteriä suunnitellut, mutta se taitaa olla liian laaja.

Ilmeisesti kielellä ja ohjelmalla ei ole väliä.

Millä olisi siis helpoin näitä väsäillä, ilmainen siis?

Koululla on tähän pari kurssia mutta töiden takia voi olla, etten pääse aina tunnille.

Miten te muut olette ohjelmoinnin opettelun aloittaneet?

Googlesta löytyy miljoona ohjelmaa ja neuvoa mutta en tiedä mihin niistä nyt luottaisi. En siis ole ikinä mitään ohjelmoinut, että puhukaa suomea. =)

48

3191

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • osallistua

      >...voi olla, etten pääse aina tunnille.

      Kun asia tuntuu olevan noinkin hukassa, suosittelen lämpimästi sille kurssille osallistumista. ;)

      • pöllöli

        Töissä 8-18 ja hoitaa kahta firmaa lähes yksin niin 16.00 alkavall kurssille on aika mahoton välillä mennä.

        Kaippa perus nakkikiska esimerkki kelpaa.

        Minulla on 5 euroa, maksaa 3euroa, 2euroa takaisin..


    • The Rat

      Kysymällähän se selviää, mutta jos minä vetäisin tuota kurssia, niin "normaalit" ohjelman rakenteet tulisi löytyä:
      - Käyttöliittymä
      - Bisneslogiikka
      - Tietovarasto

      Itse toteuttaisin tuon varmaan html scriptikieli access -kanta -ratkaisuna, jos siis ei oikeasti tarvitsisi kovin monimutkaista tehdä. Huonona puolena tietysti se, että pitää opetella html, se scriptikieli ja perus SQL...

      Voihan tietysti olla, että nakkikioskisofta riittää. Lukion ATK-kurssi vuonna 1995 olisi mennyt sellaisella läpi todennäköisesti... :)

    • "Ilmeisesti kielellä ja ohjelmalla ei ole väliä."

      Kyllä on. Myös käyttöjärjestelmällä voi olla väliä.

      "Millä olisi siis helpoin näitä väsäillä, ilmainen siis?"

      Kaikkihan ne melkein nykyään on ilmaisia.

      "Miten te muut olette ohjelmoinnin opettelun aloittaneet?"

      Opettelin ensiksi basicin kun tietokoneen käyttöohjeissa oli siihen oppaat. Tämän jälkeen kiinnosti saada lisää vauhtia niihin ohjelmiin (koneessa oli 1MHz prosessori) niin opettelin kyseisen prosessorin konekielen. Sitten hankin uuden koneen ja opettelin C-kielen ja Visual Basicin. Toki myös uuden koneen konekielen. Delphiäkin kokeilin. Olio-ohjelmoinnissa koin valaistuksen ja tajusin, että näin niitä ohjelmia tehdään ja tuli opeteltua C ja Java. Toki olin jo tässä vaiheessa opetellut HTML:n kaltaiset itsestäänselvyydet. Myöhemmin sitten olen opetellut tietokantoja ja leikkinyt eri kielillä nyt viimeisimpänä olen ohjelmoinnut PHP:llä, mikä tuntuu olevan erittäin hyvin toimiva ratkaisu pienimuotoisiin web-sovelluksiin.

      Itse suosittelisin opettelemaan ohjelmoinnin perusteet vaikka Pythonilla, sitten opettelet WWW:stä sen HTML CSS:n. Softan teet sitten joko PHP:llä tai sillä Pythonilla web-sovelluksena.

      Opeteltaviin asioihin kuuluisi se joku scriptikieli, SQL kyselykieli, HTML ja CSS ja sitten opettelet vielä työympäristön pystytyksen. Joku webserver kuten Apache pystyyn mistä sitten ajelet.

      Eli tässä olisi Pythonin kotisivut:

      http://www.python.org/

      Tee sillä joku Hello World, silmukka, ehto ja taulukko.

      Seuraavaksi teet jotain kotisivuja HTML CSS:llä, tässä olisi speksit:

      http://www.w3.org/TR/1999/REC-html401-19991224/
      http://www.w3.org/TR/CSS21/

      Seuraavaksi opettele vaikka se PHP ellei Python tunnu kivalta:

      http://www.php.net/

      SQL kyselykielestä voi lukea esimerkiksi tästä:

      http://en.wikipedia.org/wiki/SQL

      Myös tietokantamoottorin manuaaleista hyvin ohjeet.

      Ohjelmointiin suosittelen jotain Linux-pohjaisen käyttöjärjestelmän hankkimista ellei jo ole, koska näissä olisi ohjelmointivälineet ohjelmointikielien tulkkeja/kääntäjiä, tietokantamoottoreita ja webservereitä myöten valmiina. Toki myös kunnolliset editorit. Mac OS X ei myöskään olisi huono perusjutuissa jos sellainen on, että silläkin pääsee alkuun. Mutta jos ei ole niin sopivan käyttöjärjestelmän hankinnalla säästää paljon säätövaivaa.

      ---

      Tietysti jos tämä tuntuu liian vaativalta niin ehkä se pelkkä Pythonin opiskelu ja sillä leikkiminen ja jonkun softan tekeminen on ehkä se helpoin tie. Ei tuo kaikki informaatio mitä tarvisi kunnollisen selainsoftan tekemiseen mene päähän ihan heti. Eli tarkista käyttöjärjestelmäsi soveltuvuus ja ala hakata Pythonia ja kokeile sillä rajojasi, että millä vauhdilla saat opiskeltua.

    • xyz zyx

      Kuten näet niin täällä Suomi24:n eri keskustelualueilla keskustellaan pääasiassa mm:
      - Javasta
      - C:stä / C :sta
      - PHP:stä
      ja
      Delphi:stä / Pascal:sta/ Lazarus:sta.

      On aika todennäköistä että saat täällä jatkossa ainakin näistä neuvoja.


      Vinkki:
      - Aloita keskustelu joillakin näistä alueista (tai vaikkapa kaikilla). Tee ongelmaasi liittyviä kysymyksiä.
      Aloittaa voit vaikkapa ohjelmointiympäristön asentamisesta. Millaisia asioita pitää asentaa että voit ratkaista ongelman. Mitä tarvitaan? Kokeilemalla saat selville miten helppoa se sitten on.

      Aluksi kannattaa rohkeasti tutkailla useampaa vaihtoehtoa. Erot voivat olla suuria!

    • lataa vaikka Dev-Cpp

      aloita c:llä. lataa vaikka Dev-Cpp.

      tuon asiakasrekisteri -ohjelman laajuus ja vaikeus riippuu siitä minkälaisen siitä teet.

      Jos teet sellaisen että ohjelma kysyy tietoja ja tallettaa ne tiedostoon, kestää sen tekeminen "noviisilta" palttiarallaa pari tuntia, olettaen että olet tutustunut ns. perusteisiin. Osaava tekee sen varttituntiin.

      Mutta sitten jos otetaan lisää ominaisuuksia niin mitä enemmän sitä enemmän aikaa ja hommaa.

      • sen verran että

        jos et tunnnilla ehdi käymään on se tietenkin huonompi homma. MUTTA. C:n perusteet oppii kyllä itsekin, monesti vaikeutena ensin on tajuta se algoritmi miten ongelman ratkaiset, sitten seuraavaksi ongelmaksi tulee miten se toteuttaa.

        Osta kirja (ehkä 2 C ja C ), tee harjoituksia, tutki paljon esimerkkejä ja erilaisia koodeja.
        Valmiista koodeista löytyy helkkaristi hyödyllisä asioita ja ne auttavat ymmärtämään monia kielen asioita (pätee kaikkiin ohjelmointikieliin)


      • C on huono aloituskieli
        sen verran että kirjoitti:

        jos et tunnnilla ehdi käymään on se tietenkin huonompi homma. MUTTA. C:n perusteet oppii kyllä itsekin, monesti vaikeutena ensin on tajuta se algoritmi miten ongelman ratkaiset, sitten seuraavaksi ongelmaksi tulee miten se toteuttaa.

        Osta kirja (ehkä 2 C ja C ), tee harjoituksia, tutki paljon esimerkkejä ja erilaisia koodeja.
        Valmiista koodeista löytyy helkkaristi hyödyllisä asioita ja ne auttavat ymmärtämään monia kielen asioita (pätee kaikkiin ohjelmointikieliin)

        C/C on huono aloituskieli varsinkin itse opiskellen. Tulee opittua huonoja tapoja ja niitä huonoja esimerkkejä on kirjoissakin!


      • vaan hyvä
        C on huono aloituskieli kirjoitti:

        C/C on huono aloituskieli varsinkin itse opiskellen. Tulee opittua huonoja tapoja ja niitä huonoja esimerkkejä on kirjoissakin!

        ei todellakaan ole huono vaan hyvä.

        kuitenkin aika suoraviivaista ja "nättiä" yleensä helposti tajuttavaa.

        Voi olla että on huonoja tapoja, mutta kun tuon C:n oppii ja jos tunnistat ne huonot tavat niin kun opettelet uuden kielen niin ymmärrät olla käyttämättä niitä.

        Jos aloittaa jollakin Javalla, niin on aika työlästä...


      • tokana kielenä
        vaan hyvä kirjoitti:

        ei todellakaan ole huono vaan hyvä.

        kuitenkin aika suoraviivaista ja "nättiä" yleensä helposti tajuttavaa.

        Voi olla että on huonoja tapoja, mutta kun tuon C:n oppii ja jos tunnistat ne huonot tavat niin kun opettelet uuden kielen niin ymmärrät olla käyttämättä niitä.

        Jos aloittaa jollakin Javalla, niin on aika työlästä...

        'Jos aloittaa jollakin Javalla, niin on aika työlästä...'

        Jaa, näköjään myöskään Eric S. Raymond ei enää suosittele Javaa edes tokaksi kieleksi:
        "I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java."
        http://catb.org/esr/faqs/hacker-howto.html#basic_skills
        Suomeksi (vanha):
        http://hack.fi/hacker-howto-fi.php#basic_skills

        Pointti on siis jotain että Javassa etsitään vain paketeista toimintoja jotka tekee homman eikä siten opita itse ratkaisemaan ongelmia.
        http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html


      • Jepulis Jeep
        tokana kielenä kirjoitti:

        'Jos aloittaa jollakin Javalla, niin on aika työlästä...'

        Jaa, näköjään myöskään Eric S. Raymond ei enää suosittele Javaa edes tokaksi kieleksi:
        "I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java."
        http://catb.org/esr/faqs/hacker-howto.html#basic_skills
        Suomeksi (vanha):
        http://hack.fi/hacker-howto-fi.php#basic_skills

        Pointti on siis jotain että Javassa etsitään vain paketeista toimintoja jotka tekee homman eikä siten opita itse ratkaisemaan ongelmia.
        http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html

        Sitähän se ohjelmointi on nykysin aika pitkälti, että käytetään näiden tehokkaampien kielten tarjoamia mahdollisuuksia ja tehdään ohjelmia hyödyntäen niiden ominaisuuksia.

        Jos tarkoitus on saada töitä ja opetella ohjelmoimaan työntekoa varten, kannattaa valita tuottava kieli ja ympäristö. Java on varmasti paremmin tuottava, useimmissa ympäristöissä, kuin joku C vaikka sillä saa tietenkin tehtyä enemmän asioita. Tosin parhaimmillaan käyttäen satakertaisen määrän aikaa.

        Ja aika harva oikeasti haluaakaan olla tuollainen Hacker mistä tuossakin puhutaan. Paljon mukavampaa hoitaa homma tehokkaalla ratkaisulla, saada paljon valmista aikaiseksi, tehdä tuottavaa työtä ja nauttia näin hyvää palkkaa.

        Tietenkin jos tavoitteena on oppia joku asia viimeistä piirtoa myöden, niin mikäs siinä, tottahan toki noita syvälle meneviä kieliä voi ja kannattaa käyttää, mutta silloin yleensä pelkän kielen osaamisella ei pahemmin kovin hyvinpalkattuja hommia löydy. Yleensä vaaditaan jotain erityisosaamista sen lisäksi.

        Korkeamman kielen osaajalle taas löytyy monasti töitä jo pelkästään kieltä osaamalla. Tuottavuus kun on niin korkeaa, että on varaa kertoa vaikka mitä sieltä tietokannasta haetaan ja miten sitä käsitellään.

        Pakettien, ympäristöjen ja Frameworkkien tunteminen on nykyaikaa.


      • Jepulis Jeep kirjoitti:

        Sitähän se ohjelmointi on nykysin aika pitkälti, että käytetään näiden tehokkaampien kielten tarjoamia mahdollisuuksia ja tehdään ohjelmia hyödyntäen niiden ominaisuuksia.

        Jos tarkoitus on saada töitä ja opetella ohjelmoimaan työntekoa varten, kannattaa valita tuottava kieli ja ympäristö. Java on varmasti paremmin tuottava, useimmissa ympäristöissä, kuin joku C vaikka sillä saa tietenkin tehtyä enemmän asioita. Tosin parhaimmillaan käyttäen satakertaisen määrän aikaa.

        Ja aika harva oikeasti haluaakaan olla tuollainen Hacker mistä tuossakin puhutaan. Paljon mukavampaa hoitaa homma tehokkaalla ratkaisulla, saada paljon valmista aikaiseksi, tehdä tuottavaa työtä ja nauttia näin hyvää palkkaa.

        Tietenkin jos tavoitteena on oppia joku asia viimeistä piirtoa myöden, niin mikäs siinä, tottahan toki noita syvälle meneviä kieliä voi ja kannattaa käyttää, mutta silloin yleensä pelkän kielen osaamisella ei pahemmin kovin hyvinpalkattuja hommia löydy. Yleensä vaaditaan jotain erityisosaamista sen lisäksi.

        Korkeamman kielen osaajalle taas löytyy monasti töitä jo pelkästään kieltä osaamalla. Tuottavuus kun on niin korkeaa, että on varaa kertoa vaikka mitä sieltä tietokannasta haetaan ja miten sitä käsitellään.

        Pakettien, ympäristöjen ja Frameworkkien tunteminen on nykyaikaa.

        "Pakettien, ympäristöjen ja Frameworkkien tunteminen on nykyaikaa."

        Eli jos opettelee Javan käyttöä niin sitten kun pitääkin tehdä softa C#:lla niin ei osata tehdä mitään \o/

        Et ilmeisesti ole ohjelmoinut paljoakaan. Minä olen tässä ehtiny jo nähdä kuinka Visual Basic tulee ja menee, kuinka MFC tulee ja menee, kuinka Perl on väistynyt Pythonin tieltä ja jne. Paljastaa vaan yleistä osaamattomuutta jos opetellaan yhtä kieltä ja työkalua kun nämä taidot vanhenee hetkessä.

        Python kyllä on ihan ässä perusteiden opetteluun, mutta C on sitten erittäin tärkeä, että jos haluaa opetella ohjelmoimaan niin se kyllä on ehdottomasti seuraava kieli listalla. Vasta tämän jälkeen on jotain pohjatietoja että voi alkaa omaksumaan olio-ohjelmointia.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Pakettien, ympäristöjen ja Frameworkkien tunteminen on nykyaikaa."

        Eli jos opettelee Javan käyttöä niin sitten kun pitääkin tehdä softa C#:lla niin ei osata tehdä mitään \o/

        Et ilmeisesti ole ohjelmoinut paljoakaan. Minä olen tässä ehtiny jo nähdä kuinka Visual Basic tulee ja menee, kuinka MFC tulee ja menee, kuinka Perl on väistynyt Pythonin tieltä ja jne. Paljastaa vaan yleistä osaamattomuutta jos opetellaan yhtä kieltä ja työkalua kun nämä taidot vanhenee hetkessä.

        Python kyllä on ihan ässä perusteiden opetteluun, mutta C on sitten erittäin tärkeä, että jos haluaa opetella ohjelmoimaan niin se kyllä on ehdottomasti seuraava kieli listalla. Vasta tämän jälkeen on jotain pohjatietoja että voi alkaa omaksumaan olio-ohjelmointia.

        Tuskinpa sinäkään ryhtyisit kirjoittamaan noin vain koodia itsellesi tuntemattomalla uudella kielellä vaikka se olisi kuinka hyvä. Yhden kielen tunteminen auttaa oppimaan toista ja Javaa opetellut kaveri oppii aika pian tekemään hommia C#:lla. Ei ole mikään kamalan vaikea juttu.

        Frameworkkien tunteminen vaikuttaakin sitten niin, että se .NET:n tunteva kaveri tekee samaa hommaa paljon nopeammin kuin se joka vasta opettelee alustaa.

        Eikä mikään takaa sitä, etteikö myös Python väistyisi aikanaan.

        Mitäs muuten ajettelit, että sillä C:llä tehdään? Tietokantasoftaa, nettisivuja vai ajureita? Aika harva tekee ajureita eikä tuollaisen hallinta ole enää nykyisin niin tärkeää vaikka kieltämättä senkin osaamisesta on hyötyä kuten kielten yleensäkin.

        Hommia olen tehnyt, myös C:llä ja tiedän miten homma toimii sen kanssa. Kyllä oliot vain ovat nykyisin aika tärkeitä osata.


      • ja vellit
        Jepulis Jeep kirjoitti:

        Sitähän se ohjelmointi on nykysin aika pitkälti, että käytetään näiden tehokkaampien kielten tarjoamia mahdollisuuksia ja tehdään ohjelmia hyödyntäen niiden ominaisuuksia.

        Jos tarkoitus on saada töitä ja opetella ohjelmoimaan työntekoa varten, kannattaa valita tuottava kieli ja ympäristö. Java on varmasti paremmin tuottava, useimmissa ympäristöissä, kuin joku C vaikka sillä saa tietenkin tehtyä enemmän asioita. Tosin parhaimmillaan käyttäen satakertaisen määrän aikaa.

        Ja aika harva oikeasti haluaakaan olla tuollainen Hacker mistä tuossakin puhutaan. Paljon mukavampaa hoitaa homma tehokkaalla ratkaisulla, saada paljon valmista aikaiseksi, tehdä tuottavaa työtä ja nauttia näin hyvää palkkaa.

        Tietenkin jos tavoitteena on oppia joku asia viimeistä piirtoa myöden, niin mikäs siinä, tottahan toki noita syvälle meneviä kieliä voi ja kannattaa käyttää, mutta silloin yleensä pelkän kielen osaamisella ei pahemmin kovin hyvinpalkattuja hommia löydy. Yleensä vaaditaan jotain erityisosaamista sen lisäksi.

        Korkeamman kielen osaajalle taas löytyy monasti töitä jo pelkästään kieltä osaamalla. Tuottavuus kun on niin korkeaa, että on varaa kertoa vaikka mitä sieltä tietokannasta haetaan ja miten sitä käsitellään.

        Pakettien, ympäristöjen ja Frameworkkien tunteminen on nykyaikaa.

        Sekoitat nyt opiskeluvaiheen ja duunivaiheen. Kun oikeita softia tehdään niin tietysti käytetään valmiita kirjastoja/paketteja. On tärkeää että kirjastot ja IDE:t tulee opiskelussa oikeaan aikaan mukaan - ei liian aikaisin.

        Muuten Java ei ole kovin korkeantason kieli, jos et usko niin luepa vaikka tuo läpi:
        http://onestepback.org/articles/10things/index.html

        Eli nämä dynaamisesti tyypittävät (multiparadigma)kielet (python, ryby, lisp, perl, php...) menee Javasta ohi (high-levelissä) ja ovat siten huomattavasti tuottavampia.


      • Jepulis Jeep kirjoitti:

        Tuskinpa sinäkään ryhtyisit kirjoittamaan noin vain koodia itsellesi tuntemattomalla uudella kielellä vaikka se olisi kuinka hyvä. Yhden kielen tunteminen auttaa oppimaan toista ja Javaa opetellut kaveri oppii aika pian tekemään hommia C#:lla. Ei ole mikään kamalan vaikea juttu.

        Frameworkkien tunteminen vaikuttaakin sitten niin, että se .NET:n tunteva kaveri tekee samaa hommaa paljon nopeammin kuin se joka vasta opettelee alustaa.

        Eikä mikään takaa sitä, etteikö myös Python väistyisi aikanaan.

        Mitäs muuten ajettelit, että sillä C:llä tehdään? Tietokantasoftaa, nettisivuja vai ajureita? Aika harva tekee ajureita eikä tuollaisen hallinta ole enää nykyisin niin tärkeää vaikka kieltämättä senkin osaamisesta on hyötyä kuten kielten yleensäkin.

        Hommia olen tehnyt, myös C:llä ja tiedän miten homma toimii sen kanssa. Kyllä oliot vain ovat nykyisin aika tärkeitä osata.

        "Tuskinpa sinäkään ryhtyisit kirjoittamaan noin vain koodia itsellesi tuntemattomalla uudella kielellä vaikka se olisi kuinka hyvä."

        Riippuu siitä tarvitseeko nyrjäyttää aivot uuteen ohjelmointiparadigmaan. Muutenhan se riittää kun kaivaa ohjelmointikielen dokumentaatiot esiin ja alkaa hakata koodia.

        "Frameworkkien tunteminen vaikuttaakin sitten niin, että se .NET:n tunteva kaveri tekee samaa hommaa paljon nopeammin kuin se joka vasta opettelee alustaa."

        Mutta entä sitten jos softa tehdäänkin Javalla?

        "Eikä mikään takaa sitä, etteikö myös Python väistyisi aikanaan."

        Kuten ei takaa mikään, etteikö .NET väistyisi aikanaan. Python nyt vaan sattuu olemaan tällä hetkellä paras ohjelmoinnin opetteluun ja kaikkeen skriptailuun.

        "Mitäs muuten ajettelit, että sillä C:llä tehdään?"

        Se on paras kieli kirjastoihin, systeemiohjelmointiin ja joihinkin pieniin & nopeisiin komentorivikikkareisiin ja myös silloin se on hyvä, jos resurssit on niukat jos vaikka jotain mikrokontrolleria pitäisi koodata.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Tuskinpa sinäkään ryhtyisit kirjoittamaan noin vain koodia itsellesi tuntemattomalla uudella kielellä vaikka se olisi kuinka hyvä."

        Riippuu siitä tarvitseeko nyrjäyttää aivot uuteen ohjelmointiparadigmaan. Muutenhan se riittää kun kaivaa ohjelmointikielen dokumentaatiot esiin ja alkaa hakata koodia.

        "Frameworkkien tunteminen vaikuttaakin sitten niin, että se .NET:n tunteva kaveri tekee samaa hommaa paljon nopeammin kuin se joka vasta opettelee alustaa."

        Mutta entä sitten jos softa tehdäänkin Javalla?

        "Eikä mikään takaa sitä, etteikö myös Python väistyisi aikanaan."

        Kuten ei takaa mikään, etteikö .NET väistyisi aikanaan. Python nyt vaan sattuu olemaan tällä hetkellä paras ohjelmoinnin opetteluun ja kaikkeen skriptailuun.

        "Mitäs muuten ajettelit, että sillä C:llä tehdään?"

        Se on paras kieli kirjastoihin, systeemiohjelmointiin ja joihinkin pieniin & nopeisiin komentorivikikkareisiin ja myös silloin se on hyvä, jos resurssit on niukat jos vaikka jotain mikrokontrolleria pitäisi koodata.

        Vaikka kieli olisi samantapainen niin ei kai sitä nyt vain voi alkaa uudella ympäristöllä koodaamaan tuosta vaan yhtä tehokkaasti ja nopeasti kuin sillä vanhalla jonka tuntee? Ei kai niitä dokumentaatioita lueta ihan noin vain koodin kirjoittamisen lomassa ja ainakin luokien tai vastaavien nimet pitää luntata jostain ha kyllä se nyt vähän hidastaa sellaiseen verrattuna, joka tuntee ne ennestään.

        Jos softa tehdään Javalla, niin sitten sellainen kaveri joka on tehnyt ennen Javaa, tekee sen nopsemmin kuin sellainen joka ei tunne Javan systeemejä ennalta ja joutuu katsomaan niitä dokumenteista.

        Tottakai .NET tulee väistymään aikanaan ihan samalla tavalla kuin jokainen kieli joka on nyt käytössä. Tuota ohjelmoinnin opettelun parhautta en nyt ihan suoraan niele sellaisenaan vaikka se on sinänsä ihan hyvä siihen kun asiaa miettii. Itse vain ajattelen asiaa siltä kannalta, että moni opettelee vain juuri sen yhden kielen millä tulee tekemään töitäkin ja silloin on varmaan ihan hyvä opetella se kieli jolla tehdään töitä.

        C on tosiaan hyvä kieli noihin hommiin, mutta esim. tuohon uuten snagariavaukseen se tuskin olisi oikea valinta.


      • Jepulis Jeep
        ja vellit kirjoitti:

        Sekoitat nyt opiskeluvaiheen ja duunivaiheen. Kun oikeita softia tehdään niin tietysti käytetään valmiita kirjastoja/paketteja. On tärkeää että kirjastot ja IDE:t tulee opiskelussa oikeaan aikaan mukaan - ei liian aikaisin.

        Muuten Java ei ole kovin korkeantason kieli, jos et usko niin luepa vaikka tuo läpi:
        http://onestepback.org/articles/10things/index.html

        Eli nämä dynaamisesti tyypittävät (multiparadigma)kielet (python, ryby, lisp, perl, php...) menee Javasta ohi (high-levelissä) ja ovat siten huomattavasti tuottavampia.

        perinteistä Hello Worldiä aloitellessa homma tykätään yleensä tehdä niin, että kaivetaan auki joku command promptin tyylinen väline jota opiskelijat eivät ole parhaimmassa tapauksessa koskaan nähneetkään. Sitten aletaan naputtelemaan käskyjä ohjeiden mukaan ja tyypillisesti homma menee niin, että koodi toistetaan ohjeiden mukaan ja oppiminen on sitä mitä on.

        Paljon opettavaisempaa tehdä ensimmäiset ohjelmat ihan oikeilla välineillä joilla asioita ei tehdä vaikeaksi vain siksi, että pitäisi päästä jonnekin koodin alkulähteille. Ne voi ja kannattaa käydä läpi sitten kun osataan jotain ja voidaan edes periaatteessa ymmärtää mitä se kääntäminen yleensä on.

        Kyllä se Java muuten on ihan kiva korkean tason kieli. Taitaa tuo Ruby vaan olla korkeamman tason homma kuten tuon linkin takaa voi todeta.

        Rubyn voi olla tosiaan tuottavampi joissain hommissa. Miten sillä muuten saa tehtyä työasemasoftia ja olisiko esimerkkiä IDEen jolla noita voi tehdä?


      • Jepulis Jeep kirjoitti:

        Vaikka kieli olisi samantapainen niin ei kai sitä nyt vain voi alkaa uudella ympäristöllä koodaamaan tuosta vaan yhtä tehokkaasti ja nopeasti kuin sillä vanhalla jonka tuntee? Ei kai niitä dokumentaatioita lueta ihan noin vain koodin kirjoittamisen lomassa ja ainakin luokien tai vastaavien nimet pitää luntata jostain ha kyllä se nyt vähän hidastaa sellaiseen verrattuna, joka tuntee ne ennestään.

        Jos softa tehdään Javalla, niin sitten sellainen kaveri joka on tehnyt ennen Javaa, tekee sen nopsemmin kuin sellainen joka ei tunne Javan systeemejä ennalta ja joutuu katsomaan niitä dokumenteista.

        Tottakai .NET tulee väistymään aikanaan ihan samalla tavalla kuin jokainen kieli joka on nyt käytössä. Tuota ohjelmoinnin opettelun parhautta en nyt ihan suoraan niele sellaisenaan vaikka se on sinänsä ihan hyvä siihen kun asiaa miettii. Itse vain ajattelen asiaa siltä kannalta, että moni opettelee vain juuri sen yhden kielen millä tulee tekemään töitäkin ja silloin on varmaan ihan hyvä opetella se kieli jolla tehdään töitä.

        C on tosiaan hyvä kieli noihin hommiin, mutta esim. tuohon uuten snagariavaukseen se tuskin olisi oikea valinta.

        "Tottakai .NET tulee väistymään aikanaan ihan samalla tavalla kuin jokainen kieli joka on nyt käytössä."

        Siksi ohjelmoinnin opettelussa on tärkeämpää opetella ohjelmoimaan yleisesti, monella paradigmalla ja ymmärtämään ne mekanismit miten kone suorittaa asioita eikä hyökätä jonkun Visual Studion kimppuun jossa opettelu menee suurimmaksi osaksi harakoille sitten kun pitääkin koodata Javalla tai jollain tulevalla kielellä.

        "Itse vain ajattelen asiaa siltä kannalta, että moni opettelee vain juuri sen yhden kielen millä tulee tekemään töitäkin ja silloin on varmaan ihan hyvä opetella se kieli jolla tehdään töitä."

        C# ei ole ainoa kieli jolla tehdään töitä ja on kehittävämpää opetella ne pohjatiedot että voi ohjelmoida loppu elämänsä eikä fakkiintua johonkin Visual studioon. Ihan syystä suosittelen sitä Python -> C -> C -> assembler (vain perusteet) -> joku funktionaalinen kieli (Scheme/Haskell?) -> SQL -> web tekniikat -reittiä.

        Sinulla on aivan vääristynyt käsitys, että kaikessa ohjelmoinnissa on staattinen tyypitys, oliot ja että ohjelmointi tehdään IDE:llä. Sitten kun osaa ohjelmoinnista ne perusteet kunnolla niin voi koodailla millä huvittaa ja mitä huvittaa. Sanomattakin selvää, että pitää myös siinä sivussa omaksua koneoppimista, datakompressiota, testausta, tietoturva-asioita ja matematiikka ei missään nimessä saa olla kynnyskysymys. Muussa tapauksessa ei puhuta mistään osaavasta ohjelmoinnista. Se nyt ei vaadi yhtään mitään vaadi, että osaa jollain IDE:llä tehdä Hello Worldin.


      • Jepulis Jeep kirjoitti:

        perinteistä Hello Worldiä aloitellessa homma tykätään yleensä tehdä niin, että kaivetaan auki joku command promptin tyylinen väline jota opiskelijat eivät ole parhaimmassa tapauksessa koskaan nähneetkään. Sitten aletaan naputtelemaan käskyjä ohjeiden mukaan ja tyypillisesti homma menee niin, että koodi toistetaan ohjeiden mukaan ja oppiminen on sitä mitä on.

        Paljon opettavaisempaa tehdä ensimmäiset ohjelmat ihan oikeilla välineillä joilla asioita ei tehdä vaikeaksi vain siksi, että pitäisi päästä jonnekin koodin alkulähteille. Ne voi ja kannattaa käydä läpi sitten kun osataan jotain ja voidaan edes periaatteessa ymmärtää mitä se kääntäminen yleensä on.

        Kyllä se Java muuten on ihan kiva korkean tason kieli. Taitaa tuo Ruby vaan olla korkeamman tason homma kuten tuon linkin takaa voi todeta.

        Rubyn voi olla tosiaan tuottavampi joissain hommissa. Miten sillä muuten saa tehtyä työasemasoftia ja olisiko esimerkkiä IDEen jolla noita voi tehdä?

        "perinteistä Hello Worldiä aloitellessa homma tykätään yleensä tehdä niin, että kaivetaan auki joku command promptin tyylinen väline jota opiskelijat eivät ole parhaimmassa tapauksessa koskaan nähneetkään."

        Siis kyllähän nyt komentoriviä nyt kuuluu ohjelmoijan osata käyttää. Tämähän on jo lähtötaso ja kuuluu tietotekniikan perusteisiin. Komentorivi on ohjelmoijan tärkeimpiä työkaluja, koska tietotyössä liimaillaan palikoita yhteen ja väännetään dataa muodosta toiseen. Jos tätä ei osaa niin sitten pitää opetella ihan ensiksi käyttämään tietokonetta.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Tottakai .NET tulee väistymään aikanaan ihan samalla tavalla kuin jokainen kieli joka on nyt käytössä."

        Siksi ohjelmoinnin opettelussa on tärkeämpää opetella ohjelmoimaan yleisesti, monella paradigmalla ja ymmärtämään ne mekanismit miten kone suorittaa asioita eikä hyökätä jonkun Visual Studion kimppuun jossa opettelu menee suurimmaksi osaksi harakoille sitten kun pitääkin koodata Javalla tai jollain tulevalla kielellä.

        "Itse vain ajattelen asiaa siltä kannalta, että moni opettelee vain juuri sen yhden kielen millä tulee tekemään töitäkin ja silloin on varmaan ihan hyvä opetella se kieli jolla tehdään töitä."

        C# ei ole ainoa kieli jolla tehdään töitä ja on kehittävämpää opetella ne pohjatiedot että voi ohjelmoida loppu elämänsä eikä fakkiintua johonkin Visual studioon. Ihan syystä suosittelen sitä Python -> C -> C -> assembler (vain perusteet) -> joku funktionaalinen kieli (Scheme/Haskell?) -> SQL -> web tekniikat -reittiä.

        Sinulla on aivan vääristynyt käsitys, että kaikessa ohjelmoinnissa on staattinen tyypitys, oliot ja että ohjelmointi tehdään IDE:llä. Sitten kun osaa ohjelmoinnista ne perusteet kunnolla niin voi koodailla millä huvittaa ja mitä huvittaa. Sanomattakin selvää, että pitää myös siinä sivussa omaksua koneoppimista, datakompressiota, testausta, tietoturva-asioita ja matematiikka ei missään nimessä saa olla kynnyskysymys. Muussa tapauksessa ei puhuta mistään osaavasta ohjelmoinnista. Se nyt ei vaadi yhtään mitään vaadi, että osaa jollain IDE:llä tehdä Hello Worldin.

        ...siihen riittää suuressa osassa tapauksia nelilaskin ja joukko-oppi. Riippuu ihan mitä tekee. Jonkun isomman firman sovellusten ylläpidoissa ei matikkaa pahemmin tarvita.

        Kumma käsitys sinulla, että jonkun Visual Studion tai Eclipsen opettelu menisi harakoille jos IDE vaihtuu joskus uuteen. Vanhoja malleja ja ajatustapoja käytetään kuitenkin jossain määrin noissa uusissakin IDEissä. Tärkeämpää se noiden idejen hallinta on kuin osata tehdä jotain komentorivillä.

        Assemblerilla ei peruskoodaajan tarvitse tehdä nykyisin käytännössä mitään. Viimeksi työhommissa tuli assya käytettyä joskus kymmenen vuotta sitten. Olisi vaikea kuvitella, että se yleistyisi jatkossakaan.

        Ei staattinen tyypitys ole käytössä kaikkialla eivätkä oliot ole mikään itseisarvo. Näkemykseni kuitenkin on se, että kannattaa lähteä liikkeelle tuota kautta.

        Datakompressiota? Mitäs datakompressiota koodaaja tarvitsee normaaleissa, vaikka nyt bisnessoftien teoissa? Testauksen perusteista, tietoturvasta ja sellaisesta sälästä olen samaa mieltä, että hyvä olisi osata.

        Ei kai Schemeä käytetä oikeassa työssä mihinkään? Koulutushommissa varmaan...


      • Jepulis Jeep
        M-Kar kirjoitti:

        "perinteistä Hello Worldiä aloitellessa homma tykätään yleensä tehdä niin, että kaivetaan auki joku command promptin tyylinen väline jota opiskelijat eivät ole parhaimmassa tapauksessa koskaan nähneetkään."

        Siis kyllähän nyt komentoriviä nyt kuuluu ohjelmoijan osata käyttää. Tämähän on jo lähtötaso ja kuuluu tietotekniikan perusteisiin. Komentorivi on ohjelmoijan tärkeimpiä työkaluja, koska tietotyössä liimaillaan palikoita yhteen ja väännetään dataa muodosta toiseen. Jos tätä ei osaa niin sitten pitää opetella ihan ensiksi käyttämään tietokonetta.

        Helsingin Yliopiston Javakursseilla ja siellä sen näki oikein hyvin kuinka pihalla uskomattoman monet opiskelijat olivat kun hommat aloitettiin tekstieditorilla ja komentorivikäännöksillä. promptejahan ne osasivat kyllä käyttää, mutta selvästi nämä merkkipohjaiset jutut menivät ihan yli ja ajatuksesta päästiin kiinni edes vähän siinä vaiheessa kun esille kaivettiin se Eclipse ja kunnollinen IDE.

        Sille on ihan hyvät syynsä, miksi sen ns. editorin kannattaa huomauttaa koodaajalle virheistä ja neuvoa mitä seuraavaksi voi tehdä. Todella kummallista, että tehdään opettelun alotus tarkoituksella vaikeammaksi kuin se on, ottamalla kaikki avut ja helpotukset pois käytöstä.

        Jossain datanomipuolella taitaa olla komentorivi aika harvinainen juttu. On noilla korkeamman asteen putkilla joku syynsä siihen, että ovat niitä korkeakouluja.


      • Jepulis Jeep kirjoitti:

        ...siihen riittää suuressa osassa tapauksia nelilaskin ja joukko-oppi. Riippuu ihan mitä tekee. Jonkun isomman firman sovellusten ylläpidoissa ei matikkaa pahemmin tarvita.

        Kumma käsitys sinulla, että jonkun Visual Studion tai Eclipsen opettelu menisi harakoille jos IDE vaihtuu joskus uuteen. Vanhoja malleja ja ajatustapoja käytetään kuitenkin jossain määrin noissa uusissakin IDEissä. Tärkeämpää se noiden idejen hallinta on kuin osata tehdä jotain komentorivillä.

        Assemblerilla ei peruskoodaajan tarvitse tehdä nykyisin käytännössä mitään. Viimeksi työhommissa tuli assya käytettyä joskus kymmenen vuotta sitten. Olisi vaikea kuvitella, että se yleistyisi jatkossakaan.

        Ei staattinen tyypitys ole käytössä kaikkialla eivätkä oliot ole mikään itseisarvo. Näkemykseni kuitenkin on se, että kannattaa lähteä liikkeelle tuota kautta.

        Datakompressiota? Mitäs datakompressiota koodaaja tarvitsee normaaleissa, vaikka nyt bisnessoftien teoissa? Testauksen perusteista, tietoturvasta ja sellaisesta sälästä olen samaa mieltä, että hyvä olisi osata.

        Ei kai Schemeä käytetä oikeassa työssä mihinkään? Koulutushommissa varmaan...

        "...siihen riittää suuressa osassa tapauksia nelilaskin ja joukko-oppi."

        Niin varmaan. Ohjelmoippa vaikka joku puheen tunnistus nelilaskimella ja palataan sitten asiaan.

        "Tärkeämpää se noiden idejen hallinta on kuin osata tehdä jotain komentorivillä."

        Ei tosiaankaan. Komentorivi on ollut jokseenkin vastaavanlainen yli 30v ja sitä tarvitsee pakostikin. Ei tarvitse kuin vääntää joku websovellus ja kompressoida vaikka tämän kaikki kuvat kerralla niin heti tarvitsee vähän käskeä konetta. IDE:t taas tulee ja menee jatkuvasti.

        "Assemblerilla ei peruskoodaajan tarvitse tehdä nykyisin käytännössä mitään."

        Harvemmin. Kyse onkin siitä, että pitää YMMÄRTÄÄ miten se prosessori toimii. On aika mahdotonta tehdä esimerkiksi suorituskykyistä koodia jos ei tajua mitä se kääntäjä ulostaa.

        "Datakompressiota? Mitäs datakompressiota koodaaja tarvitsee normaaleissa, vaikka nyt bisnessoftien teoissa?"

        Kun vaikka siirtää tavaraa verkon ylitse. Ja mikä hiton bisnessofta? Entä jos ohjelmoikin kännykkäpelin?

        "Ei kai Schemeä käytetä oikeassa työssä mihinkään? Koulutushommissa varmaan..."

        No ohjelmoinnin opettelusta tässä olikin kyse. Funktionaalinen ohjelmointi olisi hyvä osata.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "...siihen riittää suuressa osassa tapauksia nelilaskin ja joukko-oppi."

        Niin varmaan. Ohjelmoippa vaikka joku puheen tunnistus nelilaskimella ja palataan sitten asiaan.

        "Tärkeämpää se noiden idejen hallinta on kuin osata tehdä jotain komentorivillä."

        Ei tosiaankaan. Komentorivi on ollut jokseenkin vastaavanlainen yli 30v ja sitä tarvitsee pakostikin. Ei tarvitse kuin vääntää joku websovellus ja kompressoida vaikka tämän kaikki kuvat kerralla niin heti tarvitsee vähän käskeä konetta. IDE:t taas tulee ja menee jatkuvasti.

        "Assemblerilla ei peruskoodaajan tarvitse tehdä nykyisin käytännössä mitään."

        Harvemmin. Kyse onkin siitä, että pitää YMMÄRTÄÄ miten se prosessori toimii. On aika mahdotonta tehdä esimerkiksi suorituskykyistä koodia jos ei tajua mitä se kääntäjä ulostaa.

        "Datakompressiota? Mitäs datakompressiota koodaaja tarvitsee normaaleissa, vaikka nyt bisnessoftien teoissa?"

        Kun vaikka siirtää tavaraa verkon ylitse. Ja mikä hiton bisnessofta? Entä jos ohjelmoikin kännykkäpelin?

        "Ei kai Schemeä käytetä oikeassa työssä mihinkään? Koulutushommissa varmaan..."

        No ohjelmoinnin opettelusta tässä olikin kyse. Funktionaalinen ohjelmointi olisi hyvä osata.

        Suurin osa ohjelmoijista ei kuitenkaan koskaan tee mitään puheentunnistusta sivuavaakaan. Sitten voitaisiin palata asiaan jos tuollaisen ohjelmoimisesta tulisi yleistä...

        Koodaaminen on muuttuut 30v aikana melko rajusti. Komentorivillä on ollut varmaan ihan kätevää käytellä käännöksiä, mutta aika nahkeaa se olisi jollain Delphillä tai Javalla tehdä kaikki hommansa. Kyllä IDE:n antama apu on niin hieno homma... Eikä tuommoisen IDE:n ihan perusjuttujen opetteluun mene tuntia paria pidempään, että ei siinä kovin suuresta vahingosta ole kyse vaikka pitäisi opetella uusikin.

        Jollain C:llä prosessoripuolesta on hyvä ymmärtää jotain, mutta Pythonin kanssa se on aika turhaa touhua. Abstraktiotaso on sellainen, että on tärkeämpää keskittyä ihan vaikka arkkitehtuuriin sen assynkin panos.

        Bisnessoftiahan suurin osa noista maailman softatyöläisten tekemistä jutuista taitavat olla. Bisneksen tarpeisiin. Laskutusta, materianhallintaa, logistiikkaa, erpin ylläpitoa.. Kännykkäpelit ovat ihan oma juttunsa ja oma maailmansa. JavaME, Brew... Symbian ja OSX... Ehkä joku .NET:llä Winukkapuhelimiin tehty systeemi... Aika erikoisalueita eikä prosenttikaan maailman koodereista tee koskaan mitään noihin päinkään. Varmasti kompressio on sinänsä hyvä osata, mutta jaa-a... Ei niitä tärkeimpiä juttuja jos minulta kysytään.

        Opettelussa scheme... No, taas se vanha kysymys siitä, kannattaako opetella ensin ruotsia jos haluaa oppia saksaa.


      • juupa juu
        Jepulis Jeep kirjoitti:

        perinteistä Hello Worldiä aloitellessa homma tykätään yleensä tehdä niin, että kaivetaan auki joku command promptin tyylinen väline jota opiskelijat eivät ole parhaimmassa tapauksessa koskaan nähneetkään. Sitten aletaan naputtelemaan käskyjä ohjeiden mukaan ja tyypillisesti homma menee niin, että koodi toistetaan ohjeiden mukaan ja oppiminen on sitä mitä on.

        Paljon opettavaisempaa tehdä ensimmäiset ohjelmat ihan oikeilla välineillä joilla asioita ei tehdä vaikeaksi vain siksi, että pitäisi päästä jonnekin koodin alkulähteille. Ne voi ja kannattaa käydä läpi sitten kun osataan jotain ja voidaan edes periaatteessa ymmärtää mitä se kääntäminen yleensä on.

        Kyllä se Java muuten on ihan kiva korkean tason kieli. Taitaa tuo Ruby vaan olla korkeamman tason homma kuten tuon linkin takaa voi todeta.

        Rubyn voi olla tosiaan tuottavampi joissain hommissa. Miten sillä muuten saa tehtyä työasemasoftia ja olisiko esimerkkiä IDEen jolla noita voi tehdä?

        "Kyllä se Java muuten on ihan kiva korkean tason kieli."

        Asiasta voi olla toistakin mieltä. ('kivuudesta' ja tasosta)

        "Rubyn voi olla tosiaan tuottavampi joissain hommissa."

        Ja perustelu oli? (Joissain? Muuta siihen kaikissa ja aina, niin on lähellä totuutta)
        Pythonia ja Rubya pidetään aivan yleisesti selkeästi tuottavampina kuin Javaa. (Kuuklaa jotain productivity ruby java python) Pelkästään se että saman toiminnon toteus Python/Ruby on koodina lyhyempi ja selkeämpi kuin Javalla on (osa) sitä tuottavuutta.


      • Jepulis Jeep
        juupa juu kirjoitti:

        "Kyllä se Java muuten on ihan kiva korkean tason kieli."

        Asiasta voi olla toistakin mieltä. ('kivuudesta' ja tasosta)

        "Rubyn voi olla tosiaan tuottavampi joissain hommissa."

        Ja perustelu oli? (Joissain? Muuta siihen kaikissa ja aina, niin on lähellä totuutta)
        Pythonia ja Rubya pidetään aivan yleisesti selkeästi tuottavampina kuin Javaa. (Kuuklaa jotain productivity ruby java python) Pelkästään se että saman toiminnon toteus Python/Ruby on koodina lyhyempi ja selkeämpi kuin Javalla on (osa) sitä tuottavuutta.

        Meinaakko, että Java olisi sitten matalan tason kieli?

        Uskomattoman laaja käyttö, mallikoodien saatavuus ja osaajien löytyminen suurissa määrin ovat sellaisia käytännön juttuja, jotka lisäävät tuottavuutta.

        No, kerropas vaikka aluksi semmoinen juttu, että millaisella paketilla tuolla Rubyllä voi tehdä graafisia käyttöliittymiä jotka eivät ole nettisivuja ja miten tuottavaa niiden tekeminen on?

        Lisäksi, Java tuntuu skaalautuvan aika kivasti ja sillä tehtyjä softia voi käyttää aika mukavasti esim. ihan jossain Vistassakin. Onhan sekin osa sitä tuottavuutta, että softa pyörii eikä sitä tarvitse tehdä uusiksi.


      • juupa juu
        Jepulis Jeep kirjoitti:

        Meinaakko, että Java olisi sitten matalan tason kieli?

        Uskomattoman laaja käyttö, mallikoodien saatavuus ja osaajien löytyminen suurissa määrin ovat sellaisia käytännön juttuja, jotka lisäävät tuottavuutta.

        No, kerropas vaikka aluksi semmoinen juttu, että millaisella paketilla tuolla Rubyllä voi tehdä graafisia käyttöliittymiä jotka eivät ole nettisivuja ja miten tuottavaa niiden tekeminen on?

        Lisäksi, Java tuntuu skaalautuvan aika kivasti ja sillä tehtyjä softia voi käyttää aika mukavasti esim. ihan jossain Vistassakin. Onhan sekin osa sitä tuottavuutta, että softa pyörii eikä sitä tarvitse tehdä uusiksi.

        "Meinaakko, että Java olisi sitten matalan tason kieli?"

        Onpa taas järjenjättiläiset liikkeellä. Katsos kun voisi olla muitakin määreitä kuin matala/korkea esim. vaikka keskitaso. Melkein kaikkia kieliä sanotaan (hölmösti) korkeantasonkieleksi, vaikka selvästi jotkin ovat korkeammalla abstraktiotasolla kuin toiset. Eli matala/korkea määrittely on aivan liian karkea.

        "Uskomattoman laaja käyttö, mallikoodien saatavuus ja osaajien löytyminen suurissa määrin ovat sellaisia käytännön juttuja, jotka lisäävät tuottavuutta."

        Mikään noista ei ole KIELEN ominaisuus vaan sen suosion aiheuttama sivuvaikutus. (Tuo osaajien löytyminen on kaksipiippuinen juttu, koska marginaalikielistä löytyy helpommin ne tosi osaajat kuin massakielistä.)

        "No, kerropas vaikka aluksi semmoinen juttu, että millaisella paketilla tuolla Rubyllä voi tehdä graafisia käyttöliittymiä jotka eivät ole nettisivuja ja miten tuottavaa niiden tekeminen on?"

        http://kylecordes.com/2007/03/31/ruby-gui-toolkits/

        "Lisäksi, Java tuntuu skaalautuvan aika kivasti ja sillä tehtyjä softia voi käyttää aika mukavasti esim. ihan jossain Vistassakin. Onhan sekin osa sitä tuottavuutta, että softa pyörii eikä sitä tarvitse tehdä uusiksi."

        Wxrubylla tehdyt pyörii usealla GUI-alustalla http://wxruby.rubyforge.org/wiki/wiki.pl

        Skaalautuvuudesta en oikein tiedä, mutta ainakin JRuby skaalautunee yhtä hyvin kuin Java koska pöyrii samassa JVM:ssä.


      • Jepulis Jeep
        juupa juu kirjoitti:

        "Meinaakko, että Java olisi sitten matalan tason kieli?"

        Onpa taas järjenjättiläiset liikkeellä. Katsos kun voisi olla muitakin määreitä kuin matala/korkea esim. vaikka keskitaso. Melkein kaikkia kieliä sanotaan (hölmösti) korkeantasonkieleksi, vaikka selvästi jotkin ovat korkeammalla abstraktiotasolla kuin toiset. Eli matala/korkea määrittely on aivan liian karkea.

        "Uskomattoman laaja käyttö, mallikoodien saatavuus ja osaajien löytyminen suurissa määrin ovat sellaisia käytännön juttuja, jotka lisäävät tuottavuutta."

        Mikään noista ei ole KIELEN ominaisuus vaan sen suosion aiheuttama sivuvaikutus. (Tuo osaajien löytyminen on kaksipiippuinen juttu, koska marginaalikielistä löytyy helpommin ne tosi osaajat kuin massakielistä.)

        "No, kerropas vaikka aluksi semmoinen juttu, että millaisella paketilla tuolla Rubyllä voi tehdä graafisia käyttöliittymiä jotka eivät ole nettisivuja ja miten tuottavaa niiden tekeminen on?"

        http://kylecordes.com/2007/03/31/ruby-gui-toolkits/

        "Lisäksi, Java tuntuu skaalautuvan aika kivasti ja sillä tehtyjä softia voi käyttää aika mukavasti esim. ihan jossain Vistassakin. Onhan sekin osa sitä tuottavuutta, että softa pyörii eikä sitä tarvitse tehdä uusiksi."

        Wxrubylla tehdyt pyörii usealla GUI-alustalla http://wxruby.rubyforge.org/wiki/wiki.pl

        Skaalautuvuudesta en oikein tiedä, mutta ainakin JRuby skaalautunee yhtä hyvin kuin Java koska pöyrii samassa JVM:ssä.

        Kunhan testasin, mitä lisämääreitä kaivat esille korkean tason kielistä. Minä olisin sanonut Rubyä erittäin korkean tason kieleksi kun sinä mielummin mahdallat noita muita. Näkemyshän se sekin on.

        Kielen suosion sivuvaikutusta, ehkäpä jossain määrin. Loppujen lopuksi kokonaistuottavuus ratkaisee, joten tällä ei ole sinänsä niin suurta merkitystä, mistä se tehokkuus johtuu.

        Et kai nyt tosissasi ole, että Tosi Osaajien olemassaolo nostaa kielen tehokkuutta sellaisen uudelle käyttäjälle siten, että se korvaisi jotenkin laajan käytön, mallikoodien saatavuuden ja muut suositun kielen edut?

        Katselin tuon RybyGui-linkkisi läpi ja aika sillisalaattiahan tuollakin tarjoillaan. Eipä taida olla tuottavia ratkaisuja GUI:n tekemiseksi tarjoilla Rybyllekaan. Lähinnä näyttää olevan nuo sillä tasolla, että GUI:n tekeminen on yleensä mahdollista. Se ei kuitenkaan tee siitä vielä tuottavaa.

        Jotain kertoo myös se, että Wxrubiinin sivuilla sanotaan, että systeemi on valmis tuotantokäyttöön - melkein. Mahtaakohan olla melkein tuotantokäytettävän lisäksi ihan oikeasti tuottavaa puuhaa? Paljonkos olet muuten tehnyt Rubyllä GUI-softia jotka eivät ole olleet mitään veppijuttuja?

        Eihän perus-JVM sinänsä skaalaa mitään. Javan skaalautuvuusedut syntyvät enempi siellä J2EE:n hommissa eli oikeastaan ihan muualla kuin virtuaalikoneessa vaikka se nyt pohjimmiltaan skaalautuvuuden mahdollistaa niille osille, jotka sitten skaalaavat. Perusjaavassa pitää ne skaalautuvuudet koodata itse ja samaa epäilen tuon JRupiinin kohtaloksi.

        Hyvä kielihän tuo Rupiini vaikuttaa olevan, mutta ei sen nyt sentään kaikkeen taida sopia?


      • juupa juu
        Jepulis Jeep kirjoitti:

        Kunhan testasin, mitä lisämääreitä kaivat esille korkean tason kielistä. Minä olisin sanonut Rubyä erittäin korkean tason kieleksi kun sinä mielummin mahdallat noita muita. Näkemyshän se sekin on.

        Kielen suosion sivuvaikutusta, ehkäpä jossain määrin. Loppujen lopuksi kokonaistuottavuus ratkaisee, joten tällä ei ole sinänsä niin suurta merkitystä, mistä se tehokkuus johtuu.

        Et kai nyt tosissasi ole, että Tosi Osaajien olemassaolo nostaa kielen tehokkuutta sellaisen uudelle käyttäjälle siten, että se korvaisi jotenkin laajan käytön, mallikoodien saatavuuden ja muut suositun kielen edut?

        Katselin tuon RybyGui-linkkisi läpi ja aika sillisalaattiahan tuollakin tarjoillaan. Eipä taida olla tuottavia ratkaisuja GUI:n tekemiseksi tarjoilla Rybyllekaan. Lähinnä näyttää olevan nuo sillä tasolla, että GUI:n tekeminen on yleensä mahdollista. Se ei kuitenkaan tee siitä vielä tuottavaa.

        Jotain kertoo myös se, että Wxrubiinin sivuilla sanotaan, että systeemi on valmis tuotantokäyttöön - melkein. Mahtaakohan olla melkein tuotantokäytettävän lisäksi ihan oikeasti tuottavaa puuhaa? Paljonkos olet muuten tehnyt Rubyllä GUI-softia jotka eivät ole olleet mitään veppijuttuja?

        Eihän perus-JVM sinänsä skaalaa mitään. Javan skaalautuvuusedut syntyvät enempi siellä J2EE:n hommissa eli oikeastaan ihan muualla kuin virtuaalikoneessa vaikka se nyt pohjimmiltaan skaalautuvuuden mahdollistaa niille osille, jotka sitten skaalaavat. Perusjaavassa pitää ne skaalautuvuudet koodata itse ja samaa epäilen tuon JRupiinin kohtaloksi.

        Hyvä kielihän tuo Rupiini vaikuttaa olevan, mutta ei sen nyt sentään kaikkeen taida sopia?

        Ongelma tässä on nyt se että sinä niputat koko tuotantoprosessin tehokkuuden ja minua kiinnostaa vain tässä asiassa vain KIELEN tehokkuus.
        Kun projektissa valitaan kieli niin yksinkertaistettuna homma voisi mennä jotenkin näin:
        1. Millä on tehokasta koodata
        2. Mille on paremmat kirjastot (tähän hommaan)
        3. Mitä koodarimme osaavat

        Ymmärrät varmaan että kohdat 2 ja 3 enemmän muuttuvia suureita (kuin lähes stabiili kohta 1) tapauksen ja yleisemmin suosion yms. mukaan.

        Koska kirjoitit "Rubyn voi olla tosiaan tuottavampi joissain hommissa" niin yksinkertainen kysymys: Kumpi on mielestäsi tuottavampi KIELENÄ Java ja Ruby?

        (Vai onko sinulle jotenkin henkisesti mahdotonta erottaa kielen tuottavuutta koko projektin tuottavuudesta)


      • Jepulis Jeep
        juupa juu kirjoitti:

        Ongelma tässä on nyt se että sinä niputat koko tuotantoprosessin tehokkuuden ja minua kiinnostaa vain tässä asiassa vain KIELEN tehokkuus.
        Kun projektissa valitaan kieli niin yksinkertaistettuna homma voisi mennä jotenkin näin:
        1. Millä on tehokasta koodata
        2. Mille on paremmat kirjastot (tähän hommaan)
        3. Mitä koodarimme osaavat

        Ymmärrät varmaan että kohdat 2 ja 3 enemmän muuttuvia suureita (kuin lähes stabiili kohta 1) tapauksen ja yleisemmin suosion yms. mukaan.

        Koska kirjoitit "Rubyn voi olla tosiaan tuottavampi joissain hommissa" niin yksinkertainen kysymys: Kumpi on mielestäsi tuottavampi KIELENÄ Java ja Ruby?

        (Vai onko sinulle jotenkin henkisesti mahdotonta erottaa kielen tuottavuutta koko projektin tuottavuudesta)

        Pitäisi saada oikeastaan vähän referenssejä noista Rubyllä tehdyistä projekteista. Onkos vaikka joku winkkarin päällä pyörivä softa jonka voisin ladata ja testailla sitä, millainen se on?

        Yleensä meillä ainakin lähdetään siitä, mitä kieliä softaporukka osaa ja mietitään siitä sitten eteenpäin niitä ratkaisuja. Jos projektiin vaadittavaa kieltä ei osata, se hinnoitellaan mukaan tarjoukseen ja asiakas maksaa myös suuren osan opettelusta. Tottakai ympäristöjä myös vaihdetaan aina joskus, mutta vähän poikkeuksellistahan sekin on.

        Paha sanoa ihan noin vain, kumpi on tuottavampi kielenä. Meinaan, laajoissa skaalautuvissa systeemeissä Ruby ei taida olla oikeastaan ollenkaan tuottava kun taas pikkuhilpakkeissa joissa ei ole graafista käyttöliittymää, asia voi olla täysin toisin.

        Pitää muuten myöntää, että minulle tuottavuus on kuin ruuvari. Meinaan, jos sillä toisella ruuvarilla saa auton kasaan hitaasti mutta ehjänä, ei paljoa merkitse jos tehoruuvarilla työskennellen auto on kasassa alle aikayksikön, mutta ruuvit ovat niin tohjona, ettei niistä ole enää mihinkään.

        Ois oikeestaan kiintoisaa nähdä firma jossa kielen tuottavuus on merkittävimmässä asemassa :)


      • juupa juu
        Jepulis Jeep kirjoitti:

        Pitäisi saada oikeastaan vähän referenssejä noista Rubyllä tehdyistä projekteista. Onkos vaikka joku winkkarin päällä pyörivä softa jonka voisin ladata ja testailla sitä, millainen se on?

        Yleensä meillä ainakin lähdetään siitä, mitä kieliä softaporukka osaa ja mietitään siitä sitten eteenpäin niitä ratkaisuja. Jos projektiin vaadittavaa kieltä ei osata, se hinnoitellaan mukaan tarjoukseen ja asiakas maksaa myös suuren osan opettelusta. Tottakai ympäristöjä myös vaihdetaan aina joskus, mutta vähän poikkeuksellistahan sekin on.

        Paha sanoa ihan noin vain, kumpi on tuottavampi kielenä. Meinaan, laajoissa skaalautuvissa systeemeissä Ruby ei taida olla oikeastaan ollenkaan tuottava kun taas pikkuhilpakkeissa joissa ei ole graafista käyttöliittymää, asia voi olla täysin toisin.

        Pitää muuten myöntää, että minulle tuottavuus on kuin ruuvari. Meinaan, jos sillä toisella ruuvarilla saa auton kasaan hitaasti mutta ehjänä, ei paljoa merkitse jos tehoruuvarilla työskennellen auto on kasassa alle aikayksikön, mutta ruuvit ovat niin tohjona, ettei niistä ole enää mihinkään.

        Ois oikeestaan kiintoisaa nähdä firma jossa kielen tuottavuus on merkittävimmässä asemassa :)

        "Paha sanoa ihan noin vain, kumpi on tuottavampi kielenä."

        Eteenkään kun et tiedä mitään Rubysta, mutta lässytys on kova. Mikset vaan sano 'en tiedä'.

        Ymmärtääkseni on selkeä konsensus 'asiasta perillä olevien tahojen kesken', että ruby/python( muut-dynaamisesti-tyypittävät) kielet ovat tuottavampia koodauksessa kuin Java, joten jos väittää jotain muuta pitää olla kovaa faktaa tai erittäin hyviä perusteluja.
        Katso vaikka tota hyvää vertailua (muitakin löytyy huru mycke):
        http://www.dmh2000.com/cjpr/

        Toisaalta voisit kokeilla ihan itse.


      • Jepulis Jeep
        juupa juu kirjoitti:

        "Paha sanoa ihan noin vain, kumpi on tuottavampi kielenä."

        Eteenkään kun et tiedä mitään Rubysta, mutta lässytys on kova. Mikset vaan sano 'en tiedä'.

        Ymmärtääkseni on selkeä konsensus 'asiasta perillä olevien tahojen kesken', että ruby/python( muut-dynaamisesti-tyypittävät) kielet ovat tuottavampia koodauksessa kuin Java, joten jos väittää jotain muuta pitää olla kovaa faktaa tai erittäin hyviä perusteluja.
        Katso vaikka tota hyvää vertailua (muitakin löytyy huru mycke):
        http://www.dmh2000.com/cjpr/

        Toisaalta voisit kokeilla ihan itse.

        oikeen ite tiijä tuosta Rupiinin tuottavuudesta mitään jos puhe on normaalista GUIta käyttävästä softasta tai kunnolla skaalautuvasta J2EE-mallisesta toteutuksesta?

        Ootko koskaan tehnyt semmosia Rubiinilla?

        Javalla totesin aikanaan, että onnistuuhan se GUI:n tekeminen silläkin, mutta ei se pärjää siinä hommassa tuottavuudessa vaikka ihan .NET:lle millään tavalla.

        Pitäs ensin tietää mitä vertaa, eiköstä vaan?


    • Jepulis Jeep

      Kieli on vahvasti oliopohjainen eli tuohon on napsittu suunnilleen kaikki Javan hyvät puolet tuolta kannalta. Lisäksi saat tehtyä todella helposti piirtämällä mukavan näyttävät käyttöliittymät jotka kannustavat oppimaan lisää. Onhan se mukavaa, että ohjelma näyttääkin joltain vaikka se olisi kuinka yksinkertainen?

      http://www.microsoft.com/express/vb/

      Tuosta nappaat Download-linkkiä ja asennat tuon paketin Windowsilla toimivaan koneeseesi.

      http://www.homeandlearn.co.uk/NET/vbNET.html

      Tuossa taas hyvä paketti aloittelijalle. Siinä lähdetään liikkeelle ihan suoraan siitä itsestään mistä on kyse, eli siitä miltä Windowsille tehdyt ohjelmat näyttävät ja tuntuvat. Tehdään oma lomake, laitellaan sinne vaikka tekstikenttiä ja lisätään logiikkaa niiden taaksen.

      Aika paljon helpompaa kuin nämä perinteiset Javalla tai vastaavilla tehdyt jutut joissa katsellaan lähinnä tekstiä ja joudutaan tekemään huomattavasti vaikeampia asioita jos ruudulle halutaan mitään vähänkin enemmän grafiikkaa sisältävää.

      VB.NET on sikälikin hyvä kieli, ettei sen kanssa tarvitse olla turhan tarkka noiden Javan ja C#:n kaltaisten kielien rivin lopetusten kanssa. Ympäristö tajuaa itse koska rivi loppuu ja koodi on helposti luettavaa.

      Kysy pois jos jotain tulee mieleen.

      • "Lisäksi saat tehtyä todella helposti piirtämällä mukavan näyttävät käyttöliittymät jotka kannustavat oppimaan lisää."

        Eikä käyttämään IDE:ä..


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Lisäksi saat tehtyä todella helposti piirtämällä mukavan näyttävät käyttöliittymät jotka kannustavat oppimaan lisää."

        Eikä käyttämään IDE:ä..

        ...tehdään on ihan hyvä osata. Yleensä jokaisessa modernissa kielessä käytetään jotain ympäristöä eikä Visual Studio yhtenä maailman käytetyimmistä ole varmastikaan huono valinta jos haluaa sellaista osaamista, jonka kanssa tehdään ihan oikeita töitäkin. Totta kai niitä tehdään myös vaikkapa Jva-kielen ja Eclipse-ympäristön elikkäs siis sen IDE:n kanssa. Ei vain yhtä kivasti noita ohjelmia jos sitä käyttää. Jos kivalla ajattelee sellaista joka näyttääkin vähän joltain. Kannustaa nimittäin opettelemaan aika mukavasti kun huomaa, että ohjelma on muutakin kuin tekstiä ja sellaista.

        Niin, IDE tarkoittaa siis Integrated Development Envirooomenttia elikkäs siis periaatteessa pakettia jossa on kaikki työkalut helposti kasassa. Ihan kieliä opettelevalle hyvänä tietona tämä.


      • Jepulis Jeep kirjoitti:

        ...tehdään on ihan hyvä osata. Yleensä jokaisessa modernissa kielessä käytetään jotain ympäristöä eikä Visual Studio yhtenä maailman käytetyimmistä ole varmastikaan huono valinta jos haluaa sellaista osaamista, jonka kanssa tehdään ihan oikeita töitäkin. Totta kai niitä tehdään myös vaikkapa Jva-kielen ja Eclipse-ympäristön elikkäs siis sen IDE:n kanssa. Ei vain yhtä kivasti noita ohjelmia jos sitä käyttää. Jos kivalla ajattelee sellaista joka näyttääkin vähän joltain. Kannustaa nimittäin opettelemaan aika mukavasti kun huomaa, että ohjelma on muutakin kuin tekstiä ja sellaista.

        Niin, IDE tarkoittaa siis Integrated Development Envirooomenttia elikkäs siis periaatteessa pakettia jossa on kaikki työkalut helposti kasassa. Ihan kieliä opettelevalle hyvänä tietona tämä.

        "...tehdään on ihan hyvä osata. Yleensä jokaisessa modernissa kielessä käytetään jotain ympäristöä eikä Visual Studio yhtenä maailman käytetyimmistä ole varmastikaan huono valinta jos haluaa sellaista osaamista, jonka kanssa tehdään ihan oikeita töitäkin."

        Ohjelmoinnin osaaminen on sitä, että osaa OHJELMOIDA. IDE:n käyttöliittymän käyttö ei ole ohjelmointia. Ohjelmoinnin oppimisen kannalta parasta olisi aluksi jättää kaikki IDE:t kokonaan pois.

        "Niin, IDE tarkoittaa siis Integrated Development Envirooomenttia elikkäs siis periaatteessa pakettia jossa on kaikki työkalut helposti kasassa."

        Ennemminkin kätkee työkalut pois käyttöliittymän alle ja opettaa käyttämään kyseistä IDE:ä, ei ohjelmointia. Tuollaisella opetuksella on ihan pallo hukassa kun pitäisi jotain oikeasti ohjelmoidakin.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "...tehdään on ihan hyvä osata. Yleensä jokaisessa modernissa kielessä käytetään jotain ympäristöä eikä Visual Studio yhtenä maailman käytetyimmistä ole varmastikaan huono valinta jos haluaa sellaista osaamista, jonka kanssa tehdään ihan oikeita töitäkin."

        Ohjelmoinnin osaaminen on sitä, että osaa OHJELMOIDA. IDE:n käyttöliittymän käyttö ei ole ohjelmointia. Ohjelmoinnin oppimisen kannalta parasta olisi aluksi jättää kaikki IDE:t kokonaan pois.

        "Niin, IDE tarkoittaa siis Integrated Development Envirooomenttia elikkäs siis periaatteessa pakettia jossa on kaikki työkalut helposti kasassa."

        Ennemminkin kätkee työkalut pois käyttöliittymän alle ja opettaa käyttämään kyseistä IDE:ä, ei ohjelmointia. Tuollaisella opetuksella on ihan pallo hukassa kun pitäisi jotain oikeasti ohjelmoidakin.

        No, eipä varmaan ohjelmien käynnisteleminen ole sitä, mutta kyllä käyttöliittymän piirtäminen ja siihen toiminnallisuuden lisääminen on ihan oikeaa ohjelmointia ja tällaista taitoa kysytään aika usein ihan työelämässäkin. Meinaan, jotain osaamista käyttöliittymistä. Ei sekään ihan noin vain itsestään synny siinä ohjelmoinnin sivussa.

        Meinaatko, ettei Javaa kannata opetella esim. siten, että laitetaan koneelle Eclipse, kirjoitetaan koodia ja katsotaan miten se suorittuu siinä ympäristössä? Paljon helpompaahan se on, kun keskittyy itse asiaan, antaa IDE:n hoidella omat hommansa ja tekee sen koodin mitä haluaa.

        Onkos muuten ehdotusta siihen, millä kielellä ja ratkaisulla kannattaisi lähteä liikkeelle? Vähän epämääräistä sekin, että millä tahansa muulla kuin ympäristö X:llä...

        Kyllä hommat ovat muuten aika hyvin hanskassa jos Visual Studiota osaa käyttää hyvin. Ei siinä paljon kaivata sitä, että homma pitäisi osata tehdä vaikeimman kautta eli komentoja käsin napsutellen ja tekstimuotoista palautetta saaden. IDE:t ovat nykyaikaa ja lisäävät tuottavuutta.

        Tuottavuus on tärkeää.


      • Jepulis Jeep kirjoitti:

        No, eipä varmaan ohjelmien käynnisteleminen ole sitä, mutta kyllä käyttöliittymän piirtäminen ja siihen toiminnallisuuden lisääminen on ihan oikeaa ohjelmointia ja tällaista taitoa kysytään aika usein ihan työelämässäkin. Meinaan, jotain osaamista käyttöliittymistä. Ei sekään ihan noin vain itsestään synny siinä ohjelmoinnin sivussa.

        Meinaatko, ettei Javaa kannata opetella esim. siten, että laitetaan koneelle Eclipse, kirjoitetaan koodia ja katsotaan miten se suorittuu siinä ympäristössä? Paljon helpompaahan se on, kun keskittyy itse asiaan, antaa IDE:n hoidella omat hommansa ja tekee sen koodin mitä haluaa.

        Onkos muuten ehdotusta siihen, millä kielellä ja ratkaisulla kannattaisi lähteä liikkeelle? Vähän epämääräistä sekin, että millä tahansa muulla kuin ympäristö X:llä...

        Kyllä hommat ovat muuten aika hyvin hanskassa jos Visual Studiota osaa käyttää hyvin. Ei siinä paljon kaivata sitä, että homma pitäisi osata tehdä vaikeimman kautta eli komentoja käsin napsutellen ja tekstimuotoista palautetta saaden. IDE:t ovat nykyaikaa ja lisäävät tuottavuutta.

        Tuottavuus on tärkeää.

        "No, eipä varmaan ohjelmien käynnisteleminen ole sitä, mutta kyllä käyttöliittymän piirtäminen ja siihen toiminnallisuuden lisääminen on ihan oikeaa ohjelmointia ja tällaista taitoa kysytään aika usein ihan työelämässäkin."

        Ei. Ohjelmointi on sitä että saa ratkaistua ongelman miten tietokoneen saa jotain tekemään. Ohjelmointia osaava ymmärtää sen tekniikan niin, että tekee homman työkalusta, kielestä ja alustasta riippumatta. Ammattitaidottomat vaan piirtelee jotain käyttöliittymiä mutta ovat sormi suussa kun tulee vastaan joku ongelma mikä pitäisi ratkoa.

        "Meinaatko, ettei Javaa kannata opetella esim. siten, että laitetaan koneelle Eclipse, kirjoitetaan koodia ja katsotaan miten se suorittuu siinä ympäristössä?"

        Ei tosiaankaan. Kyllä se opettelu kannatta tehdä niin, että kirjoittaa ihan mieleisellä tekstieditorilla koodin ja kääntää shellistä. Sitten kun tämän osaa ja saa tehtyä ohjelmia, voi ruveta siirtymään IDE:n. Tulee siinä sitten selväksi se luokkakirjaston rakenne ja ymmärtää tämän _kielen_ kääntömekanismin. Kas kun sekin riippuu ohjelmointikielestä millä mekanismilla se kääntyy. Toki tähän opetteluun kuuluu joku versionhallinnan opettelu, yksikkötestien tekeminen ja jne.

        "Onkos muuten ehdotusta siihen, millä kielellä ja ratkaisulla kannattaisi lähteä liikkeelle?"

        Johan minä sanoin. Pythonilla. Se on paras ohjelmoinnin perusteiden opetteluun tänä päivänä ja vaikka sillä ei ohjelmaa tekisikään niin sillä on sitten helppo pyöräyttää jotain pientä hetken tarpeeseen tai skriptata jotain lisäpalikoita. Ei mene sen opettelu ikinä hukkaan. Python on tulkattava kieli ettei tarvitse opetella kääntämistä sen kummemmin ja se on alustariippumaton.

        Luonnollisesti ohjelmointia ei opetella millekään tietylle alustalle, sellainen opiskelu on ajanhukkaa koska alustat elävät. Onhan näitä Java "osaajia" jo näkyny kun ovat ihan hukassa yksinkertaisenkin C softan kanssa.


      • Jepulis jeep
        M-Kar kirjoitti:

        "No, eipä varmaan ohjelmien käynnisteleminen ole sitä, mutta kyllä käyttöliittymän piirtäminen ja siihen toiminnallisuuden lisääminen on ihan oikeaa ohjelmointia ja tällaista taitoa kysytään aika usein ihan työelämässäkin."

        Ei. Ohjelmointi on sitä että saa ratkaistua ongelman miten tietokoneen saa jotain tekemään. Ohjelmointia osaava ymmärtää sen tekniikan niin, että tekee homman työkalusta, kielestä ja alustasta riippumatta. Ammattitaidottomat vaan piirtelee jotain käyttöliittymiä mutta ovat sormi suussa kun tulee vastaan joku ongelma mikä pitäisi ratkoa.

        "Meinaatko, ettei Javaa kannata opetella esim. siten, että laitetaan koneelle Eclipse, kirjoitetaan koodia ja katsotaan miten se suorittuu siinä ympäristössä?"

        Ei tosiaankaan. Kyllä se opettelu kannatta tehdä niin, että kirjoittaa ihan mieleisellä tekstieditorilla koodin ja kääntää shellistä. Sitten kun tämän osaa ja saa tehtyä ohjelmia, voi ruveta siirtymään IDE:n. Tulee siinä sitten selväksi se luokkakirjaston rakenne ja ymmärtää tämän _kielen_ kääntömekanismin. Kas kun sekin riippuu ohjelmointikielestä millä mekanismilla se kääntyy. Toki tähän opetteluun kuuluu joku versionhallinnan opettelu, yksikkötestien tekeminen ja jne.

        "Onkos muuten ehdotusta siihen, millä kielellä ja ratkaisulla kannattaisi lähteä liikkeelle?"

        Johan minä sanoin. Pythonilla. Se on paras ohjelmoinnin perusteiden opetteluun tänä päivänä ja vaikka sillä ei ohjelmaa tekisikään niin sillä on sitten helppo pyöräyttää jotain pientä hetken tarpeeseen tai skriptata jotain lisäpalikoita. Ei mene sen opettelu ikinä hukkaan. Python on tulkattava kieli ettei tarvitse opetella kääntämistä sen kummemmin ja se on alustariippumaton.

        Luonnollisesti ohjelmointia ei opetella millekään tietylle alustalle, sellainen opiskelu on ajanhukkaa koska alustat elävät. Onhan näitä Java "osaajia" jo näkyny kun ovat ihan hukassa yksinkertaisenkin C softan kanssa.

        No ihan hyvinhän ongelmia ja logiikkaa voi tehdä ympäristöllä jossa on käyttöliittymäkin. Ei se käyttöliittymä estä lisäämästä koodia sinne sekaan. Nuo nykyiset kehitysvälineet ovat vielä todella hyviä siitäkin, että ne osaavat neuvoa ihan itse saman tien jos jotain tuli kirjoitettua väärin.

        Vähän kummallinen ajatus, että pitäisi käyttää jotain tekstieditoria ja yrittää itse muistella, miten minkäkin metodin kirjoitusasua menisi. Eiköhän se ole ihan ohjelmoijan etu, että ympäristö osaa ehdottaa korjausvaihtoehtoja sekä kertoo mitä metodeja oliolla olisi käytettävissään. Samoin sekin on ihan kiva juttu, jos IDE vihjaisee, että nyt on kuule jäänyt instanssi tekemättä ja tätä metodia ei voi käytellä ilman semmoista. Aika turhaa jättää tuollaisten huomaamista käännösvaiheeseen - tai ohjelman ajamiseen ja virheen huomaamiseen siinä vaiheessa kun homma menee pieleen sillä tekstieditorilla kirjoitetun koodin kanssa.

        Jos luokkakirjastojen rakenteita alkaa opettelemaan syvällisesti tai edes auttavasti tekstieditorilla vääntäen, niin siinä kyllä loppuu taas kerran into aika herkästi jos aloittelija on vähänkin kokemattomampi ja ajatuksena on oppia tekemään jotain tuottavaa.

        Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun. Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi, miksi tyypityksellä on merkitystä ja mikä olikaan koko homman juoni. Tietenkin jotain asioita saa tehtyä todella helposti, mutta niin ne saa hoidettua muillakin korkeammilla kielillä, ilman ongelmia.

        Alustojen kanssa olen sitä mieltä, että kyllä alustojen opettelu on kannattavaa jo siksikin, että jos katsoo noita työpaikkailmoituksia, niin niissä haetaan yleensä porukkaa joka hallitsee jonkun alustan kanssa touhuamisen. Kyllä sellaisen osaava voittaa hakutilanteessa vastaavan kaverin joka osaa yleisesti ja laiteriippumattomasti vastaavat hommat, mutta ei tunne sen yhden alustan kommervenkkeja.

        Eikä sillä C :lla kannata tehdä ollenkaan kaikkea. Erikoishommiinhan semmoista käytetään nykyisin. Ei mikään tuottavin systeemi.


      • TRRY
        Jepulis jeep kirjoitti:

        No ihan hyvinhän ongelmia ja logiikkaa voi tehdä ympäristöllä jossa on käyttöliittymäkin. Ei se käyttöliittymä estä lisäämästä koodia sinne sekaan. Nuo nykyiset kehitysvälineet ovat vielä todella hyviä siitäkin, että ne osaavat neuvoa ihan itse saman tien jos jotain tuli kirjoitettua väärin.

        Vähän kummallinen ajatus, että pitäisi käyttää jotain tekstieditoria ja yrittää itse muistella, miten minkäkin metodin kirjoitusasua menisi. Eiköhän se ole ihan ohjelmoijan etu, että ympäristö osaa ehdottaa korjausvaihtoehtoja sekä kertoo mitä metodeja oliolla olisi käytettävissään. Samoin sekin on ihan kiva juttu, jos IDE vihjaisee, että nyt on kuule jäänyt instanssi tekemättä ja tätä metodia ei voi käytellä ilman semmoista. Aika turhaa jättää tuollaisten huomaamista käännösvaiheeseen - tai ohjelman ajamiseen ja virheen huomaamiseen siinä vaiheessa kun homma menee pieleen sillä tekstieditorilla kirjoitetun koodin kanssa.

        Jos luokkakirjastojen rakenteita alkaa opettelemaan syvällisesti tai edes auttavasti tekstieditorilla vääntäen, niin siinä kyllä loppuu taas kerran into aika herkästi jos aloittelija on vähänkin kokemattomampi ja ajatuksena on oppia tekemään jotain tuottavaa.

        Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun. Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi, miksi tyypityksellä on merkitystä ja mikä olikaan koko homman juoni. Tietenkin jotain asioita saa tehtyä todella helposti, mutta niin ne saa hoidettua muillakin korkeammilla kielillä, ilman ongelmia.

        Alustojen kanssa olen sitä mieltä, että kyllä alustojen opettelu on kannattavaa jo siksikin, että jos katsoo noita työpaikkailmoituksia, niin niissä haetaan yleensä porukkaa joka hallitsee jonkun alustan kanssa touhuamisen. Kyllä sellaisen osaava voittaa hakutilanteessa vastaavan kaverin joka osaa yleisesti ja laiteriippumattomasti vastaavat hommat, mutta ei tunne sen yhden alustan kommervenkkeja.

        Eikä sillä C :lla kannata tehdä ollenkaan kaikkea. Erikoishommiinhan semmoista käytetään nykyisin. Ei mikään tuottavin systeemi.

        | Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun.

        Minä suosittelisin.

        | Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi

        >>> type("olipa kummallinen väite")


        | miksi tyypityksellä on merkitystä

        Pidät staattista tyypitystä hyvin merkittävänä asiana? Etkö saman tien vaatisi kieleltäsi myös pakollisia esi- ja jälkiehtoja jokaiselle metodille, unohtamatta tietenkään luokka- ja silmukkainvariantteja Eiffelin tapaan. Eihän sitä muuten tiedä, mitä ohjelma tekee.

        Pythonissa on kyllä se huono puoli, että kun sillä oppii ohjelmoimaan, niin staattisesti tyypitettyjen kielien kanssa voi helposti turhautua. Sitä vain ihmettelee, miten yksinkertaisten asioiden tekeminen voi vaatia niin hirvittävän paljon sotkuista koodia.

        Python on aivan loistava ohjelmointikieli kokeneille ohjelmoijille, koska sillä voi keskittyä varsinaiseen ongelman ratkaisuun, eikä esim. kääntäjän tyytyväisenä pitämiseen.

        Python on loistava kieli myös ohjelmoinnin opiskeluun. Esimerkiksi interaktiivisen tulkin kanssa pystyy välittömästi kokeilemaan mitä eri lauseet tekevät ja miten kirjastot ja funktiot toimivat. Se on paitsi opettavaista myös nopeampaa kuin yrittää löytää samat asiat tyypillisen IDEn on-line helppien puutteellista dokumentaatiosta ja triviaaleista esimerkeistä.

        | ja mikä olikaan koko homman juoni.

        Jos tämä hukkuu ohjelmoidessa, niin siitä on kyllä turha syyttää ohjelmointikieltä.

        | Tietenkin jotain asioita saa tehtyä todella helposti,
        | mutta niin ne saa hoidettua muillakin korkeammilla
        | kielillä, ilman ongelmia.

        Jos viittaat "muillakin korkeammilla kielillä" C :aan, Javaan, C#:iin, Visual Basiciin, Delphiin tai vastaaviin, niin olen eri mieltä. Dynaaminen tyypitys mahdollistaa arkkitehtuuritasolta lähtien ratkaisuja, joiden tekeminen staattisesti tyypitetyillä kielillä on sietämättömän hankalaa ja joskus jopa täysin mahdotonta.

        Mitä sanoin tässä viestissä Pythonissa pätee monin osin myös muihin dynaamisesti tyypitettyihin oliokieliin, kuten Rubyyn ja ECMAScript-murteisiin (Javascript, Actionscript).


      • Jepulis jeep kirjoitti:

        No ihan hyvinhän ongelmia ja logiikkaa voi tehdä ympäristöllä jossa on käyttöliittymäkin. Ei se käyttöliittymä estä lisäämästä koodia sinne sekaan. Nuo nykyiset kehitysvälineet ovat vielä todella hyviä siitäkin, että ne osaavat neuvoa ihan itse saman tien jos jotain tuli kirjoitettua väärin.

        Vähän kummallinen ajatus, että pitäisi käyttää jotain tekstieditoria ja yrittää itse muistella, miten minkäkin metodin kirjoitusasua menisi. Eiköhän se ole ihan ohjelmoijan etu, että ympäristö osaa ehdottaa korjausvaihtoehtoja sekä kertoo mitä metodeja oliolla olisi käytettävissään. Samoin sekin on ihan kiva juttu, jos IDE vihjaisee, että nyt on kuule jäänyt instanssi tekemättä ja tätä metodia ei voi käytellä ilman semmoista. Aika turhaa jättää tuollaisten huomaamista käännösvaiheeseen - tai ohjelman ajamiseen ja virheen huomaamiseen siinä vaiheessa kun homma menee pieleen sillä tekstieditorilla kirjoitetun koodin kanssa.

        Jos luokkakirjastojen rakenteita alkaa opettelemaan syvällisesti tai edes auttavasti tekstieditorilla vääntäen, niin siinä kyllä loppuu taas kerran into aika herkästi jos aloittelija on vähänkin kokemattomampi ja ajatuksena on oppia tekemään jotain tuottavaa.

        Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun. Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi, miksi tyypityksellä on merkitystä ja mikä olikaan koko homman juoni. Tietenkin jotain asioita saa tehtyä todella helposti, mutta niin ne saa hoidettua muillakin korkeammilla kielillä, ilman ongelmia.

        Alustojen kanssa olen sitä mieltä, että kyllä alustojen opettelu on kannattavaa jo siksikin, että jos katsoo noita työpaikkailmoituksia, niin niissä haetaan yleensä porukkaa joka hallitsee jonkun alustan kanssa touhuamisen. Kyllä sellaisen osaava voittaa hakutilanteessa vastaavan kaverin joka osaa yleisesti ja laiteriippumattomasti vastaavat hommat, mutta ei tunne sen yhden alustan kommervenkkeja.

        Eikä sillä C :lla kannata tehdä ollenkaan kaikkea. Erikoishommiinhan semmoista käytetään nykyisin. Ei mikään tuottavin systeemi.

        "Vähän kummallinen ajatus, että pitäisi käyttää jotain tekstieditoria ja yrittää itse muistella, miten minkäkin metodin kirjoitusasua menisi."

        Ei tuossa ole mitään kummallista. Et nyt tunnu ymmärtävän sitä, että tekstieditorilla voi kirjoittaa mitä tahansa softaa ja millähän tavalla se IDE opettaa millä tavalla softan kääntömekanismi toimii? Tuollaisesta tulee vain avuttomia ohjelmoijia jotka ei osaa tehdä mitään jos vaikka joku kirjasto ei käänny tai pitää tehdä toisella IDE:llä/kielellä.

        "Samoin sekin on ihan kiva juttu, jos IDE vihjaisee, että nyt on kuule jäänyt instanssi tekemättä ja tätä metodia ei voi käytellä ilman semmoista."

        Nyt sitten oletat, että kaikki ohjelmointi olisi edes jotain olio-ohjelmointia. Maailmahan on menossa jo funktionaaliseen ohjelmointiin kun imperatiiviset kielet on vähän ikäviä rinnakkaisuuden kanssa.

        Se on myös kiva juttu kun ei tarvitse opetella muutaman vuoden välein hommia uudestaan. Saat vähän perpektiiviä asiaan kun on porukkaa jotka koodailleet Emacsilla jostain 70-luvun lopulta lähtien. Ja kyllä, se on myös erittäin tehokas kun siinä on oma ekosysteeminsä että sen editorin saa loitsumaan paljon asioita.

        "Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun. Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi, miksi tyypityksellä on merkitystä ja mikä olikaan koko homman juoni."

        No sehän on vain etu. Perusteiden opettelussa on tärkeää se, että oppimiskäyrä on pieni. Ei kääntämistä, ei tyypitystä, ei mitään olioihin pakotusta. Tästä syystä ohjelmoinnin opettelussa on suosittu sellaista hirveätä kieltä kuin Basic.

        "Eikä sillä C :lla kannata tehdä ollenkaan kaikkea. Erikoishommiinhan semmoista käytetään nykyisin. Ei mikään tuottavin systeemi."

        Ei se mihinkään erikoishommiin ole. Paras työkalu natiivikoodi rich client -softaan. Edelleenkin otetaan oikea työkalu oikeaan hommaan. Mikä se sellainen ohjelmoija on joka yrittää sahalla vasaroida nauloja?


      • Jepulis Jeep
        TRRY kirjoitti:

        | Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun.

        Minä suosittelisin.

        | Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi

        >>> type("olipa kummallinen väite")


        | miksi tyypityksellä on merkitystä

        Pidät staattista tyypitystä hyvin merkittävänä asiana? Etkö saman tien vaatisi kieleltäsi myös pakollisia esi- ja jälkiehtoja jokaiselle metodille, unohtamatta tietenkään luokka- ja silmukkainvariantteja Eiffelin tapaan. Eihän sitä muuten tiedä, mitä ohjelma tekee.

        Pythonissa on kyllä se huono puoli, että kun sillä oppii ohjelmoimaan, niin staattisesti tyypitettyjen kielien kanssa voi helposti turhautua. Sitä vain ihmettelee, miten yksinkertaisten asioiden tekeminen voi vaatia niin hirvittävän paljon sotkuista koodia.

        Python on aivan loistava ohjelmointikieli kokeneille ohjelmoijille, koska sillä voi keskittyä varsinaiseen ongelman ratkaisuun, eikä esim. kääntäjän tyytyväisenä pitämiseen.

        Python on loistava kieli myös ohjelmoinnin opiskeluun. Esimerkiksi interaktiivisen tulkin kanssa pystyy välittömästi kokeilemaan mitä eri lauseet tekevät ja miten kirjastot ja funktiot toimivat. Se on paitsi opettavaista myös nopeampaa kuin yrittää löytää samat asiat tyypillisen IDEn on-line helppien puutteellista dokumentaatiosta ja triviaaleista esimerkeistä.

        | ja mikä olikaan koko homman juoni.

        Jos tämä hukkuu ohjelmoidessa, niin siitä on kyllä turha syyttää ohjelmointikieltä.

        | Tietenkin jotain asioita saa tehtyä todella helposti,
        | mutta niin ne saa hoidettua muillakin korkeammilla
        | kielillä, ilman ongelmia.

        Jos viittaat "muillakin korkeammilla kielillä" C :aan, Javaan, C#:iin, Visual Basiciin, Delphiin tai vastaaviin, niin olen eri mieltä. Dynaaminen tyypitys mahdollistaa arkkitehtuuritasolta lähtien ratkaisuja, joiden tekeminen staattisesti tyypitetyillä kielillä on sietämättömän hankalaa ja joskus jopa täysin mahdotonta.

        Mitä sanoin tässä viestissä Pythonissa pätee monin osin myös muihin dynaamisesti tyypitettyihin oliokieliin, kuten Rubyyn ja ECMAScript-murteisiin (Javascript, Actionscript).

        Kyllä sillä voi varmaan opetella ohjelmoimaan ihan hyvin, ei siinä mitään. Itse en sitä vain suosittelisi siihen hommaan ainakaan ennen kuin tietäisin miksi joku on opettelemassa ohjelmoimaan ja mitä on ajatellut tehdä.

        Kieltä 2 oppii varmaan koodaamaan helpommin jo osaa ensin kielen 1 mutta vähän ihmetyttää se, miksi pitää opetella ensin ruotsia jotta voi opetella saksaa. Noin kielipoliittisena esimerkkinä.

        Staattinen tyypitys pistää ainakin miettimään sitä, mitä siellä taustalla tapahtuu. Eipä se kai ole nykyisin niin merkittävä asia kun tehoja on kuin leipää.

        Tuo mitä sanoit kokeneesta ohjelmoijasta.. Olet ihan oikeassa.

        Kieltä voi kyllä syytellä aika helposti siitä jos homman pointti hukkuu. Tuota varten kun on käytännössä jopa suunniteltu omia kieliään joissa pointin hukkuminen on mahdollisimman tehokasta. Brainfuck vaikka onkin huumorikieli, on ihan hyvä esimerkki sellaisesta. Javan kanssa muuten monella menee asiat sekaisin ihan turhaan primitiivien kanssa kun ne eivät olekaan olioita.

        Toinen asia on se, pitäisikö aloittelijan ymmärtää vaikka se, mikä on eventti ja kannattaako ensimmäinen Hello World tehdä vaikka eventin avulla.

        Jos otetaan nyt vertailukohdaksi vaikka Visual Basic .NET niin mitä sillä ei voi tehdä sellaista, mitä tyypittämättömällä voi tehdä? Itse en pidä kovin hankalana tyypitysten käyttöjä, mutta toisaalta, en ole aloittelija koodauksen suhteen eikä tietotyyppien käytössä ole mitään kummallista.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Vähän kummallinen ajatus, että pitäisi käyttää jotain tekstieditoria ja yrittää itse muistella, miten minkäkin metodin kirjoitusasua menisi."

        Ei tuossa ole mitään kummallista. Et nyt tunnu ymmärtävän sitä, että tekstieditorilla voi kirjoittaa mitä tahansa softaa ja millähän tavalla se IDE opettaa millä tavalla softan kääntömekanismi toimii? Tuollaisesta tulee vain avuttomia ohjelmoijia jotka ei osaa tehdä mitään jos vaikka joku kirjasto ei käänny tai pitää tehdä toisella IDE:llä/kielellä.

        "Samoin sekin on ihan kiva juttu, jos IDE vihjaisee, että nyt on kuule jäänyt instanssi tekemättä ja tätä metodia ei voi käytellä ilman semmoista."

        Nyt sitten oletat, että kaikki ohjelmointi olisi edes jotain olio-ohjelmointia. Maailmahan on menossa jo funktionaaliseen ohjelmointiin kun imperatiiviset kielet on vähän ikäviä rinnakkaisuuden kanssa.

        Se on myös kiva juttu kun ei tarvitse opetella muutaman vuoden välein hommia uudestaan. Saat vähän perpektiiviä asiaan kun on porukkaa jotka koodailleet Emacsilla jostain 70-luvun lopulta lähtien. Ja kyllä, se on myös erittäin tehokas kun siinä on oma ekosysteeminsä että sen editorin saa loitsumaan paljon asioita.

        "Pythonia en kyllä suosittelisi kovin helposti ohjelmoinnin opetteluun. Sen kanssa kun ei oikein hahmoteta yleensä sitä, mikä on tietotyyppi, miksi tyypityksellä on merkitystä ja mikä olikaan koko homman juoni."

        No sehän on vain etu. Perusteiden opettelussa on tärkeää se, että oppimiskäyrä on pieni. Ei kääntämistä, ei tyypitystä, ei mitään olioihin pakotusta. Tästä syystä ohjelmoinnin opettelussa on suosittu sellaista hirveätä kieltä kuin Basic.

        "Eikä sillä C :lla kannata tehdä ollenkaan kaikkea. Erikoishommiinhan semmoista käytetään nykyisin. Ei mikään tuottavin systeemi."

        Ei se mihinkään erikoishommiin ole. Paras työkalu natiivikoodi rich client -softaan. Edelleenkin otetaan oikea työkalu oikeaan hommaan. Mikä se sellainen ohjelmoija on joka yrittää sahalla vasaroida nauloja?

        Ihan mitä tahansa, mutta ei vain kovin helposti koodata asioita opetellessa sillä tekstieditorilla. Eikä se ohjelmoija voi olla käytännössä alussa muuta kuin avuton. Hyvä kun saa viritettyä ensimmäisen ohjelmansa toimimaan edes jotenkin.

        Olio-ohjelmointi on yksi ihan hyvä juttu mutta ei tietenkään ainoa malli. Sopii nykyisin useampaan hommaan kuin olioton malli. Rinnakaisuuden hallintaan on omat juttunsa. Jotenkin vain tuntuu siltä, ettei datanomeille opeteta käytännössä ollenkaan sitä, mitä tarkoittaa thread safe koodailu.

        Mitä muuten oikein tarkoitat rich client softilla?

        Emacs on modernissa ohjelmoinnissa melkoinen retrovitsi. Kyllä sillä ns. gurut koodaavat oikeastikin, mutta ei sellainen ole enää tätä päivää.


      • Jepulis Jeep kirjoitti:

        Ihan mitä tahansa, mutta ei vain kovin helposti koodata asioita opetellessa sillä tekstieditorilla. Eikä se ohjelmoija voi olla käytännössä alussa muuta kuin avuton. Hyvä kun saa viritettyä ensimmäisen ohjelmansa toimimaan edes jotenkin.

        Olio-ohjelmointi on yksi ihan hyvä juttu mutta ei tietenkään ainoa malli. Sopii nykyisin useampaan hommaan kuin olioton malli. Rinnakaisuuden hallintaan on omat juttunsa. Jotenkin vain tuntuu siltä, ettei datanomeille opeteta käytännössä ollenkaan sitä, mitä tarkoittaa thread safe koodailu.

        Mitä muuten oikein tarkoitat rich client softilla?

        Emacs on modernissa ohjelmoinnissa melkoinen retrovitsi. Kyllä sillä ns. gurut koodaavat oikeastikin, mutta ei sellainen ole enää tätä päivää.

        "Mitä muuten oikein tarkoitat rich client softilla?"

        Rich client, eli softa joka ajetaan puhtaasti asiakaspäässä. C on paras siihen kun tehdään natiivikoodia.

        "Emacs on modernissa ohjelmoinnissa melkoinen retrovitsi. Kyllä sillä ns. gurut koodaavat oikeastikin, mutta ei sellainen ole enää tätä päivää."

        En usko että se mikään huono editori on edelleenkään. Ymmärtääkseni Vim on mennyt siitä ohitse aikaa sitten, mutta Emacsilla on vahva ekosysteemi. Itse ajattelin, että Geditistä saisi mahdollisesti rakennettua hyvinkin tehokkaan työkalun kun siinäkin on tuki Python scriptaukselle ja sitä pystyisi muokkaamaan miten huvittaa. Visual studiossa on muutama kiva fiitsö mitkä voisi helposti toteuttaa siihen.


      • Jepulis Jeep
        M-Kar kirjoitti:

        "Mitä muuten oikein tarkoitat rich client softilla?"

        Rich client, eli softa joka ajetaan puhtaasti asiakaspäässä. C on paras siihen kun tehdään natiivikoodia.

        "Emacs on modernissa ohjelmoinnissa melkoinen retrovitsi. Kyllä sillä ns. gurut koodaavat oikeastikin, mutta ei sellainen ole enää tätä päivää."

        En usko että se mikään huono editori on edelleenkään. Ymmärtääkseni Vim on mennyt siitä ohitse aikaa sitten, mutta Emacsilla on vahva ekosysteemi. Itse ajattelin, että Geditistä saisi mahdollisesti rakennettua hyvinkin tehokkaan työkalun kun siinäkin on tuki Python scriptaukselle ja sitä pystyisi muokkaamaan miten huvittaa. Visual studiossa on muutama kiva fiitsö mitkä voisi helposti toteuttaa siihen.

        Natiivikoodia vai siis työasemalla ajettavaa stand alonea? Voihan semmoisenkin tehdä kait aika hyvin vaikka Pythonillakin? Ei se natiivikoodi sinänsä ole mikään juttu nykyään jos ja kun tehoa on. Toisaalta saahan c :llakin tehtyä vaikka managed koodia.

        C :n ongelma ovat hankalat muistinkäsittelyt. Niin, ja tietenkin se rajapinta, joka pitää valita, ja jolle hommat tehdään.

        En pidä Emacsia sinällään hionona editorina, mutta vitsinä sikäli, että kyllähän joku Eclipse on aika herkkua siihen verrattuna kaikkine apuineen jos Javaa meinaa tehdä.


      • TRRY
        Jepulis Jeep kirjoitti:

        Kyllä sillä voi varmaan opetella ohjelmoimaan ihan hyvin, ei siinä mitään. Itse en sitä vain suosittelisi siihen hommaan ainakaan ennen kuin tietäisin miksi joku on opettelemassa ohjelmoimaan ja mitä on ajatellut tehdä.

        Kieltä 2 oppii varmaan koodaamaan helpommin jo osaa ensin kielen 1 mutta vähän ihmetyttää se, miksi pitää opetella ensin ruotsia jotta voi opetella saksaa. Noin kielipoliittisena esimerkkinä.

        Staattinen tyypitys pistää ainakin miettimään sitä, mitä siellä taustalla tapahtuu. Eipä se kai ole nykyisin niin merkittävä asia kun tehoja on kuin leipää.

        Tuo mitä sanoit kokeneesta ohjelmoijasta.. Olet ihan oikeassa.

        Kieltä voi kyllä syytellä aika helposti siitä jos homman pointti hukkuu. Tuota varten kun on käytännössä jopa suunniteltu omia kieliään joissa pointin hukkuminen on mahdollisimman tehokasta. Brainfuck vaikka onkin huumorikieli, on ihan hyvä esimerkki sellaisesta. Javan kanssa muuten monella menee asiat sekaisin ihan turhaan primitiivien kanssa kun ne eivät olekaan olioita.

        Toinen asia on se, pitäisikö aloittelijan ymmärtää vaikka se, mikä on eventti ja kannattaako ensimmäinen Hello World tehdä vaikka eventin avulla.

        Jos otetaan nyt vertailukohdaksi vaikka Visual Basic .NET niin mitä sillä ei voi tehdä sellaista, mitä tyypittämättömällä voi tehdä? Itse en pidä kovin hankalana tyypitysten käyttöjä, mutta toisaalta, en ole aloittelija koodauksen suhteen eikä tietotyyppien käytössä ole mitään kummallista.

        > Itse en [Pythonia] vain suosittelisi siihen hommaan
        > ainakaan ennen kuin tietäisin miksi joku on
        > opettelemassa ohjelmoimaan ja mitä on ajatellut tehdä.

        Jos opetellaan ohjelmoimaan, niin kysymykseen "mitä on ajatellut tehdä" vastaus pitäisi olla "opetella miten tietokonetta voi käskeä tekemään asioita automaattisesti". Silloin sopii aloittaa lauseiden suoritusjärjestyksen ymmärtämisestä, imperatiivisilla kielillä muuttujien, datan ja sijoituslauseen oppimisesta ja kontrollirakenteiden sisäistämisestä (if, while).

        En näe mitään järkeä kuvion sotkemisella eventteillä, käyttöliittymien piirtelyllä tai monimutkaisillä IDEillä ylipäätään. Näiden perusasioiden opettelussa ei kaivata classeja, publiceja, staticeja tai voideja. Ei moduuleja eikä alussa edes funktioita. Siksi pitäisin parempana, ettei niitä tarvitsisi edes näyttää opiskelijalle. Ei esimerkeissä, ihmisen kirjoittamina, eikä etenkään minkään IDEn automaattisesti generoimina loitsuina. (Imho, ohjelmointikieli on epäonnistunut, jos tehokas ohjelmointi vaatii työkalut, jotka generoivat osan koodista valmiiksi.)

        > miksi pitää opetella ensin ruotsia jotta voi opetella saksaa.

        Ohjelmointikielissä ei (onneksi) ole yhtä ainoaa dominoivaa kieltä. Millä tahansa kielellä opetteleekin ohjelmoimaan, jossain vaiheessa joutuu joka tapauksessa opettelemaan muitakin kieliä --- ainakin jos aikoo tienata ohjelmoinnilla leipänsä.

        Mutta siinäkin tapauksessa, että haluttaisiin vältellä uuden kielen opiskelua tulevaisuudessa, en pitäisi Pythonia huonona vaihtoehtona. Cobolilla ei ole eikä tule olemaan enää suuria päiviä, Java on merkittävä kieli tänään, mutta sen käyrä on laskenut melko tasaisesti paljon vuodesta 2001. Suunnilleen saman abstraktiotason kieli C# lienee syönyt sen suosiota, mutta C# ja Java ovat yhteenlaskettuinakin on laskusuhdanteessa.

        Sen sijaan Tioben kymmenen "suosituimman" ohjelmointikielen joukossa on kaksi huomattavasti näitä korkeamman tason kieltä: Javascript ja Python, ja heti 11. sijalta löytyy samaan porukkaan kuuluva Ruby. Näiden kaikkien kolmen trendit ovat nousseet selvästi viimeiset kolme vuotta. Eikä niiden suosion huippua ole varmasti vielä nähty.

        > Staattinen tyypitys pistää ainakin miettimään sitä,
        > mitä siellä taustalla tapahtuu.

        En malta olla sanomatta, kokeilepa niitä esi- ja jälkiehtoja sekä luokka- että silmukkainvariantteja. Se se vasta pistääkin miettimään, mitä ohjelman ajoaikana tapahtuu.

        Olen minäkin hakannut päätäni seinään kirjoittaessani järjettömän monimutkaisia tyyppimääreitä vain siksi, että haluan tallentaa johonkin tietorakenteeseen useita eri tyyppisiä arvoja sisältäviä alirakenteita. Ajattelua se totisesti vaatii, mutta pointtini on, että se on tehotonta ajan käyttöä. Käytän mieluummin yli jäävän ajan yksikkötestien kirjoittamiseen. Niistä on paljon enemmän iloa kuin tyyppimääreistä.

        > Jos otetaan nyt vertailukohdaksi vaikka Visual Basic .NET
        > niin mitä sillä ei voi tehdä sellaista, mitä tyypittämättömällä
        > voi tehdä?

        En valitettavasti tunne versiota VB:stä. VBScript, VBA ja wanha VB ovat vähintään yhtä valitettavasti tuttuja. Mutta luulen, että sillä ei ole helppoa tai mahdollista

        - lisätä ajonaikaisesti metodeja luokkiin

        - lisätä ajonaikaisesti metodeja olioihin

        - luoda ajonaikaisesti uusia luokkia tai ylipäätään generoida ja suorittaa ohjelmakoodia lennosta

        - siirtää koodia suoritettavaksi toisille koneille

        - kirjoittaa helposti testikoodia omille ohjelmille (tehdä stubeja tai mock-objekteja)

        Nämä nyt tuli mieleen heti aluksi.


      • Jepulis Jeep
        TRRY kirjoitti:

        > Itse en [Pythonia] vain suosittelisi siihen hommaan
        > ainakaan ennen kuin tietäisin miksi joku on
        > opettelemassa ohjelmoimaan ja mitä on ajatellut tehdä.

        Jos opetellaan ohjelmoimaan, niin kysymykseen "mitä on ajatellut tehdä" vastaus pitäisi olla "opetella miten tietokonetta voi käskeä tekemään asioita automaattisesti". Silloin sopii aloittaa lauseiden suoritusjärjestyksen ymmärtämisestä, imperatiivisilla kielillä muuttujien, datan ja sijoituslauseen oppimisesta ja kontrollirakenteiden sisäistämisestä (if, while).

        En näe mitään järkeä kuvion sotkemisella eventteillä, käyttöliittymien piirtelyllä tai monimutkaisillä IDEillä ylipäätään. Näiden perusasioiden opettelussa ei kaivata classeja, publiceja, staticeja tai voideja. Ei moduuleja eikä alussa edes funktioita. Siksi pitäisin parempana, ettei niitä tarvitsisi edes näyttää opiskelijalle. Ei esimerkeissä, ihmisen kirjoittamina, eikä etenkään minkään IDEn automaattisesti generoimina loitsuina. (Imho, ohjelmointikieli on epäonnistunut, jos tehokas ohjelmointi vaatii työkalut, jotka generoivat osan koodista valmiiksi.)

        > miksi pitää opetella ensin ruotsia jotta voi opetella saksaa.

        Ohjelmointikielissä ei (onneksi) ole yhtä ainoaa dominoivaa kieltä. Millä tahansa kielellä opetteleekin ohjelmoimaan, jossain vaiheessa joutuu joka tapauksessa opettelemaan muitakin kieliä --- ainakin jos aikoo tienata ohjelmoinnilla leipänsä.

        Mutta siinäkin tapauksessa, että haluttaisiin vältellä uuden kielen opiskelua tulevaisuudessa, en pitäisi Pythonia huonona vaihtoehtona. Cobolilla ei ole eikä tule olemaan enää suuria päiviä, Java on merkittävä kieli tänään, mutta sen käyrä on laskenut melko tasaisesti paljon vuodesta 2001. Suunnilleen saman abstraktiotason kieli C# lienee syönyt sen suosiota, mutta C# ja Java ovat yhteenlaskettuinakin on laskusuhdanteessa.

        Sen sijaan Tioben kymmenen "suosituimman" ohjelmointikielen joukossa on kaksi huomattavasti näitä korkeamman tason kieltä: Javascript ja Python, ja heti 11. sijalta löytyy samaan porukkaan kuuluva Ruby. Näiden kaikkien kolmen trendit ovat nousseet selvästi viimeiset kolme vuotta. Eikä niiden suosion huippua ole varmasti vielä nähty.

        > Staattinen tyypitys pistää ainakin miettimään sitä,
        > mitä siellä taustalla tapahtuu.

        En malta olla sanomatta, kokeilepa niitä esi- ja jälkiehtoja sekä luokka- että silmukkainvariantteja. Se se vasta pistääkin miettimään, mitä ohjelman ajoaikana tapahtuu.

        Olen minäkin hakannut päätäni seinään kirjoittaessani järjettömän monimutkaisia tyyppimääreitä vain siksi, että haluan tallentaa johonkin tietorakenteeseen useita eri tyyppisiä arvoja sisältäviä alirakenteita. Ajattelua se totisesti vaatii, mutta pointtini on, että se on tehotonta ajan käyttöä. Käytän mieluummin yli jäävän ajan yksikkötestien kirjoittamiseen. Niistä on paljon enemmän iloa kuin tyyppimääreistä.

        > Jos otetaan nyt vertailukohdaksi vaikka Visual Basic .NET
        > niin mitä sillä ei voi tehdä sellaista, mitä tyypittämättömällä
        > voi tehdä?

        En valitettavasti tunne versiota VB:stä. VBScript, VBA ja wanha VB ovat vähintään yhtä valitettavasti tuttuja. Mutta luulen, että sillä ei ole helppoa tai mahdollista

        - lisätä ajonaikaisesti metodeja luokkiin

        - lisätä ajonaikaisesti metodeja olioihin

        - luoda ajonaikaisesti uusia luokkia tai ylipäätään generoida ja suorittaa ohjelmakoodia lennosta

        - siirtää koodia suoritettavaksi toisille koneille

        - kirjoittaa helposti testikoodia omille ohjelmille (tehdä stubeja tai mock-objekteja)

        Nämä nyt tuli mieleen heti aluksi.

        Miksi opetellaan ohjelmoimaan? Moni opettelee tätä ihan siksi, että oppisi käskyttämään tietokonetta töissään. Sillä on aika paljon eroa siihen, että pyritään ymmärtämään vaikka nyt Rubyn ja koneen välinen sielunelämä ihan oikeasti.

        Eventit ovat sellainen asia, että niiden ymmärtäminen ihan perusjuttuna voi olla helpompaa kuin tajuta mitä tekee integer ja miksi tyypittämättömissäkään kielissä ei voi laskea yhteen mallilla "yksi" 5. Esimerkki VB.NET:stä (joka on käytännössä täysin sama kieli kuin C#) ja hello worldistä eventin ja automaattisen koodingeneroinnin kanssa:

        Private Sub ButtonTestinappi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonTestinappi.Click
        MessageBox.Show("Hei vaan maailmanretale!")
        End Sub

        Eli avataan uusi projekti, maalataan siihen yksi uusi nappi, tuplaklikataan sitä ja kirjoitetaan siuhen vain tuo MessageBox.Show. Tyypillisesti noiden hommien koulutuksessa sanotaan, että automattisesti generoidusta koodista ei tarvitse välittää kun asiaa vasta opetellaan. Eikä siitä tarvitsekaan. Kaikki normaali homma hoituu ihan autogeneraatioon nojaten jos siihen ei haluta puuttua.

        Vähän vaikea ymmärtää sellaista näkemystä, ettei ympäristön mahdollisimman tehokas käyttö voisi vaatia IDE:ä joka generoi koodia valmiiksi. Voihan asiat tehdä ilman sellaistakin, mutta sille on syynsä, että se generointi on lisätty helpottamaan asioita. Ei se ole mikään huono juttu koska koodi on nähtävissä ja käytettävissä aina jos sitä tarvitsisi muokata. Lisää tehokkuutta aika kivasti, sellainen mahdollisuus.

        Joo, ja ainahan noutuu opettelemaan joskus jonkun uuden kielen, jossain välissä. Pitäisin vain fiksumpana opetella suoraan Java jos tarkoituksena on työllistyä koodaamaan javalla, kuin esim. Scheme tai Python.

        Javan lukemat tuossa listassa ovat niin kovat, ettei niiden laskusta tarvitse paljon huolestua. Hommia riittää ihan varmasti kymmeniksi vuosiksi. Eri asia sitten, haluaako pysyä yhdessä kielessä ja kuinka paljon liikaa yliopistot ja vastaavat kouluttavat porukkaa javaan kun noilla on vähän fiksaatiota sen suuntaan sillä ajatusmallilla, että maksuton olisi melkein automaattisesti hyvää.

        VB.NET ja C# muuten ovat tosiaan käytännössä sama kieli. Konversio niiden välillä hoituu melkeinpä aina automaattityökaluilla ja suhteellisen suosittuja tuntuvat olevan.

        Jos sinusta noiden tietotyyppien kirjoittaminen on jotenkin turhaa, niin minusta on vähintäänkin turhaa kirjoitella koodiin sellaisia asioita jotka voi hoitaa IDE:llä klikkaamalla hiirellä ja antamalla systeemin generoida itse ne muutamat koodirivit.

        En ole koskaan ajatellut lisääväni ajonaikaisesti metodeja tai olioita luokkiin, siis silloin kun ei pyöritä debuggerissa. Mihin tarkoitukseen tuollaista käytetään?

        Mitäs meinaat koodin siirtämisessä suoritettavaksi toiselle koneelle? Et varmaan mitään toiselle koneelle tehtyä verkon läpi kutsuttavaa metodia kuitenkaan?


    • tarkemmin...

      "Ilmeisesti kielellä ja ohjelmalla ei ole väliä."

      Ilmeisesti? Ota nyt ekaksi edes selvää. Aikaisemmin ainakin oli niin että kullakin opetetulla kielellä tuli tehdä kunkin kurssin lopussa se 'pienimuotoinen ohjelma'. Lopputyössä sai sitten valita aikaisemmin opetetuista kielistä (ja luultavasti kävisi myös mikä kieli vaan mutta kukapa viitsii/ehtii opetella omatoimisesti uuden kielen opiskelun seassa). Enpä usko että tässä on muutosta tapahtunut.

    • pöllöili

      Entä jos imen munaa?

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ensitreffit Jenni laukoo viinilasin ääressä suorat sanat Jyrkin aikeista: "Mä sanoin, että älä"

      Voi ei… Mitä luulet: kestääkö Jennin ja Jyrkin avioliitto vai päättyykö eroon? Lue lisää: https://www.suomi24.fi/viihde
      Ensitreffit alttarilla
      26
      2778
    2. Ymmärrän paremmin kuin koskaan

      Roikut kädessäni ja vedät puoleesi. Näen kuitenkin tämän kaiken lävitse ja kaikkien takia minun on tehtävä tämä. Päästän
      Tunteet
      29
      2312
    3. 148
      2264
    4. Hullu liikenteessä?

      Mikä hullu pyörii kylillä jos jahti päällä? Näitä tosin kyllä riittää tällä kylällä.
      Kiuruvesi
      53
      2190
    5. Niina Lahtinen uudessa elämäntilanteessa - Kotiolot ovat muuttuneet merkittävästi: "Nyt on...!"

      Niina, tanssejasi on riemukasta seurata, iso kiitos! Lue Niinan haastattelu: https://www.suomi24.fi/viihde/niina-lahti
      Suomalaiset julkkikset
      21
      1802
    6. Kun Venäjä on tasannut tilit Ukrainan kanssa, onko Suomi seuraava?

      Mitä mieltä olette, onko Suomi seuraava, jonka kanssa Venäjä tasaa tilit? Ja voisiko sitä mitenkään estää? Esimerkiks
      NATO
      389
      1662
    7. Ano Turtiainen saa syytteet kansankiihoituksesta

      Syytteitä on kolme ja niissä on kyse kirjoituksista, jotka hän on kansanedustaja-aikanaan julkaissut Twitter-tilillään
      Maailman menoa
      98
      1597
    8. Pyhäinpäivän aamua

      Oikein hyvää huomenta ja rauhallista päivää. ❄️😊🥱☕❤️
      Ikävä
      298
      1485
    9. Varokaa! Lunta voi sataa kohta!

      Vakava säävaroitus Lumisadevaroitus Satakunta, Uusimaa, Etelä-Karjala, Keski-Suomi, Etelä-Savo, Etelä-Pohjanmaa, Pohjanm
      Maailman menoa
      13
      1419
    10. Kunta ostaa kivitipun

      Kunnanjohtajan tuleva uusi ostokohde
      Lappajärvi
      133
      1418
    Aihe