Ndryshimet midis C++ dhe Java - Forum
  Wednesday, 2016-12-07, 8:26 AM
Welcome Guest | RSS
 
 
Main Page | Ndryshimet midis C++ dhe Java - Forum | Register | Log in
[New messages · Members · Forum rules · Search · RSS ]
Page 1 of 11
Forum » Shekenca » Informatika » Ndryshimet midis C++ dhe Java
Ndryshimet midis C++ dhe Java
dj_diamantDate: Sunday, 2007-09-02, 3:24 PM | Message # 1
Admin
Group: Administrators
Messages: 267
Reputation: 0
Status: Offline
Koment:, Edhe Java dhe C++ janë gjuhë të bazuara në paradigmin e orientimit në objekte. Sidoqoftë, Java dhe C++ dallojnë në mes veti për nga mënyra se si implementohet kodi, për nga trashëgimnia si koncept, për nga mënyra se si ekzekutohet programi, për nga ajo se sa afër janë gjuhës së makinës etj. Në këtë shkrim mund të lexoni dallimet krysore dhe ngajshmëritë në mes të këtyre dy gjuhëve.
Nga Forumi i Informatikës

Që të dyja gjuhët janë ndërtuar mbi C dhe kanë sintaksë të ngjashme. Që të dyja gjuhët janë të bazuar në paradigmën (modelin) e orientimit në objekte (object-oriented) por Java ka model puro ndërsa në C++ mund të zgjedhësh midis orientimit në objekte ose modelit procedurial (main() me funksione të pavarura) . Në Java nuk mund të shkruash funksione të pavarura nga objektet por duhet të jenë gjithnjë metoda të një klase, duke përfshirë këtu edhe funksionin main().

Java është e pavarur nga platforma ose sistemi operativ dhe punon njësoj në të gjithë, ndërsa C++ nuk ta garanton këtë dhe zakonisht programi punon vetëm në sistemin që është përpiluar. Programi që përpilon në Windows nuk punon në Linux, Mac dhe anasjelltas. Java e ka këtë avantazh sepse kodi përpilohet në byte-code dhe interpretohet/ekzekutohet në makinat/kompjuterat virtualë (java virtual machine ose JVM). C++ përpilohet direkt në kodin e makinës/kopjuterit (machine-code) prandaj ndryshon nga një sistem në tjetrin, por në anën tjetër kjo e lejon të ekzekutohet më shpejtë.

Një tjetër avantazh i përdorimit të JVM është se programet e Java-s janë të izoluar nga programet e tjera dhe kjo i bën këta programe më të sigurtë se ata të C++ që ndonjëherë bien në konflikt me njëri tjetrin. Megjithatë kjo është çështje e sistemit operativ dhe jo e gjuhës së programimit.

Fakti që Java është e pavarur nga sistemi operativ e bën këtë gjuhë ideale për programet që komunikojnë në një rrjet të përzier, siç është interneti, me një llojshmëri sistemesh windows, unix, linux, mac, etj. Pra, Java ka avantazhin se mund të ndërtojë shumë thjesht programe që përdoren në internet nëpërmjet shfletuesve (internet explorer, netscape, firefox, etj). Shumica e lojrave dhe zbukurimeve të internetit bëhen të mundura nga Java. Në C++ kjo është e pamundur dhe zakonisht duhet të përdorësh gjuhë të tjera për ndihmë.

Programuesi në Java ka më shumë mundësi për të zgjedhur ambjentin më të mirë për të komunikuar me përdoruesin. Kjo bëhet e mundur sepse Java ka një librari të madhe me klasa të gatshme për të gjithë format e programeve, që nga ato më të thjeshtat e deri tek klasat e grafikeve. Gjuha standarte e C++ ka libraritë më të rëndësishme
por lë shumë për të dëshiruar. Në Java shumicën e klasave e ke të gatshme dhe vetëm duhet të mësosh ti përdorësh ato.

Paragrafi i fundit na nxjerr në një tjetër avantazh të Java-s. Java është më e thjeshtë për të mësuar dhe për të programuar në të. Me pak mësime në Java mund të ndërtosh programe të plota me dritare, butona e grafikë. Në C++ kjo është e vështirë sepse duhet të mësosh kodin përkatës për çdo sistem.

Për të ndihmuar programuesin, Java menaxhon memorien vetvetiu dhe ka një sistem për pastrimin e mbeturinave të programit (garbage-collection). Kjo lehtëson punën e programuesit sepse në Java nuk është nevoja të shkruash metoda shkatërruese (destructors) për klasat. C++ nuk e bën vetvetiu këtë gjë por ja lë në dorë programuesit. Avantazhet e menaxhimit të memorjes janë të diskutueshme dhe ka shumë argumenta bindëse për të dyja gjuhët. Argumenti i Java-s është se menaxhimi i memorjes është me shumë rëndësi dhe duke ja lënë në dorë programuesit, rrezikohet që programi të shkruhet gabim. Argumenti kundërshtues nga programuesit e C++ është se programuesi duhet të ketë kontroll për të tërhequr dhe për të lëshuar memorjen sipas nevojës. Ky argument qëndron për shume programe të avancuara që menaxhimi manual i memorjes është i domosdoshëm. Si përmbledhje, për programuesit fillestarë dhe programet e thjeshta dhe mesatare, pastrimi i memorjes nga Java është gjë e mirë.
Për programuesit e avancuar që ndërtojnë programe të komplikuara, C++ është padyshim gjuha më e mirë.

Libraritë e pasura dhe sistemi vetëveprues i pastrimit nuk janë të vemtet çështje që e bëjnë Java më të lehtë për të përdorur. Java gjithashu vë limite mbi trashëgimine dhe nuk lejon që një objekt të trashëgojë nga dy ose më shumë objekte të tjera. P.sh. E zëmë se kemi shkruajtur klasën e një stilolapsi dhe klasën e një lapsi me gomë. Tani duam të ndërtojmë një stilolaps që të mund të ketë edhe gomë fshirëse. Në
C++ mund ta ndërtojmë këtë objekt duke trashëguar nga stilolapsi dhe lapsi me gomë, ndërsa në Java mund të trashëgojmë vetëm një pre tyre dhe pastaj duhet të shkruajmë përsëri kodin për tjetrin.
Arsyeja e Java-s për këtë kufizim është që programet të mos komplikohen shumë dhe të bëhen të pa kuptueshëm. Ashtu si dhe pika më parë, ky kufizim i Java-s është i diskutueshëm.

Një thjeshtësi tjetër e Java-s është mos-përdorimi i treguesve (pointers). Në brëndësi të gjuhës, të gjithë objektet janë tregues por programuesi nuk lejohet që të krijojë një tregues të ri ose të manipulojë tregusit. Për më tepër, në Java nuk mund të kryesh aritmetikë me treguesit (pointers). Treguesit janë një pjesë e madhe
e C++ dhe manipulimi i tyre të lejon të shkruash kod shumë herë më efektiv por në të njëjtën kohë lejon programuesin që të bëjë gabime trashanike. Për programuesit e rinj (dhe të vjetër) të C++, treguesit janë të vështirë të kuptohen dhe sjellin shumë probleme. Për ata që dinë ti përdorin, C++ është shumë më e fuqishme se Java.

Java ka rregulla më të rrepta për kodin dhe gjetjen e gabimeve të mundshme. Programuesi lajmërohet për këto gabime dhe kjo rezulton në kod më të fortë e më të besueshëm.

Këto ishin ndryshimet themelore midis Java dhe C++. Që të dyja gjuhët kanë avantazhet e tyre dhe kjo i bën ato gjuhët më të pëlqyera dhe më të përdorura. Duke ditur njërën prej tyre, (zakonisht C ose C++) me pak mundim mund të mësosh edhe tjetrën (zakonisht Java).

Si përmbledhje, Java kufizon ndjeshëm lirinë e programuesit për të lehtësuar punën dhe për të bërë sa më të kuptueshëm kodin. E njëjta gjuhë që të kufizon lirinë, të jep edhe pavarësinë të programosh në/me çdo sistem operativ (ironike, apo jo?). Çmimi për këto të mira është kostua e madhe gjatë ekzekutimit të programit, që ngadalëson ndjeshëm Java-n dhe e bën atë të papërshtatshme për shumë programe. C++
është shumë herë më e shpejtë dhe i ofron programuesit më shumë kontroll. Kjo liri i jep programuesit të C++ fuqinë për të ndërtuar programe më të avancuar dhe më efektiv.


Message edited by dj_diamant - Sunday, 2007-09-02, 3:25 PM
 
Forum » Shekenca » Informatika » Ndryshimet midis C++ dhe Java
Page 1 of 11
Search:


Copyright MyCorp © 2016

Website builderuCoz