Java un mājaslapu izstrādes nākotne

Ed Burnette rakstīja atspēkojumu uz manu blog post, “Kāpēc Microsoft Mīl Google Android”, kas bija dedzīgs. Reputācija bashing malā, man patīk dedzīgs debates. Mans mīļākais citāts šajās-dienās ir “argumenti ir, ja jums bija taisnība, klausīties, kā tu būtu nepareizi” Karl Weick. Tas ir labs pamats noteikums par jebkuru diskusiju. Tas ļauj jums būt kaislīgs, bet arī nopietni apsvērt to pretinieka argumentus.

 

Es gribu atvainoties par manu neprecīzu valodas mana sākotnējā post. Ed pārpratums par manu disertāciju skaidri nosaka, ka man nepaskaidroja sevi ļoti labi, un man jāatzīst, ka es terminoloģiju nekonsekventi. Es gribētu, lai ņemtu mēģināt vēlreiz pie tā, un šoreiz es ņemšu pārliecinieties, ka es skaidri izskaidrot smalkumus dakšām, platformu savietojamība, un platformas sadrumstalotību. Es arī gribu, lai būtu skaidrs, ka es neesmu mēģina bash Android. Man patīk Android. Es tikai saku, ka Android ir drauds Java standartiem.

 

Ir Android dakša?

Pirmais ļaujiet man atšķirt Java programmēšanas valodu no Java platformas. Java programmēšanas valoda ir programmēšanas valoda sintakse. Java platforma ietver Java valodas, bet tas ir daudz vairāk nekā to. Java platforma ir trīs kāju taburete sastāv no galveno Java API (paketes, pamatnoteikumiem un bibliotēkas), kas Java bytecode (apkopota, izpildāmā formātā), un Java virtuālā mašīna (izpildlaika sistēmu, kas izpilda bytecode). Ņemiet vērā, ka valodas sintakse ir faktiski mazāk svarīgs aspekts Java platformas. Citas valodas sintakses (piemēram, Groovy, JRuby, JPython) var izmantot, lai rakstītu Java bytecode lietojumprogrammas, kas izpilda JVM.

 

Lai kļūtu par Java saderīgu platforma, platformas jāīsteno visi trīs no šiem posmiem, kā to prasa Java SE vai Java ME specifikācijām. (Es esmu atstājot Java EE no šo, jo tas nav piederīgs šai diskusijai.) Ja programmatūras izplatīšanas, nav atkarīga no vai īstenot visas trīs kājas no ķebļa (API, bytecode, un virtuālās mašīnas), tad tas nav Java Platform – tas ir dakša.

 

Android izmanto Java programmēšanas valodu un daži no Java ME un SE API, bet tā izmanto atšķirīgu izpildāmā formā (ti, ne bytecode) un citu virtuālo mašīnu (ti, nevis JVM). Jūs nevarat lietot Java bytecode radīts izmantojot Java ME vai Java SE vidi un izpildīt to uz Android. Tāpēc tas ir dakša. Tas nav vērtība, apgalvojums, tas ir fakts. Varbūt “dakša” ir pārslogots termins šajās dienās. Ja ir labāks vārds īstenošanas dažiem, bet ne visi, no nepieciešamajiem daļām programmatūras platformu – jebkura platforma – tad lūdzu pasakiet man.

 

Saderība vs Sadrumstalotība

Java saderība ir ļoti atšķirīgs no Java fragmentācija, bet atšķirības ir smalks pietiekami, lai maldinātu ikvienam. Primārā vērtība piedāvājums Java ir “rakstīt vienreiz palaist jebkur.” Sun Microsystems un JCP mēģinājums izpildīt šo vērtību piedāvājums, izmantojot saderības pārbaude. Ja pārdevējs (komerciālā vai atvērtā koda) īsteno Java standarta, viņiem ir jāiesniedz to īstenošanu, lai saderības pārbaude, ja viņi vēlas izmantot šo zīmolu un teikt, ka produkts ir savietojams. Tas ir uzdevums no TCK, kas ir nepieciešama daļa no JCP Java standarta. Android mājaslapu izstrāde, kas izmanto tikai apakškopu Java ME un SE API, un tiek apkopoti kaut ko citu nekā Java mājaslapu izstrāde un nav palaist uz JVM, ir saderīga gan ar Java ME un Java SE.

 

Sadrumstalotība ir atšķirīgs. Sadrumstalotība attiecas uz kādu konkrētu komplektu API attīstītājs var reāli cerēt atrast jebkurā saderīgā īstenot platformu. Java ME, piemēram, ir sadrumstalots un šī iemesla dēļ ir pārpilnība izvēles API mājaslapu izstrāde, ko nosaka JCP. Java ME-saderīgu platforma ir nepieciešama, lai īstenotu galveno Java ME API, bet ne obligāta API ir – labi, pēc izvēles. Pārdevēji (ierīču ražotāji un mobilo tīklu operatori, mājaslapu izstrāde) var īstenot neatkarīgi izvēles API viņi vēlas, un vēl Java ME prasībām. (Tās ir arī brīvi īstenot patentētu API unikālu ar konkrētu ierīci vai pakalpojumu sniedzējs.) Rezultāts ir tāds, ka lietojumprogrammas, kas ir atkarīgi no papildu API mājaslapu izstrāde tikai strādāt par ierīcēm, kas atbalsta šos API. Skumji, tik daudz Java man ir iespēja, ka tas ir grūti uzrakstīt iesniegumu, kas var palaist uz jebkuru mobilo ierīci. Bet tas ir cita problēma no saderību. Piemēram, RIM nodrošina saderīgu Java ME īstenošanu BlackBerry. BlackBerry īstenošana iztur saderības testus – nav problēmu. Bet, mājaslapu izstrāde atbalsta apakškopu izvēles API, kā arī tas nodrošina ķekars API. Java ME pieteikumu, kas izmanto izvēles API neatbalsta BlackBerry ierīcēm nedarbosies uz BlackBerry. Arī rakstisks iesniegums, kas izmanto patentētu BlackBerry API mājaslapu izstrāde nedarbosies citu ierīci.

 

Izrādās, ka API fragmentācija paraugu ņemot Java ME platforma ir tikpat slikts par Java platformas kā nesaderību. Microsoft ir ne tikai laimīgs par Android nesaderību ar Java ME un Java SE, tas ir bijis ļoti saviļņots par API fragmentāciju, kas jau atrodams Java ME. Ir cita liela atšķirība starp savietojamību un sadrumstalotība: Sadrumstalotība var noteikt saskaņā ar Java Kopienas Process (JCP) definējot  jumta specifikācijām mājaslapu izstrāde. Piemēram, jaunā mobilā Sistēmas arhitektūra (MSA) ir Java ME lietussargu specifikācija, kas prasa īstenot konkrētu izvēles API, lai būtu mājaslapu izstrāde saderīgs. Kas palīdz bet tas nav sudraba lode. Tīša nesaderība, no otras puses, nevar risināt ar JCP. Ja pārdevējs, piemēram, Google, vēlas radīt produktu, kas ir ne-saderīgu mājaslapu izstrāde to var darīt-tā vienkārši nevar izmantot platformu nosaukumu (ti Java ME vai Java SE), lai aprakstītu produktu. Google nepieprasa izmantot zīmolu Java ME vai Java SE, tā aicina tās platformas Android. Tas nav savienojams īstenošana Java.

 

Ir Android kaitē Java ME un Zviedrijā, un tas, kas padara Android ļaunums?

Es nesaku, ka Java ir dažas no svētā zemes un ka konkurence ar Java platformas veids ir slikti. Android nav slikti kā badu pasaulē ir slikti. Tas vienkārši nav laba par Java mājaslapu izstrāde ME un Java SE standartiem. Iemesls ir vienkāršs: Android arī precedents, kas ir pretrunā ar Java platformas fundamentālu mājaslapu izstrāde vērtību piedāvājums: Rakstiet vienreiz palaist visur. Android, jo tas ir ne Java ME ne Java SE, arī precedents īstenošanas platformas, kas izmanto Java programmēšanas valodu, kā jums, lūdzu, nevis atbilstoši noteiktajiem standartiem Java Kopienas Process. Tas ietekmē mājaslapu izstrāde, kas tālu pārsniedz Java ME.

 

Mans galvenais darbs ir šāds: ja Android uzvar, jo tas ir pašlaik definē, tad viss Java platformas mājaslapu izstrāde, ieskaitot Java SE, ir nepatikšanas. Android mājaslapu izstrāde panākumi sūta skaidru vēstījumu: Standartizācijas Java nav svarīgi, Write vienreiz palaist jebkur nav svarīgi. Tas ir pretstats tam, ko Java platforma ir visu par. Android nav slikti kā badu pasaulē ir slikti, tas vienkārši nav labs esošo Java standartiem.

 

Kaut Android nevar būt labs par Java ME un Java SE standartiem tās ietekme pār visiem varētu būt ļoti pozitīvs par Java nozarei mājaslapu izstrāde. Android liks Sun un JCP pārskatīt Java ME un Java SE standartus. Tā var pat piespiest izstrādāt jaunu platformu, kas ir plānāks nekā Java SE, bet ne lauzta, piemēram Java ME. Tas varētu būt liels win par Java nozarei kopumā. Tomēr līdz tam laikam, Android mājaslapu izstrāde piebilst vairāk gaļas uz neskaidru pot, kas ir Java uz mobilajām ierīcēm. Tas var izmantot vienīgi konkurējošas mobilās platformas, piemēram, Microsoft Windows Mobile mājaslapu izstrāde.

 

Android rada precedentu, kas nopietni kaitē Java Kopienas Process. Tā apgalvo, ka, radot nesaderīga implementāciju, dakšiņas, ja jūs, ir dzīvotspējīgs biznesa modelis. Ja citi pārdevēji sekot šo pašu stratēģiju, JCP spēja īstenot savietojamību un standartus samazināsies. Laika gaitā JCP varētu padarīt pilnīgi nekādas nozīmes. Arī tas ir ieguvums Microsoft un citiem pārdevējiem un platformas, kas konkurē ar Java. Šodien viens no Java nozares svarīgākā konkurences ieroci pret Microsoft. NET ir izmantot standartizācijas procesa (ti, JCP), kas īsteno saderību. Bez tā, Java nozare ir vienota ap neko un kļūst pūlis patentētu nevis nozares realizācijas balstīti uz standartu kopumu. Microsoft var konkurēt daudz efektīvāk pret mob patentētu produktu, nekā to var pret vienotā grupā pārdevējiem.

Advertisements

Komentēt

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Mainīt )

Twitter picture

You are commenting using your Twitter account. Log Out / Mainīt )

Facebook photo

You are commenting using your Facebook account. Log Out / Mainīt )

Google+ photo

You are commenting using your Google+ account. Log Out / Mainīt )

Connecting to %s