Pembelajaran Java Android: Kenapa Java?

Artikel asal ditulis oleh Fahmy – sumbu.org. Saya hanyalah orang secara tak sengaja menyimpan artikel ini dan menyalin tampal sahaja.

Secara jujurnya, saya bukanlah peminat Java. Tidak dapat tidak, Java juga berguna dalam dunia yang mana kemudah alih program amat penting berbanding prestasi tahap maksimum. Sebab itu, dunia peranti mobil banyak program ditulis dengan Java. Tapi persoalan di sini, benarkah Android menggunakan Java?

Secara lurus bendulnya, ya, Android menggunakan Java. Secara kurang lurus bendulnya, Android menggunakan bahasa Java tapi ia tidak ditukarkan kepada Java Bytecode dan tidak serasi pun dengan JVM yang ada. Ia menggunakan Dalvik.

Secara lurusnya pula, aplikasi Android boleh ditulis dengan C, C++ dan Java maka ia bukan hanya menggunakan Java seratus peratus tetapi dalam aplikasi melibatkan keperluan pengiraan yang kritikal, C dan C++ akan digunakan.

Berbanding dengan orang lain, yang akan menceritakan apa yang bestnya Java. Saya pula akan menceritakan, kenapa saya tidak meminati Java.

Kenapa saya kurang gemarkan Java?

Java memaksa penulis menggunakan OOP (Object-Oriented Programming) walaupun ada ketikanya OOP tidak diperlukan. Berbanding dengan C++ yang mana anda boleh menggunakan procedural atau OOP bila-bila masa.
Prestasi Java lebih perlahan…mungkin ada peminat gila-gila Java akan kata yang Java sama laju dengan bahasa seperti C/C++ dengan adanya JIT dan lain-lain. Suruh mereka tulis kernel sehingga distro lengkap OS menggunakan Java dan anda akan faham apa yang terjadi. Malah kalau ini tidak benar, kenapa Android dibenarkan menggunakan C/C++?
Menggunakan lebih banyak memori.
Mempunyai akses perkakasan yang terhad.
Tiada kawalan untuk memori dan saya pening memikirkan penggunaan pool semata-mata untuk mengelakkan garbage collection.
Oleh itu, kalau anda baru belajar Java dari sifar. Seboleh-bolehnya elakkan topik pemahaman Class pada peringkat awal. Sebab ini topik yang akan memeningkan banyak orang. Walaupun begitu, pemahaman Class amat penting sebab Java dibina atas kapasiti OOP.

Jika anda dari dunia C atau C++ kebanyakkan sintaks Java tidak jauh berbeza. Berbanding dengan C++ yang mana anda akan memahami OOP, dunia C tidak sebegitu. Jadi mungkin akan sukar sedikit untuk memahami Class berbanding mereka yang dari C++.

Kenapa Android menggunakan Java/Dalvik sedangkan kuasa perkakasannya terhad?

Jawapannya mudah, masalah tiada keseragaman jenis CPU. Dalam dunia x86 atau orang kenali sebagai dunia laptop, desktop dan server. Kita didominasi oleh CPU jenis x86 yang mana dikeluarkan oleh Intel dan AMD (sebilangan kecil VIA). Sekalipun ia berbeza syarikat, tapi ia menggunakan reka bentuk arkitek yang sama.

Pendek kata, apa yang anda kompil di Intel akan serasi di AMD asalkan menggunakan OS yang sama dan tiada paksaan dalam melaksanakan kod istimewa untuk spesifik CPU seperti SSE dan lain-lain.

Oleh itu, tiada masalah ketara dalam dunia laptop, desktop dan server tapi masalah perbezaan ketara apabila menyebut peranti mobil. Kebanyakkan hari ini menggunakan cpu ARM ,tapi ARM ni ibaratlah distro Linux. Banyak variasi dan tidak semestinya serasi antara satu sama lain.

Maka, penggunaan bahasa bukan totally compile dan bukan totally scripting seperti Java atau .Net sedikit sebanyak membantu pembangun perisian berbanding masalah untuk mencuba dan mengkompil setiap jenis variasi CPU.

Java bukan bahasa kompil dan juga buka bahasa skrip..

Yup…ramai yang belajar kat universiti akan mengatakan ia bahasa kompil. Tapi idea bahasa kompil hanya separuh benar dengan Java kerana Java juga memiliki sifat bahasa skrip. Pendek cerita Java adalah bahasa katak atau makhluk dua alam.

Kenapa begitu? Katakan anda mengkompil bahasa C. Anda boleh terus menjalankanya jika platformnya masih sama. Tapi bolehkah anda menjalankan Java tanpa adanya penterjemah atau intepreter atau untuk klu lebih tepat virtual machine?

Sepertimana mana bahasa skrip, Java memerlukan ia dijalankan atas program lain. PHP tak boleh jalan dengan sendirinya tanpa penterjemahnya. Begitu juga Java.

Tetapi…tidak seperti bahasa skrip, bahasa Java perlu dikompil dahulu kepada bytecode. Sedangkan bahasa skrip tidak memerlukan anda berbuat begitu.

Jadi sekarang anda faham kenapa saya katakan bahasa Java bukan bahasa kompil atau skrip!

Bila nak ajar Java ni?

Saya akan menyentuh pembelajaran Java pada tutorial seterusnya…Ini sebagai pemanas suam-suam kuku otak sebelum ke topik pengaturcaraan. Jika anda pelajar yang rajin, sila buat kajian perbezaan antara bahasa ini atau boleh tinggalkan di ruang komen…sehingga berjumpa lagi!

Related Posts:

About the author

Ku suka taip kod dari taip ayat, tapi terpaksa taip ayat untuk cerita pasal kod.