Bahasa Pemrograman Terbaik untuk Pemula

Jawabannya Golang, ini berdasarkan opiniku pribadi ya, feel free kalau mau debat di kolom komen dibawah

Iya Bahasa Pemrograman yang menurutku terbaik untuk pemula adalah Golang, bukan Python, C, C++, Java, apalagi Rust (Yang ini keterlaluan sih)

Ada beberapa hal yang menurutku penting di bahasa pemrograman terutama untuk seorang pemula, yaitu

Verbose

Bahasanya haruslah verbose, gaada ‘magic’ yang terjadi di bahasa pemrogramannya (So python out). Bukan stringly-typed-api (Ngirim parameter ke fungsi haruslah pake enum dan bukan pake string), sekali baca kode dapat dicari dari mana kode itu berasal dan jelas fungsinya.

Bahasa Golang menurutku sangat verbose, bahkan untuk melakukan sorting datapun harus kita sendiri yang menulisnya (Ni sarkas).

Statically and Strongly Typed

Karena merupakan bahasa pemrograman pertama, jadi menurutku konsep tipe data itu penting banget itu dipahami, jadi bahasa yang dinamis seperti Python dan JS yang tipe datanya ‘aneh’ menurutku gak cocok karena menyembunyikan bagian penting yang harusnya dipahami programmer

Misalnya bayangkan kasus penambahan dua angka di JS dibawah

Konsep itu bakalan susah dimengerti orang jika mereka gak ngerti the underlying consept, yaitu tipe data. Apa yang terjadi ketika int ditambah dengan int, apa yang terjadi ketika string ditambah dengan int, dan banyak contoh kasus lain. Menurutku konsep tipe data perlu dimengerti dulu di bahasa pemrograman pertama, baru boleh mulai di-omit di bahasa pemrograman selanjutnya.

Golang disini menurutku agak kurang, karena Golang bisa mendeklarasikan variabel tanpa menyebutkan tipe datanya (Pake := walrus operator), tapi jika pas pembelajaran ditekankan untuk selalu menulis tipe datanya, seharusnya tidak masalah.

Easy Installation

Kalian pernah nyoba bikin aplikasi C atau C++ di Windows? Perlu install MingW, dan banyak banget kompleksitas ‘asing’ dan aneh lain, dimana aku sendiri yang bisa dibilang cukup berpengalaman pun kesulitan. Menurutku bahasa pemrograman pertama perlu agar bisa diinstall dengan sangat mudah. Bahkan hanya perlu install 1 installer, lalu ngoding di Notepad tanpa Text Editor.

Atau bahkan menurutku lebih baik lagi kalau didukung oleh web compiler, jadi peserta bisa nyoba bahasanya dulu dengan mudah secara online di browser aja. Disini golang bisa dijalankan langsung di web lewat Golang Playground, atau diinstall hanya dengan 1 setup aja.

Easy Runnable

Mirip seperti poin sebelumnya, bahasa pemrograman seharusnya bisa dijalankan hanya dengan Install>Copas Hello World>Command Run di CMD, disini menurutku proses building-running gak masalah jika disembunyikan, lagipula program yang awal-awal dibuat juga ukurannya kecil dan bisa di build kurang dari 1 detik.

Disini Golang bisa dijalankan hanya dengan perintah go run aja langsung dari CMD, dan udah masuk ke program

Not Too Much Concept

Konsep yang perlu dipelajari harus yang esensial saja, dan yang menurutku pribadi paling esensial adalah variabel, perulangan, kondisi, tipe data, composite data, pointer, konstanta, input, output yang mana semuanya ada di Golang dan mudah (Kecuali input yang lumayan ribet)

Bandingkan Golang dengan C# misalnya, dari jumlah keyword yang perlu dipelajari saja sudah jauh berbeda, C# punya sekitar 79 keyword, dan Golang cuma 29. Anggap 1 keyword adalah 1 konsep yang perlu dipelajari, jadi Golang jauh lebih sedikit konsep yang perlu dimengerti

Di C# sebenernya gak semua keywordnya perlu dimengerti, tapi peserta kemungkinan akan overwhelm dengan materi yang belum mereka pelajari dan bahkan gak mereka perlukan.

Aku pribadi mempelajari Golang cuma dalam 1 hari! Sedangkan C# dan Java bahkan sampai sekarangpun (Sekitar 5 tahun maybe) aku belum merasa mengenal bahasanya untuk membuat sesuatu yang berguna didalamnya.

Only One Way To do Something

Mungkin terdengar salah, tapi menurutku dan pengalamanku limitasi adalah sesuatu yang baik. Ketika diberikan 3 opsi untuk cara implementasi sesuatu dibandingkan dengan hanya 1 opsi, kita bakal lebih lama memikirkan cara mana yang paling bagus digunakan untuk menulis kodenya daripada actually nulis kodenya

Pengalamanku lagi, aku nulis Computer Vision di Golang, aku sekarang berpikir mau bikin apa, aku langsung bikin aja. Pas aku mau tulis ulang di C#, aku lama riset perbedaan antara parallel processing, task, async dan banyak lagi, sedangkan di Golang yang hanya ada 1 cara melakukannya (Green thread), ya tinggal pake aja gaperlu milih

Untuk bahasa pemula menurutku makin sedikit konsep dan cara untuk mengimplementasikan sesuatu, semakin efektif mereka bakal mempelajarinya

Less Boilerplate

Java dan C# terlalu banyak boiletplate, untuk membuat hello world sederhanapun perlu menulis banyak namespace, class, fungsi baru bisa menulis hello worldnya. Selain memang kodenya yang perlu banyak dihafal, juga menyulitkan membawa karena wasted vertical dan horizontal space (C# versi 2021 udah mulai mencoba memperbaiki masalah ini)

New Language

C dan C++ menurutku masalah terbesarnya adalah umurnya yang sudah terlalu tua, sehingga ada banyak konsep dari masa lalu yang perlu di maintain sampai sekarang dengan alasan backward compatibility

Masalah yang sama gak kita temui di Golang, kode di tutorial yang ditulis tahun 2013, masih bisa dijalankan di tahun 2021. Golang termasuk bahasa yang sangat selow berkembangnya, tapi ini bagus untuk pemula menurutku.

Misalkan untuk pemrograman Android, tutorial yang dari tahun lalu kemungkinan sudah kadaluarsa sekarang. Misalnya tutorial membuat recycler view yang kuikuti kemarin ternyata sudah kadaluarsa dan udah bukan kode yang valid. Banyak tutorialnya online, tapi tutorialnya sudah kadaluarsa.

So sekianlah artikel setelah lama tidak menulis, kemungkinan artikel ini bakalan kuupdate nantinya lagi jika ada pro kontra dari temen-temen

Leave a Comment