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ä")
Kannattaako
9
904
Vastaukset
- 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
Mies, mitä minun pitäisi tehdä
Niin, mitä naisen siis pitäisi tehdä, että lähestyisit ja tekisit aloitteen? Mikä on riittävä kiinnostuksen osoitus juur1101661- 1711598
Toivottavasti et mussukka elättele toiveita meikäläisen suhteen
Tiedän mitä olet touhunnut joten aivan turha haaveilla mistään enää 👍1681516Summit-tippuja Nicola sai Carolalta yllättävän viestin - Some älähtää rajusti: "Älä viitsi..."
The Summit Suomi -kisa käy kuumana kylmässä Norjan vuoristossa. Nicola tiputettiin kisasta juuri ennen finaalia. Likaise231308Sofia Virralla ja Minja Koskelalla ei mitään käsitystä terveyskeskusmaksuista!
Vasemmistopimut Sofia ja Minja täysin ulkona sote asioista, ei minkäänlaista käsitystä edes mittaluokasta, missä terveys901184Juusolle sataa vihaisia viestejä hoitajilta ja loput nauravat hänelle
Ei löydy montaakaan, joka kehuisi Juuson toimintaa ministerinä: "Selvä enemmistö Juuson päivitykseen reagoineista on su146963Persuehdokas uhkasi tappaa "jätkän" ja ravintolayrittäjän
Kuuntele tästä kuinka meuhkaa. https://www.iltalehti.fi/politiikka/a/4eb3034d-48c5-4f31-b53c-42be3dc9607c70961- 93861
Sofia Virta vertasi Karjalan evakoita nykymatuihin
Vihreiden puheenjohtaja Sofia Virta avasi sanaisen arkkunsa, eli tyhmyyden tynnyrinsä, valtiovarainministeri Riikka Purr185805Rokotevastaiset aiheuttaneet lasten kuolemat USA:ssa, eivätkä pyydä anteeksi
Jo kaksi lasta kuollut tuhkarokkoon Texasissa, koska rokotevastaiset ovat toimillaan tuhonneet suojaavan rokotekattavuud207769