JavaPython:Programmid
Java vs Python |
|
Programmi struktuur
Kõik mis kuulub Java programmi peab olema kirjutatud mingisse klassi. Java rakendus nõuab alati vähemalt ühte klassi, kus on defineeritud meetod main, mis kutsutakse välja rakenduse käivitamisel. Java on pisut verboossem kui Python. See tähendab, et üksteisega ekvivalentsed (s.t. samasid ülesandeid täitvad) programmid on Javas veidi mahukamad kui Pythonis. Esilehel demonstreeritud Pythoni ning Java “Hello world” programmide lähtekoodide pikkuste suhe on äärmuslikuks (ebatüüpiliseks) näiteks.
Programmi salvestamine, kompileerimine ja käivitamine
Iga Java klass (lähtekood) salvestatakse eraldi faili, mille nimi on (väga soovitatavalt) täpselt sama mis failis oleva klassi nimi, ja laiendiks on .java. Seega eelmine programm tuleks salvestada faili HelloWorld.java. Erinevalt Pythonist on Javas tarvis enne programmi käivitamist see kompileerida. Java puhul toimub süntaksi ja tüübivigade otsimine koodis just kompileerimise ajal. (Pythonis toimib see rakenduse täitmise ajal.) Kompileerimise tulemusena, kui vigu ei olnud, luuakse Java koodist sama nimega .class-fail. Viimane on nn baitkood, mida on võimalik käivitada kasutades Java viruaalmasinat. Sõltuvalt kasutatavast operatsioonisüsteemist ning selle seadistusest võivad antud käsud erineda, kuid üldine kuju (käsureal töötades) jääb siiski samaks. (Integreeritud arenduskeskkonnas (IDE), võib koodi salvestamisele automaatselt järgneda kompileerimine ning võimalike veateadete kuvamine.)
Python | Java |
---|---|
Programm koosneb moodulitest. Moodulid koosnevad käskudest, funktsioonidest ja/või klassidefinitsioonidest. Iga mooduliga on seitud lähtekoodifail (.py laiend) ja mõnikord ka baitkoodifail (.pyc laiend).
Python virtual machine (PVM) on kompilaator/interpretaator, mis tõlgib Pythoni lähtekoodi baitkoodiks enne käivitamist. PVM võib saadud baidkoodi salvestada baitkoodifaili, et hiljem seda otse käivitada (ilma lähtekoodifaili tõlkimata). |
Programm koosneb liidestest ja klassidest, mis on jagatud lähtekoodifailidesse (.java laiend). Lähtekoodifail kompileerub üheks või mitmeks käivitatavaks baitkoodifailiks (.class laiend). Klassid ja liidesed võivad olla osa paketist. Pakett on natuke Pythoni mooduli moodi, paketist saab laadida (importida) erinevaid ressursse. Paketi baidkoodifailid asuvad tavaliselt kaustas, mille nimi on paketi nimi. Programm tuleb enne käivitamist kompileerida. Java programmid käivituvad interpretaatoris, mille nimi on Java virtual machine (JVM). |