Kannattaako

oppia Java?

Kysymykseni ei ole provokatiivinen, haluaisin vain tietää onko tiedoissani puutteita?

Hallitsen sujuvasti C/C , FORTRAN, Basic/VBA, Pascal, javaScript (sekä joitakin muita ohjelmointiymäristöjä). Pää-asiassa käytän kuitenkin C . Olen joskus pikalukennut pari java käsittelevää kirjaa (Opeta itsellesi java J , Stephen R. Davies ja Tehokäyytäjän opas Java, David Flannigan). Tämän tiedon perusteella tulin siihen lopputulokseen että minun ei ole syytä paneutua Javaan, vaikka sen syntaksin oppiminen olisi helppoa.

Taka-aivoissani kuitenkin piilee se ajatus: Onko jotain jäännyt minulta huomaamatta?

Voisiko joku asiallisesti kertoa mitä etuja java tuo muihin kieliin verrattuna? (Ei mitään vastauksia tyyliin: "mun auto on parempi kun sun auto" ja "mun isä on vahvempi ku sun isä")

9

868

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • jaa

      Se riippuu ihan tarviiko sun opetella (duuni?) ja haluatko opetella (mielenkiinto).

      Tykkäätkö opetella uusia tekniikoita? .. sillä javaan ilmestyy aivan sikana jatkuvasti uusia tekniikoita opensource projekteja yms.

      Javaa käytetään enemmän softateollisuudessa koska sillä on nopeampaa tuottaa jotain konkreettista.

      Henk. koht. tekisin duunia ennenmmin C:llä tai vastaavalla, sillä javassa ei oikein enää ole mitään uutta opeteltavaa, mutta ei taida pahemmin olla duunia tarjolla siillä kielellä (siis ei windows maailmassa..) rupee turhautuneisuus stressaamaan..

    • vjh

      Jos et tarvitse javaa töissä, etkä ole kiinnostunut siitä, niin miksipä sinun sitä pitäisi opetella?
      Olen tehnyt javalla töitä monta vuotta, ja se on ihan tavallista ohjelmointia. Ei siihen liity mitään erityisen hohdokasta.
      Joissakin asioissa java on hyvä. Esimerkiksi RMI:llä tai J2EE-tekniikoilla on (kohtuullisen) helppo tehdä monikerroksisia sovelluksia. Vähän samaan tyyliin kuin CORBA:lla, jos käyttää C :aa.
      Sitten taas joissakin asioissa java ei ole hyvä. Jos pitää esimerkiksi tehdä ns. koneen läheistä koodia.

    • Piru

      alustalta toiselle. Eli kun IBM päättää lopettaa jonkun tietyn käyttöjärjestelmän tukemisen tms., niin ei tartte kääntää enää 2 000 000 riviä koodia uudestaan...

      Eikä tartte muuten osata pointtereita eikä pointterien pointtereita!

      Uusin javan versio ei ole edes niin hidas enää ja osa luokista on jopa nopeempia kuin c vastaavat.

      • petsku

        mun kokemuksien mukaan java ei läheskään aina käänny alustalta toiselle. (siis jos koodin tekijänä on ollut windows säätäjä.)..

        Java viittaukset on muuten yllättävän samankantaisia C:n pointtereita. Hämäävintä on c:n referencet, jotka taas ei ole sama-asia.


      • *BSD
        petsku kirjoitti:

        mun kokemuksien mukaan java ei läheskään aina käänny alustalta toiselle. (siis jos koodin tekijänä on ollut windows säätäjä.)..

        Java viittaukset on muuten yllättävän samankantaisia C:n pointtereita. Hämäävintä on c:n referencet, jotka taas ei ole sama-asia.

        Siis Javassahan nyt on ideana, että sitä ei nimenomaan tarvitse kääntää eri alustoille, vaan tavukoodi suoritetaan virtuaalikoneessa, joka on sitten taas käännetty kyseiselle kohdealustalle (luultavasti petsku tota tarkoittikin mutta hauska viilata pilkkua :)

        Ja petskun sanoissa on totuuttakin kun meinaan jos sanotaan, että Java toimii missä vain tarkoittaa kuitenkin Linux, Solaris ja Windows -alustoja (ja jotain muuta).

        Niin ja todellakin Javassa on viittaukset mutta kun se ei tue muuta kun kopiointisemantiikan, ei viittaukset siinä ole niin vaarallisia kun C:ssä.

        Ja C ei tunne referencejä vaan C .

        Itse kokemuksen perusteella voisin sanoa, että kaikki uusi on aina kannattavaa opetella. Itse pääsääntöisesti kehitän C /Java:lla enkä pidä kumpaakaan toista parempana (ovat työkaluja varsinaisen tuotteen kehittämiseen).


      • petsku
        *BSD kirjoitti:

        Siis Javassahan nyt on ideana, että sitä ei nimenomaan tarvitse kääntää eri alustoille, vaan tavukoodi suoritetaan virtuaalikoneessa, joka on sitten taas käännetty kyseiselle kohdealustalle (luultavasti petsku tota tarkoittikin mutta hauska viilata pilkkua :)

        Ja petskun sanoissa on totuuttakin kun meinaan jos sanotaan, että Java toimii missä vain tarkoittaa kuitenkin Linux, Solaris ja Windows -alustoja (ja jotain muuta).

        Niin ja todellakin Javassa on viittaukset mutta kun se ei tue muuta kun kopiointisemantiikan, ei viittaukset siinä ole niin vaarallisia kun C:ssä.

        Ja C ei tunne referencejä vaan C .

        Itse kokemuksen perusteella voisin sanoa, että kaikki uusi on aina kannattavaa opetella. Itse pääsääntöisesti kehitän C /Java:lla enkä pidä kumpaakaan toista parempana (ovat työkaluja varsinaisen tuotteen kehittämiseen).

        viilataan vielä lisää..
        .. ja jotta se tavukoodi vielä toimisi näillä eri alustoilla, niin se alkuperäinen java koodi pitää olla oikein tehty, ts. eli ei käytetä new File("c:\test.txt"). niin ja mähän en mainitise kuin totuuksia, muuten osaan pitää suuni kiinni.


    • Jeppe

      Minusta Javan vahvuudet korostuvat webbipuolella. J2EE/EJB. Koodit (lähes) sellaisenaan siirrettävissä eri platformeille. Lisäksi eri foorumeilla hirvittävät määrät "kaikenlaista", esim. Sourceforge... Suuri osa täysin ilmaista. Pelkät Java -kirjat eivät oikeastaan kerro siitä juuri mitään muuta kuin sen ohjelmointitekniikan. Suurin osa sovelluskehityksestä taitaa muutenkin olla webbipuolella, joten siellä ei c :sta ole "juuri mitään" hyötyä. Java puolella kehitysvauhti on c verrattuna 10000000000000000000000000 kertaista.

    • javaa ½vuotta takana

      Parasta mielestäni javassa on alustariippumattomuus. Samalla koodilla saadaan toimiva ohjelma mille tahansa käyttöjärjestelmälle, josta löytyy javan virtuaalikone. Virtuaalikoneen käytön plussana on myös se, ettei osaamaton ohjelmoija pääse vahingossakaan rikkomaan mitään.

      Javan hitaus ei nykyään ole mikään peruste, sillä tällä hetkellä hyvin tehty javakoodi on noin 1,2 kertaa c -koodia hitaampaa, eli käyttäjän kannalta eroa ei edes huomaa. Tai ainakin näin väitettiin kirjassa, joka käsittelee peliohjelmointia javalla. Tietysti huono ohjelmoija pystyy tekemään hidasta koodia, mutta mielestäni silloin ei ole kyse kielen heikkoudesta.

      Kysymys kauemmin javan ja ohjelmoinnin parissa toimineille: olisiko javalla mahdollista/kannattavaa/järkevää ohjelmoida käyttöjärjestelmää? En ole aikeissa sellaiseen prosessiin ryhtyä, mutta ajatus vain putkahti päähäni ohjelmointiluennolla aiemmin tänään. Varmaankin koneesta pitäisi löytyä jonkinlainen javan virtuaalikone, joten järkevyys voisi varmaankin olla hieman kyseenalaista.

      Eräällä luennolla rohvessorimme mainitsi kuulleensa applen Steve Jobsin joskus kehitelleen oliopohjaista käyttöjärjestelmää, mutta jostain syystä luopuneen ajatuksesta. Osaako kukaan sanoa, mitkä olisivat oliopohjaisen käyttöjärjestelmän etuja? Eksyy ehkä hieman aiheesta, mutta toisaalta onhan javakin oliopohjainen kieli.

      • javasti

        Write once run anywhere, sanotaan luennolla. Totuus on kuitenkin että write once, test everywhere.

        Javalla tehdyt ohjelmat eivät toimi heittämällä kaikissa järjestelmissä, jopa Windowsin, Macin ja Linuxin välillä ilmenee niin paljon eroja että ohjelmat on pakko testata kaikilla. Puhumattakaan sitten vaikka mobiilisoftista joissa käytännössä pitää ohjelma testata jokaisella puhelimella erikseen missä sen haluaa toimivan.

        Tämä ei tarkoita etteikö java olisi portattavuudeltaan parempi kuin C/C , mutta se ei todellakaan mene niin että voit kirjoittaa ohjelman ja luottaa että se toimii kaikkialla missä on java-virtuaalikone.

        Mitä tulee käyttöjärjestelmään, niin käyttiksen tehtävä minusta on pitää sovellusohjelmat kurissa ja tarjota niille rajapinta rautaan. Tästä looginen seuraus on se että iso osa käyttöjärjestelmän koodista on joko pakko tai kannattavaa kirjoittaa laitteistoläheisellä koodilla. Joskus olen kuullut suunnitelmista että tehtäisiin prosessori joka suoraan ymmärtäisi javan bytekoodia. Tällöin java olisi yhtäkuin konekieli, niin laitteistoläheinen kieli kuin mahdollista. Silloinhan käyttöjärjestelmän koodaaminen javalla olisi paitsi järkevää myös pakollista.

        Käyttöjärjestelmä on toisaalta niin häilyvä käsite että on vähän vaikea sanoa mustavalkoisesti että millä se pitäisi kirjoittaa. Olen joskus käyttänyt käyttöjärjestelmää joka koostui muutamasta sadasta rivistä C-koodia. toisessa ääripäässä on sitten Windowsit ja Linuxit miljoonine koodiriveineen joista osa on C:tä, osa scriptikieliä ja jossain seassa on C :saa ja muita korkeamman tason kieliä, vaikkapa Pythonia tai C#:pia. Milläs ne sitten on koodattu ja mihin loppuu käyttöjärjestelmä ja mistä alkaa sovellusohjelmat, vaikea sanoa.


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

    Luetuimmat keskustelut

    1. 127
      3427
    2. Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."

      Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi
      Tv-sarjat
      93
      3154
    3. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      17
      2358
    4. Kyllä poisto toimii

      Esitin illan suussa kysymyksen, joka koska palstalla riehuvaa häirikköä ja tiedustelin, eikö sitä saa julistettua pannaa
      80 plus
      27
      1824
    5. "Joka miekkaan tarttuu, se siihen hukkuu"..

      "Joka miekkaan tarttuu, se siihen hukkuu".. Näin puhui jo aikoinaan Jeesus, kun yksi hänen opetuslapsistaan löi miekalla
      Yhteiskunta
      21
      1688
    6. Haluan jutella kanssasi Nainen

      Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O
      Ikävä
      15
      1559
    7. Poliisiauto Omasp:n edessä parkissa

      Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak
      Seinäjoki
      18
      1524
    8. Haluan tavata Sinut Rakkaani.

      Olen valmis Kaikkeen kanssasi...Tulisitko vastaa Rakkaani...Olen todella valmistautunut tulevaan ja miettinyt tulevaisuu
      Ikävä
      29
      1466
    9. Onko mies niin,

      että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.
      Tunteet
      18
      1431
    10. Hermo mennyt sotealueeseen?

      Nyt hammaslääkäriaika peruttiin neljännen kerran. Perumiset alkoi tammikuussa. Nyt uusi aika elokuulle!????
      70 plus
      83
      1375
    Aihe