21 tren pemrograman populer — dan 21 menjadi dingin

Programmer suka mencemooh dunia mode di mana tren berhembus seperti angin sepoi-sepoi. Panjang rok naik dan turun, pigmen datang dan pergi, dasi semakin tebal, lalu lebih tipis. Namun dalam dunia teknologi, ketelitian, sains, matematika, dan presisi menguasai mode.

Itu tidak berarti pemrograman adalah profesi tanpa tren. Perbedaannya adalah bahwa tren pemrograman didorong oleh efisiensi yang lebih besar, penyesuaian yang ditingkatkan, dan kemudahan penggunaan. Teknologi baru yang menghadirkan satu atau lebih gerhana ini generasi sebelumnya. Itu adalah meritokrasi, bukan imajinasi.

Berikut ini adalah daftar apa yang populer dan apa yang tidak di antara programmer saat ini. Tidak semua orang setuju dengan daftar A, daftar D, dan apa yang ditinggalkan. Itulah yang membuat pemrograman menjadi profesi yang menarik tanpa akhir: perubahan cepat, debat penuh gairah, serangan balik tiba-tiba.

Panas: Preprocessors

Bukan: Tumpukan bahasa lengkap

Belum lama ini orang yang menciptakan bahasa pemrograman baru harus membangun segala sesuatu yang mengubah kode menjadi bit yang diumpankan ke silikon. Kemudian seseorang menyadari bahwa mereka dapat mendukung pekerjaan yang telah dilakukan sebelumnya. Sekarang orang-orang dengan ide yang cerdas cukup menulis preprocessor yang menerjemahkan kode baru menjadi sesuatu yang lama dengan kumpulan library dan API yang kaya.

Bahasa skrip seperti Python atau JavaScript dulunya terbatas pada proyek kecil, tetapi sekarang menjadi fondasi untuk pekerjaan yang serius. Dan mereka yang tidak suka JavaScript membuat CoffeeScript, sebuah preprocessor yang memungkinkan mereka membuat kode, sekali lagi, tanpa tanda baca yang memberatkan. Ada lusinan variasi yang menentukan dan memprediksikan sintaks dengan cara yang berbeda.

Orang-orang yang menyukai pengetikan dinamis menciptakan Groovy, versi Java yang lebih sederhana tanpa tanda baca yang terlalu mendesak. Tampaknya ada lusinan bahasa — Groovy, Scala, Clojure, Kotlin, dll. —Yang berjalan di JVM, tetapi hanya ada satu JVM. Anda juga dapat menjalankan banyak bahasa di VM .Net. Mengapa menemukan kembali roda?

Hot: Tanpa server

Bukan: Docker

Ini tidak sepenuhnya benar. Kontainer Docker ada dimana-mana. Server berputar dan menutup kontainer sepanjang waktu. Namun, kontainer Docker adalah soooo jauh lebih besar dari yang mereka butuhkan untuk menjadi.

Jika Anda memikirkannya, Anda hanya dapat menulis beberapa lusin baris kode pengambilan keputusan nyata untuk layanan mikro yang Anda terapkan, tetapi Anda harus memasukkan miliaran baris konfigurasi untuk membuat Node.js dan apa pun yang dimulai up dengan benar dengan Docker. Ya, itu semua boilerplate, tapi itu tidak penting.

Arsitektur tanpa server yang baru memungkinkan kami menerapkan beberapa pernyataan jika-maka-lain yang membuat keputusan nyata. Segala sesuatu yang lain diserahkan kepada orang-orang yang menyewakan kepada kami platform tanpa server.

Ya, kami akan mengeluh tentang penguncian dan kurangnya penyesuaian dalam beberapa tahun, tetapi untuk saat ini opsi tanpa server tampak seperti bantuan manis dari semua pengembang dan konfigurasi.

Hot: kerangka kerja JavaScript MV *

Bukan: file JavaScript

Dahulu kala, semua orang belajar menulis JavaScript untuk memunculkan kotak peringatan atau memeriksa untuk melihat bahwa alamat email di formulir berisi tanda @. Sekarang aplikasi HTML AJAX sangat canggih sehingga hanya sedikit orang yang memulai dari awal. Lebih mudah untuk mengadopsi kerangka kerja yang rumit dan menulis sedikit kode perekat untuk menerapkan logika bisnis Anda.

Sekarang ada lusinan kerangka kerja seperti Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS, dan banyak lagi, semuanya siap untuk menangani acara dan konten untuk aplikasi dan halaman web Anda.

Itu hanyalah aplikasi web. Ada juga sejumlah yang disetel untuk menawarkan pengembangan lintas platform untuk dunia smartphone / tablet. Teknologi seperti NativeScript, PhoneGap, Apache Cordova, dan React Native adalah beberapa opsi untuk membuat aplikasi dari teknologi HTML5.

Hot: kerangka CSS

Bukan: CSS Generik

Sekali waktu, menambahkan sedikit pizzazz ke halaman web berarti membuka file CSS dan memasukkan perintah baru seperti font-style:italic. Kemudian Anda menyimpan file tersebut dan pergi makan siang setelah bekerja keras di pagi hari. Sekarang halaman web sangat canggih sehingga tidak mungkin untuk mengisi file dengan perintah sederhana seperti itu. Satu tweak ke warna dan semuanya rusak. Ini seperti apa yang mereka katakan tentang konspirasi dan ekologi: Semuanya saling berhubungan.

Di situlah kerangka kerja CSS seperti SASS dan sepupunya seperti Kompas telah menemukan pijakan yang kokoh. Mereka mendorong pengkodean yang melek huruf dan stabil dengan menawarkan konstruksi pemrograman seperti variabel nyata, blok bersarang, dan campuran. Ini mungkin tidak terdengar seperti banyak hal baru dalam lapisan pemrograman, tetapi ini adalah lompatan besar ke depan untuk lapisan desain.

Hot: SVG di atas Kanvas

Bukan: Flash

Flash telah membuat orang gila selama bertahun-tahun, tetapi para seniman selalu menyukai hasilnya. Rendering anti-alias tampak hebat, dan banyak seniman berbakat telah membangun tumpukan kode Flash yang dalam untuk menawarkan transisi dan animasi yang canggih. Permainan kasual terus menjadi sangat populer. Jadi Flash tetap hidup di web.

Sekarang lapisan JavaScript memiliki kemampuan untuk melakukan banyak hal yang sama, pembuat dan pengembang browser bersorak untuk akhir Flash. Mereka melihat integrasi yang lebih baik dengan lapisan DOM yang berasal dari format baru seperti SVG (Scalable Vector Graphics). SVG dan HTML terdiri dari satu tumpukan besar tag yang sering kali lebih mudah digunakan oleh pengembang web. Lalu ada API besar yang menawarkan gambar rumit pada objek Canvas, seringkali dengan bantuan kartu video. Gabungkan semuanya dan Anda hanya memiliki sedikit alasan untuk menggunakan Flash lagi.

Hot: Almost big data (analisis tanpa Hadoop)

Bukan: Big data (dengan Hadoop)

Semua orang suka merasa seperti Orang Besar di Kampus, dan jika tidak, mereka mencari kampus dengan ukuran yang sesuai di mana mereka bisa menonjol. Maka tidak mengherankan bahwa ketika kata-kata "data besar" mulai mengalir melalui suite eksekutif, gugatan mulai meminta sistem data besar terbesar dan paling kuat seolah-olah mereka membeli kapal pesiar atau gedung pencakar langit.

Lucunya, banyak masalah yang tidak cukup besar untuk menggunakan solusi data besar termewah. Tentu, perusahaan seperti Google atau Yahoo melacak semua penjelajahan web kami; mereka memiliki file data yang diukur dalam petabyte atau yottabytes. Tetapi sebagian besar perusahaan memiliki kumpulan data yang dapat dengan mudah masuk ke dalam RAM PC dasar. Saya menulis ini di PC dengan RAM 16GB — cukup untuk satu miliar acara dengan beberapa byte. Di sebagian besar algoritme, data tidak perlu dibaca ke dalam memori karena streaming dari SSD tidak masalah.

Akan ada contoh yang menuntut waktu respons cepat dari lusinan mesin di cloud Hadoop yang berjalan secara paralel, tetapi banyak yang akan melakukannya dengan baik pada satu mesin tanpa kerumitan koordinasi atau komunikasi.

Hot: Percikan

Bukan: Hadoop

Hadoop tidak terlalu dingin. Lebih dari itu Apache Spark sangat panas, membuat model Hadoop terlihat agak tua. Spark meminjam beberapa ide terbaik dari pendekatan Hadoop untuk mengekstrak makna dari volume data yang besar dan memperbaruinya dengan beberapa perbaikan yang solid yang membuat kode berjalan jauh lebih cepat. Yang terbesar mungkin adalah cara Spark menyimpan data dalam memori cepat alih-alih mengharuskan semuanya ditulis dan dibaca dari sistem file terdistribusi.

Tentu saja banyak orang yang menggabungkan keduanya dengan menggunakan kecepatan pemrosesan Spark pada data yang disimpan di sistem file terdistribusi Hadoop. Hadoop dan Spark lebih sering menjadi mitra daripada pesaing.

Hot: Konfigurasi database

Bukan: Pemrograman perangkat lunak

Dahulu kala, programmer sering bercanda bahwa mereka tidak tahu seperti apa pemrograman di abad mendatang, tetapi mereka tahu itu akan disebut Fortran. Lelucon ini sangat lucu sehingga dinosaurus mereka jatuh dan pakaian dalam kayunya patah. Kemudian mereka akan kembali mengonfigurasi database.

Dan kami masih membangun basis data hari ini tetapi apa yang kami anggap sebagai “basis data” kini jauh lebih canggih dan kuat. Basis data siap pakai akan menyinkronkan dirinya sendiri di seluruh benua sambil menawarkan pertukaran yang fleksibel antara konsistensi dan kecepatan. Beberapa layanan cloud seperti Firebase akan memasukkan semua data baru ke aplikasi web yang berjalan di klien seluler.

Sebagian besar revolusi tanpa server didasarkan pada kesadaran bahwa banyak penyimpanan data cloud sekarang sangat kuat sehingga kita hanya perlu menulis beberapa klausul jika-maka-lain untuk membangun aplikasi web yang cukup keren.

Hot: Kerangka permainan

Bukan: Pengembangan game asli

Dahulu kala, pengembangan game berarti mempekerjakan banyak pengembang yang menulis semuanya di C dari awal. Tentu, harganya semiliar dolar, tapi kelihatannya bagus dan berjalan seperti angin. Sekarang, tidak ada yang mampu membeli kode khusus yang mewah. Sebagian besar pengembang game melepaskan harga diri mereka bertahun-tahun yang lalu dan menggunakan pustaka seperti Unity, Corona, atau LibGDX untuk membangun sistem mereka. Mereka tidak menulis kode C sebanyak instruksi untuk perpustakaan.

Apakah memalukan bahwa game kami tidak dibuat dengan bangga tetapi dicap menggunakan mesin yang sama? Nggak. Sebagian besar pengembang merasa lega. Karena mereka tidak harus berurusan dengan detail, mereka dapat berkonsentrasi pada permainan game, alur naratif, karakter, dan seni. 

Hot: Generator situs web statis

Bukan: Aplikasi web satu halaman

Ingat ketika URL mengarah ke halaman web yang diisi dengan teks dan gambar statis? Kemudian aplikasi web satu halaman yang dinamis muncul dan menggantikan semuanya dengan satu aplikasi web pintar yang akan mengambil data yang dimaksud. Tebak apa? Pendulumnya berayun ke belakang dan semua anak sedang membuat generator situs statis. Ada puluhan. Ini seperti hibrida. Anda meletakkan semua data dalam satu tumpukan dan kemudian Anda menulis beberapa kode yang menempelkan data ke dalam beberapa templat sehingga ada satu file HTML untuk setiap URL statis dan ini berasal dari setiap baris dalam tabel data.

Anak-anak mengira situs statis ini supercepat dan memang begitu. Jangan beri tahu mereka bahwa sistem dinamis lama seperti WordPress dan Drupal bekerja dengan cara yang hampir sama, dengan menyimpan cache yang cukup banyak diisi dengan halaman statis yang dibuat dengan data terbaru.

Hot: GraphQL

Bukan: REST

Bukannya REST sudah mati. Hanya saja kami ingin berbuat lebih banyak dengan API, dan GraphQL adalah salah satu caranya. GraphQL mengembalikan data di JSON, seperti REST. GraphQL dimulai dengan HTTP POST, seperti banyak panggilan REST. Hanya saja sintaks GraphQL memungkinkan Anda menentukan kueri yang sangat kompleks hanya dengan beberapa penekanan tombol. Hal ini mempermudah pemrogram untuk menanyakan apa yang mereka inginkan, dan ini mengurangi jumlah pekerjaan sisi server yang harus dilakukan ketika seseorang menginginkan API yang sedikit berbeda.

Hot: IDE Cloud

Bukan: IDE Lokal

Dahulu kala, orang menggunakan kompiler baris perintah. Kemudian seseorang mengintegrasikannya dengan editor dan alat lain untuk membuat IDE. Sekarang saatnya IDE dikalahkan (ha) oleh alat berbasis browser yang memungkinkan Anda mengedit kode, bahkan kode sistem yang berfungsi. Jika Anda tidak menyukai cara kerja WordPress, ia hadir dengan editor bawaan yang memungkinkan Anda mengubah kode saat itu juga. Azure dari Microsoft memungkinkan Anda menulis kode lem JavaScript tepat di portalnya. Sistem ini tidak menawarkan lingkungan debugging terbaik, dan ada sesuatu yang berbahaya tentang mengedit kode produksi, tetapi idenya memiliki kaki.

Anda dapat memulai dengan AWS Cloud9, Codenvy, dan Mozilla's WebIDE, tetapi tetap menjelajah. Alat berbasis web menjadi semakin kuat. Mungkin, misalnya, untuk membangun seluruh proyek analisis data besar di situs web Microsoft Azure. Dan jika Anda mulai menjelajahi opsi tanpa server, Anda akan segera mengetahui bahwa Anda dapat menulis semua kode Anda dalam elemen formulir di halaman web. Yang tidak lebih besar dari formulir yang Anda gunakan untuk memperbarui teman Anda di Facebook.

Panas: GPU

Bukan: CPU

Ketika perangkat lunak itu sederhana dan instruksinya diatur dalam garis yang bagus, CPU adalah raja komputer karena ia melakukan semua pekerjaan berat. Sekarang video game dipenuhi dengan rutinitas grafis ekstensif yang dapat berjalan secara paralel, kartu video menjalankan pertunjukan. Sangat mudah untuk menghabiskan $ 500, $ 600, atau lebih untuk kartu video mewah, dan beberapa pemain game yang serius menggunakan lebih dari satu. Itu lebih dari dua kali lipat harga banyak desktop dasar.

Plus, gamer bukan satu-satunya yang membual tentang kartu GPU mereka. Ilmuwan komputer sekarang mengubah banyak aplikasi paralel agar berjalan ratusan kali lebih cepat di GPU. Dan data scientist menggunakan server yang dikemas dengan GPU untuk mempercepat pengembangan model pembelajaran mesin mereka. 

Hot: GitHub

Bukan: Resume

Tentu, Anda dapat mempelajari tentang seorang kandidat dengan membaca daftar pencapaian besar-besaran yang mencakup wakil presiden klub catur SMP. Tetapi membaca kode seseorang yang sebenarnya jauh lebih kaya dan lebih instruktif. Apakah mereka menulis komentar yang bagus? Apakah mereka membuang terlalu banyak waktu untuk memecah item menjadi kelas-kelas kecil yang tidak banyak membantu? Apakah ada arsitektur nyata dengan ruang untuk perluasan? Semua pertanyaan ini dapat dijawab dengan melihat kodenya.

Inilah sebabnya mengapa berpartisipasi dalam proyek open source menjadi semakin penting untuk mencari pekerjaan. Berbagi kode dari proyek berpemilik itu sulit, tetapi kode sumber terbuka bisa digunakan di mana-mana.