21 trend pengaturcaraan yang panas - dan 21 akan menjadi sejuk

Pengaturcara suka mencemooh dunia fesyen di mana tren melambung seperti angin sepoi-sepoi. Panjang skirt naik dan turun, pigmen datang dan pergi, ikatan menjadi lebih gemuk, kemudian nipis. Tetapi dalam dunia teknologi, ketelitian, sains, matematik, dan ketepatan mengatasi mode.

Itu bukan untuk mengatakan bahawa pengaturcaraan adalah profesion tanpa trend. Perbezaannya ialah tren pengaturcaraan didorong oleh kecekapan yang lebih besar, penyesuaian yang meningkat, dan kemudahan penggunaan. Teknologi baru yang memberikan satu atau lebih gerhana generasi sebelumnya. Ini adalah meritokrasi, bukan tipu muslihat.

Yang berikut adalah senarai perkara yang hangat dan yang tidak ada di antara pengaturcara masa kini. Tidak semua orang akan bersetuju dengan apa yang disenaraikan A, apa yang D-disenaraikan, dan apa yang tersisa. Itulah yang menjadikan pengaturcaraan menjadi profesion yang menarik tanpa henti: perubahan pantas, perbahasan penuh semangat, kemunculan semula secara tiba-tiba.

Panas: Pemprosesan awal

Tidak: Tumpukan bahasa penuh

Tidak lama dahulu orang yang membuat bahasa pengaturcaraan baru harus membina semua yang mengubah kod menjadi bit yang dimasukkan ke silikon. Kemudian seseorang mengetahui bahawa mereka dapat mengingat kembali pekerjaan yang sebelumnya. Kini orang yang mempunyai idea pintar hanya menulis praprosesor yang menerjemahkan kod baru menjadi sesuatu yang lama dengan sekumpulan perpustakaan dan API yang kaya.

Bahasa skrip seperti Python atau JavaScript dulunya terbatas pada projek kecil, tetapi sekarang mereka menjadi asas untuk kerja serius. Dan mereka yang tidak menyukai JavaScript membuat CoffeeScript, praprosesor yang memungkinkan mereka membuat kod, sekali lagi, tanpa tanda baca yang mengerikan. Terdapat puluhan variasi menetapkan dan menentukan sintaks dengan cara yang berbeza.

Orang yang gemar menaip dinamik mencipta Groovy, versi Java yang lebih ringkas tanpa tanda baca yang terlalu kuat. Nampaknya terdapat puluhan bahasa - Groovy, Scala, Clojure, Kotlin, dan lain-lain - yang berjalan di JVM, tetapi hanya ada satu JVM. Anda boleh menjalankan banyak bahasa di. Net VM juga. Mengapa mencipta semula roda?

Panas: Tanpa pelayan

Bukan: Docker

Ini tidak betul. Bekas dok ada di mana-mana. Pelayan berputar dan mematikan kontena sepanjang masa. Walau bagaimanapun, bekas buruh pelabuhan adalah soooo lebih besar daripada yang mereka perlukan untuk menjadi.

Sekiranya anda memikirkannya, anda mungkin hanya menulis beberapa lusin baris kod membuat keputusan sebenar untuk perkhidmatan mikro yang anda gunakan, tetapi anda perlu memasukkan konfigurasi baris untuk membuat Node.js dan apa sahaja yang lain bermula naik dengan betul dengan Docker. Ya, itu semua plat pendidih, tetapi tidak ada gunanya.

Senibina tanpa pelayan baru membolehkan kami menggunakan hanya beberapa pernyataan if-then-else yang membuat keputusan sebenar. Semua yang lain diserahkan kepada orang-orang yang menyewa kami platform tanpa pelayan.

Ya, kami akan mengeluh tentang penguncian dan kekurangan penyesuaian dalam beberapa tahun, tetapi buat masa ini pilihan tanpa pelayan nampaknya melegakan semua penyokong dan konfigurasi.

Panas: kerangka kerja JavaScript MV *

Bukan: fail JavaScript

Dahulu, semua orang belajar menulis JavaScript untuk memunculkan kotak amaran atau memeriksa untuk melihat bahawa alamat e-mel dalam borang itu mengandungi tanda @. Kini aplikasi HTML AJAX begitu canggih sehingga sedikit orang bermula dari awal. Lebih mudah untuk menggunakan kerangka kerja yang rumit dan menulis sedikit kod gam untuk melaksanakan logik perniagaan anda.

Kini terdapat puluhan kerangka seperti Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS, dan banyak lagi, semuanya bersedia untuk menangani acara dan kandungan untuk aplikasi dan halaman web anda.

Itu hanyalah aplikasi web. Ada juga sejumlah yang disesuaikan untuk menawarkan pengembangan lintas platform untuk dunia telefon pintar / tablet. Teknologi seperti NativeScript, PhoneGap, Apache Cordova, dan React Native adalah beberapa pilihan untuk membuat aplikasi daripada teknologi HTML5.

Panas: kerangka CSS

Bukan: CSS generik

Sekali sekala, menambahkan sedikit pizzazz ke laman web bermaksud membuka fail CSS dan memasukkan perintah baru seperti font-style:italic. Kemudian anda menyimpan fail itu dan pergi makan tengah hari selepas kerja pagi yang sukar. Sekarang laman web begitu canggih sehingga mustahil untuk mengisi fail dengan perintah mudah seperti itu. Satu perubahan warna dan semuanya menjadi tidak senang. Seperti apa yang mereka katakan mengenai konspirasi dan ekologi: Semuanya saling berkaitan.

Di situlah kerangka kerja CSS seperti SASS dan sepupunya seperti Compass menemui asas yang kukuh. Mereka mendorong pengkodan yang celik dan stabil dengan menawarkan konstruk pengaturcaraan seperti pemboleh ubah sebenar, blok sarang, dan campuran. Mungkin tidak terdengar seperti baru dalam lapisan pengaturcaraan, tetapi ini merupakan lompatan besar untuk lapisan reka bentuk.

Panas: SVG di Canvas

Bukan: Kilat

Flash telah membuat orang gila selama bertahun-tahun, tetapi para seniman selalu menyukai hasilnya. Render anti-alias kelihatan hebat, dan banyak seniman berbakat telah membina tumpukan kod Flash untuk menawarkan peralihan dan animasi yang canggih. Permainan kasual terus menjadi sangat popular. Oleh itu, Flash hidup di web

Sekarang kerana lapisan JavaScript mempunyai kemampuan untuk melakukan hal yang sama, pembuat penyemak imbas dan pembangun bersorak untuk akhir Flash. Mereka melihat integrasi yang lebih baik dengan lapisan DOM berasal dari format baru seperti SVG (Scalable Vector Graphics). SVG dan HTML merangkumi satu timbunan teg yang sering lebih mudah digunakan oleh pembangun web. Kemudian ada API besar yang menawarkan lukisan terperinci pada objek Canvas, selalunya dengan bantuan kad video. Kumpulkan mereka dan anda tinggal dengan beberapa alasan untuk menggunakan Flash lagi.

Panas: Hampir data besar (analisis tanpa Hadoop)

Bukan: Data besar (dengan Hadoop)

Semua orang suka merasa seperti Orang Besar di Kampus, dan jika tidak, mereka mencari kampus dengan ukuran yang sesuai di mana mereka boleh menonjol. Tidak mengherankan ketika kata-kata "data besar" mulai mengalir melalui suite eksekutif, pakaian itu mulai meminta sistem data besar yang paling kuat seolah-olah mereka membeli kapal layar atau pencakar langit.

Yang melucukan ialah banyak masalah yang tidak cukup besar untuk menggunakan penyelesaian data besar paling menarik. Pasti, syarikat seperti Google atau Yahoo mengesan semua pelayaran web kami; mereka mempunyai fail data yang diukur dalam petabyte atau yottabyte. Tetapi kebanyakan syarikat mempunyai set data yang mudah dimasukkan ke dalam RAM PC asas. Saya menulis ini pada PC dengan RAM 16 GB — cukup untuk satu bilion acara dengan segelintir bait. Dalam kebanyakan algoritma, data tidak perlu dibaca ke dalam memori kerana streaming dari SSD baik-baik saja.

Akan ada keadaan yang menuntut masa tindak balas yang cepat dari puluhan mesin di awan Hadoop yang berjalan secara selari, tetapi banyak yang akan melakukan pemasangan dengan baik pada satu mesin tanpa perlu adanya koordinasi atau komunikasi.

Panas: Spark

Bukan: Hadoop

Hadoop tidak begitu sejuk. Lebih-lebih lagi Apache Spark berwarna merah panas, menjadikan model Hadoop kelihatan agak tua. Spark meminjam beberapa idea terbaik dari pendekatan Hadoop untuk mengekstrak makna dari sejumlah besar data dan mengemas kini mereka dengan beberapa peningkatan kukuh yang menjadikan kod berjalan lebih cepat. Yang terbesar mungkin adalah cara Spark menyimpan data dalam memori cepat dan bukannya mengharuskan semuanya ditulis dan dibaca dari sistem fail yang diedarkan.

Sudah tentu banyak orang menggabungkan keduanya dengan menggunakan kelajuan pemprosesan Spark pada data yang tersimpan dalam sistem fail diedarkan Hadoop. Hadoop dan Spark lebih kerap menjadi rakan kongsi daripada pesaing.

Panas: Konfigurasi pangkalan data

Bukan: Pengaturcaraan perisian

Lama dahulu, pengaturcara sering bergurau bahawa mereka tidak tahu seperti apa pengaturcaraan pada abad berikutnya, tetapi mereka tahu itu akan disebut Fortran. Lelucon ini sangat lucu sehingga mereka jatuh dari dinosaur mereka dan memecahkan seluar dalam kayu mereka. Kemudian mereka akan kembali mengkonfigurasi pangkalan data.

Dan kami masih membina pangkalan data hari ini tetapi apa yang kami fikirkan sebagai "pangkalan data" kini berkali-kali lebih canggih dan hebat. Pangkalan data di luar rak akan menyelaraskan diri mereka di seluruh benua sambil menawarkan pertukaran fleksibel antara konsistensi dan kepantasan. Beberapa perkhidmatan awan seperti Firebase akan mendorong data baru keluar ke aplikasi web yang berjalan pada klien mudah alih.

Sebilangan besar revolusi tanpa pelayan didasarkan pada kesedaran bahawa banyak kedai data awan sekarang sangat kuat sehingga kita hanya perlu menulis beberapa klausa jika-kemudian-yang lain untuk membina aplikasi web yang cukup hebat.

Panas: Kerangka permainan

Bukan: Pembangunan permainan asli

Suatu ketika dahulu, pengembangan permainan bermaksud merekrut banyak pembangun yang menulis semuanya dalam C dari awal. Sudah tentu, harganya bernilai satu juta dolar, tetapi ia kelihatan hebat dan seperti angin. Kini, tidak ada yang mampu membeli kod khas yang mewah. Sebilangan besar pembangun permainan melepaskan kebanggaan mereka beberapa tahun yang lalu dan menggunakan perpustakaan seperti Unity, Corona, atau LibGDX untuk membina sistem mereka. Mereka tidak menulis kod C seperti arahan untuk perpustakaan.

Adakah memalukan bahawa permainan kita tidak dibuat dengan bangga tetapi dimeterai menggunakan mesin yang sama? Tidak. Sebilangan besar pemaju berasa lega. Kerana mereka tidak perlu menguruskan perinciannya, mereka dapat menumpukan perhatian pada permainan, busur naratif, watak, dan seni. 

Panas: Penjana laman web statik

Bukan: Aplikasi web satu halaman

Ingat ketika URL menunjuk ke laman web yang dipenuhi dengan teks dan gambar statik? Kemudian aplikasi web satu halaman yang dinamik muncul dan menggantikannya dengan satu aplikasi web pintar yang akan mengambil data yang dimaksudkan. Tahu tak? Pendulum berayun ke belakang dan semua kanak-kanak sedang membina penjana laman web statik. Terdapat berpuluh-puluh dari mereka. Ia seperti kacukan. Anda meletakkan semua data dalam satu timbunan dan kemudian anda menulis beberapa kod yang memasukkan 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 menganggap laman web statik ini sangat pantas dan sesuai. Jangan beritahu mereka bahawa sistem dinamik lama seperti WordPress dan Drupal berfungsi dengan cara yang sama, dengan menyimpan cache yang cukup banyak diisi dengan halaman statik yang dihasilkan dengan data terkini.

Panas: GraphQL

Bukan: REST

Seolah-olah REST sudah mati. Cuma kita mahu melakukan lebih banyak lagi dengan API, dan GraphQL adalah cara untuk melakukannya. GraphQL mengembalikan data dalam JSON, sama seperti REST. GraphQL bermula dengan HTTP POST, seperti banyak panggilan REST. Hanya sintaks GraphQL yang membolehkan anda menentukan pertanyaan yang sangat kompleks dengan hanya beberapa ketukan kekunci. Ini memudahkan pengaturcara untuk meminta apa yang mereka mahukan, dan ini mengurangkan jumlah kerja sisi pelayan yang mesti dilakukan ketika seseorang menginginkan API yang sedikit berbeza.

Panas: Cloud IDE

Bukan: IDE tempatan

Dulu, orang menggunakan penyusun baris perintah. Kemudian seseorang menggabungkannya dengan editor dan alat lain untuk membuat IDE. Kini tiba masanya IDE diketepikan (ha) oleh alat berasaskan penyemak imbas yang membolehkan anda mengedit kod, bahkan kod sistem yang berfungsi. Sekiranya anda tidak menyukai cara WordPress berfungsi, ia dilengkapi dengan editor bawaan yang membolehkan anda menukar kodnya pada masa itu. Microsoft Azure membolehkan anda menulis kod gam JavaScript tepat di portalnya. Sistem ini tidak menawarkan persekitaran penyahpepijatan terbaik, dan ada sesuatu yang berbahaya mengenai penyuntingan kod pengeluaran, tetapi ideanya mempunyai banyak kelebihan.

Anda boleh memulakan dengan AWS Cloud9, Codenvy, dan Mozilla's WebIDE, tetapi terus meneroka. Alat berasaskan web menjadi semakin kuat. Contohnya, mungkin untuk membina keseluruhan projek analisis data besar di laman web Microsoft Azure. Dan jika anda mula meneroka pilihan tanpa pelayan, anda akan cepat mengetahui bahawa anda boleh menulis semua kod anda dalam elemen bentuk di halaman web. Yang tidak lebih besar daripada borang yang anda gunakan untuk mengemas kini rakan anda di Facebook.

Panas: GPU

Bukan: CPU

Apabila perisian mudah dan arahan disusun dalam barisan yang bagus, CPU adalah raja komputer kerana ia melakukan semua pengangkatan yang berat. Sekarang bahawa permainan video dipenuhi dengan rutin grafik yang luas yang dapat berjalan secara selari, kad video menjalankan pertunjukan. Mudah membelanjakan $ 500, $ 600, atau lebih untuk kad video mewah, dan beberapa pemain serius menggunakan lebih daripada satu. Itu lebih dari dua kali ganda harga banyak desktop asas.

Tambahan, pemain bukan satu-satunya yang membual tentang kad GPU mereka. Saintis komputer kini menukar banyak aplikasi selari untuk berjalan beratus-ratus kali lebih pantas pada GPU. Dan saintis data menggunakan pelayan yang dikemas dengan GPU untuk mempercepat pengembangan model pembelajaran mesin mereka. 

Panas: GitHub

Bukan: Résumés

Pasti, anda boleh mengetahui tentang calon dengan membaca senarai pencapaian yang merangkumi wakil presiden kelab catur SMP. Tetapi membaca kod sebenar seseorang jauh lebih kaya dan lebih memberi pengajaran. Adakah mereka menulis komen yang baik? Adakah mereka membuang masa terlalu banyak untuk memecah barang ke kelas kecil yang tidak banyak? Adakah terdapat seni bina yang nyata dengan ruang pengembangan? Semua soalan ini dapat dijawab dengan sekilas pada kod mereka.

Inilah sebabnya mengapa mengambil bahagian dalam projek sumber terbuka menjadi semakin penting untuk mencari pekerjaan. Berkongsi kod dari projek proprietari adalah sukar, tetapi kod sumber terbuka boleh pergi ke mana-mana.