Tietokoneohjelmointikielet ovat ohjelmia tai käskyjä kommunikoimaan tietokoneen kanssa. Käytettävissä on monia kieliä, mutta yleisimpiä niistä ovat C++ ja Java.
C++ ja Java ovat molemmat olioohjelmointikieliä (eli tiedot tallennetaan objekteihin), mutta eroavat monin tavoin.
C++ vs Java
Ero C++:n ja Javan välillä piilee niiden riippuvuudessa alustasta. C++ on alustariippuvainen kieli, kun taas Java on alustasta riippumaton kieli.
Yllä oleva ei kuitenkaan ole ainoa ero. Molempien termien vertailu tietyillä parametreilla voi paljastaa hienovaraisia näkökohtia:
Vertailutaulukko C++:n ja Javan välillä (taulukkomuodossa)
Vertailuparametri | C++ | Java |
---|---|---|
Perustuu käsitteeseen | Kirjoita kerran koota minne tahansa | Kirjoita kerran juokse missä tahansa kaikkialla |
Ohjelmointikielen tyyppi | Proseduuri- ja oliokieli | Vain oliokieli |
Kielen tyyppi | Käännetty | Käännetty + tulkittu |
Riippuvuus alustasta | Alustariippuvainen kieli | Ei riipu alustasta |
Yhteensopivuus muiden kielten kanssa | Kyllä, useimmilla korkean tason kielillä | Ei yhteensopiva, ei taaksepäin yhteensopivuutta |
Syöttömekanismi | Input/output lausekkeet | Monimutkaisempi |
Lähdekoodin ja tiedostonimen suhde | Ei suhdetta | Kyllä suhde on olemassa |
Käyttöliittymä kirjastojen kanssa | Mahdollistaa suorat kutsut alkuperäisiin järjestelmän kirjastoihin | Vain Java-natiivikäyttöliittymän kautta |
Siirrettävyys | Ei kannettava | Siirrettävyys on olemassa, koska se voidaan suorittaa millä tahansa alustalla |
Onko operaattorin ylikuormitus sallittua? | Joo | Ei, vain menetelmän ylikuormitus sallittu |
Juurihierarkian tyyppi | Ei juurihierarkiaa | Seuraa yhden juuren hierarkiaa |
Kulunvalvonta | Joustava | Monimutkainen |
Ajonaikaisen virhevastuun havaitseminen | Ohjelmoijan vastuu | Järjestelmä ohjattu |
Muistin hallinta | Manuaalinen | Järjestelmän ohjaama |
Onko sisäänrakennettu lankatuki olemassa? | Ei, se luottaa kolmansien osapuolten kirjastoihin | Joo |
Laitteistosuhde | Lähellä laitteistoa | Ei paljon vuorovaikutusta laitteiston kanssa |
Johdonmukaisuus primitiivi- ja objektityyppien välillä | Joo | Ei |
Tuki kääntäjälle ja tulkille | Vain kääntäjälle | Sekä kääntäjä että tulkki |
Tuki osoittimille | Tarjoaa vahvan tuen osoittimille | Tarjoaa rajoitetun tuen |
Virtuaalisen näppäimistön tuki | Joo | Ei |
Ohjelmointituki | Sekä prosessiohjelmointi että olioohjelmointi | Vain olio-ohjelmointimalli |
Tuki rakenteille | Joo | Ei |
Sopivuus | Järjestelmäohjelmointi, käyttöjärjestelmä, pelisovellukset | Sovellusohjelmointi, web-pohjaiset sovellukset |
Mikä on C++?
C++:n kehitti ensimmäisen kerran Bjarne Stroustrup AT & T Bell Laboratoriesista vuonna 1979. C++ on keskitason ohjelmointikieli (jossa on kaikki C-kielen ominaisuudet eli C:lle rakennettu) ja sekä korkean että matalan tason kielen attribuutit.
C++ tunnetaan myös hybridikielinä, koska se tukee sekä proseduuri- että olioohjelmointia.
C++-ohjelman ideana on "kirjoita kerran ja kääntää missä tahansa". C++-kieli on yhteensopiva useimpien muiden korkean tason kielten kanssa ja tukee erityyppisiä perintöjä (jopa useita perintöjä).
C++ on erittäin hyödyllinen ohjelma sen siirrettävyysominaisuuden ansiosta. Muita etuja ovat sen olio-ominaisuus, joka mahdollistaa koodin uudelleenkäytettävyyden, ohjelmoijan hallinnan muistinhallinnassa, moniparadigmaohjelmoinnin, poikkeusten käsittelyn ja toimintojen ylikuormituksen.
C++ ei ole vapaa haitoista ja tavallisissa on enemmän muistinkulutusta johtuen osoittimien käytöstä, tietoturvaongelmat, sisäänrakennetun säikeen puuttuminen, monimutkaisuus korkean tason ympäristössä, vaikeus soveltaa verkkosovelluksiin, ei tukea roskalle kokoelma.
C++:aa käytetään pääasiassa sovellus- ja järjestelmäkehityksessä. Muita käyttökohteita, joissa C++ voidaan ihanteellisesti ottaa käyttöön, ovat tunnetut käyttöjärjestelmät, digitaalinen kuvankäsittely, 3D-grafiikka, reaaliaikaiset aritmeettiset simulaatiot, pilvitallennus, puhelinkytkimien ohjelmointi ja jopa ydinpankkisovellusjärjestelmät.
Mikä on Java?
Java on monikäyttöinen, korkeatasoinen ja edistynyt ohjelmointikieli, jonka Sun Microsystems on kehittänyt vuonna 1991. Javaa kutsuttiin alun perin OAK:ksi, mutta se nimettiin myöhemmin uudelleen Javaksi vuonna 1995 hyödyntääkseen maailmanlaajuista verkkoa.
Java-ohjelman idea on "Kirjoita kerran, aja missä tahansa kaikkialla". Tämä konsepti on todellisuudessa mahdollista, koska Java-kääntäjän luoma tavukoodi on alustasta riippumaton ja voi toimia millä tahansa koneella.
Java on oliokieli, mutta siinä on edistyneitä attribuutteja. Java voi toimia useimmissa järjestelmissä, koska Java-virtuaalikoneita on olemassa useita järjestelmiä varten. Java tarjoaa useita etuja, jotka tekevät kielestä sopivan käytettäväksi verkossa. Itse asiassa jotkin sovellukset/verkkosivustot eivät välttämättä edes avaudu tai toimi, ellei Javaa ole asennettu.
Java ei ole vapaa haitoista. Java tukee vain yksittäistä periytymistä, vaikka useiden periytysten vaikutuksia voidaan saavuttaa käyttämällä rajapintoja. Muita Java-haittoja ovat yhteensopimattomuus muiden kielten kanssa, enemmän muistin kulutusta, ohjelmien suorittaminen kestää kauan ja laitteiston kustannukset.
Javaa käytetään pääasiassa sovellusohjelmointiin ja se on suosituin kieli ohjelmistoteollisuudessa. Javaa hyödynnetään myös verkkosisällön kehittämiseen.
Java on läsnä useimmissa matkapuhelimissa. Muita käyttökohteita ovat yrityssovellukset, pilvilaskenta, yrityssovellukset, animaatio ja pelit. Javaa pidetään tekoälyn (AI) ja big datan tulevaisuutena.
Tärkeimmät erot C++:n ja Javan välillä
- C++ on proseduuri- ja olio-ohjelmointikieli, joka ei seuraa mitään tiettyä juurihierarkiaa. Java on pääasiassa olio-ohjelmointikieli, jolla on yksi juurihierarkia.
- C++ perustuu käsitteeseen "kirjoita kerran käännä missä tahansa" ja on yhteensopiva useimpien muiden korkean tason kielten kanssa. Java perustuu ajatukseen "kirjoita kerran ajaa kaikkialla", mutta se ei ole yhteensopiva muiden kielten kanssa.
- C++ on nopeampi, mutta vaikeampi ohjelmoida. Java on kompaktimpi.
- C++ käyttää vain kääntäjää. Java käyttää sekä kääntäjää että tulkkia.
- C++ tukee operaattorin ylikuormitusta, useita perintöjä ja tukee osoittimia. Java ei tue operaattorin ylikuormitusta, useita perintöjä ja osoittimia.
- C++ ei tarjoa sisäänrakennettua tukea Internetiin, eikä se ole kannettava. Javassa on sisäänrakennettu tuki Internetiin, ja tavukoodi on kannettava ja suoritettavissa millä tahansa alustalla.
Johtopäätös
C++:n tai Javan käyttö perustuu helppokäyttöisyyteen, yksilöllisiin mieltymyksiin, suoritettaviin töihin ja kehitettävän järjestelmän tai sovelluksen tyyppiin. Sekä C++:lla että Javalla on hyvät ja huonot puolensa.
Jos joku on kiinnostunut järjestelmän ohjelmoinnista, C++ olisi hyvä valinta ja niille, jotka haluavat harjoittaa sovellus- tai verkkoohjelmointia, Java voisi olla sopiva vaihtoehto.
Ihanteellinen käytäntö olisi ymmärtää vaatimukset ja arvioida C++:n ja Javan vertailuparametrit ennen päätöksen tekemistä.
- https://pdfs.semanticscholar.org/ee70/65c3970b4c27d9d4bfa57ab45ba545481232.pdf
- https://www.computer.org/csdl/mags/co/2012/10/mco2012100088.pdf