Postingan ini adalah hasil diskusi online yang diadakan oleh Female Geek Jakarta dengan pemateri Hasna Khairunnisa (Mahasiswa PENS 2014) yang kece badaiii sekarang lg student exchange di Jepang padahal bulan kemarin baru pulang dari Taiwan. Semoga semakin sukses Hasna 🙂
(Hasil diskusi ini saya posting di blog ini sebagai catatan pribadi dan tentunya supaya lebih bermanfaat bagi yang membutuhkan)
Assalamualaikum Wr Wb semuanya 🙂
salam kenal, aku Hasna, mahasiswa IT di Politeknik Elektronika Negeri Surabaya (PENS).
kemarin, waktu mudik ke jakarta, aku nemuin topik seminar yang keren banget nih. Judulnya : “Programming Language War, does it matter?”
nah ini dia posternya. jadi, seminar ini membahas 10 bahasa pemrograman yang umumnya dipakai di dunia, dan mendatangkan expert2 yang make bahasa itu di perusahaannya.
Biasanya, kalo ngomongin bahasa, misalnya ngomongin bahasa mana sih yang paling bagus? itu selalu berakhir dengan perdebatan tanpa akhir. padahal sebetulnya, setiap bahasa itu punya keunggulannya masing2 dan prospek2 tersendiri.
dan ketika kita baru menginjak dunia pemrograman, pertanyaan yang diajuin pasti : “paling bagus belajar bahasa apa yaa?” sehingga muncul lah pertanyaan2 kaya yang ada di quora ini http://www.quora.com/I-want-to-learn-programming-Which-language-should-I-choose dan http://www.quora.com/I-want-to-learn-programming-Which-language-should-I-choose
semua expert di bidang bahasa2 tersebut, saling berpendapat untuk mempertahankan bahasanya agar investasinya gak habis. bayangin aja, kalo misalnya bahasa tertentu udah gak ada peminatnya lagi. bakal susah nyari developer, contoh project di github, nyari kerjaan, dll. hehe.
nahhh langsung ajaaa, kita ke bahasan utamanya yaa
aku bakalan review pandangan2 mengenai bahasa pemrograman yg aku dapet di acara kemarin. aku ndak bahas semuanya karena ada halangan waktu proses belajar kemarin, dan nanti bahasa php juga bakal dijelasin sama @raudhohfitrah jagonya php 🙂
bahasa pertama : Scala
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 class2 yang ada di Java dan sebaliknya.
Ada beberapa teknik keren di Scala, yang unggul dari lainnya :
1.1 Pattern Matching : bermanfaat buat mengurangi ‘if’ (conditional)
1.2 Currying : biasa digunakan untuk file stream, jadi gak perlu buka tutup file untuk menghemat memori. Begitu juga dgn transaksi, ngga perlu ada Rollback atau Commit seperti pada biasanya
1.3 Trait : mirip Java interface, tapi dengan implement
daaan berbagai teknik keren lainnya.
untuk framework yang biasa digunakan, di scala ada yang namanya akka.io, dimana bisa digunakan di satu atau banyak mesin secara bersamaan.
jadi keunggulan utama scala itu, dia cocok dipakai di lingkungan software yang udah punya banyak banget 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 pakai 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.
Scala selesaaai
Tantangan saat belajar Scala, itu, adalaah, Scala cukup sulit dipahami. Scala termasuk bahasa tingkat tinggi, yang -infonya- buku pembahasannya setebal 800 halaman – hanya membahas satu bahasa.
oh iyaa, materi ini kemarin disampaikan oleh Bapak Jony Sugianto, Former Research Lead Engineer di Detik.com
Infonya, di Indonesia untuk Scala belum begitu booming sehingga yang menggunakan tidak banyak. Tapi kalo di luar negeri, beda lagi 🙂
http://docs.scala-lang.org/cheatsheets/index.html ini link ke contoh bahasa skala yaaa, kalo tertarik bisa kenalan dulu 😀
Contoh software yang udah menggunakan bahasa scala? Apache Spark, dan software2 level enterprise 🙂
.
2) Kotlin
Kotlin, pasti udah sering denger yaaa. iya nih, Kotlin lagi booming banget soalnya baru di angkat Google dan di support secara penuh untuk jadi official language di Android.
Sebenernya Kotlin bukan bahasa baru. Kotlin sering disebut sebagai ‘bahasa rangkuman dari Java’ yang membuat syntax2 panjang di Java jadi terlihat lebih mudah. Kotlin dibuat oleh JetBrains, perusahaan yang develop IntellijIDEA, Android Studio. jadi udah klop banget deh sama Android.
Platform Kotlin ada JVM, JavaScript, Android, dan lain2. Kotlin itu 100% Java compatible. jadi kalau misalnya kita lagi ngoding Java, terus tiba2 salah ketik Kotlin, itu Java dan Kotlin masih bisa saling memahami. Jadi bisa dipakai berbarengan.
Selain kompatibel ke Java, Kotlin juga bisa di ‘transpile’ ke JavaScript. Jadi kalau ngoding pakai 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 ga 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
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
Rizki Oktavia:
Kotlin itu benar ya bisa ngurangin cache ya? Saya dengar juga di grup sebelah kalau kotlin itu dasarnya java ya,. Jadi bagi pemula yang mau belajar kotlin tanpa dari java akan kesulitan ya?
Hasna :
halooo 🙂
waah, 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 🙂
bisa dilihat disini yaaa https://github.com/a8m/go-lang-cheat-sheet
3) Go Lang
Go juga merupakan salah satu bahasa yang masih di support oleh Google, karena dibuat langsung oleh tim Engineer di Google. Nahh, 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/ 😂
Nahh, walaupun Go Lang itu dipakai di internalnya Google, tapi 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 di handle error2 versi sebelumnya oleh tim pengembangnya.
Go Lang itu kelebihannya, cepeeeet banget. Jadi hampir semua perusahaan yang punya banyak user di Sillicon Valley itu pakai Go, sperti 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 udah menyediakan banyak library, dan code generator (golanglibs.com)
Project-project besar menggunakan Go : Docker, Kubenetes, Hugo, dan InfluxDB.
Source lain :
nahh, 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.
oh iya, 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 nihh sama bahasa ini, hampir di setiap 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 :)) *baru isu, silahkan di riset lagi* hehe
Java termasuk bahasa yang sudah lamaaa sekali. Walaupun sulit, tapi Java sudah mendarah daging di setiap developer dunia dan sudah dikembangkan jadi bahasa2 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.
Java sudaah 🙂 ada pertanyaan??
3 bahasa lagi, tapi aku bahasnya dikit2 aja 😀
Oh iyaa, 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. Seminar kemarin khusus membahas mengenai keunggulan NodeJS. lengkapnya di link berikut : https://www.slideshare.net/rizafahmi
Ega Radiegtya:
Koreksi dikit n maaf menyela.
Facebook stack tidak menggunakan go. Walaupun ada beberapa yg menggunakan utk opensource mereka. Ex: parse (skrg udah mati). Facebook stack backend menggunakan campuran C++, Java, dan Erlang (di war g ada yg pake ini y? Maybe next time saya bisa isi hehe).
Utk traveloka jg mainly menggunakan Java and beberapa plugin Scala. As I know in 2013 saat mereka develop. Skrg kurg tau jg
Hasna :
Selain Web, JS juga ada di mobile : ReactJS
ada di Server, iOT, Robotika, dll. Luas sekali cakupannya, dan sudah diimplementasikan di banyak 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
Mungkin pemateri saat itu menyampaikan perusahaan yang ‘pernah’ memakai bahasa itu. Bisa di cross check lagi untuk yang penasaran 🙂
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 di support 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 di support Apple saja, jadi eksklusif sekali kalau mastering bahasa Swift. Info-info yang lewat, bayaran untuk programmer iOS cukup besar di Indonesia, hehe.
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.
Swift disampaikan oleh Deny Zakya, iOS Engineer di BBM (KDKonline)
Terakhir, sedikit mengenai Ruby.
7) Ruby
Keunggulan dari Ruby, bahasanya natural dan di klaim sangat manusiawi. Banyak metode yang bisa digunakan untuk menyederhanakan pemrograman, dan menyenangkan untuk dipelajari pemula.
Ruby bisa diimplementasi di Mobile, Web, bahkan Desktop.
https://www.ruby-lang.org/en/about/
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 di aplikasi Microsoft, Pemrograman mesin, desktop, dll.
kalau PHP mungkin di lain waktu akan diberikan materinya di grup ini 🙂
Sebagai kesimpulan, pada akhirnya, setiap bahasa ternyata punya pasarnya masing2 dan kelebihan masing2.
Kalau untuk pemula, belajar Ruby, JavaScript, C#, dan Python bisa jadi pilihan karena bahasanya yang sederhana dan biasa dipakai untuk pemahaman awal beginner programmer
Untuk level pertengahan, setelah memahami logika pemrograman, bisa lanjut belajar OOP di Kotlin atau Java
Level terakhirnya, ada Scala dan Go yang bisa dipelajari ketika sudah cukup banyak pengalaman di dunia programming
Komunitas dan prospek kerja di Indonesia bisa sambil diriset, dan belajar bahasa yang kira-kira punya lifetime paling panjang.
banyak tempat belajar koding, kalau aku paling suka di codecademy.com dan udacity.com karena paling friendly sama beginner 😀 banyaaak bgt resource lain, mungkin ada yg mau share, hehe
kesimpulan akhir sepenuhnya pendapat pribadi, kalau ada salah kata mohon dikoreksii
Selebihnya jika Pengen share tech aneh2 seperti Elixir (erlang), React Native (javascript for mobile apps), GraphQL dsb atau just share apapun silakan kontak Saya atau kunjungi web saya https://dumbwaystolearn.com.
Regards n see ya 🙏🏻🙏🏻🙇
Kalau ada salah kata mohon maaf, credit untuk Sarccom (Software Architecture Community) di Jakarta yang mengadakan acara ini di Microsoft Indonesia, yang waktu itu peminatnya juga tumpah ruah, dan juga ilmu gratis buat siapa saja yang datang 😀 semoga ilmunya bermanfaat dan bisa terus berkembang.
Wassalamualaikum Wr Wb
kontak aku bisa di linkedin.com/in/hasnakhaisa/ , dan instagram @hasnakhaisa 😀
https://www.meetup.com/Software-Architect-Indonesia/events/242334607/?read=1&_af=event&_af_eid=242334607&https=on -> lengkapnya acara kemarin