Zesktop: a full Java desktop

Címkék

Java desktop? A JD4X projekt és a Zerahstar azt találták ki, hogy egy teljes egészében Java technológiára épülő desktopot alkotnak. Az ablakozó környezet a Java programozási nyelvre épül és az X Windows System-et használja.

El is készült egy demo, amely a fejlesztés jelenlegi (korai) szakaszába enged bepillantást. A desktop Linux operációs rendszerre készült. Ellentétben a Sun Java Desktop System-jével -ami valójában egy GNOME 2.x- ez valóban Java.

Kipróbáltam, és készítettem néhány képet: A rendszerkövetelmények:

- J2SDK v1.4 vagy újabb (v1.5 nem támogatott)

- X Window System v4 vagy újabb

- Linux x86 kernel v2.4 vagy újabb

- számos GNU rendszer program

Képek:



































A desktop környezet jeleneg nem sokat tud. Annak ellenére, hogy Java, nem éreztem lomhának. Persze kérdés, hogy van-e kereslet egy n+1-edik GUI-ra az ablakozó rendszerek áradatában.

A projektről bővebben a http://jdx.sf.net/-en lehet olvasni. A kipróbálásnak a legegyszerűbb módja ez a live CD.

Hozzászólások

Aranyos :-)

Tetszik a Tux ruhaba bujt ZerahStar logo az elso screenshot-on :-D

A ZerahStar honlapon is egy hasonloan aranyos grafika fogad ;-)

KoS

Akartam mondani, hogyha Java, akkor biztos lassú :) Ezek szerint nem. Tetszik a Mac-skin, ha tesznek machez hasonló felsõrészt is hozzá, kipróbálom :) (Már a legördülõ menüre értem)

Ez poennak jo csak az a kategoria amit soha nem ertek meg: minek pazarolni az eroforrasokat? Ez olyan mintha valaki azt talalna ki hogy a Linux kernelt irjuk at javaba mert milyen meno hogy "java kernel"-unk van. Csak ertelme nem sok, amugy lehet hogy meno :) Vagy valaki javitsok akkor ki: miert jo ezt javaban csinalni?

Imho unatkozo Java programozok ;)

A képek a livecd alapján készültek ? Nem rossz!

Ez most csak egy sarkitott pelda lesz. Ott van pl a KDE, a Gnome. Mind a ketto, egy teljes desktop kornyezet, elosztott, ujrafelhasznalhato komponensekkel, sajat fontrenderinggel, meg meg sok joval. Ezek eleg robosztus rendszerek. Ha valaki pl javara alapozva irna ilyet, egy csomo mindent kezhez kapna, es sokkal egyszerubb lenne a munkaja. Regebben (par eve) en is gondolkodtam hasonlon, de akkor meg nem volt az sdk-ban alacsony szintu interfesz az X fele (igy nem mertem belevagni). Volt egy 3rd party API, de az akkor nem tetszett. Most nem tom mi a helyzet, lehet hogy javult, lehet hogy nem, csak a fiuk/lanyok batrak.

Na mindegy, lenyeg, hogy sok enterprise klassz java rendszerhez lehetne irni fasza klienseket, vadiuj koncepcioval, csak ehhez a fiuknak/lanyoknak tobben kene gondolkodniuk egy desktop rendszernel.

Sot. Ha elosztott desktop rendszerrol lenne szo (erts ezalatt barmit ami beleertheto), akkor a java a legjobb megoldas. Szerintem.

Mindegy, en ugy gondolom, hogy nagy utat tornek a fejlesztok, es nagyon orulnek, ha nem csak egy desktop rendszerben gondolkodnanak.

A java sebessegerol csak annyit akarok hozzatenni, hogy ez folyamatosan javul. Ettol fuggetlenul a java sztem mindig is csak GUI oldalon volt lassu, ott meg tortentek azert jo dolgok. Ott van pl az SWT, ami sztem gyors, es szep is. Persze nem azt akarom mondani, hogy a swing lassu, csak konnyebb benne lassu kodot irni.

attol fugg.

irj egy kis matek szamolo progit. mondjuk egy egyszeru backtrack-et, fusson le nehany millio esetre, es mindegyik esetre legyen feltetel, meg valami matek muvelet.

ird meg C-ben is.

hanyszoros a futasido kulonbsege?

nekem 10x-es volt.

lefuttattad mar a JAVA2D bemutato programjait? ott latszik, hogy milyen brutalisan gyakran megy el udulni a vm, es kozben szamodra, mint felhaszanalo szamara semmit sem tortenik. a garbage collectalas nagyon sok problemat tud okozni egy jelentosebb JAVA projektben.

Ha Java-ban is C-ben programozod le ugyanazt (int hasznalata Integer helyett, stb), akkor a futasi sebesseg kb ugyanaz. Sot, neha jobb is lehet, ha egy ket loop-unrolling jol sikerul a HotSpot szamara, illetve ha mondjuk a futtataskor a JVM felfedezi, hogy a proci tamogatja az SSE2 utasitasokat es arra optimalizalt kodot gyart, mig a C fordito meg mondjuk csak i586-ra forditotta a kodot.

Garbage collection: tuningoltal rajta, vagy csak a gyari beallitasokat hasznaltad? Parhuzamos GC, adaptiv algoritmusok. Vannak rola nagyon jo whitepaper-ek, erdemes beleolvasni.

Amirol nem irsz, az az, hogy a GC miatt egy Java programnak mindenkeppen nagyobb lesz a memoriaigenye, mint egy C/C++ programe. Ugyanakkor a fejlesztesi ido es a programban fellelheto biztonsagi hibak szama a toredeke. Valamit valamiert (mennyivel elegansabb egy ArrayOutOfBoundsException, mint egy remote root exploit:)

CPU tekinteteben 1.4-es Java ota lenyegileg nincs kulonbseg a C-ben megirt es a Java-ban megirt algoritmus futasi ideje kozott, ha Java-ban is primitiv valtozokat hasznalsz... Van erre tobb microbenchmark is:

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

http://sys-con.com/story/print.cfm?storyid=45250

http://www.theserverside.com/news/thread.tss?thread_id=25743

Joel hozzászólása mellé:

A Microsoft az mondja a .NET-ről, hogy az igazából natív kódként fut. Csináltam méréseket különböző alap algoritmusokról (8 királynő, rendezések, stb...), amiben pontosan ugyanazt csináltam meg a két rendszerben. Hasonló 5-10%-os eltérésű futási időket kaptam, kb. fele helyen a Java gyorsabb volt.

Ez az egyik fele. A másik fele: a .Net és a Java is azon versenyez mostanában, hogy hány százalékra közelítik meg a natív C kódok futási idejét. Nagyjából ugyanolyan ütemben haladnak, és most kb. 5-7% különbségnél tartanak.

>Annak ellenére, hogy Java, nem éreztem lomhának.

"It was developed with the intention of providing a Java environment that allows Java programmers to build and extend a windowing system purely in Java. However, the project itself is not pure Java and uses a mixture of Java and C."

Hat, ha gyorsul, akkor az csak jo lehet, de ettol en meg nem fogom hasznalni. Tul sok a rossz tapasztalatom vele szemben. Az is kerdes, hogy mitol gyorsul fel es hogyan.

Ezt is erdemes megnezni...

Cross-platform Java alapu 3D jatekfejlesztes...

http://www.oddlabs.com/technology.php