ke3

Selasa, 24 Oktober 2017

10 Bahasa Pemograman yang biasa digunakan

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

Metode Perancangan Basis Data

 Metode perancangan basis data secara umum dikelompokkan kedalam: 1. Preliminary Design 2. Scratching Methode 1. Preliminary Design, Cirinya...