Java: "GAME OVER!"

101 отговора 4555 прегледа
в отговор на programmer #61

Re: ... a po-posredstvenite...

dobre be,umnjo,ti vse edno nishto ne kaza.purvo,tova che ima tool za convertvane na java programi kum c# po skoto NJAMA da nakara "javarite" da uchat c#,shtoto mogat da si gi pishat na java programite i da gi convertvat na c#.
vtoro,na "javarite" hich njama da im e trudno da se prehvurljat na c#.
treto,ama oshte mnoogo vreme shte mine predi C# da izmesti javata,ako vuobshte ja izmesti napulno.
tva si e prosto ezik,da eba,ima si pljusove i minusi.vse shte se nameri njakoe lame da da stigne mentalen orgazum i da pochne da se kefi kak naj_novija_super_modere_ezik shte smaje vsichki ostanali.

Отговор
в отговор на programmer #62

Re: Java: "GAME OVER!"

Iskam da kaja neshto i az, bez da zashtitavam ili da kritikuvam kolegite v cluba, a prosto da izrazia mnenie. Ne moga da razbera, zashto e neobhodimo da se izpolzva takyv grub ezik, 4e da se zashtitava edin ezik ili drug. Loshi ezici niama, kakto kazaha niakoi kolegi. Az sym ot starata generaciya i sym polzval kakvi li ne ezici za programirane, za koito veroyatno niakoi ne sa i 4uvali, a i az ne znam vsi4ki ezici za programirane sashto. Polzvah Delphi oshte ot parvite mu beta versii i biah dovolen (ezika si e prili4en niama kakvo da se spori po vyprosa), zashtoto mi varsheshe rabota poneje e udoben za database programing. Sega oba4e rabotata mi nalaga da pisha za Linux mashini. Verno, 4e izleze versiya na Delphy (Kylix) za Linux platformi, ama v proekta ne sym az 4ovekyt, kojto reshava na koj ezik da se pishe i sega mi se nalaga da pisha na Java (savsem malko) i na ANSI C. Mnogo neshta se kazaha ot kolegite, 4e Java e bila bavna, 4e C ne bil prenosim i t.n. Az bih iskal da kaja niakoi neshta ot svoj li4en opit, a ne neshta, koito sym 4el niakyde i sega tuk da se pravia na vajen i da vi gi izrecitiram.
Vseki znae kolko e vajno byrzodejstvieto pri Internet serverite na koito sa ka4eni mashini za tyrsene kato yahoo i t.n. Ta nie pishem podobna tyrsa4ka- ne v BG estestveno, zashtoto niama koj da nameri tolkova pari za takyv goliam proekt. Ta iskam da kaja za edin moj eksperiment s edna i sashta programa napisana na Java i na ANSI C. Niama da obiasniavam sega kakvo pravi programkata, no shte vi dam niakoi fakti. Eksperimentite gi napravih na platforma Debian (Linux) na 4 procesorna Alpha mashina (vseki procesor e ekvivalent na Pentium III na 1GHz priblizitelno) i Win2000 (Pentium III na 1GHz).

Programkata na Java raboti okolo 5 min priblizitelno dokato programkata na C se izpylniava za 1 sec. Tova sa eksperimentite provedeni na Alpha mashinkata pod Debian. Nevoroyatna razlika nali, napravo da ne poviarva 4ovek, no tova sa faktite.

Neshtata oba4e ne sa taka pod Win2000 s Pentium III na 1GHz. Sashtite programki rabotiat saotvetno 3 min (Java programata) i okolo 30 sec C programkata.

Vseki moje da se doseti, 4e Java interpretatorite yavno ne sa bash ednakvi za Win i Linux nali? Pone ne o4akvajte, 4e PC-to s Pentium III na 1 GHz da e po-byrz ot 4 procesornata Alpha. Ama vijdate, 4e vyprosnata programka pod Java raboti po-byrzo pod Win. Paradox a, na slaba mashinka da vyrvi po-byrzo? Taka, 4e byrzodeystvieto e dosta otnositelno neshto. Razbira se, 4e ne mojem da napishem programa na Java, koyato da se izpylniava po-byrzo ot C i tova triabva da go prieme kato fakt vseki edin ot nas. Viarno e oba4e, 4e na C se pishe tejko (ne kazvam, 4e sym goliam programist, moje problema da e v men razbira se, 4e ne sym, koj znae kolko dobyr na C), no vednyj napisano prosto programkata si leti.
Kazvat, 4e programite na C ne sa bili prenosimi. Az pyk shte kaja (to i edin ot kolegite ve4e go kaza de), 4e programkite na C sa po-prenosimi ot programite na Java. Taka naprimer probvah edin mail client pisan na Java, koyto si varvi pod Win, no ne shte pod Debian. Sajaliavam, 4e ne pazia vaprosnata programka, 4e da pratia sourceto, 4e vseki da go probva i da se ubedi. Ako mi kajat kolegite, koito pishat na Java zashto e taka shte sym im mnogo blagodaren, dokato ne e imala programka napisana na ANSI C, povtariam na ANSI C, ne na VC++ ili CBuilder ili neshto drugo, a na ANSI C, koyato da ne sme podkarvali pod Debian, Win i Mac OS.
Loshoto e, 4e Microsoft napravo XXX majkata na C standartite, kato nahakaha kakvi li ne prostotii v MFC i skysiha jivota na dosta programisti- vklu4itelno i moja. Istinata e, 4e shtom ni triabva byrzodejstvie (pone az se nujdaya ot tova) triabva da se pishe na C, a ako triabva neshto da se napravi na byrzo (da se napishe code de) togava Java-ta e za predpo4itane. Ne e hubavo da se pluem tuk i da kazvame, 4e Java programistite sa typi i neznam kakvi oshte, 4e Java ne struva i t.n. Prosto ne e kolegialno da go pravim, a i tiya ot Sun ne sa po-typi ot nas. Ot druga strana pyk imam kolegi, koito samo na Java pishat za mobile. Drugi za embeded na C. Az ot embeded ne razbiram nishto taka, 4e po-dobre da ne govoria za neshta, ot koito ne razbiram. Kato zaklu4enie iskam da kaja na sporeshtite tuk, bez da obijdam niakogo.

"Ako na kolegite, koito pishat na C (ili obratno na Java) im se predloji dobre platena rabota, koyato nalaga da se pishe na Java (i obratno na C) kakvo shte napraviat togava, izvednyj shte stanat po typi (syotvetno shte poumneyat) na byrzo li?"

Stiga s tiya bezpolezni sporove. V kraya na kraishtata vseki se opitva da izkara hliaba si bilo to sys C, bilo to s Java,.....

Nadiavam se, 4e ne sym zasegnal niakogo izraziavajki mnenieto si. Ako vse pak niakoj se 4uvstva zasegnat, molia da byda izvinen.

Uspeh na vsi4ki.

Отговор
в отговор на PhantomAS #63

Re: Malka porawka - НЕ всъщност ГОЛЯМА такава

pri java (za c# ne znaia) syshto ima jit (just-in-time compiler, ili kakto ti go narichash). ne vijdam kakvo novo sa vyveli ms...

pozdrav

Отговор
в отговор на zulu #64

?

колко пъти и кога се вика jit в java?

stoj, ta gledaj
Отговор
в отговор на nezavisim #65

Re: Java: "GAME OVER!"

az ste pisha na towa koeto se plasta dobre. Kakto edna stoka struwa tolkowa za kolkoto moshe da se prodade, taka edna programa moshe da se napishe na towa na koeto iska tozi kojto plashta.

Az predlagam na taka narechenia "programmer" da mi napishe programa za 1$ na C ili za 1000000 $ na Java. Koe li ste izbere?



Отговор
в отговор на lndependent #66

Re: ?

I dvamata ste pravi pyk moze da se kaze che ne ste pravi.

Do Java 1.0 beshe interpretator.
Posle napraviha JIT, koeto compilira code to native i go izpylniava, obache tova zabavia v nachaloto dokato se kompilira ot byte code do native.
Sega predstaviha HotSpot VM, koiato e nesto kato dynamic compilator a ve i na men ne mi e iasno tochno kakvo. :-)

Eto vi mako literatura da se usvedomite.

[линк]
[линк]

Отговор
в отговор на lndependent #67

Re: ?

колко пъти и кога се вика jit в java?

kogato puskash prilojenie na java se puska jit. sled tova veche ne se polzva i se izpylniava kompilirania variant na programata, kolkoto pyti iskash, do sledvashtoto startirane na jvm... predpolagam syshtoto e i pri c#. za mnogo neshta ne sym siguren obache, taka che trebva da se pochete...:)

Отговор
в отговор на Sun #68

Re: ?

10x za linkovete, shte gi pogledna, vednaga shtom imam vreme:)!

Отговор
в отговор на zulu #69

Голяма поправка, ама каква?

Браво! Най после един човек да потвърди това дето се мъча да им го втълпя - и двата езика се компилират до машинен код непосредствено преди изпълнението, след което направо летят!

А за Фантомас: прав си, що да се хващаме за гушите. ама защо мислиш че не знам как работи компилатор и линкер? Преди десетина години правих и компилатор за C-подобен език с YACC и LEX, и линкер, и интерпретатор много сходен с JVM... ама да не се отдавам на спомени :))

А Microsoft не въвеждат нищо ново с C# - това е просто начин да не спазват стандатра на Java, наложен от Sun, а да го карат през просото както те си знаят. И да отворят ново поле за вирусописачите...

Отговор
в отговор на sun #70

Re: Java: "GAME OVER!"

Az izkah da kaja dve neshta:
1. Ne vinagi programista izbira ezika na kojto da se napishe programata.
2. Parite opredeliat mnogo neshta.

Отговор
в отговор на PhantomAS #71

Re: Malka porawka - НЕ всъщност ГОЛЯМА такава

Pri .NET tehnologiata e slednata - kompilatora postavia nesto kato proxy na miastoto na vseki metod i kogato se izpulni tova proxy pravi obrastenie kum JIT compilatora koito izkompilira suotvetnia kod na methoda i po na tam pri vsiako obrusteie se izpalniava mashinnia (optimiziran) kod. Dokolkoto znam niama sustestvena razlika pri GC algorituma nito puk pri nachina na izvikvane na konstructora i destructora. Kakto pri Java taka i pri C# vuobste niama destructori v smisula na C++ vmesto tova ima finalizirasht method, razlikata e v tova che izvikvaneto na finalizirastia method ne e deterministichno t.e. niama nachin da razberesh koga i v kakuv red ste se izvikat. Specialno pri CLR na MS finalizirastite methodi se izpulniavat ot otdelen thread koeto vodi do po nezabelejimo zabaviane na prilojenieto kogato se vkluchi GC-to. APSX stranicite sa si obiknoveni klasove naslednici na System.Web.UI.Page taka che i te se JIT-vat po absolutno sustia nachin. Druga sustestvena razlika mejdu IL i Java bytecode e che IL instrukciite sa generichni t.e. imash primerno generichna instrukcia SUM koiato razbira kakvo traibva da napravi po tipa na argumentite v steka, taka MS sa si ulesnili sustestveno nestata s dobavianeto na templates v sledvastata vesria, dokato pri Java imash razlichni instrukcii primerno za SUM na int, float i t.n. Druga razlika e v nachina na tretitane na value i reference tipovete pri MS te sa unificirani chrez edin podhod koito se naricha boxing/unboxing, dokato pri Java vuobste ne e pomisleno v tazi nasoka.

Отговор
в отговор на programmer #72

Re: Java: "GAME OVER!"

Нито си ме засегнал, нито съм се обидил, а освен това не пиша на Java. Просто и аз споделям мнението, че всеки език си има предимства и недостатъци както и потребители, които да го ползват. В тоя смисъл си много прав, че старите езици постепенно загиват, но едно време те наистина са били "велики" - просто са били достатъчно добри за времето си ...

Mixy
Отговор
в отговор на dsgfsd #73

Re: Malka porawka - НЕ всъщност ГОЛЯМА такава

в общи линии си прав. само едно нещо искам да кажа. в .Net няма да има нужда от templates, защото абсолютно всичко наследява Object пряко или непряко. за пример погледни колекциите - те работят само с object, а вътре можеш да слагаш каквото си поискаш. това в С++ се прави с шаблони, които и за това са си измислени - еднакво поведение върху различни типове данни. в .Net наследяването от object заедно с механизма на boxing/unboxing вършат същата работа. за какво тогава са притрябвали шаблони? самоцелно усложняване на синтаксиса без никакво влияние върху семантиката? дето има една приказка: покорно благодаря .

stoj, ta gledaj
Отговор
в отговор на lndependent #74

Re: Malka porawka - НЕ всъщност ГОЛЯМА такава

Ako iskash class koito pishesh da e generichen i da se pravi static type check niama kak da minesh bez templates. Osven tova MS smiatat da vkarat poddrujkata na templati v CLR taka che vsichki .NET ezici ste gi poluchat nagotovo.

Отговор
в отговор на dsgfsd #75

Re: Malka porawka - НЕ всъщност ГОЛЯМА такава

Imashe beta comler na C# s templati predi nqkolko meseca, no MS se otkazah da gi izpozvat ;-(((,

za mene templatite sa neshto super cool, no ako se izpzvat za shtqlo i neshtjlo pravat koda truden za chetene, no ima neshta za koito Templatite sa se otepali kato "Decorator Pattern"

Отговор
в отговор на GERl #76

Re: Голяма поправка, ама каква?

ami ne e 100% mashinen kod (t.e. ne e syvsem taka), no ideiata e neshto podobno. niakoi beshe pastnal edni gotini linkcheta po-gore, koito obiasniavaha dosta dobre za jit compilera...

sega sun sa "zaplashili", che novia im jit shte pravi programite po-byrzi i ako ne pone tolkova byrzi kolkoto statichno kompilirana primerno c programa. da vidim, mnogo shte se radvam:).

pozdravi

Отговор
в отговор на zulu #77

Re: Голяма поправка, ама каква?

pyrvo da se regna:)

i vtoro za gornoto mi mnenie, che ne e tochno taka, iskah da kaja, che native coda koito se generira, ne e optimiziran, kakto se optimizira compilirana programa ot vcpp compiler-a primerno. no "pajivion - uvidim" (da me izviniavat ruskogovoriashtite!:) ).



Отговор
в отговор на nezavisim #78

Re: Java: "GAME OVER!"

zavisi vse pak i na koia mashina, koia java e instalirana...

Отговор
в отговор на GERl #79

Малко тестове за сравнение

За да не си чешем напразно езиците чии програмен език "е по-дълъг", ето един линк:

[линк]

Тука се вижда за какво става дума, кога C# и Java са по-бързи от VC++, ще изместят ли "старите" езици и кога...
Вижда се какво е "Р-код" дето някои по-нагоре се чудеха и бъркаха с компилиране...
Абе карай

Отговор