ESR: Tegyék a Java-t szabaddá! (második forduló)

Címkék

Múlt hét végén Eric S. Raymond nyílt levelet intézett Scott McNealy-hez a Sun Microsystems vezérigazgatójához, amelyben felkérte, hogy tegye a Java-t szabaddá (korábbi cikkünk). Nem úgy fest, hogy a Sun örömmel adja át a Java-t az open source közösségnek, azonban ESR nem hagyja annyiban. Itt a hacker második nyílt levele a Java szabaddá tételével kapcsolatban.

Hozzászólások

>nagyon leegyszerusited a szabad szoftver fogalmat a GPL-re. Nem a GPL az egyetlen szabad szoftveres licenc

hirtelen ez jutott az eszembe. Az elkovetkezo post-okban torekszem a maximalis korrektsegre :)

>azert ez nem teljesen igy van. gondolom licencet kell kerni a Sun-tol a felhasznalasara. Legalabbis a FreeBSD-nek kellett [daily.daemonnews.org]

Rendben, en sem ismerem teljesen a terjesztes lehetosegeit. Akkor is a "bele tehetik, vagy nem tehetik bele" szinten tag fogalmak.

Nem olvastam egyik nyilt levelet sem, de valaki osszefoglalna hogy mit jelent az hogy a "Javat szabadda tenni"?

Mit pontosan? A forraskod legyen GPL? A fejlesztesbe torteno beleszolas (www.jcp.org) legyen teljesen ingyenes (tehat cegek szamara is)? A fejlesztes folyamata legyen nem tagok szamara is nyilvanos (barki lehet tag jelenleg)?

Es meg egy dolog: ez kit segit es miben? Mi valtozna, ha a "Java szabad lenne".

Gondolom nem azert lenne ez jo, hogy a disztribuciok batran beletegyek a CDjukbe. Batran beletehetik most is.

Nem a dolog ellen vagyok, egyszeruen nem ertem, hogy ez miert fontos.

Én sem olvastam a cikket, viszont a következőket tudom:

1. A Java fejlesztése nem nyitott, vagyis a Sun fejleszti azt, és slussz.

2. A forráskód letölthető ugyan, de meglehetősen későn szokták kirakni, a stabil változat megjelnése után. (Nem sikerült rájönnöm, hogy ami kint van, az az mindig az aktuális build-e, mivel a számot nem tüntetik fel, de azt gondolom, nem az.)

3. Végezhetsz módosítást a kódon, de az egyrészt nem kerül bele a fő ágba (első pont), másrészt nem terjesztheted, csak ha megmutatod a Sunnak, hogy mit csináltál, és ő azt mondja, hogy rendben van.

Ezeken felül még arra is gondolhatott, hogy a Java szabványt tegye nyitottá. Így nem csak az implementációhoz lehetne hozzájárulni, hanem új nyelvi konstrukciók is megjelenhetnének akár a nyelvben mások által. Ezt biztosan nem fogja engedni a Sun, hiszen a M$ is azért kezdett a .NET-be, mert a bíróság szerint nem csinálhatott olyan Javát, amilyen neki tetszik.

> Ezek szerint ugye holnaptol a Debian main-ben fog visszakoszonni a Sun JDK? Tok jo hireid vannak!

Hat a Slackware-bol mar tegnaptol visszakoszon.

Ben

> 1. A Java fejlesztése nem nyitott, vagyis a Sun fejleszti azt, és slussz.

Mi az, hogy a "Java fejlesztése"? Es mi az, hogy Java?

Szamomra a Java nem igazan egyenlo a JVM-mel, a JDK-val pedig vegkepp nem.

Ez olyan, mint pl. a Pascal sem egyenlo a Turbo Pascal-al. Kicsit szemleletesebben egy kis oszzehasonlitas C-re es Java-ra:

Java................. C

JDK.................. gcc, Turbo C

JVM.................. Linux, Windows, AIX, Solaris stb.

Ez csak egy hozzavetoleges osszehasonlitas.

Es akkor tegyuk fel, hogy azt mondom a C fejlesztese. Akkor mire is kell gondolnom?

A Borland C forditojanak a fejlesztesere?

Vagy egy Linux distro. (ahol egy leforditott C program kepes futni) fejlesztesere?

Hm? Ezert kerdeztem:

Mit ertesz Java alatt?

Az M$ pedig olyan Javat csinalt, ami lehetove tette olyan program irasat, ami csak Winfoson futott volna. Es amugy is sz*r volt. Leragadtak 1.1 (vagy meg annyi sem) kornyeken. (Bar most is lehet irni olyan kodot, ami erosen nativ alapokon nyugszik, tehat konnyen kialakithato egy altalad megirt program es egy adott op.sys. kozott a szoros osszefugges. Akar ugy is, hogy pl. Linux-os parancsokat futtatol Java programbol.)

Azt pedig kisse furcsallom, hogy a .NET utan is meghagyta az M$ a sajat elavult JVM-jet a Win-ben. (Csak hogy szivjon vele a jonep es mutogathassa: lam-lam milyen sz*r a Java! De hurra! Itt a .NET)

> Sun fejleszti azt, és slussz.

Ha Java alatt JDK-t v. JVM-et ertesz, akkor:

A Sun, meg az IBM, meg a BEA stb.

http://www.bea.com/framework.jsp?CNT=index.htm&FP=/content/products/jrockit

Ha a BEA es az IBM tud JVM-et fejleszteni, akkor szamomra nagyon furcsa, hogy az M$ miert nem? (Ismerve az M$-t nem is annyira furcsa.)

A forráskódról pedig csak annyit, hogy ezzel az erővel lehetne az IBM-et, meg a BEA-t is cseszegetni, hogy tegyek a Java-t szabadda! Mas kerdes, hogy Sun miket mondott. Ha annyira baratai az open source kozossegnek, hat akkor nyissak meg a forraskodjat a JVM-nek, meg ami ide tartozik. Ja es akkor nyissak meg a Solaris kodjat is :-)

(Bar nem igazan vagyok tisztaban, hogy most

mi hogyan es milyen formaban erheto el.)

Ben

u.i.:

Bocsi, ha szorszalhasogatonak tuntem. Es valoszinuleg nem is vagyok teljesen kepben, ugyhogy az okosabbak jobban tisztazhatnak a dolgokat.

Az hogy a debiannak milyen kulonos szabalyai vannak arra, hogy mi kerulhet be a mainbe, azt nem a sun-on kene talan szamonkerni ;-)

>de valaki osszefoglalna hogy mit jelent az hogy a "Javat szabadda tenni"?

valoszinuleg azt jelenti, hogy az OSI szemszogebol a Java nem szabad szoftver. szeretnek ha az lenne

>Mit pontosan? A forraskod legyen GPL?

nagyon leegyszerusited a szabad szoftver fogalmat a GPL-re. Nem a GPL az egyetlen szabad szoftveres licenc

>Gondolom nem azert lenne ez jo, hogy a disztribuciok batran beletegyek a CDjukbe. Batran beletehetik most is.

azert ez nem teljesen igy van. gondolom licencet kell kerni a Sun-tol a felhasznalasara. Legalabbis a FreeBSD-nek kellett [daily.daemonnews.org]

A sun azt akarja megakadalyozni, hogy mindenfele jottment cegek (pl Microsoft) fogjak, modositsak a forrast, aztan kiadjak mint java.

Ezenkivul java alatt meg lehet a java bytecode-ot is erteni.

Tekintve, hogy van szamos open source VM, valamint egy viszonylag teljes (L)GPL-es Java API, es nem csak a java nyelvet lehet java bytecodera forditani, igazabol nem teljesen vilagos, hogy melyik reszet akarja "szabadda" tenni ESR.

Nem szőrszálhasogatás, de azért megpróbálom helyrerakni a dolgokat:

Az összehasonlítás ott sántít, hogy a Java nem csak nyelv. A szó túlterhelt: jelenti magát a nyelvet is, de jelenti a Java platformot is. Ez a koncepció lényege: a Javával a Sun a platformfüggetlenséget akarta elérni (többek között). Nem csak nyelvet adott és fordítót, hanem egy teljes futtatókörnyezetet, ami minden vason és oprendszer alatt ugyanazt a környezetet lenne hivatott biztosítani. Hogy ebből mennnyit sikerül elérnie, az már más lapra tartozik.

Tehát: a Java platformot értettem Java alatt, ami nem függetleníthető magától a nyelvtől, de nem is egyenlő azzal.

A Sunnak éppen azért volt baja a M$ féle Javával, mert bár lehet, hogy magát a nyelvet jól implementálta (erre nem emlékszem), de nem igazán illett rá a szlogen, miszerint "Write Once, Run Anywhere". A perlekedés eredménye az lett, hogy a m$ nem használhatta Java logót a fejlesztőeszközeiben.

A windowsos JVM kérdése egy másik perlekedés tárgya volt, ami arról szólt, hogy köteles-e belerakni vmilyen JRE-t a m$ a windowsba. A win2k-hoz kijött javítócsomagok egyike felrakta a jvm-et, a másika leszedte, éppen annak függvényében, ahogy a per állt.

Tehát azért van jvm a windowsban mert a bíróság erre kötelezte a céget, és nem azért "Csak hogy szivjon vele a jonep es mutogathassa: lam-lam milyen sz*r a Java! De hurra! Itt a .NET"

Az M$ nyilván tudna JVM-et fejleszteni, még akár jobbat is, mint a Sun. Egyszerűen nem érdeke, és nem ez a stratégiája.

A BEA-t és az IBM-et hiába kérnék, hogy tegyék a Javát szabaddá, ugyanis nem ők birtokolják a Javával kapcsolatos szabadalmakat.

Az IBM-nek egyébként van teljesen nyitott JVM-e, rvm-nek hívják talán (nem emlékszem biztosan), ez elsősorban kutatási célokat szolgál, és meglehetősen alfa állapotú. (Nem azonos a Jikes-szal.)

> Tehát azért van jvm a windowsban mert a bíróság erre kötelezte a céget, és nem azért "Csak hogy szivjon vele a jonep es

> mutogathassa: lam-lam milyen sz*r a Java! De hurra! Itt a .NET"

> Az M$ nyilván tudna JVM-et fejleszteni, még akár jobbat is, mint a Sun. Egyszerűen nem érdeke, és nem ez a stratégiája.

Gondolom a birosag nem arra kotelezte az M$-t, hogy a sajat JVM-et tegye bele (legalabbis nem azt a gagyit). Mivel a Sun-nak pont ez volt az egyik kinja, hogy egy "kisse" elavult JVM-et mellekelnek a Win-ekhez.

Az erdeke pedig nyilvan a .NET terjedese a Java karara. Tehat, amig csak teheti a sajat gagyesz JVM-jet fogja nyomatni... De ha jol emlekszem inkabb ugy dontottek, hogy ne is legyen JVM a Win-ben, tehat most ujabban nincs is. De a pontos allasra a pereskedesben nem emlekszem. Tehat ebben szivesen felvilagosodom. Gondolom az alabbi esetek lehetsegesek az M$-nek:

- no JVM

- sajat felfejlesztett JRE, ami kepes a legfirssebb SUN JDK-val forditott progik futtatasara

- Sun JRE

Ha ez van, akkor nem nehez kitalalni az M$ reakciojat. :-)

> Gondolom a birosag nem arra kotelezte az M$-t, hogy a sajat

> JVM-et tegye bele (legalabbis nem azt a gagyit). Mivel a

> Sun-nak pont ez volt az egyik kinja, hogy egy "kisse" elavult

> JVM-et mellekelnek a Win-ekhez.

Tán még onnan indult a dolog, hogy teljesen eltávolította a microsoft a javát a windowsból. De ez elég régi ügy, nem emlékszem pontosan.

> Gondolom az alabbi esetek lehetsegesek az M$-nek:

> - no JVM

> - sajat felfejlesztett JRE, ami kepes a legfirssebb SUN JDK-val forditott progik futtatasara

> - Sun JRE

Még lenne pár lehetősége: lehetne futtatni a Java alkalmazásokat a .NET keretrendszeren belül is. Persze nem foglalkoznak vele. A Monoban vannak ilyen próbálkozások többé-kevésbé előrehaladott állapotban.

A .NET magját képező CLR (Common Language Runtime) (ez felel meg a JVM-nek) egy köztes nyelvi kódot futtat (IL, Intermediate Language). Így érték el a nyelvfüggetlenséget, vagyis minden további nélkül tudod basicből hívogatni a c++ vagy c# objektumaid metódusait. Elég jól kitalált és megcsinált rendszer, a Java támogatást nagyon szépen bele lehetne illeszteni, többféle módon is.