keskustelut J2EE vs .NET

Näillä palstoilla ollaan keskusteltu paljolti ja monesti asioista java vastaan C# ja J2EE vastaan .NET. Ja varsin monet ihmettelee näköjään, että kumpaan kannattaa panostaa? Itse halusin hieman kommentoida tätä asiaa sillä en pidä kummankaan kielen tai arkkitehtuurin opiskelua toistaan pois sulkevana. Kovaa työtähän se vaatii ja hermoja koska kahden ohjelmointikielen opiskelu ei ole herkkua aina, kun sekoilee vähän väliä hieman erilaisten asioiden kanssa, puhumattakaan kokonaisista arkkitehtuureista. No kumpi sitten valita jos haluaa aloittaa jommalla kummalla näistä hypetetyistä kielistä ohjelmoimaan? Mielestäni hyvä lähtöargumentti on se, että jos haluat portattavaa koodia valitse java ja sen myötä tietysti J2EE, mutta jos teet taas ohjelmointia pelkästään MS ympäristöön niin siinä tapauksessa voisi jo suositella C# ja .NETiä koska kuitenkaan vielä C# ei ole täysin kehittynyt alustariippumattomaksi koodiksi puhumattakaan .NET arkkitehtuurista. Java on hieman vaikeampaa oppia kuin C# (omasta mielestäni), mikä johtuu siitä, että javassa joutuu tekemään asioita paljon hienojakoisemmista rakennuspalikoista kuin C#:ssa. Esimerkiksi javassa ei ole suoraa kopiointi metodia, joten koodari joutuu sen itse tekemään. Tämä kuitenkin tuo tietynlaista laajentuvuutta kieleen sillä kun joudut itse koodaamaan kopiointi ja monet muut metodisi itse niin siinä vaiheessa kun aletaan tekemään kehittyneempää ja enemmän hiomista vaativaa ohjelmointia niin tiedät miten koodia voidaan optimoida ja miten erilaisia Streameja on hyvä käyttää ja mihinkin tarkoitukseen. Koska C#:ssa on suuri osa metodeista koodattu valmiiksi se tekee kynnyksestä korkean alkaa itse tutkiskella miten asiat ja esim. juuri kopiointi toimii oikeasti. En sano, etteikö muka C# olisi mahdollisuutta tehdä näitä asioita myös itse, tottakai on, mutta valmiit metodit vain saattavat joissakin tapauksessa vaikeuttaa vaativamman ohjelmoinnin oppimista juuri sen takia koska ohjelmoijan ei tarvitse vaivata päätään näillä kyseisillä asioilla.

Se kumman kielen ja arkkitehtuurin loppujen lopuksi valitsee on täysin makuasia. Itse henkilökohtaisesti kuitenkin karsastan microsoftin teknologioita sen takia koska M$:lla on tapana tehdä sovelluksia ja teknologioita, jotka poikkeavat avoimista standardeista ja muista ympäristöistä juuri sen verran, että Microsoftin tuotteista tai teknologioista ulkopuolisiin siirtyminen on vaikeaa ja kallista. Juuri tästä syystä olenkin valinnut javan lempi ohjelmointikielekseni vaikka C# tulee ohessa myös treenailtua.
13917
Äänestä

Muut lukivat myös

Vastaukset 13

Vanhimmat

siitä puuttuu?

Äänestä

Java oli hyvä ja hieno idea. Microsoft oli omaksunut Javan osaksi Windows-jakelua ja levitti sitä käyttöjärjestelmiensä mukana vuosien ajan. Kaikki näyttikin hyvältä ja Java levisi miljooniin koneisiin ympäri maailmaa, kunnes riitely alkoi.

Sun ei hyväksynyt Microsoftin virtuaalikoneeseen lisäämiä Windowsin ominaisuuksia ja käyttöliittymää tukevia laajennuksia, jotka mahdollistivat normaalien Java-sovellusten lisäksi myös Windows-ohjelmien tekemisen.

On selvää, että Windowsille tehdyt ja Microsoftin laajennuksia käyttävät ohjelmat eivät toimisi muilla käyttöjärjestelmäalustoilla, mutta se ei tarkoittanut sitä, etteikö ohjelmoija olisi niin halutessaan pystynyt tekemään myös alustariippumatonta sovelluksia. Windowsille tehdyt ohjelmat ja Windowsin ominaisuuksia hyödyntävät ohjelmat olivat sidottuja Windowsiin.

Sun halusi pitää Javan ohjat täysin omissa käsissään, eikä sallinut Microsoftin tarjoavan kehittäjille mitään mahdollisuutta tehdä Javalla myös "natiiveja" Windows-ohjelmia, vaan vaati että kaikkien Java-ohjelmien on toimittava kaikilla laite- ja käyttöjärjestelmäalustoilla. Toisaalta ymmärrettävää, toisaalta taas ei.

Koska Microsoft ei saanut tukea Windows-kehitystä Javalla, Java hyllytettiin ja korvattiin .NET -arkkitehtuurilla. Tuloksena on kaksi osaksi samankaltaista ja keskenään kilpailevaa systeemiä; Java ja .NET.

Oma veikkaukseni on, että .NET tulee olemaan vankka ykkönen Windows-puolella, eihän Javan virtuaalikonetta enää edes toimiteta Windowsin mukana, vaan käyttäjän on osattava ladata ja asentaa se itse, kun taas muilla alustoilla Java on ainakin toistaiseksi pääroolissa. Toki Java-sovellukset toimivat edelleenkin Windowsissa, mutta vain Sunin määräämissä puitteissa. Natiiveja Windows-ohjelmia ei Javalla kuitenkaan tehdä, mikä ei ainakaan Windows-kehittäjiä suuremmin viehätä.

Se kuitenkin on selvää, että Sun sahasi vain ja ainoastaan omaa oksaansa aloittaessaan riitelyn.

Ehkä näin on kuitenkin parempi. Molemmat firmat, sekä MS että Sun, saavat vapaasti toteuttaa visioitaan ja aika näyttää kumpi lopulta oli oikeassa.

Koska itse teen ohjelmia vain Windowsille, enkä piittaa tippaakaan Linuxista tai sen marginaalisesta markkinaosuudesta, .NET oli luonnollinen valinta itselleni.

Äänestä
  • sinulla ruusuinen kuva Microsoftin tekemisistä ja vaikuttimista Javan suhteen! Lieneekö tekstisi peräti virallista propagandaa, mutta suosittelisin tutustumaan aiheeseen nk. puolueettomista lähteistä.

    Äänestä

  • Onpas kirjoitti:

    sinulla ruusuinen kuva Microsoftin tekemisistä ja vaikuttimista Javan suhteen! Lieneekö tekstisi peräti virallista propagandaa, mutta suosittelisin tutustumaan aiheeseen nk. puolueettomista lähteistä.

    Tarkoitukseni oli tietenkin tuoda esille, että natsi-saksan mallilla toimiva Microsoftin salaisena suunnitelmana oli saastuttaa koko maailma Javan avulla, mädättää viattomien lasten selkärangat, luoda maailmanlaajuinen nälänhätä ja haudata Eurooppa uuden jääkauden alle.

    Äänestä

  • NET kirjoitti:

    Tarkoitukseni oli tietenkin tuoda esille, että natsi-saksan mallilla toimiva Microsoftin salaisena suunnitelmana oli saastuttaa koko maailma Javan avulla, mädättää viattomien lasten selkärangat, luoda maailmanlaajuinen nälänhätä ja haudata Eurooppa uuden jääkauden alle.

    mutta kiitän näistä valaisevista tausta- ja sisäpiiritiedoista. Tätä ennen oma tietämykseni oli rajoittunut suunnilleen tähän:
    http://www.geocities.com/ResearchTriangle/Node/2005/msjava.htm

    Äänestä

  • Onpas kirjoitti:

    mutta kiitän näistä valaisevista tausta- ja sisäpiiritiedoista. Tätä ennen oma tietämykseni oli rajoittunut suunnilleen tähän:
    http://www.geocities.com/ResearchTriangle/Node/2005/msjava.htm

    Mikä alkuperäisessä kirjoituksessani ei pitänyt mielestäsi paikkaansa tai on ristiriidassa linkkissäsi kerrotusta?

    Äänestä

  • NET kirjoitti:

    Mikä alkuperäisessä kirjoituksessani ei pitänyt mielestäsi paikkaansa tai on ristiriidassa linkkissäsi kerrotusta?

    Kirjoituksesi esitti Sunin pahana ("Sun ei hyväksynyt...", "Sun halusi pitää...", "...Sun sahasi vain ja ainoastaan omaa oksaansa aloittaessaan riitelyn" jne.) ja Microsoftin suurena hyväntekijänä ja lopulta tapauksen uhrina ("...sallinut Microsoftin tarjoavan kehittäjille...", "...Microsoft ei saanut tukea Windows-kehitystä Javalla..." jne.).

    Kirjoituksesi ja katsontakantasi olivat lievästi sanottuna puolueellisia ja tarkoitushakuisia, sillä Microsoft ei ole tehnyt ainakaan kymmeneen vuoteen yhtään mitään epäitsekkäistä lähtökohdista, meitä ohjelmoijia, asiakkaitaan tai yhteistökumppaneitaan auttaakseen.

    En osaa puolustella myöskään Sunin tekemisisä Java-kiistassa, sentään niin tarkkaan en tapausta tunne, mutta kannattaa pitää mielessä kenen keksintö Java on ja kenellä on sen tekijänoikeudet.

    Äänestä

  • Onpas kirjoitti:

    Kirjoituksesi esitti Sunin pahana ("Sun ei hyväksynyt...", "Sun halusi pitää...", "...Sun sahasi vain ja ainoastaan omaa oksaansa aloittaessaan riitelyn" jne.) ja Microsoftin suurena hyväntekijänä ja lopulta tapauksen uhrina ("...sallinut Microsoftin tarjoavan kehittäjille...", "...Microsoft ei saanut tukea Windows-kehitystä Javalla..." jne.).

    Kirjoituksesi ja katsontakantasi olivat lievästi sanottuna puolueellisia ja tarkoitushakuisia, sillä Microsoft ei ole tehnyt ainakaan kymmeneen vuoteen yhtään mitään epäitsekkäistä lähtökohdista, meitä ohjelmoijia, asiakkaitaan tai yhteistökumppaneitaan auttaakseen.

    En osaa puolustella myöskään Sunin tekemisisä Java-kiistassa, sentään niin tarkkaan en tapausta tunne, mutta kannattaa pitää mielessä kenen keksintö Java on ja kenellä on sen tekijänoikeudet.

    "Sun ei hyväksynyt..."

    "...sallinut Microsoftin tarjoavan kehittäjille..."

    "...Microsoft ei saanut tukea Windows-kehitystä Javalla..."

    Siitähän kiistassa nimenomaan oli kyse. MS halusi, että Javalla olisi voitu tehdä myös natiiveja Windows-ohjelmia ja tarjosi siihen välineet kehittäjille, mutta se ei käynyt Sunille, koska heidän mielestään Java-ohjelmien piti toimia kaikilla laite- ja käyttöjärjestelmäalustoilla ilman muutoksia.

    "Sun halusi pitää..."

    Sun halusi säilyttää kontrollin Javan suhteen itsellään, mihin sillä tottakai oli oikeus, koska onhan Java Sunin tuotekehittelyn tulos.

    "Sun sahasi vain ja ainoastaan omaa oksaansa"

    Kyllä. MS ei tue Javaa enää juurikaan millään tavalla sen enempää käyttöjärjestelmissään kuin kehitysvälineissäänkään. Javaa ei enää toimiteta automaattisesti Windowsin (yli 90% markkinaosuus) mukana, vaan käyttäjien on osattava imuroida Javansa Sunin sivuilta ja osattava asentaa se. Voin toki olla väärässäkin, mutta minun mielestäni Sun hävisi kiistassa melkoisen edun (vrt IE vs NS), mutta eipä .NET:n kehittäminen ilmaiseksi tullut Microsoftillekaan.

    "Kirjoituksesi ja katsontakantasi olivat lievästi sanottuna puolueellisia ja tarkoitushakuisia"

    En mielestäni ottanut millään tavalla kantaa siihen kumpi oli oikeassa. Tosiasia on kuitenkin se, että mikäli riitoja ei olisi ollut ja Sun olisi sallinut MS:n tukea Javassa Windows-sovelluskehitystä, ehkäpä .NET:iä ei olisi koskaan edes tullut.

    "Microsoft ei ole tehnyt ainakaan kymmeneen vuoteen yhtään mitään epäitsekkäistä lähtökohdista"

    Sivuseikka varsinaisen asian kannalta. Eipä myöskään Sun ole mikään hyväntekeväisyyslaitos. Molemmat ovat liikeyrityksiä ja molemmilla on lähtökohtana vain ja ainoastaan oma etu ja raha. Turha edes kuvitella muuta.

    Äänestä

  • NET kirjoitti:

    "Sun ei hyväksynyt..."

    "...sallinut Microsoftin tarjoavan kehittäjille..."

    "...Microsoft ei saanut tukea Windows-kehitystä Javalla..."

    Siitähän kiistassa nimenomaan oli kyse. MS halusi, että Javalla olisi voitu tehdä myös natiiveja Windows-ohjelmia ja tarjosi siihen välineet kehittäjille, mutta se ei käynyt Sunille, koska heidän mielestään Java-ohjelmien piti toimia kaikilla laite- ja käyttöjärjestelmäalustoilla ilman muutoksia.

    "Sun halusi pitää..."

    Sun halusi säilyttää kontrollin Javan suhteen itsellään, mihin sillä tottakai oli oikeus, koska onhan Java Sunin tuotekehittelyn tulos.

    "Sun sahasi vain ja ainoastaan omaa oksaansa"

    Kyllä. MS ei tue Javaa enää juurikaan millään tavalla sen enempää käyttöjärjestelmissään kuin kehitysvälineissäänkään. Javaa ei enää toimiteta automaattisesti Windowsin (yli 90% markkinaosuus) mukana, vaan käyttäjien on osattava imuroida Javansa Sunin sivuilta ja osattava asentaa se. Voin toki olla väärässäkin, mutta minun mielestäni Sun hävisi kiistassa melkoisen edun (vrt IE vs NS), mutta eipä .NET:n kehittäminen ilmaiseksi tullut Microsoftillekaan.

    "Kirjoituksesi ja katsontakantasi olivat lievästi sanottuna puolueellisia ja tarkoitushakuisia"

    En mielestäni ottanut millään tavalla kantaa siihen kumpi oli oikeassa. Tosiasia on kuitenkin se, että mikäli riitoja ei olisi ollut ja Sun olisi sallinut MS:n tukea Javassa Windows-sovelluskehitystä, ehkäpä .NET:iä ei olisi koskaan edes tullut.

    "Microsoft ei ole tehnyt ainakaan kymmeneen vuoteen yhtään mitään epäitsekkäistä lähtökohdista"

    Sivuseikka varsinaisen asian kannalta. Eipä myöskään Sun ole mikään hyväntekeväisyyslaitos. Molemmat ovat liikeyrityksiä ja molemmilla on lähtökohtana vain ja ainoastaan oma etu ja raha. Turha edes kuvitella muuta.

    Pääsit jo melkein villakoiran ytimeen. Pienellä kriittisellä tarkastelulla, ajan kanssa.... Mutta tällä erää kiitän kommenteistasi ja ehdotan, että jäämme mielenkiinnolla seuraamaan kehitystä Javan ja .NET:in ympärillä.

    Laihakin sopu on lihavaa riitaa parempi, väitetään. Jos sopuun ei kuitenkaan päästä, paras voittakoon, mutta iskuja vyön alle ei hyväksytä!

    Äänestä

Molempia käytetään tällä hetkellä ja tullaan käyttämäänkin. J2EE:tä käytetään kyllä enempi kuin .NET:iä. Molempien käyttö myöskin näyttäisi lisääntyvän koko ajan.

Äänestä
  • "J2EE:tä käytetään kyllä enempi kuin .NET:iä"

    Olisikohan noin? Sun ilmoittaa Java-kehittäjien määräksi n. 3 miljoonaa (sen perusteella mitä Java SDK:ta on imuroitu). Microsoftilla on jo pelkästään Visual Basic -kehittäjiä 4-6 miljoonaa, joista valtaosa ei voi välttyä päivittämästä VB.NET:iin ennemmin tai myöhemmin.

    Ja jatkossa .NET:iä pukataan koneisiin joka tuutista ja ympätään jokaiseen ohjelmaan (Office, Windows, PDA:t, puhelimet jne), aivan kuten Javaa ennenvanhaan.

    Ei siis hyvältä näytä Javan ja Sunin kannalta, ainakaan Windows-puolella, joka kuitenkin käsittää n. 92% laitekannasta (lähde: Google zeitgeist).

    Tämä ei kuitenkaan tarkoita sitä, että Java tulisi kuolemaan. Eiköhän molemmille löydy käyttäjiä.

    Äänestä

  • NNN kirjoitti:

    "J2EE:tä käytetään kyllä enempi kuin .NET:iä"

    Olisikohan noin? Sun ilmoittaa Java-kehittäjien määräksi n. 3 miljoonaa (sen perusteella mitä Java SDK:ta on imuroitu). Microsoftilla on jo pelkästään Visual Basic -kehittäjiä 4-6 miljoonaa, joista valtaosa ei voi välttyä päivittämästä VB.NET:iin ennemmin tai myöhemmin.

    Ja jatkossa .NET:iä pukataan koneisiin joka tuutista ja ympätään jokaiseen ohjelmaan (Office, Windows, PDA:t, puhelimet jne), aivan kuten Javaa ennenvanhaan.

    Ei siis hyvältä näytä Javan ja Sunin kannalta, ainakaan Windows-puolella, joka kuitenkin käsittää n. 92% laitekannasta (lähde: Google zeitgeist).

    Tämä ei kuitenkaan tarkoita sitä, että Java tulisi kuolemaan. Eiköhän molemmille löydy käyttäjiä.

    Nokialta ensi vuonna 100 miljoonaa java-laitetta
    http://www.digitoday.fi/showPage.php?page_id=12&news_id=25227

    Novellin Ximian naittaa Microsoftin .netin Linuxiin
    http://www.digitoday.fi/showPage.php?page_id=9&news_id=27152

    Äänestä

Viime vuonna tehtiin laaja tutkimus aiheesta. Vielä käytetää paljon vanhoja kieliä kuten Visual Basicia. Mutta tutkimuksen mukaan 38 % on siirtymässä C# kieleen, 31 % Javaan ja kolmasosa VB.nettiin. Tasasta siis on eli kaikki nuo kolme tulee varmasti tulevaisuudessa olemaan kovia sanoja.

Äänestä

Kommentoi aloitusta


hölmö kirjoitti:

Näillä palstoilla ollaan keskusteltu paljolti ja monesti asioista java vastaan C# ja J2EE vastaan .NET. Ja varsin monet ihmettelee näköjään, että kumpaan kannattaa panostaa? Itse halusin hieman kommentoida tätä asiaa sillä en pidä kummankaan kielen tai arkkitehtuurin opiskelua toistaan pois sulkevana. Kovaa työtähän se vaatii ja hermoja koska kahden ohjelmointikielen opiskelu ei ole herkkua aina, kun sekoilee vähän väliä hieman erilaisten asioiden kanssa, puhumattakaan kokonaisista arkkitehtuureista. No kumpi sitten valita jos haluaa aloittaa jommalla kummalla näistä hypetetyistä kielistä ohjelmoimaan? Mielestäni hyvä lähtöargumentti on se, että jos haluat portattavaa koodia valitse java ja sen myötä tietysti J2EE, mutta jos teet taas ohjelmointia pelkästään MS ympäristöön niin siinä tapauksessa voisi jo suositella C# ja .NETiä koska kuitenkaan vielä C# ei ole täysin kehittynyt alustariippumattomaksi koodiksi puhumattakaan .NET arkkitehtuurista. Java on hieman vaikeampaa oppia kuin C# (omasta mielestäni), mikä johtuu siitä, että javassa joutuu tekemään asioita paljon hienojakoisemmista rakennuspalikoista kuin C#:ssa. Esimerkiksi javassa ei ole suoraa kopiointi metodia, joten koodari joutuu sen itse tekemään. Tämä kuitenkin tuo tietynlaista laajentuvuutta kieleen sillä kun joudut itse koodaamaan kopiointi ja monet muut metodisi itse niin siinä vaiheessa kun aletaan tekemään kehittyneempää ja enemmän hiomista vaativaa ohjelmointia niin tiedät miten koodia voidaan optimoida ja miten erilaisia Streameja on hyvä käyttää ja mihinkin tarkoitukseen. Koska C#:ssa on suuri osa metodeista koodattu valmiiksi se tekee kynnyksestä korkean alkaa itse tutkiskella miten asiat ja esim. juuri kopiointi toimii oikeasti. En sano, etteikö muka C# olisi mahdollisuutta tehdä näitä asioita myös itse, tottakai on, mutta valmiit metodit vain saattavat joissakin tapauksessa vaikeuttaa vaativamman ohjelmoinnin oppimista juuri sen takia koska ohjelmoijan ei tarvitse vaivata päätään näillä kyseisillä asioilla.

Se kumman kielen ja arkkitehtuurin loppujen lopuksi valitsee on täysin makuasia. Itse henkilökohtaisesti kuitenkin karsastan microsoftin teknologioita sen takia koska M$:lla on tapana tehdä sovelluksia ja teknologioita, jotka poikkeavat avoimista standardeista ja muista ympäristöistä juuri sen verran, että Microsoftin tuotteista tai teknologioista ulkopuolisiin siirtyminen on vaikeaa ja kallista. Juuri tästä syystä olenkin valinnut javan lempi ohjelmointikielekseni vaikka C# tulee ohessa myös treenailtua.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu