7 alasan mengapa framework adalah bahasa pemrograman baru

Pada 1980-an, cara termudah untuk memulai perkelahian nerd adalah dengan menyatakan bahwa bahasa pemrograman favorit Anda adalah yang terbaik. C, Pascal, Lisp, Fortran? Programmer menghabiskan waktu berjam-jam untuk menjelaskan dengan tepat mengapa cara khusus mereka menyusun klausa jika-maka-lain lebih unggul dari cara Anda.

Itu dulu. Saat ini, pertempuran yang melibatkan sintaksis dan struktur sebagian besar telah berakhir karena dunia telah menyatu pada beberapa standar sederhana. Perbedaan antara titik koma, tanda kurung kurawal, dan lainnya di C, Java, dan JavaScript kecil. Perdebatan menarik tentang pengetikan dan penutupan masih ada, tetapi sebagian besar diperdebatkan karena otomatisasi menutup celah tersebut. Jika Anda tidak suka menentukan tipe data, ada kemungkinan besar komputer dapat menyimpulkan dengan tepat apa yang Anda maksud. Jika atasan Anda menginginkan JavaScript tetapi Anda menyukai Java, kompiler silang akan mengubah semua Java yang diketik secara statis menjadi JavaScript yang diperkecil, siap dijalankan di browser. Mengapa berjuang ketika teknologi mendukung kita?

Hari ini, tindakan yang menarik ada dalam kerangka kerja. Ketika saya duduk dengan anggota fakultas lain di Universitas Johns Hopkins untuk merencanakan kursus baru, kerangka kerja mendominasi percakapan. Apakah Angular lebih baik dari Ember? Apakah Node.js itu semua?

Kami merancang kursus survei yang akan mengeksplorasi arsitektur dari paket perangkat lunak terpenting yang merupakan dasar dari Internet. Ini adalah pusat tindakan, layak untuk kursus survei yang akan mengeksplorasi arsitektur paket perangkat lunak terpenting yang melengkapi Internet saat ini.

Dalam pengertian ini, kerangka kerja adalah bahasa pemrograman baru. Di sinilah ide, filosofi, dan kepraktisan terbaru dari pengkodean modern ditemukan. Beberapa padam, tetapi banyak yang menjadi blok bangunan fundamental baru dari pemrograman. Berikut adalah tujuh aspek yang memicu tren kerangka kerja - dan menjadikan kerangka kerja sebagai sarang favorit baru untuk perkelahian nerd.

Kebanyakan pengkodean merangkai API

Ada suatu masa ketika menulis perangkat lunak berarti menyebarkan semua pengetahuan Anda tentang bahasa pemrograman untuk mendapatkan hasil maksimal dari kode. Masuk akal untuk menguasai kompleksitas pointer, fungsi, dan cakupan - kualitas kode bergantung pada melakukan hal yang benar. Otomatisasi hari-hari ini menangani banyak hal ini. Jika Anda meninggalkan pernyataan yang tidak berguna di dalam kode, jangan khawatir. Kompilator menghapus kode yang sudah mati. Jika Anda meninggalkan petunjuk yang menggantung, pengumpul sampah mungkin akan mengetahuinya.

Ditambah lagi, praktik pengkodean berbeda sekarang. Kebanyakan kode sekarang menjadi garis panjang panggilan API. Sesekali ada pemformatan ulang data di antara panggilan API, tetapi bahkan tugas tersebut biasanya ditangani oleh API lain. Beberapa yang beruntung bisa menulis kode yang cerdik, membenturkan, dan mengarahkan kursor untuk keberanian mesin kita, tetapi kebanyakan dari kita bekerja dengan lapisan yang lebih tinggi. Kami hanya menjalankan pipa antar API.

Karena itu, lebih penting untuk memahami bagaimana API berperilaku dan apa yang bisa dilakukannya. Struktur data apa yang diterima? Bagaimana algoritma berperilaku ketika kumpulan data bertambah besar? Pertanyaan seperti ini lebih penting untuk pemrograman hari ini daripada pertanyaan tentang sintaks atau bahasa. Memang, sekarang ada sejumlah alat yang memudahkan untuk memanggil rutinitas dalam satu bahasa dari bahasa lain. Relatif mudah untuk menghubungkan pustaka C ke kode Java, misalnya. Memahami API adalah yang terpenting.

Pundak raksasa layak untuk berdiri

Bayangkan Anda telah menjadi murid Erlang atau bahasa baru lainnya. Anda memutuskan itu menawarkan platform terbaik untuk menulis aplikasi yang stabil dan bebas bug. Ini adalah sentimen yang bagus, tetapi perlu waktu bertahun-tahun bagi Anda untuk menulis ulang semua kode yang tersedia untuk Java atau PHP ke dalam bahasa pilihan Anda yang terbaru. Tentu, kode Anda bisa menjadi jauh lebih baik, tetapi apakah itu sepadan dengan waktu tambahan?

Kerangka kerja memungkinkan kami memanfaatkan kerja keras mereka yang datang sebelum kami. Kami mungkin tidak menyukai arsitektur yang mereka pilih dan kami mungkin memperdebatkan detail penerapan, tetapi akan lebih efisien untuk menahan keluhan kami dan menemukan cara untuk hidup dengan perbedaan. Jauh lebih mudah untuk mewarisi semua yang baik dan yang buruk dari basis kode melalui kerangka kerja. Mengambil rute macho dengan menulis semuanya sendiri dalam bahasa baru favorit Anda daripada salah satu kerangka kerjanya yang lebih populer tidak akan memungkinkan Anda menikmati krim pilihan baru Anda secepat itu hanya akan tunduk pada pembuat kerangka kerja dan API mereka.

Mengetahui arsitektur adalah yang terpenting, bukan sintaksnya

Ketika sebagian besar pengkodean merangkai panggilan API, tidak banyak keuntungan dalam mempelajari keistimewaan bahasa tersebut. Tentu, Anda bisa menjadi ahli tentang bagaimana Java menginisialisasi bidang statis di objek, tetapi Anda akan jauh lebih baik mencari tahu bagaimana memanfaatkan kekuatan Lucene atau JavaDB atau tumpukan kode lainnya. Anda dapat menghabiskan waktu berbulan-bulan untuk mempelajari rutinitas pengoptimalan dari kompiler Objective-C, tetapi mempelajari seluk beluk pustaka inti Apple terbaru akan membuat kode Anda menjerit. Anda akan belajar lebih jauh tentang detail pemilih dari kerangka kerja daripada sintaks bahasa yang menjadi dasar kerangka kerja.

Sebagian besar kode kami menghabiskan sebagian besar waktunya di loop dalam perpustakaan. Mendapatkan detail bahasa yang benar dapat membantu, tetapi mengetahui apa yang terjadi di perpustakaan dapat memberikan hasil yang dramatis.

Algoritma mendominasi

Mempelajari bahasa pemrograman dapat membantu Anda mengatur data yang disimpan dalam variabel, tetapi itu hanya akan membantu Anda sejauh ini. Rintangan sebenarnya adalah mendapatkan algoritme yang benar, dan itu biasanya ditentukan dan diterapkan oleh kerangka kerja.

Banyak programmer memahami bahwa menghabiskan waktu untuk mengimplementasikan kembali algoritme standar dan struktur data adalah hal yang berbahaya dan boros. Tentu, Anda mungkin dapat menyesuaikannya sedikit dengan kebutuhan Anda, tetapi Anda berisiko membuat kesalahan kecil. Kerangka kerja telah diuji secara luas selama bertahun-tahun. Mereka mewakili investasi kolektif kami dalam infrastruktur perangkat lunak. Tidak banyak contoh saat masuk akal untuk "keluar dari grid", mengesampingkan kerja keras orang lain, dan membangun kabin algoritmik dengan kedua tangan Anda sendiri.

Pendekatan yang tepat adalah mempelajari kerangka kerja dan mempelajari cara menggunakannya untuk keuntungan terbaik Anda. Jika Anda memilih struktur data yang salah, Anda dapat mengubah pekerjaan linier menjadi pekerjaan yang membutuhkan waktu yang merupakan fungsi kuadrat dari ukuran input. Itu sangat merepotkan begitu Anda menjadi viral.