"Jeg vil få sitere artikkelen "Glimrende for Java-utvikling for Windows", publisert i digi.no tirsdag 13. oktober:
"Men de som ønsker å utvikle Java-applikasjoner for Windows-miljøet skal trolig lete lenge for å finne et produkt som er like omfattende og samtidig har den støtten som blant annet IntelliSense gir."
Dette er et svært godt eksempel på en oppfatning basert på en helt feil forståelse av Java-konseptet. Man ønsker ganske enkelt aldri å lage "Java-applikasjoner for Windows-miljøet" (eller et annet spesifikt miljø): Det er ingen årsak til at man skal lage et OS-spesifikt program i Java. Man bruker Java dersom man skal lage en applikasjon som ikke er OS-avhengig!
Skal du lage et plattformavhengig program bruker du (f.eks.) C++ og ikke Java! Hvorfor utvikle noe i Java som hadde funket bedre, mer effektivt og som gir deg mer kontroll over resultatet i C++?
Det som provoserer meg til å skrive dette innlegget er at det er en så bred feiltolkning av hva Java egentlig er for noe, hva som er dets styrke og hvor/når man eventuelt bruker Java fremfor andre språk.
Årsaken til at Microsoft kommer med denne forkludringen av Java kan kanskje ved første øyekast være noe uklart, og vil kun lede ut i spekulasjoner. Det verserer en del teorier om dette, men jeg lar disse ligge i denne omgang, da jeg regner med at dette er gammelt nytt for mange av digi.no's lesere.
Poenget er uansett at C++ er språket 99 prosent av vordende seriøse Windows-programmerere bør sette seg inn i (og dermed Visual C++, dersom man ønsker et Microsoft-produkt). Java - slik vi kjenner det i dag - vil aldri kunne hamle opp med en godt programmert applikasjon i C++ hva gjelder hastighet og system/ressursutnyttelse.
Visual J++ - inngangsport for nybegynnere?
Så kan man si at Java har en lavere terskel for nybegynneren i forhold til C++, og at Java er et greit nybegynnerspråk. Joda, det er enkelte "pitfalls" og hodebry man skjærer klar ved å begynne å programmere i Java fremfor C++. Men , lærer man seg C++, har man et overlegent grunnlag til å utvide kompetansen, da C (++) er referansespråket for det meste av dokumentasjon på andre språk.
Problemet her ligger i at brukeren (særlig nybegynneren) med VJ++ blir ledet til å tro at Java egentlig bare er en "enklere" versjon av C++, og det er veldig feil!
Ved å senke terskelen for å lære, som jo visualisert pek og klikk-programvare gjør, vil mange "amatører" uten den grunnleggende forståelsen for språkenes særegenheter og innsikt i historikken, begynne å lage ting & tang. Disse blåser garantert en lang gang i om det er "ekte" Java-kode: Unix er for særinger og Mac er det ingen som bryr seg om uansett. Det funker på deres og vennenes Windows 95-installasjon, og da er alt bra.
Dette er grei nok holdning med plattformspesifikk kode (og er også en svært utbredt holdning) - men ikke når man utvikler i Java! Derfor holder ikke argumentet med at man "kan velge å ikke bruke Windows spesifikk kode i VJ++".
All elendighet bunner ut i at vi mennesker er late, og ikke gidder sette oss ordentlig inn i ting dersom vi slipper. En datamaskin ER faktisk en ganske avansert innretning, og jeg mener det på lengre sikt er dumt at man blir "skånet" for dette faktum dersom man vil lære å programmere en slik maskin på en ordentlig måte. Det viktigste er uansett at man ser forskjellene og er klar over bruksområdene til de forskjellige språkene. I denne forståelsen spiller utviklingsverktøyene og dokumentasjon en avgjørende rolle. Dette ansvaret er ikke Microsoft bevisst, og der svikter de til fordel for egen gevinst og kontroll på markedet.
La oss se litt inn i fremtiden:
La oss ta for oss dagens generasjon nybegynnere, som lærer å programmere Java ved hjelp av Microsofts Visual J++. Med MS sitt overdøvende markedsføringsmaskineri er dette slettes ikke usannsynlig, da mange ikke er klar over at det engang finnes noe alternativ. Disse utviklerne blir dyktigere etter hvert, men beholder sin grunnleggende, Microsoft-formede oppfatning av Java og programvareutvikling. De får jobber som programmerere og danner således neste generasjon "proffer" med sin MS-misjonering og avhengighet. De blir eventuelt eliten.
Det er her MS har best anledning til å sette "nådestøtet" mot Suns Java. Disse utviklerne vil syntes den "originale" Java-en stinker fordi det er så vanskelig å legge inn Windows-funksjoner og at den er tungvint å bruke. Begrensede muligheter er det også. Ser du tegningen?
Hadde Microsoft respektert andres arbeid, protokoller, standarder og åndsverk (i dette tilfelle Suns Java), hadde dette ikke vært noe problem. Da hadde MS brukt sin innflytelse og gode applikasjoner til å gi nybegynneren denne forståelsen. For det er liten tvil om at Microsoft lager mye god programvare dersom man setter brukervennlighet som viktigste kriterium. Problemet er at de turer frem helt i egen tralt og gir finger'n til resten av IT-samfunnet. Og de kan gjøre det på grunn av vekten. Suns Java skal knekkes, enkelt og greit fordi selskapet ikke eier teknologien.
Microsoft har jo sin egen ActiveX som de garantert hadde fokusert på, hadde de fått kontrollen over Java. Videre hadde de da etter kort tid "smeltet sammen" disse to, fordi "de er så like hverandre uansett", og laget noe "som er bedre for brukeren".
På grunn av MS sin posisjon i markedet er et slikt produkt (Visual J++) farlig, for det vil forårsake at verden vil se "Java"-applikasjoner som ikke funker i alle Java-miljøer. I verste fall vil det gjøre at selve bunnen faller ut av Java-båten, og MS-styrt teknologi vil (igjen) være dominerende.
Ser du det toeggede sverdet? Dette er en win-win-situasjon for Microsoft, uansett om Visual J++ betyr slutten for Java (og VJ++ med det) eller ei.
Nå ønsker ikke jeg å ikle meg rollen som dommedagsprofet, men at dette produktet er ganske kraftig ugress i Java-beddet, skal man være ganske sta (ja, jeg vil faktisk bruke ord som "naiv", "uvitende" og "innsiktsløs") for å benekte.
Avslutningsvis vil jeg si at det er svært viktig at mediene er denne situasjonen bevisst, og da særlig den delen av mediene som kommuniserer med disse "neste generasjons programmerere". digi.no er et av disse mediene."