Šta je novo?

C#.NET vs. Java 2 na FON-u?

Java ne mora nuzno da se interpretira ukoliko se ne koristi kao javascript. Java projekat moze takodje da se kompajlira i prevede u executable.
 
silverglider je napisao(la):
Java ne mora nuzno da se interpretira ukoliko se ne koristi kao javascript. Java projekat moze takodje da se kompajlira i prevede u executable.

Ok je to silveru, ali zar pojenta Jave i nije (u osnovi) to da jedan te isti kod moze da izvrsis na vise razlicitih platformi... U slucaju da treba nesto da se napravi spec. za odredjeni OS, onda je po meni bolje iskoristiti C/C++, mislim to je neki moj trip ne kazem da je to ispravno razmisljanje, samo mi zvuci nekako logicno...
 
Zavisi od samog posla/zadatka.
Multiplatformska priroda ne uslovljava uopste funkcionalni vid programa - to jest, da li ce biti u script (interpreter) formi ili u obliku izvrsnog fajla. Poenta je u tome da ja jedan zavrseni i istestirani projekat mogu da prenesem na drugu platformu i buildujem bez previse intervencija, te dobijem zeljeni windowsov exe, linuxov elf, unoxiv a.out, itd format izvrsnog fajla.
U slucaju C++a to nije uvek slucaj; nekada koriscenje cele c++ biblioteke/frameworka nema smisla, jer nije multiplaformske prirode. Generalno, pure C++ projekat bi trebao da prodje, ali koliko danas ima pure (ansi) C++ komercijalnih projekata? Da bi projekat bio u istoj meri 'prenosiv' na druge platforme, treba izuzetno pazljivo birati biblioteke - i za gui, i za bazu, komunikacione komponente, itd. Pa cak i tada izuzetno paziti sta i kako se radi; za paralelne zadatke windows vise voli multithreading - linux/unix preferira multiprocessing; mnoge stvari se na windows platformi brze i elegantnije resavaju koriscenjem windows messaging sistema, redzistrija (interfejsi activex, com/dcom, itd), a to na unixolikim sistemima ne postoji. Itd, itd.
Dakle, nije tek tako lako napraviti multiplatformski c++ komercijalni projekat u razumnom vremenu. Dimenzija vremena je ovde kljucni faktor. Zbog razlika medju platformama, neke stvari se moraju preraditi, a za neke je preporucljivo menjati radi optimizacije po pitanju brzine. Ako ti zahvati traze previse vremena, koncept 'multiplatformnosti' ovde dobija opasan shamar.
Veruj mi, to mi je osnovna delatnost poslednjih nekoliko godina - razvoj za windows i linux paralelno, koristeci c++ u mom slucaju (mada smo nesto experimentisali u poslednje vreme i sa delphi/kylix kombinacijom).
 
silverglider,
koliko sam razumeo, omoguciti da projekat, radjen u nekom programskom jeziku (ti si ovde naveo C++), bude multiplatformski je stvarno zamrsen posao. Citao sam da mnoge probleme resava C# jer je to novi jezik koji je napravljen bas za te stvari. Znam da se C++ i C# razlikuju u mnogim stvarima ali sam citao da ukoliko se ne traze neki superbrzi programi koji ce raditi na jako niskom nivou, onda C# obavlja sve sto je potrebno a za sta bi inace bio potreban C++.
Pa sad, evo ti pitanje, da li zaista C# moze da zameni C++? (naravno, ukoliko se ne zahtevaju stvari za koje je C++ tata = velika brzina i pristup komponentama na jako niskom nivou - ma sta to znacilo- )

Da li je mozda C++ pogodniji za sistemsko programiranje a za ostalo moze dobro da posluzi C#? :-( :confused:

Pozdrav.
 
Ne, ne gledaj to uopste po pitanju 'zamene'; ni java ni C# ni ostali noviji jezici nisu izasli da bi zamenili c++, nego da se napravi diversifikacija jezika koji su vise prilagodjeni nekom poslu. Evo da ti napravim paralelu sa hardverskim svetom, recimo graficke karte; moze se reci da ne postoji jedna generalna struja grafickih karti, nego vise njih - specijalizovane za igre, za video, za profesionalni 3D, itd. One nisu konkurenti, nego jednostavno za razlicite namene. Tako i ovde, C++ je najopstiji generalni jezik, kojim moze prakticno sve da se uradi, od low-level stvari, pa do baza, grafike ili web programiranja. Medjutim, postoje programski alati koji neke stvari rade lepse i/ili lakse, bez preke potrebe da se posegne za nekom bibliotekom ili frameworkom u slucaju c++a. Za low level programiranje se i dalje mnogo cesce koristi cisti C, za web programiranje recimo java ili neki od skript jezika kao sto su php ili asp, za home/office namenu je dobar VB. Nijedan od njih nije manje ili vise 'vredan', nego je samo prilagodjeniji ovom ili onom poslu; naravno, neretko se desi da jedan te isti program mozes da uradis i vb-om i delphijem i c++om i javom i tada je to samo pitanje preferencije - sa cime ces lakse i brze da zavrsis posao (ne zaboravi vreme kao vrlo vazan faktor).

Da, multiplatformski programi mogu da budu komplikacija. Ne radi se o samom jeziku - na raznim platformama postoji i c i c++ i c# i pascal i drugi jezici i nije uopste problem pitanje jezika, nego je problem raspolozivost multiplatformskih biblioteka za njih. Cisti c++ na linuxu se ne razlikuje od cistog c++a na windows platformi. Ali zato cisti c++ ne zna npr. sta je to prozor, kako da ga kreira, menja ili zatvori. U principu i ne treba da zna, posto se prozor na linuxu razlikuje od prozora na linuxu i jedan jezik ako zeli da bude univerzalan, ne moze da barata svim specificnostima odredjene platforme, nego se to prepusta bibliotekama. Tako recimo c++ koristi MFC na windowsu da bi iscrtao prozor; na linuxu koristi qt ili gtk ili nesto trece. Dakle, za multiplatformski program treba prvo pronaci biblioteke koje postoje na svim platformama za koje program treba da se pravi. Odnosno, to uopste nije pitanje 'c++ vs c#' kao jezika.
 
Nazad
Vrh Dno