C++ vs. Java: Hvilket er det bedste programmeringssprog?
Både C++ og Java er objektorienterede programmeringssprog til generelle formål med deres egne omfattende biblioteker, som hjælper programmører med at udvikle programmeringsapplikationer til desktop, web, mobile enheder og andre platforme. Der er så meget fælles mellem de to sprog, så hvad tror du vil være det bedste til dit projekt?
Hvad er C++?
C++ er et programmeringssprog til generelle formål, der blev lanceret som en del af Microsofts .NET-initiativ i 2000. Det var beregnet til CLI eller Common Language Infrastructure, en åben specifikation, som Microsoft udviklede og ISO og ECMA standardiserede. C++-applikationer kompileres til bytekode, der kører på CLI-implementeringer.
Hvad er Java?
Java er lidt ældre, udgivet af Sun Microsystem i 1995, og er også et andet generelt sprog med sloganet “skriv én gang, kør hvor som helst”. Her kompileres Java-applikationerne til bytekode, som kan køre på implementeringer af JVM eller Java Virtual Machine. Og ligesom CLI er det JVM’en, der hjælper med at bygge bro mellem kildekoden og det sprog, som computere forstår (1’er og 0’er).
Lighederne mellem C++ og Java
Begge programmeringssprog har visse ligheder. Og de har begge været i produktion i årevis, med lignende syntaks og har været kendt for at drive meget store virksomheder på markedet. Programmører finder det nemt at konvertere fra C++ til Java, da stilen og syntaksen er ret ens. Looping-strukturer, klasser, betingede operatorer og definition af variabler er alle ens i sprogene. Det er det, der gør det nemmere og enklere at arbejde på tværs af platforme.
En anden bemærkelsesværdig lighed er, at både Java og C++ leder efter hovedindgangspunktet for at finde ud af, hvor de skal begynde udførelsen. Begge er objektorienterede, og det betyder, at de bruger klasser, der repræsenterer komponenter i dit program. Og hver klasse indeholder egenskaber til at definere komponenterne, hvilket gør det lettere for programmører at genbruge koden til andre programmer.
En anden bemærkelsesværdig lighed mellem de to er affaldsindsamling. Det hjælper med at forhindre hukommelseslækager i et vist omfang og gør det lettere at frigøre ressourcer ved at slette objekter, der ikke er i brug. Det grundlæggende i hukommelsesstyring er nemt. Enkeltarv er en anden lighed mellem de to, hvor der kun er en sti fra en basisklasse til en afledt klasse.
Ligheder på et øjeblik
- Lignende stil og syntaks
- Leder efter det vigtigste indgangspunkt
- Indsamling af affald
- Enkeltstående arv
- Type-sikker
- Grænseflader
Forskellene
Nu hvor du har set, at der er så meget, der er fælles for de to, afhænger det hele af den platform, du har valgt til dit projekt. C++ anvendes primært på .NET-rammen, Mono og Portable .NET-implementationer af CLI. Du kan vælge C++, når du arbejder med .NET-suite af teknologier, da softwaren eller webapplikationen bliver bygget til Windows.
Hvis programmet derimod skal udvikles til platforme som Unix eller Linux, er Javas store open source-økosystem et godt valg. Java har et utroligt fællesskab, der konstant skaber værktøjer og biblioteker. Der er blevet udviklet flere nye og effektive sprog baseret på JVM’en, såsom Scala, Clojure og Groovy. Det er også klart, at Android er det mest populære og mest udbredte mobilstyresystem i verden, og Google bruger Java til dette.
C++-understøttelse af Generics
Ved at fjerne casts fra kildekoden forbedrer Generics den compiler-assisterede kontrol af typer. C++ integrerer Generics i CLI’en, så oplysningerne er let tilgængelige under kørselstiden, og det tyder på en lille ydelsesforbedring.
Enum eller opregninger
Enums er taget et skridt videre ved at gøre dem til en navngiven instans af en type, så udviklere nemt kan tilføje brugerdefineret adfærd til individuelle enums. Det er blot simple lister i C++, hvor du kun har navnekonstanter, hvor den underliggende type skal være integral.
Polymorphsims
Tilgangen til polymorfisme er helt forskellig i både C++ og Java. Det sker som standard i Java, mens det skal påberåbes via basisklassen i C++.
Støtte til delegerede
Støtten til delegater eller pointere er en anden stor forskel mellem de to. C++ har delegater, der fungerer som metoder, og som kan kaldes uden at målobjektet er involveret. Men i Java og afhængigt af den applikation, du udvikler, kan det samme kun opnås ved hjælp af en grænseflade med en enkelt metode eller endda ved hjælp af en ekstra kode.
Kontrollerede undtagelser
Mens C++ kun har én type undtagelser, har Java to typer – kontrollerede og ikke-kontrollerede undtagelser. Selv om dette er en god evne for Java, kan det være en uheldig evne, når det gælder skalerbarhed og versionskontrol.
Både Java og C++ har således deres egne ligheder, hvilket sandsynligvis skyldes, at C++ oprindeligt blev skabt, fordi Microsoft ønskede at have sit eget proprietære Java-lignende sprog til deres .NET-ramme. På en måde kan man sige, at Java er mere populært, fordi der er masser af gratis Java-koder til rådighed, sammenlignet med C++. Selv om indlæringskurven for C++ er en smule høj, er eksekveringstiden aldrig et problem. Java holder hånden, næsten bogstaveligt talt, mens C++ får dig i den dybe ende, men hjælper dig med at vade tilbage med det bedste. Hvis du allerede kender C++, er det en let sag at indføre Java i dine projekter. Omvendt kan det være en smule besværligt.
Men hvis spiludvikling er din prioritet, er C++ den rigtige løsning, fordi det giver dig mulighed for at få så meget ydelse som muligt.
I det lange og korte perspektiv er begge sprog vigtige, og de vil være her i lang, lang tid endnu. Du skal vælge det sprog, der passer bedst til dit projekts platform..
Interessante artikler..
Flickr.com / Windell Oskay, abarna baskar
Om forfatteren: Reema arbejder som Thought Leader hos PHPBabu.