9 bahasa pemrograman mutakhir yang layak dipelajari sekarang

Bahasa besar sangat populer karena suatu alasan: Mereka menawarkan fondasi yang sangat besar dari kode sumber terbuka, pustaka, dan kerangka kerja yang membuat menyelesaikan pekerjaan lebih mudah. Ini adalah hasil dari momentum bertahun-tahun di mana mereka dipilih berkali-kali untuk proyek baru, dan keahlian dalam nuansanya bertambah berharga dan berlimpah.

Terkadang sumber daya yang besar dari bahasa pemrograman mainstream yang populer tidak cukup untuk menyelesaikan masalah khusus Anda. Terkadang Anda harus melihat melampaui yang sudah jelas untuk menemukan bahasa yang tepat, di mana struktur yang tepat membuat perbedaan sambil menawarkan fitur tambahan tersebut untuk membantu kode Anda berjalan secara signifikan lebih cepat tanpa mengutak-atik dan mengoptimalkan tanpa henti. Bahasa ini menghasilkan kode yang jauh lebih stabil dan akurat karena mencegah Anda memprogram kode yang ceroboh atau salah.

Dunia dipenuhi dengan ribuan bahasa pintar yang bukan C #, Java, atau JavaScript. Beberapa hanya dihargai oleh sedikit orang, tetapi banyak yang memiliki komunitas yang berkembang yang terhubung oleh kecintaan yang sama pada fasilitas bahasa dalam memecahkan masalah tertentu. Mungkin tidak ada puluhan juta programmer yang mengetahui sintaks, tetapi terkadang ada manfaat dalam melakukan hal-hal yang sedikit berbeda, karena bereksperimen dengan bahasa baru dapat memberikan keuntungan yang signifikan pada proyek-proyek di masa depan.

Sembilan bahasa berikut harus ada di radar setiap programmer. Mereka mungkin bukan yang terbaik untuk setiap pekerjaan — banyak yang ditujukan untuk tugas-tugas khusus. Tetapi mereka semua menawarkan keuntungan yang layak untuk diselidiki dan diinvestasikan. Mungkin ada suatu hari ketika salah satu dari bahasa ini terbukti persis seperti yang dibutuhkan oleh proyek Anda — atau bos Anda.

Kotkin: Java dipertimbangkan kembali 

Java adalah bahasa hebat yang mendukung beberapa platform paling populer yang pernah ada, tetapi bahasa ini sudah agak tua dan kelemahannya menjadi agak terlalu terkenal. Kotlin adalah anak otak dari tim JetBrains di Rusia, orang-orang yang telah memberi kami IDE yang luar biasa seperti IntelliJ. Kotlin dimaksudkan untuk mengompilasi dengan cepat, hidup berdampingan dengan Java, dan memperbaiki beberapa masalah terburuk yang pernah dialami developer Java. 

Bagian terbaiknya mungkin perhatian yang diberikan pada nilai nullable, kutukan dari semua programmer berorientasi objek. Jika Anda merasa bahwa setengah dari kode Anda memeriksa nilai null, developer Kotlin akan mendengar teriakan Anda. Kotlin mengambil langkah besar untuk memecahkan masalah ini, jika tidak untuk selamanya, setidaknya sebagian besar waktu dengan memaksa pengembang untuk secara eksplisit memanggil variabel yang mungkin bernilai nol. Kemudian secara otomatis memeriksa beberapa kesalahan terburuk yang dapat kita buat dengannya. 

Kotlin dirancang untuk bekerja dengan kode Java yang sudah ada, menjadikannya pilihan yang baik untuk tim yang ingin meningkatkan basis kode secara bertahap. Ini juga akan dikompilasi ke JavaScript atau kode asli jika itu yang Anda butuhkan. Google menyadari nilai bahasanya dan sekarang pengembang Android yang ingin menggunakan Kotlin mendapat dukungan yang baik. 

Strategi berhati-hati ini terbukti populer karena memungkinkan tim mengadopsi bahasa secara perlahan. Grup Kotlin telah mendapatkan banyak penggemar dalam tim pengembangan besar di bank besar, grup konsultan, dan perusahaan aplikasi. 

Erlang: Pemrograman fungsional untuk sistem real-time

Erlang mulai jauh di dalam dunia yang menakutkan dari sakelar telepon di Ericsson, perusahaan telekomunikasi Swedia. Ketika programmer Ericsson mulai membual tentang kinerja "sembilan 9", dengan mengirimkan 99,9999999 persen data dengan Erlang, pengembang di luar Ericsson mulai memperhatikan.

Rahasia Erlang adalah paradigma fungsional. Sebagian besar kode dipaksa untuk beroperasi di dunia kecilnya sendiri di mana ia tidak dapat merusak sistem lainnya melalui efek samping. Fungsi melakukan semua pekerjaannya secara internal, berjalan dalam "proses" kecil yang bertindak seperti kotak pasir dan hanya berbicara satu sama lain melalui pesan email. Anda tidak bisa begitu saja mengambil penunjuk dan membuat perubahan cepat ke status di mana pun di tumpukan. Anda harus tetap berada di dalam hierarki panggilan. Ini mungkin membutuhkan lebih banyak pemikiran, tetapi kesalahan cenderung tidak menyebar.

Model ini juga mempermudah kode waktu proses untuk menentukan apa yang dapat berjalan pada waktu yang sama. Dengan konkurensi yang begitu mudah dideteksi, penjadwal runtime dapat memanfaatkan overhead yang sangat rendah dalam menyiapkan dan meruntuhkan proses. Penggemar Erlang suka membual tentang menjalankan 20 juta "proses" pada saat yang sama di server Web.

Jika Anda membangun sistem real-time tanpa ruang untuk data yang hilang, seperti sistem penagihan untuk sakelar ponsel, periksa Erlang.

Pergi: Sederhana dan dinamis

Google bukanlah organisasi pertama yang mensurvei kumpulan bahasa, hanya menemukan mereka berantakan, rumit, dan seringkali lambat. Pada tahun 2009, perusahaan merilis solusinya: bahasa yang diketik secara statis yang terlihat seperti C tetapi menyertakan kecerdasan latar belakang untuk menyelamatkan programmer dari keharusan menentukan jenis dan menyulap panggilan malloc. Dengan Go, programmer dapat memiliki kerumitan dan struktur C yang dikompilasi, bersama dengan kemudahan menggunakan bahasa skrip dinamis.

Sementara Sun dan Apple mengikuti jalur yang sama dalam membuat Java dan Swift, Google membuat satu keputusan yang sangat berbeda dengan Go: Pembuat bahasa ingin membuat Go "cukup sederhana untuk dipegang oleh satu pemrogram". Rob Pike, salah satu pencipta Go, terkenal mengatakan kepada Ars Technica bahwa "terkadang Anda bisa mendapatkan lebih banyak dalam jangka panjang dengan mengambilnya." Jadi, ada beberapa tambahan zippy seperti generics, type inheritance, atau assertions, hanya blok sederhana yang bersih dari kode if-then-else yang memanipulasi string, array, dan tabel hash.

Bahasa ini dilaporkan sudah mapan di dalam kerajaan besar Google dan mendapatkan penerimaan di tempat lain di mana pecinta bahasa dinamis dari Python dan Ruby dapat dibujuk untuk menerima beberapa ketelitian yang berasal dari bahasa yang dikompilasi.

Jika Anda seorang pemula yang mencoba menarik perhatian Google dan Anda perlu membangun logika bisnis sisi server, Go adalah tempat yang tepat untuk memulai.

OCaml: Penyulap hierarki data kompleks

Beberapa programmer tidak ingin menentukan jenis variabel mereka, dan untuk mereka kami telah membuat bahasa dinamis. Yang lain menikmati kepastian menentukan apakah variabel memegang integer, string, atau mungkin sebuah objek. Bagi mereka, banyak bahasa yang dikompilasi menawarkan semua dukungan yang mereka inginkan.

Lalu ada orang yang memimpikan hierarki tipe yang rumit dan bahkan berbicara tentang menciptakan tipe "aljabar". Mereka membayangkan daftar dan tabel dengan tipe heterogen yang disatukan untuk mengekspresikan ekstravaganza data yang kompleks dan bertingkat. Mereka berbicara tentang polimorfisme, primitif pencocokan pola, dan enkapsulasi data. Ini hanyalah permulaan dari dunia jenis, metatipe, dan metametatipe yang kompleks dan sangat terstruktur yang mereka inginkan.

Bagi mereka, ada OCaml, sebuah upaya serius komunitas bahasa pemrograman untuk mempopulerkan banyak ide di atas. Ada dukungan objek, manajemen memori otomatis, dan portabilitas perangkat. Bahkan ada aplikasi OCaml yang tersedia dari App Store Apple.

Proyek ideal untuk OCaml mungkin membangun situs web matematika simbolis untuk mengajarkan aljabar.

TypeScript: JavaScript yang Anda suka

Setiap orang dapat menggunakan JavaScript tetapi sepertinya tidak ada yang menyukai pemrograman di dalamnya. Atau begitulah tampaknya karena setiap orang saat ini memiliki pra-prosesor atau super-prosesor favorit mereka yang memperluas dan meningkatkan bahasa. TypeScript adalah favorit saat ini karena menambahkan tipe ke semua variabel, sesuatu yang membuat programmer Java merasa sedikit lebih aman.

Alasan terbesar mengapa lebih banyak pengembang tertarik pada TypeScript sekarang adalah Angular, kerangka kerja yang bagus untuk membangun aplikasi web yang kebetulan ditulis dalam TypeScript. Kerutan yang menarik adalah Anda tidak perlu menggunakan TypeScript untuk menggunakan Angular. Anda dapat menikmati kualitas kodenya dan menggabungkannya dengan JavaScript lama Anda. Anda tidak perlu memilih.

Alasannya adalah TypeScript adalah superset dari JavaScript. Pengembang menambahkan pengetikan dengan cara yang sesuai dengan JavaScript kuno, sesuatu yang sangat berguna jika ada orang di kantor yang tidak menyukai gagasan tentang tipe atau yang memegang pendapat dogmatis tentang bagaimana tipe menekan gaya mereka. Jenisnya secara efektif opsional dan orang yang meluangkan waktu untuk menentukan jenisnya dapat menuai hasilnya. 

Pengetikan yang kuat memiliki banyak keuntungan seperti menangkap beberapa bug lebih awal dan meningkatkan kualitas alat secara umum. Menambahkan jenis memungkinkan editor cerdas membantu Anda dengan saran cerdas saat Anda menyusun karya Anda. Penyelesaian kode jauh lebih cepat dan lebih akurat ketika rutinitas penyelesaian kode mengetahui sesuatu tentang fungsi dan argumen. Itu berarti lebih sedikit gerakan jari pada keyboard. Para pecinta TypeScript yakin bahwa keunggulan seperti ini akan memikat siapa pun yang ragu-ragu tentang kekuatan bahasa yang sangat ditentukan. 

Rust: Bahasa sistem yang aman dan dapat digunakan

Pemrogram front-end bukan satu-satunya yang bersenang-senang. Rust seperti versi C yang diperbarui dengan banyak pengetikan polimorfik bercampur di bawah kap mesin. Ini telah memenangkan "bahasa pemrograman yang paling disukai" dari pemilih Stack Overflow selama dua tahun terakhir berturut-turut, suatu kehormatan yang juga tercermin dalam indeks popularitas bahasa Stack Overflow. Hanya beberapa tahun yang lalu, Rust berada di sekitar 50 di daftar, dan tahun ini melonjak menjadi 18. 

Mengapa? Mungkin karena Rust membersihkan banyak masalah besar dengan C tanpa melakukan terlalu banyak pegangan atau memaksa pengembang untuk tidak menggunakan straightjackets virtual. Pemrogram sistem suka tidak bergantung pada pengumpulan sampah, layanan hebat sampai dimulai tepat pada waktu yang paling tidak tepat. Rust membuat Anda merasa seperti Anda bertanggung jawab atas apa yang terjadi pada nomor di memori, tidak menunggu beberapa layanan untuk melakukan pekerjaan untuk Anda.

Sistem pengetikannya umum dan fleksibel, menawarkan jenis polimorfisme yang diilhami oleh Haskell, setidaknya dalam abstrak. Namun, ketika diimplementasikan, compiler menyesuaikan struktur untuk setiap jenis, sesuatu yang oleh para developer disebut "monomorphism". Bahasa ini menambahkan beberapa batasan lain agar pengembang tidak keluar jalur. Setiap nilai, misalnya, adalah "dimiliki" —yang berarti nilai tersebut hanya dapat dikonsumsi sekali, mencegah jaringan referensi yang kusut dari bagian lain dari program yang bertindak seolah-olah mereka memiliki kendali penuh atas suatu nilai.   

Semua fitur ini ditambah beberapa lagi — seperti threading bebas kondisi balapan — berarti bahwa pemrogram baru dapat mulai menulis kode sistem tanpa mengalami beberapa anti-pola terburuk yang telah lama mengganggu pemrogram C. Anda mendapatkan semua keseruan hard-core, performa tinggi menulis C dengan kompiler yang akan menangkap banyak kesalahan terburuk bahkan sebelum kode dijalankan. 

Scala: Pemrograman fungsional di JVM

Jika Anda memerlukan kesederhanaan kode dari hierarki berorientasi objek untuk proyek Anda tetapi menyukai paradigma fungsional, Anda memiliki beberapa pilihan. Jika Java adalah wilayah Anda, Scala adalah pilihan untuk Anda.

Scala berjalan di JVM, membawa semua struktur pemrograman fungsional yang bersih ke dunia Java dengan mengirimkan kode yang sesuai dengan spesifikasi kelas Java dan tautan dengan file JAR lainnya. Jika file JAR lainnya memiliki efek samping dan sakit kepala parah lainnya, biarkan saja. Kode Anda akan bersih.

Mekanisme tipe sangat statis dan kompilator melakukan semua pekerjaan untuk menyimpulkan tipe. Tidak ada perbedaan antara tipe primitif dan tipe objek karena Scala ingin semuanya diturunkan dari satu panggilan objek-ur, Any. Sintaksnya jauh lebih sederhana dan lebih bersih daripada Java; Orang-orang Scala menyebutnya "upacara rendah". Anda dapat meninggalkan nama variabel CamelCase sepanjang paragraf di Java Land.  

Scala menawarkan banyak fitur yang diharapkan dari bahasa fungsional, seperti evaluasi malas, rekursi tail, dan variabel yang tidak dapat diubah, tetapi telah dimodifikasi untuk bekerja dengan JVM. Metatipe dasar atau variabel kumpulan, seperti daftar tertaut atau tabel hash, dapat berubah atau tidak dapat diubah. Rekursi tail berfungsi dengan contoh yang lebih sederhana, tetapi tidak dengan contoh yang rumit dan saling rekursif. Semua ide ada di sana, meskipun implementasinya mungkin dibatasi oleh JVM. Kemudian lagi, ia juga hadir dengan semua platform Java yang ada di mana-mana dan kumpulan kode Java yang ada yang ditulis oleh komunitas open source. Itu bukan pertukaran yang buruk untuk banyak masalah praktis.

Jika Anda harus menyulap data dalam cluster seribu prosesor dan memiliki setumpuk kode Java lama, Scala adalah solusi yang bagus.