From Hard Coding to App

Bagaimana sebuah app dibuat?

Aplikasi atau disingkat app, adalah sebuah aplikasi yang berjalan
dengan fungsi tertentu. App yang didesain berjalan di platform A tidak
bisa berjalan di platform B, demikian juga sebaliknya. Sebagai contoh,
app calculator yang didesain berjalan di OS android tidak dapat
dijalankan di OS iOS, demikian juga sebaliknya.

Berikut adalah tahapan sebuah app itu dibuat dari awal (di create from
scratch):

(1) Hard Coding

   Ini adalah proses menuliskan kode pada sebuah bahasa pemrograman
   tertentu, misalnya bahasa C. Yaitu berupa urutan instruksi yang
   membuat sebuah fungsi kalkulator dalam bahasa C. Hasil dari hard
   coding ini, disebut sebagai source code (kode sumber). Yaitu berupa
   plain text yang bisa dibaca oleh semua jenis platform (OS) apapun.

(2) Compile
   Proses kompilasi ini akan mengubah source code dari proses hard
   coding diatas ke dalam specifik platform (OS) tertentu. Misalnya
   dikompilasi ke dalam platform Linux. Hasil kompilasi ini adalah
   berupa app yang bisa diinstal di platform Linux saja.

(3) Instalasi
   Ini adalah tahapan terakhir dari hasil compile, yaitu file
   yang siap untuk diinstal pada platform yang sudah ditentukan.
 
Hasil instalasi inilah yang kita namakan dengan app, singkatan dari
application. Dan app inilah yang selama ini kita bergaul dengannya.

Sebagai contoh kasus, bila kita memiliki source code dalam bahasa C, maka kita bisa
melakukan kompilasi dan instalasi kesemua jenis platform yang kita inginkan.
Misal kita menulis hard codingnya dengan macOS (source-code.c) ,
kemudian kita kompilasi di Windows (source-code.exe).
Maka hasil kompilasi tersebut bisa diinstall dan dijalankan di OS Windows,
seperti yang kita inginkan.

Akan tetapi bila kita kompilasi ke Linux, maka hasilnya bisa
dijalankan di Linux.

Java

Ada konsep sederhana yang genius dari Java, yaitu ingin membuat satu
buah jenis kompilasi yang bisa berjalan disemua jenis OS. Maka
dibuatlah konsep virtual machine yang disebut Java Virtual Machine
(JVM). Virtual machine ini berarti kita menambah satu layer diatas platform
(atau OS) yang sudah ada.

Hasil kompilasi source code Java disebut Java Bytecode. Dan byte code
inilah yang dijalankan diatas JVM. Maka seolah-olah kita memiliki
mesin virtual diatas platform, yang berfungsi seperti platform itu
sendiri. Dan semua jenis java byte code tersebut bisa berjalan disemua
jenis OS yang mengimplementasikan JVM. JVM merupakan salah satu
bagian dari JRE (Java Runtime Environment), yaitu lingkungan
tempat Java byte code berjalan.

Maka konsep pemrograman Java ini kita kenal dengan istilah "Write
Once, Run Everywhere". Dan konsep ini terbukti banyak diadopsi oleh
kalangan korporat dalam bidang IT. Karena jenis OS apapun yang
diimplementasikan, bisa dikembangkan dengan menggunakan bahasa Java
tersebut.

Go Cross Compilation

Agak sedikit berbeda dengan Java, bahasa Go memperkenalkan cross
compilation dan menghilangkan konsep virtual machine seperti yang
diusung oleh teknologi Java diatas. Yaitu proses compilasinya langsung
ditentukan jenis platformnya, kemudian hasil kompilasinya bisa
langsung dijalankan ke platform yang dituju. Meskipun proses
kompilasinya dilakukan di platform yang lain.

Misal, source code Go dibuat dengan OS Linux, dan dikompilasi di
Linux, akan tetapi tujuannya adalah untuk OS macOS. Maka, hasil
kompilasinya bisa dijalankan di OS macOS saja. Dan tidak dapat
berjalan di OS Linux.

Ini adalah konsep yang lebih baik, karena dengan menghilangkan "java
virtual machine", maka unjuk kerja (performa) app dengan bahasa Go
dapat berjalan lebih cepat daripada byte code java yang berjalan diatas JVM.

Penggunaan Bahasa Pemrograman

Sebuah bahasa pemrograman diciptakan untuk memecahkan masalah
tertentu. Bahasa C memang diciptakan untuk membuat software system,
seperti OS. Maka C banyak digunakan dalam membuat kernel Linux, atau
OS Windows. Dan C++ menawarkan konsep pemrograman object, yang lalu
diadopsi juga dalam membuat OS Windows.

Sementara Java didesain agar bisa dijalankan di berbagai platform
dengan biaya pengembangan yang hemat. Jadi dengan satu kali biaya
pengembangan, kita bisa menjualnya ke berbagai jenis OS. Inilah
selling point dari Java.

Sementara Go didesain untuk menangani concurrency app. Yang
membutuhkan multithreading. Dan Go memang jagoan dalam hal ini.

Sedang python paling cocok untuk menangai komputasi dalam bidang sains. Dan komputasi ilmiah. Selain itu, Python juga digunakan Google dalam search engine mereka.

Demikian, sekilas pembahasan tentang app.

Comments

Popular posts from this blog

Masalah "Open Containing Folder" di Firefox

How To Make XFCE Looks Like Gnome Shell

Office App In The Cloud