PHP-t hasznaltam par honapig es elhataroztam, hogy valami komolyabb nyelvet szeretnek tanulni. Java-ra gondoltam.
Igazabol az nyugtalanit, hogy sokan azt mondjak lassu. Ez tenyleg igaz?
Kivancsi lennek par velemenyre.
Koszonom!
- 4359 megtekintés
Hozzászólások
Itt van pár vélemény:
- igen
- nem
- A hozzászóláshoz be kell jelentkezni
dícséretes
könnyen belátható, hogy egy nyelv nem lehet lassú
szívesen
- A hozzászóláshoz be kell jelentkezni
Kosz! Nem a nyelvre ertem a dolgot hanem a bytecode dologra. Ha jol olvastam mielott elindul a program Java az egesz kodot at kell alakitsa bytecodra. Ha nem olvastam jol akkor elnezest. Gondoltam valami normalisabb hozaszolasokat kapok.
- A hozzászóláshoz be kell jelentkezni
>> at kell alakitsa (bytecodra)
a helyzetkomikum alapja, hogy eddig spagettiben szúrtad neki, és nem zavart a dolog
- A hozzászóláshoz be kell jelentkezni
Nem értem, nem emesbérencezett le senkit.
- A hozzászóláshoz be kell jelentkezni
"Konyha nyelven": a Java sokkal gyorsabb mint a PHP, mert előfordított kódból fut, és nem realtime-ban fordít. A php egy script nyelv.
Amikor először találkozik a kiszolgáló a kódodal (pl servlet konténert használsz: Tomcat), akkor nyilván le kell forduljon.
Hasonló a helyzet a .NET-nél is ott is előfordított szerver oldali dll-eket publikálsz.
Egyesek szerint erőforrás igényes rendszerek ezek, ami az objektum orientált technikának tudhatók be. Mindent lehet mondani a JAVA-ra csak azt nem hogy "kisteljesítményű".
Ezektől hidegrázásom van: "komolyabb nyelv", "gyorsabb vagy lassabb". A csajoknak sem a gyorsabb a jobb!
- A hozzászóláshoz be kell jelentkezni
Azért ehhez hozzátartozik, hogy a komolyabb PHP szerverekre szokás valamilyen PHP compiler cache-t telepíteni, ami lefordítja a PHP file-okat és memóriában tartja a terhelés csökkentésére.
A Javának nem a sebesség az előnye a PHP-val szemben, hanem hogy típusos programnyelv. Persze sokak szerint ugyanez a hátránya is, mert fordítgatni kell.
Másik előnye, hogy nagyvállalati szinten sok helyen előnyben részesítik a Javát különböző okokból de láttam már olyan nagyvállalatot is, ahol meg nem.
Mindenesetre, szerintem kis céges honlapokat és kisebb portálokat értelmetlen dolog Javában fejleszteni, viszont ha egy nagyobb fejlesztőcégnél szeretnél dolgozni nagyobb volumenű projecteken, jobban jársz, ha Javát tanulsz, esetleg .NET-et.
Amúgy meg sosem lehet olyat kijelenteni, hogy egyik programnyelv jobb, mint a másik. Azt kizárólag az adott feladat és a fejlesztésben résztvevők szakmai tapasztalata határozza meg.
- A hozzászóláshoz be kell jelentkezni
"Ezektől hidegrázásom van: "komolyabb nyelv", "gyorsabb vagy lassabb". A csajoknak sem a gyorsabb a jobb!"
márpedig amíg egy nyelv nem tud rendesen kezelni normálisan egy unsigned-et, addig igenis lehet mondani hogy SZAR (phpre gondolok).
és programozás közben nem jó csajozni és fordítva :)
- A hozzászóláshoz be kell jelentkezni
He? Mert a java-ban talan lattal mar unsigned-ot?
- A hozzászóláshoz be kell jelentkezni
Ezektől hidegrázásom van: "komolyabb nyelv", "gyorsabb vagy lassabb". A csajoknak sem a gyorsabb a jobb!
Ok :) Rosszul fogalmaztam meg, a komolyabbat ugy ertem, hogy amikor valtozot hasznalok eloszor megadom a tipusat, es GUI alapu programokat is lehet vele irni, stb..
A PHP szerintem a legjobb ingyenes (web) nyelv, csak en aplikaciokat szeretnek fejleszteni es nem web lapokat.
- A hozzászóláshoz be kell jelentkezni
Én az életem 90%-ban százalékában JAVAT és .NET -et használok főmunkaidőben, szabadidőmben meg PHP-t is. Igazából robosztus stabil rendszereket véleményem szerint nem érdemes PHP -ban készíteni egyrészt a tipussosság, másrészt a az objektumosság hiánya miatt. Ha több tíz ember dolgozik egy rendszeren akkor kell valamiféle név és tipus konvenció. A JAVA és a .NET egy lényegesen fejlettebb technológiát képvisel mint a PHP. Adatbázis kezelők között szintén nem hasonlítható össze a MySQL az Oracle-val vagy az MSSQL-el. Nem láttam még PHP-ban készült vállalati rendszert kivéve a céges WEB siteokat.
Egy programozónak a munkaeszköze a C++, a JAVA, ASP.NET C# ha meg a sebesség a követelmény, akkor elgondolkozik azon hogy miként lehet hatékony technológiát alkalmazni, és esetleg nem olcsóbb -e a hardvert fejleszteni a megfelelő teljesítményre. Elért a világ arra a szintre hogy az emberi munka az érték nem pedig a vas.
- A hozzászóláshoz be kell jelentkezni
másrészt a az objektumosság hiánya miatt
Nem vagyok PHP rajongó, de ez így nem igaz. PHP-ban egészen jól lehet objektum-orientáltan is dogozni.
- A hozzászóláshoz be kell jelentkezni
De csak 5-östől, ha jól tudom.
- A hozzászóláshoz be kell jelentkezni
Mint ahogy a 4-től is.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
ennyire durván azért ne gyalázzunk dolgokat
- A hozzászóláshoz be kell jelentkezni
azért a köcsögdudát ne hasonlítsuk már a hárfához ((c) CoVboy)
- A hozzászóláshoz be kell jelentkezni
"nem hasonlítható össze a MySQL az Oracle-val vagy az MSSQL-el"
Biztonsagban semmikepp, pl. az Oracle DBM-e az elso es eddig az egyetlen backdoor, ami kepes hatekonyan kihasznalni 4 CPU-magot is... :)
- A hozzászóláshoz be kell jelentkezni
Perl t probaltad mar? Csak ajanlani tudom.
Masreszrol, ugy veszem eszre, ket faj letezik: aki java, php, .net,...[szarszutyok]... nyelveket szereti és azokon fejleszt es utalja a C, perl, pure funkcionalis nyelvek,...[ertelmes,elegans]... nyelveket, es forditva. mar szinte vallas.
Van akinek ez, van akinek a masik jon be, es valtig hangoztatja, hogy o meg nem hallott jot a masik tabor nyelveirol. En sem hallottam meg jot javarol es php rol.
vagy rosszul latom? :)
zsolt
- A hozzászóláshoz be kell jelentkezni
Van egy apró probléma... mármint a C, a perl és a többi általad említett nyelvvel...
Mondj egyet közülük, amellyel különösebb probléma nélkül lehet weboldalt, webszolgáltatást, GUI alkalmazást, konzolos alkalmazást, háttérben futó (démon) programot készíteni, s az elkészült programok különösebb gond (vagyis rendszergazda, vagy environment support-os) nélkül _telepíthetők_ Windows, Linux és mainframe UNIX rendszerekre... :)
Amit nem soroltam fel, az a beágyazott rendszerek (itt mondjuk tör fel a JavaME például), az operációs rendszerek mélyebb részei (nézd meg a JNode-ot!), a mikrovezérlők (van JVM AVR processzorra)... mi maradt ki?
Megcsinálod ezeket C vagy perl nyelven? http://www.javaforum.hu/?newsId=204#newsBody
Szóval sajnos vagy szerencsére a C szorul ki a palettáról. Ahogy kiszorult a Fortran és a Cobol is. Valamikor a Cobol programozók mondták a C-re azt, amit Te most a Java-ra... :)
- A hozzászóláshoz be kell jelentkezni
C + apxs? ;)
cgi?
Csak itt ugyanúgy vegyük figyelembe, hogy melyik nyelv mire lett kihegyezve.
Ugye a java az ojjektumorientált, magas szintű, RAD fejlesztéshez, UML-ben rajzolgatok, legenerálom, beleírok pár sort ittott a metódusokba és kész. (Cserébe 270 mega csak a JVM és még el sem indult a cucc)
C. Alacsony szintű, mindent te kezelsz, megnéznék egy java class-t inline assemblykkel :)
Meg ugye a JVM-et miben írták? költői kérdés volt.
Cobol meg adatbáziskezelésre lett kihegyezve, hát nem is írnék benne kernelt.
PHP-ben ha modulként futtatod, akkor alapból van cache.
Én azt mondom, abban programozz amihez értesz, azt fikázd, amit ismersz.
Ha java programozó leszel, akkor nyugodtak lehetünk, mert nem vesszük el egymás kenyerét.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Ha java programozó leszel, akkor nyugodtak lehetünk, mert nem vesszük el egymás kenyerét.
Programozok én C és C++ nyelven is. Nem is keveset. De szorul vissza. Szerencsére... :)
Ugye a java az ojjektumorientált, magas szintű, RAD fejlesztéshez, UML-ben rajzolgatok, legenerálom, beleírok pár sort ittott a metódusokba és kész. (Cserébe 270 mega csak a JVM és még el sem indult a cucc)
Remélem, hogy csak sarkítasz, mert ezek közül csak az igaz, hogy objektumorientált és magas szintű. Teljes mértékben lehet úgy programozni Java nyelven, mint C és C++ nyelven... sőt. Akár meg tudok hívni ASM betéteket is, ha szükséges, bár ekkor értelemszerűen elveszik a hordozhatóság.
Egyébként látom szépen kikerülted, hogy mivel lehet mindazt megcsinálni, amit felsoroltam... sok évet programoztam C nyelven, most is szoktam, tudom miről beszélek... te mennyi évet programoztál Java-ban? :)
C. Alacsony szintű, mindent te kezelsz,
Erre írtam, hogy az a programozási feladatkör, amire a C hasznos és használható, egyre zsugorodik.
Mondj egy olyan megoldást C nyelvre, amellyel képes vagy ügyviteli GUI programot készíteni a három elterjedt operációs rendszerre (Windows, Linux, MacOS), és a program telepítése nem okoz gondot annak, aki már telepített programot Windows alá. Mivel oldanád meg ezt a feladatot?
A FreshMeat-en másfél éve ~5300/2400/1900 volt a C/C++/Java projektek száma. Idén már 8500/4500/5300 az arány... tudom, soha nem fogja legyőzni se a C se a C++ nyelvet, nem is ez a cél... de a jelenlegi projektek 80-85 százaléka nyugodtan megírható Java és .NET platform alatt, és kevesebb probléma adódik az üzemeltetésből. A többire ott a C és a C++.
Tudom, sokan hidegrázást kapnak a objektum orientált programozástól... pedig nagyon sok előnye van, ha _igazán_ kihasználod az OOP előnyeit. Az OOP forráskódok nagy részében olyan programozási módszereket használnak, mint strukturált nyelveknél: de ekkor eltűnik az OOP előnye, kevesen értik igazán az OOP kihasználását. Egyébként mit szólsz akkor az apektus orientált programozáshoz? :)
Meg ugye a JVM-et miben írták? költői kérdés volt.
Tagadtam én, hogy ennek a magja C++? Egyébként probléma nélkül megoldható lenne, hogy GCJ-vel binárisra fordítsuk a Java programot. De ez majd jövőre, idén már a Java trend. :)
- A hozzászóláshoz be kell jelentkezni
:-)
Teljes mértékben lehet úgy programozni Java nyelven, mint C és C++ nyelven... sőt. Akár meg tudok hívni ASM betéteket is, ha szükséges, bár ekkor értelemszerűen elveszik a hordozhatóság.
Úgy érted procedurális módon? Igen, valahogy bele lehet kényszeríteni egy osztályba mindent, csak épp direkt OO-ra van csinálva a nyelv... Az UML meg arra van, hogy OO nyelvek vázát lehessen modellezni (a java is OO, ezért lehet királyosan skeletont generálni). RAD meg... tudod, olyan ez mint a T9. Fújmegminden, aztán rájössz, hogy milyen jó és nem tudsz tőle elszakadni.
Használtál már jasm betéteket?
Mondj egy olyan megoldást C nyelvre, amellyel képes vagy [...]
Állj, mondtam én, hogy C For Everything? Mellékesen embedded mysql + wxwidgetssel, így egy binárisban meglesz a progi és csak a libmysqlembed és a wxwidgets telepítőjét kell befogni a cuccom installerébe. És ugye a lényeg gépfüggetlen, csak a guiban lesz némi oprendszerfügggő dolog(de talán még ott is csak a wxwidgets telepítőjében:P). Mac-re meg segít Gabucino, ő a nagy osx huszár.
Tudom, sokan hidegrázást kapnak a objektum orientált programozástól...
Aha :)
Aspektus Orientáltról csak annyit, hogy akár már csak emiatt is ki lehetne hagyni az OO szintet és AO-ra váltani, de rögtön :P
Szerk:
C++ hívása jini-n keresztül :)
Így érdemes assemblyzni, de ugye a portolhatóság...
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
http://blogs.sun.com/dagastine/
Relatív.
Mindenben lehet gyors és lassú programot írni. Érteni kell hozzá! :) Mindkettőhöz. :)
- A hozzászóláshoz be kell jelentkezni
Nickname koszi!
- A hozzászóláshoz be kell jelentkezni
Persze, lehet. De azt az esetet kell nezni, amikor mindketto platformon profik dolgoznak. Mar csak magunkbol kiindulva is. :)
A java IMHO a leggyorsabb bytecode+gc platform (platform, nem nyelv; a nyelvnek max. fejlesztesi sebessege van). A JIT szerverapplikaciok eseten igencsak lealaz minden mast.
- A hozzászóláshoz be kell jelentkezni
Majd valamikor reszletes mereseket csinalok, de nekem ugy tunik, hogy, ha csak a primitiv tipusokat hasznalod, akkor a betoltes +1 sec C -hez kepest , a futasa a kodnak kb. ugyan olyan sebbesegu (gcc -O2). (Ez elfogadhato.)
Bonyolultabb programoknal meg nem mertem. Es memoria hasznalatot sem. (Rajta van teendoim listajan)
- A hozzászóláshoz be kell jelentkezni
http://shootout.alioth.debian.org/
Egészségetekre... Benchmarkok minden mennyiségben!
- A hozzászóláshoz be kell jelentkezni
Azt ismerem :) Sajat magam szeretnem tesztelni. Itt java kodok eleg C-nek neznek ki, arra vagyok kivanbcsi, ha hasznalom java bepitett cuccait menyire lesz gyors. (Container etc.)
Volt egy oldal ahol, mindenfele problemra sokfel nyelven lehetett bekuldeni megoldast, es a rendszer merte, C -volt az elso szinte mindenutt. Volt olyan, hogy egy 3 soros ruby program megverte a sok soros javat (BigInteger), az az oldal erdekelne. (Azota lehet megvertek a programjat a javas progik)
De, ha talakozok az illetekessel aki mutatta, ra kerdezek. (o irta a ruby programot, elso ruby programja :) )
- A hozzászóláshoz be kell jelentkezni
.. csak gondoltam hátha valaki még nem :)
- A hozzászóláshoz be kell jelentkezni
Dícséretes.
Kezd ott, hogy:
Bruce Eckel - Thinking in Java
google megtalálja neked, ingyenes e-book letölthető Bruce honlapjáról
- A hozzászóláshoz be kell jelentkezni
regen szerintem lassu volt, most mar nem annyira, persze relativ. sose lesz asm szintu, nyilvan. a tendencia az hogy egyre gyorsabb. pl az 1.6 on sokat optimizaltak sync-elt methodus hivasoknal. az 1.5 ha jol emelexem a ciklusok teren gyorsult. de ezek csak peldak amik ket sor utan ugranak be :) sun.java.com biztos tobbet mond.
- A hozzászóláshoz be kell jelentkezni
Igazából arra amira kell arra jó, én csak 2 dolgot említenék ezügyben, egy asm-fejlesztő irjon html-be ágyazott chat programot, egy java feljesztő, meg mondjuk filmkodeket :S :S :S :S :S Na szóval a képzavar után, ha olyan programot akarsz írni ahol számít a sebesség szerintem totál alkalmatlan, pl szerintem nem jó a már említett kodekeknek, nem jó tömörítőnek.........., és még sorolhatnám. Viszont remek a web-es háttere, gondolom mondanak valamit a java applet, és a java script szavak arra kiváló, de ha már a sebességösszehasonlításnál tartunk, írtunk annó egy programot ami egy sudoku-szerű táblát töltött ki (valójában mátrixelemzés volt de mindegy) ugyanazt a progit ugyanazal az algoritmussal megírtuk C++ ban és java ban (akkor még mondjuk 1.4-es java volt) a c-progi 10 másodperc alatt futott le kb, a java 215 másodperc (szóval nem matematikai műveletekre van kitalálva). Szerintem egy jó programozó azért nem csak 1 nyelvet tud (de erről másnak biztosan más avéleménye), ha engem kérdezel, C, C++, assembly, de azért mert nekem ez a jó, nekem a sebesség kell.
- A hozzászóláshoz be kell jelentkezni
Habár egyetértek veled, azért egyet ne keverjünk. A java nyelv és a javascript nagyon, de nagyon nem egyenlő! Még csak köze sincs egyiknek a másikhoz a névhasonlóságon kívül! Sokan azt hiszik, hogy a javascript a java egyszerűsített változata, nem az. Tessék szépen utánanézni :) Javascript-nek másik neve az ECMAscript, ha jól tudom. http://www.ecma-international.org/publications/standards/Ecma-262.htm
- A hozzászóláshoz be kell jelentkezni
Igazad van utána néztem valóban így van. Bocsi a haverom nagy java fan ő szokott ilyen web-es javas- cuccokat írkálni. Én csak hallottam róla.
- A hozzászóláshoz be kell jelentkezni
Én a Python-t nagyon megszerettem: egyszerű, kiterjedt lib-ekkel, nagyon szép és elegáns.
Java-ban kénytelen vagyok programozgatni, de nem szeretem (nagy, sokat kell gépelni (vagy generálni), nehézkes a típusosságával, és zabálja a memóriát.
Ellenben elfogadhatóan gyors, kiterjedt könyvtárgyűjteménye van, és elfogadott.
De akkor se szeretem.
Ha akarsz valami igazán szép (és C-nél gyorsabb kódra forduló!) nyelvet tanulni, akkor javaslom a Haskell-t!
Ha kicsit használhatóbbat, de ugyanúgy gyorsat (nem annyira szép, de bonyolultabb :)): OCaml.
Ha mindenütt fordítható, hordozható és gyors: C (a mai ASM :))
- A hozzászóláshoz be kell jelentkezni
Azert ezzel a "C-nel gyorsabb kodra fordulo" dologgal nem teljesen ertek egyet.
- A hozzászóláshoz be kell jelentkezni
A Java nagyon jó dolog. Ezért iratkozz be a febr. 6-án induló Pentaschool Java webfejlesztőknek (vagy ilyesmi a címe) tanfolyamára. Nekem ebben annyi az érdekeltségem, hogy ha lesz létszám, akkor én is tudok menni :)
De hogy konstruktív is legyek. A Java most is sikeres, és még jó darabig az lesz. Persze nem ebben írják a hatalmas számítási kapacitást igénylő programokat, viszont nagyon sok mindenhez ideális eszköz, és egyre csak fejlesztik hozzá a technológiai kiegészítőket, amikkel könnyebben lehet szebb-jobb alkalmazásokat fejleszteni.
Egyébként ettől függetlenül ne hagyj fel a PHP-val, mert az legalább ennyire hasznos.
Ja, és akárki akármit mond, egy programozási nyelv megtanulásával semmit sem veszthetsz, legfeljebb nyersz. Amúgy sosem a nyelvvel van baj, legyen az akár valamilyen szkriptnyelv vagy rendszerközeli programnyelv, hanem azzal, ha valaki kókányul használja.
- A hozzászóláshoz be kell jelentkezni
Itt most szeretnék pár dologra reagálni! A legtöbb programomat Javaban fejlesztem. Nagyon kihangsúlyoznám, hogy a Java nem egy internetes programozáshoz készült (itt a pl. a phps-oldalakra gondolok). Én nagyon nem szeretem a php-t, de ettől függetlenül nem hiszem, hogy a Javaval lehetne helyettesíteni. Pl. egy cégnél 3 rétegű kliens-szerver alkalmazást, amin egyszerre több ezer felhasználó ügyködik kiváncsi lennék ki miben írná meg (mi Java-ban írtuk, és nagyon nem is tudok egyellőre jobb megoldást :) )
Egyetértek azzal, hogy nincs jobb vagy gyorsabb nyelv. Minden a programozó tudásán múlik.
A Java az eddig ismert programozási nyelveimtől futásban annyival tér el, hogy valószínű a jvm miatt alapból lefoglal magának 20 MB memóriát. De gondolom ez a mai gépeknél nem igazán nagy gond. A gyorsaságról annyit, hogy grafikonokat csinálgat az egyik programom egy nagy adatbázisból sok számítással, ahogy feldobja az ablakot ott is van a grafikon. Ez kb. 1s, ha valami ennél gyorsanbban is megcsinálja az jó, csak igazából nem nagyon számít. Itt jegyzem meg, hogy ha real-time kell valamit megoldani native C kódot használunk.
emberknek:
A javascript dolgot már megválaszolták. Viszont ha csak a java appletet ismered, akkor nem igazán ismered a java lehetőségeit. Messze túlmutat azon, még a webes használhatóságon is. Ja és egyszer kipróbálnám ezt a c++ java verseny dolgot (bár szerintem semmi értelme), de biztos le tudnám szorítani a javas progi futásidejét 30s alá :)
ajánlott linkek:
http://science.nasa.gov/Realtime/jtrack/3d/JTrack3D.html
http://spaceflight.nasa.gov/realdata/sightings/SSapplications/Post/Java… (és ezek tényleg csak webes megoldások, de ilyet szeretnék látni php-ben :) )
- A hozzászóláshoz be kell jelentkezni
Ja igen ám de volt olyan adatbázis amivel a c-ben írt is kb 1-,1,5 órát izzadt, (azt már nem mértük csak a kicsihez volt türelmünk), és ebből a nagyocskából volt vagy 10-15 szóval itt már a 3*-os sebesség is számít. de ha nagyon akarod akkor ha lement a nyelvvizsgám előtúrom a C-kódot, mert valamelyik ősi cd-men megvan még, az egész max 20-30kb, egyetlen egy állomány. és elkűldhetem mailban ha akarsz vele izzadni hogy megírod java-ban, de az adatbázisok már nincsenek meg hozzá, mert együtt 30Gb- körül volt azt hiszem (akkoriban ez egy teljes vinyó volt és az nem is a kicsi vinyók közé tartozott). A programot meg nem dokumentáltam, mert cask nekem kellett, és akkor egyszer, + tele van tűzdelve asm kódokal. ha megvan a nyelvvizsgám előtúrhatom.
Kell?
De szerintem értelmetlen, mert már kiveséztük, hogy nem erre való.
Más:
Matematiak problémákra tudjátok mi a nagyon jó csak lestem, mikor megláttam hogy hogy hasít. A fortran (g77, a distrók többségére telepíthető, az alap gcc csomagnak része) szerintem sokkal gyorsabb a C-ben írtnál. Csak ajánlani tudom.
- A hozzászóláshoz be kell jelentkezni
Egy apró hozzáfűznivaló:
Dolgoztam egy cégnél, egy elég bonyolult rendszert használtunk. Ez a rendszer javaban készült, legalábbis a legnagyobb része.
A rendszer maga gyors, (nagyon gyors), és jól működik.
Egy gond volt vele, ha tesztelés során újra kellett indítani, akkor kb. negyed óra volt a rendszer leállása, és kb. 35 perc az újrainduláshoz szükséges idő, ami alatt a különféle modulokat betöltötte, kitömörítette (a modulok tar.gz-ben laktak a vinyón), megcsinálta a kapcsolatokat, stb.
Egyszer, valamelyik verziónál az indító és betöltő részt C++-ban készítették el (hozzá tartozik, hogy a fejlesztés Rational Rose-zal történt, UML action language volt az algoritmus, és a Java illetve a C++ kód az action language-ből fordult).
Naszóval, a C++ betöltő kb. 5 és 10 perc közötti időre szorította le az induláshoz szükséges időt.
(Hardware az egyébként volt alatta, nekem a tesztgépemben 4 ultrasparc processzor volt, és valami 4G körüli memória rémlik. Erre a gépre voltam egyedül, és nem futott rajta más)
G
- A hozzászóláshoz be kell jelentkezni
Architect-et tessék fenéken billenteni amiért ilyen architektúrát tervezett. Modulok tar.gz-ben... eszem megáll...
- A hozzászóláshoz be kell jelentkezni
lol.
A jar-ból is sokkal hamarabb szedné elő...
- A hozzászóláshoz be kell jelentkezni
A kérdést kissé árnyalni kell szerintem.
1. A betöltéskor valóban fordítani kell a Java byte kódot, azonban hacsak nem minden műveletre indítaasz új processzt, akkor ez nem gond (pár tizedmásodperc plusz az induláskor)
2. A futtatáskor valóban van némi overhead-je a C-hez képest. Azonban ha nem használsz, csak csupa statikus metódust, és statikus memóriafoglalást, illetve pont annyi dinamikust, mint c-ben (nem véletlenül nem csinál ilyet senki, de lehet), akkor nem lassabb, mint a c. Azaz: ugyanaz kb ugyanúgy fut, csak az ember használja az eszközöket, ha már elétették.
3. Sok múlik a virtuális gépen. Egy ismerősöm épp mostanság tesztelt ilyesmit. Valami iterálós-számolós (szerintem) algoritmust írt meg c-ben, és Javában. A Sun-os VM (akkor még 1.5) sokkal lassabb volt, de a Bea JVM tizedszázalékra azonos volt egy optimalizáló c fordító termékével!
4. 99%, hogy nem a programozási nyelv, hanem az algoritmusod sebessége lesz a fő kérdés, amikor beüt a bottleneck. Gondold el, a programozási nyelv maximum párszoros lassulást idézhet elő, míg egy rossz algoritmus é-ad-ennest :-). Jó algoritmusok írásához hatalmas segítség a Java jól átgondold könyvtárrendszere.
5. Ráfordított idő. Egy kis projektben valószínűleg PHP-val érsz előbb célba, nagyobb projektben pedig zsákutcába (Persze PHP-t is lehet szépen csinálni, de akkor már ugyanott tartasz, hogy nem lesz olyan húdegyors). Komolyabb problémánál a típusosság, ojjektumosság szerintem óriási segítség, nem beszélve a modern IDE-k által nyújtott navigációs, refactoring és egyéb funkciókról(ha kamillázni akarsz, tölts le egy Eclipse-t :-)). Ha előbb vagy kész, több időd marad kifaragni a lassú dolgokat, és végül gyorsabb lesz.
6. Garbage kollektor. Ez a másik fő pont, amiben lassú a Java. Itt nem is az átlagteljesítmény a baj, hanem a kiszámíthatatlan időpillanatban jövő várakozás. Ez felhasználói felületnél nem para (se Web, se desktop alkalmazásnál(vagy az ugyanaz:-))), real-time feldolgozásra viszont alkalmatlanná teszi a nyelvet (illetve inkább a JVM-t, ha pontosan akarunk fogalmazni). Erre megoldás lesz a jövőben(vagy már ma?) a párhuzamosan működő garbage collection.
Azt hiszem világos, hogy Javára voksolok :-). Én pár éve kezdtem, előtte c fan voltam(mutató és segmentation fault ruleZ:-)), de teljesen beleszerettem a Javába. Szerintem még pár évig simán lehet a Java a jövő (meg a .NET, ami technológiailag lényegében ekvivalens, és Java után gyorstalpalón tanulható).
- A hozzászóláshoz be kell jelentkezni
Amit még észrevettem legtöbbet a (programozói tudáson kívül) az oprendszer számít, nekem az én klaszterkereső algorítmusomhoz, ugyanazt a c kódot lin alatt 1 perc 25 másodperc volt win alatt valamivel több mint 3/4 óra. pedig a kód ugyanaz még a fordító is az volt gcc-3.4.4-es annó (vagy 1,5-éve).
Ui:
Ja annyi hogy a gép 64-bites és lin alá úgy is fordítottuk, 64-bites optimalizációval.
- A hozzászóláshoz be kell jelentkezni
Osztom a velemenyed, legfokepp az utolso ket sort. En is szerettem mindig is a mutatos buveszkedest, meg az egy sorban megfogalmazhato fel programnyi C utasitasokat, de amiota rendesen Javaval dolgozok szinte faj, ha vissza kell allni valamiert C-re. Felhasznaloi programok eseten mi a fenenek kinlodni a pointerekkel, ha nem muszaj. A mai gepeken a javaban irt felhasznaloi programok mar egeszen jol elfutnak (6-os jdk ota meg eszrevehetoen gyorsabb az egesz).
Mindazonaltal vannak olyan feladatok (ld. OS-kozeli dolgok), amire szerintem is a C az optimalis, szoval a C letjogosultsagat sem kerdojeleznem meg egy pillanatra sem, csak - mint ahogy mar elottem oly sokan leirtak - feladat => nyelv es eszkozkeszlet (es nem forditva)
- A hozzászóláshoz be kell jelentkezni
Ja, amit kifelejtettem:
Ha Web programozásra gondolsz konkrétan, ott is van a Javának némi puskapora. Nézd meg a GWT projektet (guglin első találat lesz, vajon miért:-) még az is lehet, hogy mert jó :-P). Ennél nem nagyon lehet gyorsabbat csinálni...
- A hozzászóláshoz be kell jelentkezni
Most csak gyorsan reagálok, de a linken található cucc sokmindent elmond:
http://sourceforge.net/project/showfiles.php?group_id=160620
Csináltunk néhány benchmarkot Java és C++ összehasonlításra, meg egy nyúlfarknyi cikk is elérhető itt, benne további referenciákkal.
A Java _nem_ lassú :)
- A hozzászóláshoz be kell jelentkezni
A java runtime manapság már valóban egész jó, viszont a tesztetek nem annyira.
Korábban már írtam neked, de most is leírom:
a GCC 4.0 -ás sorozata SZAR kódot fordít cpp esetén.
Persze az, hogy a tesztet lefuttattad ezzel a fordítóval, jól jön annak igazolására, hogy a java nam lassú.
Ilyen alapon csinálhatnék egy tesztet java 1.2-essel (ami nyílván lassabb, mint az 1.5-ös), kiteszem az SF-re, és kijön az állításodnak az ellentetje.
- A hozzászóláshoz be kell jelentkezni
Azt hiszem a legjobb ha keresek par konyvet, leirast es elkezdem tanulmanyozni. Koszonom a sok hozaszolast!
- A hozzászóláshoz be kell jelentkezni
Hát igen, mi itt akarmit is beszélünk az maximum tanácsnak jó, da akkor jársz a legjobban ha tapasztalatokat szerzel. Sok sikert, meg kitartást!
- A hozzászóláshoz be kell jelentkezni
Bátran hozzászólhatok a kérdéshez, hiszen nem értek hozzá, én magam C-ben írom a web-serverként működő alkalmazást.
Szóval a PHP filozófiája valami ilyesmi: "használd, csináld, működik". Egyszerű dolgokat egyszerűen, bonyolultabb dolgokat bonyolultabban, de nagyjából bárki képes rá, az egyszeri kétkezi C-programozó könnyedén megtanulhat PHP-ben fejlesztgetni, text-editoron kívül nem kell más.
A szerver oldali java lényege viszont a vakítás... ahhoz hogy egy "Hello World" működjön, már egy egész csomó olyan varázsszót kell ismerjél, mint EJB/JSP/WAR/bean/JAR, lehetőleg telepítettél egy végtelenül felhasználóbarát fejlesztő-eszközt (ami perzse a te gépeden elfogadhatatlanul lassú), és persze gondolkozhatsz azon, hogy az egymással nem egészen kompatibilis futtató rendszerek (tomcat,websphere stb) közül melyik lesz a nyerő a te esetedben.
- A hozzászóláshoz be kell jelentkezni
Hogy is szokták írni? Ahh megvan...
/o\
Menj inkább vissza a sivatagba tevének.
- A hozzászóláshoz be kell jelentkezni
Itt fentebb irtak mar paran en csak osszefoglalnam:
1. A nyelvet valasztjuk a feladathoz, nem forditva. :-)
2. Java-ban is lehet gyors algoritmust irni, csak ez is olyan mint az uj hangszer: meg kell tanulni rajta jatszani. :-)
3. A PHP vs. Java dologhoz ismetelten: A PHP futasidoben elemzi a nyelvi szintaktikat, szemantikat es dolgozza fel az algoritmusokat, a Java az elso kettot fejlesztesi idoben vegzi el, a tobbit futasidoben.
4. Java vs. C. Megszamlalhatatlan olyan feladat van amire gyorsabb (intelligensebb, rugalmasabb, robusztusabb) kodot lehet megirni Javaban mint C-ben. Ugyanerre lehet hozni ellenpeldat is a C javara. (Lasd: 1.) :-)
5. C++ vs. Java. A C++ egy nagyon szep nyelv, tele feature-rel. A Java is az. :-) A Java-t szoktak ugy is emlegetni, hogy C-- de erre is lehet boszerevel ellenpeldakat talalni Java java'ra. :-)
6. Hat most hirtelen osszeszamolva kb 20-25 nyelvben programoztam eddig, ezekbol nemelyiket futolag, nemelyiket huzamosabb ideig, de jelenleg aktivan 6-8 nyelvet hasznalok. A szemelyes velemenyem, hogy a programozas elsajatitasahoz harom fontos dolog van amire ra kell fekudni:
- az egyes programozasi modszerek/technikak mely megismerese (pl.: az esetedben most az objektumorientaltsag kerult szoba, de emlithetnem a platformfuggetlenseget is mint tenyezot :-) )
- algoritmusok megfogalmazasa a kulonbozo programozasi tecnikak segitsegevel (ugyanazon osszetettebb algoritmust egeszen mas logikaval kell megfogalmazni pl oo-tan, mint proceduralisan)
- a hardver ismerete (nem eleg megtanulni jatszani egy hangszeren, ismerni kell a zene "fogalmat" is :-) )
7. Kisse maximalistan a mai tapasztalataim birtokaban, ha ujbol kellene megtanulnom a mai programozasi ismereteimet, akkor a kovetkezo tematikat kovetnem, hogy a legegyszerubb dolgom legyen:
a) assembly
b) tipusos proceduralis nyelvnek pascal (ez kifejezetten oktatasi celokra lett kifejlesztve)
c) objektum orientalt nyelvnek szinten pascal, hogy ne kelljen az uj fogalmakhoz meg uj szintaxist, szemantikat is tanulni
d) osszetettebb/tomorebb proceduralis nyelvnek a C-t (itt mar nem art a forditoprogramok mukodeset is melyen tanulmanyozni)
e) C++/C#/Java, amelyik szimpatikusabb. Ezek kozul kiemelnem az utobbi kettot mint amelyek szorosabb rokonsagban allnak a felhasznalasi teruleteiket nyelvi szerkezetuket is illetoen, de mindketto szarmazasa visszavezetheto a C es C++ nyelvekre. (most nem mennek bele ennek a reszleteibe)
Szoval, szemely szerint en igy valasztanam a nyelveket (nyilvan akad olyan is aki ezzel nem ert egyet). Az utolso ket ponthoz hozzatennem, ezek a nyelvek azok, melyek ma mervadoak es a legobb oktatasi segedanyag, egyeb segitseg all a rendelkezesre. Komolyabb programozoi allasokhoz is ezeket kerik. Ha az a)-tol az e)-ig mindegyikre kello idot forditasz es megprobalsz minel tobb - lehetosegekhez merten ugyanazon - algoritmusokat megfogalmazni rajtuk akkor eleg rovid ido alatt juthat szeles programozasi ismeretekhez. Ez termeszetesen nem azt jelenti, hogy egycsapasra a topra kerulsz, de innet mar jo eselyekkel biceghetsz felfele. ;-)
Minél korszakalkotóbb ötlettel állsz elő, annál több hülyén kell átverekedned magadat.
- A hozzászóláshoz be kell jelentkezni
Döglött oroszlán és a rugdosás... :)
PHP-t hasznaltam par honapig es elhataroztam, hogy valami komolyabb nyelvet szeretnek tanulni. Java-ra gondoltam.
A Java nagyon más lesz, mint a PHP... egy Java web megoldás kompakt módon hasonlít egy PHP template rendszerre (például Smarty) gyorstárral (Zend Optimizer?). De csak hasonlít. Ha jól akarod csinálni, akkor is egy csomó lehetőséged van, amelyek néha ellentmondóak is, egy csomó olyan keretrendszer van, amelyet használni tudsz.
Java-ban JSP vagy szervlet alapon csinálhatsz sok keretrendszerrel (Hibernate, Spring, Struts, stb) weboldalakat (Tomcat, stb) vagy webalkalmazásokat (JBoss, GlassFish, stb). Egy kicsit most magam felé fog hajolni a kezem, a http://www.javaforum.hu oldalon a cikkek között nézz körül, van JSP és Szervlet is, illetve egy Java Suli is az alapoktól.
Igazabol az nyugtalanit, hogy sokan azt mondjak lassu.
Az mondja, aki nem használja... van egy csomó lassú Java program: amit nem megfelelően írtak meg az íróik, aztán azt hangoztatják, hogy lassú. Példa erre az iwiw... egy olyan szerverfarm, ami alatta van, el kellene vigye gond nélkül. Nem viszi, és egy csomó módszertani hiba van benne... :)
Visszetérve a PHP programozásra, a PHP nagyon-nagyon jó, ha (sarkítok!) egy vagy két napos projekteket kell készíteni. Ennél nagyobb és összetettebb projekt esetén a kódbázis karbantartása egyre nehezebb, és egyre problémásabb a különféle részek közötti kommunikáció. A Java akkor jön képbe, ha a projekt nagyobb méretre hízik, kinövi a PHP tudását. Ha nem csinálsz nagyobb projekteket, akkor jó neked a PHP is... ennen ellenére nem árt megtanulni a Java-t sem... jobban fizetnek és hiány van _jó_ Java programozóban.
Érdemes megnézni mondjuk egy NetBeans Visual Web Pack-et Enterprise Pack-el együtt, nem hinném, hogy ezek után viszaszokna bárki is PHP programozásra... bár sose lehet tudni... :)
A Java (webre) egyébként túl nagy falat lesz... főleg PHP(4) után, teljesen más világ, teljesen más módszerekkel, működéssel, lehetőségekkel... de ez benne a szép... :)
- A hozzászóláshoz be kell jelentkezni
Ha jol tudom, a kerdezo irta egyik hozzaszolasaban, hogy nem web alkalmazast hanem GUI programot szeretne.
igy szerintem mindenkepp jo otlet a java tanulas.
- A hozzászóláshoz be kell jelentkezni
Ha jol tudom, a kerdezo irta egyik hozzaszolasaban, hogy nem web alkalmazast hanem GUI programot szeretne.
Nem, úgy fogalmazott, hogy akár GUI-t IS lehet vele írni... szó szerint: "es GUI alapu programokat is lehet vele irni, stb.."
Egykébként ez kétségkívül előnye a Java-nak... Visual Web Pack-el például úgy lehet weboldalt készíteni, mintha egy GUI-t csinálnék... és az új JSF(+AJAX) komponensekkel úgy is fog viselkedni... dehát a Web2.0 célja ez... :)
- A hozzászóláshoz be kell jelentkezni
Lerombolok egy álmot és elkeserítek mindenkit:
php-ben is lehet gtk-zni :P (gtk.php.net) php-gtk2 kell hozzá.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
"Igazabol az nyugtalanit, hogy sokan azt mondjak lassu. Ez tenyleg igaz?"
http://sourceforge.net/projects/javavscpp/files
Nem lassú :)
- A hozzászóláshoz be kell jelentkezni