Hai rekan dev, sudah coding hari ini? Desktop, client side, atau server side programming? Bahasa pemrograman apa yang dipakai? Atau masih bingung menentukan pilihan jodoh bahasa? Yuk kita ngobrol dikit tentang “server side programming language”.
Apa Sih Server Side itu?
Server Side Programming Language, atau Bahasa Pemrograman sisi server, adalah bahasa pemrograman web, yang letak source code nya nanti hanya ada di webserver. Bahasa ini source code nya tidak akan muncul di sisi client (browser). Client/browser hanya menerima keluaran dari kode program tersebut. Di sisi client, keluaran akan muncul berupa : HTML, CSS, hingga bahasa pemrograman client side paling terkenal : Javascript. Bahasa Server Side sendiri ada banyak bahasa, paling populer saat ini ya : PHP. Nah siapa nih yang korban gemar PHP?
Saking populernya PHP, sebagian besar server hosting dunia (dan tentu juga hosting server akademik) , didominasi berbasis PHP. PHP saat ini sudah masuk ke versi 7.3. Versi yang paling lama bertahan adalah 5.x. Kemudian ditambal-tambal, patch, update, dan akhirnya masuk ke versi 6. Versi 6 sendiri tidak disarankan untuk digunakan karena berat. Muncullah PHP 7 yang hingga sekarang masih bercokol dan berjaya. Sudah gitu, PHP-8 sudah diisukan muncul dengan kelebihan : JIT Compiler. Mari kita cerita tentang bahasa lainnya.
Python
Beberapa hal yang membuat python begitu disukai :
- Library yang sangat lengkap
- Kemudahan mengambil library dengan menggunakan pip
- Komunitas yang luas
- Kemudahan dipelajari, terutama justru oleh newbie
- Kemampuan mengolah big data, yang masa kini sedang marak
- Python bagus juga sebagai system scripting
Cukup banyak tools gratisan di internet, baik standalone tool, aplikasi, maupun middleware yang dibangun dengan menggunakan Python. Di kalangan pentester, python masih paling banyak digunakan sebagai bahasa pemrograman untuk mendevelop aplikasi penetration test. Python sekarang, sudah mencapai versi 3.7.4.
Node.js
Beberapa hal mengapa node juga melejit popularitasnya adalah sebagai berikut
- sintaks yang bersaudara dengan java script. Sekali belajar bahasa, untuk semua sisi
- Dukungan komunitas
- Library yang banyak, dengan bantuan npm pemanggilan library jadi cukup cepat
- Konon, eksekusi satu command di node, lebih cepat ketimbang bahasa pemrograman lainnya
Pada umumnya node digunakan sebagai bahasa pemrograman untuk pengembangan webservice dan API. Beberapa isu kekurangan Node seperti : potensial DDOS pada Listen Service, dapat ditangani dengan webserving dengan program webserver seperti Nginx, Apache, dan lainnya. Versi terakhir node sekarang adalah 13.2.0
Java
Java dibuat oleh para pegiat di Sun Microsystem pada tahun 1991, yang kemudian diakuisisi oleh Oracle pada tahun 2010. Java banyak digunakan pada sistem-sistem yang membutuhkan penyembunyian source code. Keunggulan lain dari Java ini, karena dia menggunakan JVM, maka saat program Java start, dia akan langsung meload seluruh program, mengklaim resource (memory), dan berjalan dengan stabil dalam merespon layanan.
Beberapa developer memilih tidak menggunakan Java, karena menurut mereka kurang ramah dan lincah dikerjakan dengan Source Code Management (Version Control). Pola delivery aplikasi masa kini, dari kondisi development ke kondisi live menuntut dapat dilakukan dengan satu kali clone. Sedangkan Java yang memerlukan kompilasi, memiliki risiko downtime saat peralihan versi. Namun hal ini pun sebenarnya sudah dapat diatasi. Nah, tertarik mencoba Java?
Ruby
Di lingkungan bahasa Ruby ini, berkembang juga sebuah framework bernama Ruby On Rails, yang sudah berbasis MVC (Model View Controllers), yang menginspirasi banyak framework populer seperti : Django (Python), Laravel dan CakePHP (PHP), Sails.js di NodeJS. Komunitas Ruby di Indonesia, ada di https://ruby.id.
Ruby juga tidak jarang digunakan untuk system scripting di berbagai sistem operasi. Ruby juga dapat digunakan sebagai bahasa pemrograman untuk program-program executable. Salah satunya misal adalah tool untuk melakukan audit keamanan WordPress : WPScan, juga ditulis dengan menggunakan bahasa Ruby. Ruby juga memiliki composer library yang bernama RubyGems .
Go !
Di sisi client side, Google pernah share AngularJS, di sisi infrastruktur Google menularkan Kubernetes (yang konon ditulis dengan Go juga).
Go (atau Go Lang, atau Golang), akan dikompilasi (compile) pada mesin yang menjalankan. Cara penulisan Go sendiri seperti bahasa scripting biasa. Konon, Go menjadi bahasa pemrograman dengan proses yang sangat cepat, karena dengan dikompilasi, dia akan memiliki library sendiri dalam bentuk biner. Go sendiri, dibangun dengan menggunakan bahasa C.
Go, akhir-akhir ini menjadi sangat populer, karena kelebihannya. Ditambah dengan dokumentasi yang banyak, dukungan komunitas dan masyarakat IT seluruh dunia, menjadikan popularitas Go menjadi tinggi. Bahkan di kalangan pentester, system scripting, Go juga mulai marak digunakan. Di dunia startup dan perusahaan-perusahaan raksasa berbasis IT di Indonesia, Bahasa pemrograman Go juga marak digunakan.
Pilih Mana?
Dengan banyaknya bahasa pemrograman yang bertebaran di dunia IT, manakah yang paling bagus digunakan? Sebenarnya semua pemrograman sangatlah tergantung pada programmer dan desainnya. Seperti yang pernah tim eCampuz dengarkan dari kata-kata kang Onno W Purbo, suhu IT negeri ini, “programming dan bahasanya itu perkara mudah, yang sulit adalah logic-nya”
Untuk mempelajarinya, sudah banyak forum-forum dunia maupun forum-forum Indonesia di berbagai web, ataupun pada supergroup Telegram yang dapat diikuti dengan bebas. Meskipun kadang di group itu banyak hal yang konyol, yang masih membawa fanatisme bahasa pemrograman. Tolong bagian ini jangan diikuti hehehe… Berikut beberapa list group Telegram yang membahas tentang bahasa pemrograman :
NodeJS : https://t.me/nodejsid
Ruby : https://t.me/ruby_id
PHP : https://t.me/PHPIDforStudent
Java : https://t.me/JVMUserGroup
Server Side for Campus
Untuk kampus, enaknya bahasa pemrograman apa ya? Pemilihan bahasa pemrograman, baik untuk kampus, perusahaan, komunitas dan lain sebagainya, harus disesuaikan juga dengan beberapa hal, seperti : digunakan untuk kebutuhan apa, dukungan infrastruktur (environment server), dukungan SDM, keberlangsungan (regenerasi), kolaborasi, hingga libary dan komunitas luar.
Misal, pemilihan bahasa pemrograman untuk aplikasi di kampus dengan Perl untuk sistem keuangan, adalah sah-sah saja. Namun untuk keberlangsungan, kolaborasi, hingga dukungan komunitas di luar belum tentu mudah. Apalagi kampus dengan tipe rolling SDM yang sangat tinggi, dibutuhkan bahasa pemrograman yang banyak dimengerti orang, dengan framework yang populer, dan dokumentasi yang dapat menjadi acuan generasi selanjutnya. Dengan demikian proses maintenance dapat dilanjutkan hingga banyak generasi.
Bahasa pemrograman server side jika untuk keperluan riset, sangat dianjurkan untuk mencoba sebanyak mungkin bahasa. Masih banyak bahasa pemrograman server side yang bertebaran di luar sana, dengan berbagai spesifikasi dan keunikan tersendiri. Seperti misal : Coldfusion, Perl, hingga Rust. Mereka memiliki keistimewaan sendiri, dengan kecocokan penggunaan masing-masing. Tertarik untuk mencoba?