PROGRAMMING LANGUAGE WAR (review)
Materi oleh Hasna Khairunnisa
10 bahasa pemrograman yang umumnya
dipakai di dunia dan mendatangkan expert-expert yang memakai bahasa itu di
perusahaannya.
Biasanya, kalau membahas bahasa misalnya
membahas bahasa yang mana sih yang paling bagus? itu selalu berakhir dengan
perdebatan tanpa akhir. Padahal sebenarnya, setiap bahasa itu mempunyai
keunggulannya masing-masing dan prospek-prospek tersendiri. Dan ketika kita
baru menginjak dunia pemrograman, pertanyaan yang diajuin pasti "paling
bagus belajar bahasa apa ya?” Semua expert dibidang bahasa-bahasa tersebut
saling berpendapat untuk mempertahankan bahasanya agar investasinya tidak
habis. Bayangkan saja, kalau misalnya bahasa tertentu udah tidak ada peminatnya
lagi. Bakal susah mencari developer, contoh project di github, nyari kerjaan,
dll.
Review pandangan-pandangan mengenai
bahasa pemrograman.
1) Scala (https://www.scala-lang.org/)
Scala adalah bahasa yang berjalan di JVM
(Java Virtual Machine). Jadi, Scala temenan sama Java. Waktu pakai Scala, kita
bisa import class-class yang ada di Java dan sebaliknya.
Ada beberapa teknik keren di Scala, yang
unggul dari lainnya:
1 Pattern Matching: bermanfaat buat
mengurangi 'if' (conditional)
2 Currying: biasa digunakan untuk file
stream, jadi gak perlu buka tutup file untuk menghemat memori. Begitu juga dengan
transaksi, tidak perlu ada Rollback atau Commit seperti pada biasanya
3 Trait: mirip Java interface, tapi
dengan implement dan berbagai teknik keren lainnya.
Untuk framework yang biasa digunakan, discala ada yang namanya akka.io, dimana bisa digunakan disatu atau banyak mesin
secara bersamaan. Jadi keunggulan utama scala itu, dia cocok dipakai di
lingkungan software yang sudah punya banyak sekali user, karena ketika diperlukan
untuk nambah memori atau nambah mesin, scala secara otomatis beradaptasi dengan
lingkungannya. Selain itu, Apache Spark yang biasa digunakan untuk teknologi
Big Data dan terkenal dengan kecepatannya menggunakan Scala. Kalau memakai
Apache Spark, ukuran besar data dan besar RAM tidak berpengaruh pada kecepatan
proses Big Data.
Potensi pekerjaan di Indonesia untuk
bahasa Scala masih jarang, tapi cukup terkenal di luar negeri, misalnya
Australia. Walaupun jarang, karena Scala dibutuhkan di perusahaan besar dengan
posisi yang lumayan tinggi, jadi cukup prospektif juga untuk dipelajari. Tantangan
saat belajar Scala, itu, adalah Scala cukup sulit dipahami. Scala termasuk
bahasa tingkat tinggi, yang -infonya- buku pembahasannya setebal 800 halaman -
hanya membahas satu bahasa.
Materi ini kemarin disampaikan oleh
Bapak Jony Sugianto, Former Research Lead Engineer di Detik.com
2) Kotlin
Kotlin, pasti sudah sering denger ya. Kotlin
lagi booming banget soalnya baru diangkat Google dan disupport secara penuh
untuk menjadi official language di Android. Sebenernya Kotlin bukan bahasa
baru. Kotlin sering disebut sebagai 'bahasa rangkuman dari Java' yang membuat
syntax-syntax panjang di Java jadi terlihat lebih mudah. Kotlin dibuat oleh
JetBrains, perusahaan yang develop IntellijIDEA, Android Studio. Jadi sudah
klop banget sama Android.
Platform Kotlin ada JVM, JavaScript,
Android, dan lain-lain. Kotlin itu 100% Java compatible. Jadi kalau misalnya
kita sedang ngoding Java, lalu tiba-tiba salah ketik Kotlin, itu Java dan
Kotlin masih bisa saling memahami. Mereka bisa dipakai berbarengan. Selain kompatibel ke Java, Kotlin juga bisa
di 'transpile' ke JavaScript. Jadi kalau ngoding memakai Kotlin, bisa dipakai
di Java dan juga JavaScript, dua bahasa yang lagi booming sekarang.
Untuk komunitas bahasa Kotlin, di
Indonesia ada kotlin.id, dan kotlin.link. Selain itu, sumber-sumber belajar
bisa dari panduan yang disediakan Google, untuk develop di Android.
Dari segi teknik ngoding, Kotlin itu:
- Null safety, jadi tidak ada error
nullpointerxception seperti di Java
- Mutatibility protection & Notation
- Smart Cast, bisa otomatis mengubah
suatu variabel ke tipe data lainnya tanpa harus dispesifikkan tipenya saat
casting.
-Coroutine
selengkapnya tentang teknis bisa dilihat
di dokumentasinya Kotlin, https://kotlinlang.org/ :)
pendapat pribadi: Kotlin cocok banget
buat yang lagi belajar Android, dan prospeknya cukup menjanjikan karena
disupport langsung oleh Google, sehingga untuk forum dan komunitas bisa terus
berkembang.
Materi ini disampaikan oleh Bapak Deny
Prasetyo, Backend Engineer di Gojek
3) Go Lang
Go juga merupakan salah satu bahasa yang
masih disupport oleh Google, karena dibuat langsung oleh tim Engineer di
Google. Nah bedanyaa, bahasa ini lebih digunakan untuk pengembangan di Google
sendiri dan biasa digunakan oleh aplikasi yang sudah punya banyak audience.
Go Lang punya logo yang lucu banget, bisa
dilihat di link ini https://golang.org/
Nah, walaupun Go Lang itu dipakai diinternalnya
Google, tetapi juga dipublish dan dapat dipakai secara open source. Support
untuk Go Lang itu juga ada backward compatibility, artinya kalau misalkan kita
pakai Go versi lama, masih bisa dipakai di lingkungan sekarang dan masih
dihandle error-error versi sebelumnya oleh tim pengembangnya. Go Lang itu
kelebihannya, cepat. Jadi hampir semua perusahaan yang punya banyak user di
Sillicon Valley itu memakai Go, seperti misalnya Google, Facebook, dan di
Indonesia ada Traveloka, Grab. Go biasa digunakan di API untuk Mobile. Basic
dari bahasa Go, itu Java, C, C++.
Teknisnya, Go itu memory safe karena ada
'garbage collection' secara otomatis. Dari resource belajarnya, Google Development
team sudah menyediakan banyak library dan code generator (golanglibs.com). Project-project
besar menggunakan Go: Docker, Kubenetes, Hugo, dan InfluxDB. Nah, investasi
terbesar buat belajar Go ini terletak di tingkat kesusahannya. Go itu lain dari
bahasa pemrograman lain dan tidak direkomendasikan untuk Junior Programmer. Nanti
berasap duluan kepalanya, hehe.
Materi ini disampaikan oleh Kenneth
Shaw, CTO dan Founder Brankas.com, dan juga founder komunitas Go lang di
Indonesia.
4) Java
Java? pasti semuanya udah kenal banget
nih sama bahasa ini, hampir disetiap perkuliahan IT diajarin bahasa Java atau
minimal sudah pernah kenal sama namanya, karena mirip sama salah satu pulau di
Indonesia. Konon katanya pembuat bahasa ini terinspirasi dari enaknya Kopi di
Jawa jadi namanya Java.
Java termasuk bahasa yang sudah lama sekali.
Walaupun sulit, tapi Java sudah mendarah daging disetiap developer dunia dan
sudah dikembangkan jadi bahasa-bahasa baru. Sempat ada beberapa wacana yang
akan menggantikan bahasa Java, tapi nyatanya belum pernah berhasil Java tetap
berdiri tegak sampai sekarang. Java terkenal dipakai di Android, JVM untuk Web
Server, pengembangan machine learning, dan lain-lain. Support, library dan
komunitasnya banyak sekali ditemukan. Prospek belajar Java juga sangat baik dan
banyak dibutuhkan di Indonesia.
Not much to say, Java is old but gold.
Meskipun agak berat dalam prosesnya dan sulit dalam pembelajarannya, tapi
implementasinya mudah ditemukan di mana-mana.
Apakah Java bisa ngurangi cache? kalau
ngurangin cache saya baru pernah dengar. tapi kalo dari level kesulitan,
mungkin memang ya kalau ngga start dari Java atau paham dasar OOP dulu. Java
sendiri, termasuk High Level Language yang memang banyak diakui bahasa
pemrograman beginner populer tersusah untuk dipelajari.
Materi Java disampaikan oleh Mas Yudhi
Karunia Surthan, Senior Principle SE di Blibli.com
5) JavaScript
JS juga merupakan bahasa yang lagi
booming di Indonesia. Implementasinya banyak ditemukan di Web Development,
misalnya AngularJS, NodeJS, MEAN Stack Framework. Kali ini khusus membahas
mengenai keunggulan NodeJS.
Facebook stack tidak menggunakan go.
Walaupun ada beberapa yang menggunakan untuk opensource mereka. Ex: parse (skrg
udah mati). Facebook stack backend menggunakan campuran C++, Java, dan Erlang.
Untuk traveloka juga mainly menggunakan
Java and beberapa plugin Scala. As I know in 2013 saat mereka develop.
Selain Web, JS juga ada di mobile:
ReactJS. Ada di Server, iOT, Robotika, dll. Luas sekali cakupannya, dan sudah diimplementasikan
dibanyak produk: eBay, FB, IBM, HP, Uber, LinkedIn, dll.
Personal comment: JS luas sekali dan
tidak begitu susah dalam pembelajarannya. Baiknya, langsung berfokus di
Framework tertentu untuk masteringnya.
materi ini disampaikan oleh mas Riza
Fahmi , Cofounder dan Curriculum Director di Hacktiv8
6) Swift
Swift, terkenal sebagai bahasa untuk
development di iOS. Syntax di Swift sederhana sekali, mudah dipahami
sampai-sampai Apple membuat Swift Playground untuk anak-anak belajar bahasa
Swift secara sederhana. Di Swift tidak ada backward compatibility, jadi versi
sebelumnya yang sudah tidak disupport harus melalui beberapa proses penyesuaian
untuk dapat digunakan kembali.
Swift adalah bahasa yang cepat. Lebih
cepat dari Python, lebih cepat juga dari objective C (bahasa official iOS
sebelumnya). Kalau bicara Swift, hampir tidak ada tandingannya, karena
developer iOS masih cukup jarang dan juga bahasa yang bisa dipakai untuk
develop iOS biasanya hanya yang disupport Apple saja, jadi eksklusif sekali
kalau mastering bahasa Swift. Info-info yang lewat, bayaran untuk programmer
iOS cukup besar di Indonesia.
Belajar bahasa Swift, mungkin terhalang
oleh fasilitas yang harus debugging menggunakan perangkat Apple. Bahasa swift
kabarnya juga bisa digunakan untuk develop Android, tapi harus melalui proses
yang cukup rumit.
Materi Swift disampaikan oleh Deny
Zakya, iOS Engineer di BBM (KDKonline)
7) Ruby
Keunggulan dari Ruby, bahasanya natural
dan diklaim sangat manusiawi. Banyak metode yang bisa digunakan untuk
menyederhanakan pemrograman dan menyenangkan untuk dipelajari pemula. Ruby bisa
diimplementasi di Mobile, Web, bahkan Desktop.
Di Indonesia, ada komunitas friendly
dari idrails.com dan slack di ruby.id/slack. Kabarnya, akan ada konferensi
pemrograman ruby pertama di Indonesia di waktu dekat ini.
materi ini disampaikan oleh Didik
Wicaksono, CTO Cookpad Indonesia dan RubyConf Indonesia 2017
Selebihnya, ada Python yang baik
digunakan untuk implementasi Machine Learning dan juga bisa dipakai untuk Web
Development, Chatbot, dan sedang booming juga walaupun merupakan bahasa yang
cukup tua. Ada C# dan PHP yang tidak tersampaikan oleh saya, secara pengetahuan
umum C# biasa digunakan diaplikasi Microsoft, Pemrograman mesin, desktop, dll.
Tidak ada komentar:
Posting Komentar