7 sebab mengapa kerangka kerja adalah bahasa pengaturcaraan baru

Pada tahun 1980-an, cara termudah untuk memulakan pertarungan kutu buku adalah dengan menyatakan bahawa bahasa pengaturcaraan kegemaran anda adalah yang terbaik. C, Pascal, Lisp, Fortran? Pengaturcara menghabiskan berjam-jam untuk menerangkan dengan tepat mengapa kaedah tertentu mereka membuat klausa if-then-else lebih baik daripada cara anda.

Itu ketika itu. Hari ini, pertempuran yang melibatkan sintaks dan struktur sebahagian besarnya berakhir kerana dunia telah bertumpu pada beberapa standard sederhana. Perbezaan antara titik koma, tanda kurung keriting, dan yang lainnya di C, Java, dan JavaScript kecil. Perbahasan menarik tentang menaip dan penutupan masih ada, tetapi kebanyakannya diperdebatkan kerana automasi menutup jurang. Sekiranya anda tidak suka menentukan jenis data, ada kemungkinan besar komputer dapat menyimpulkan apa yang anda maksudkan. Sekiranya atasan anda mahukan JavaScript tetapi anda menyukai Java, penyusun silang akan menukar semua Java yang anda taip secara statik menjadi JavaScript yang dikurangkan, siap untuk dijalankan dalam penyemak imbas. Mengapa bertarung ketika teknologi ada di belakang kita?

Hari ini, tindakan menarik adalah dalam kerangka kerja. Ketika saya duduk bersama ahli fakulti lain di Johns Hopkins University untuk merancang kursus baru, kerangka kerja menguasai perbualan. Adakah sudut lebih baik daripada Ember? Adakah Node.js semua itu?

Kami merancang kursus tinjauan yang akan meneroka seni bina pakej perisian terpenting yang menjadi asas Internet. Ini adalah pusat tindakan, layak mengikuti kursus tinjauan yang akan meneroka seni bina pakej perisian paling penting yang merangkumi Internet hari ini.

Dalam pengertian ini, kerangka kerja adalah bahasa pengaturcaraan baru. Di sinilah terdapat idea, falsafah, dan praktikal pengkodan moden yang terkini. Sebilangan besar menyala, tetapi banyak yang menjadi asas asas pengaturcaraan baru. Berikut adalah tujuh aspek yang mendorong tren kerangka - dan menjadikan kerangka sebagai pusat kegemaran baru untuk pergaduhan nerd.

Sebilangan besar pengekodan merangkumi API

Ada masa ketika menulis perisian yang bermaksud menyebarkan semua pengetahuan anda tentang bahasa pengaturcaraan untuk memanfaatkan kod. Masuk akal untuk menguasai kerumitan petunjuk, fungsi, dan ruang lingkup - kualiti kod bergantung pada melakukan perkara yang betul. Kini automasi menangani banyak perkara ini. Sekiranya anda meninggalkan pernyataan yang tidak bernilai dalam kod, jangan risau. Penyusun mengeluarkan kod mati. Sekiranya anda meninggalkan petunjuk yang tergantung, pengumpul sampah mungkin akan mengetahuinya.

Tambahan, amalan pengekodan kini berbeza. Sebilangan besar kod kini merupakan panggilan API yang panjang. Kadang-kadang terdapat pemformatan ulang data di antara panggilan API, tetapi pekerjaan tersebut biasanya dikendalikan oleh API lain. Sebilangan kecil yang bernasib baik dapat menulis kod pintar, sedikit memukul, penunjuk pointer untuk keberanian mesin kita, tetapi kebanyakan kita bekerja dengan lapisan yang lebih tinggi. Kami hanya menjalankan paip antara API.

Oleh kerana itu, lebih penting untuk memahami bagaimana API berkelakuan dan apa yang boleh dilakukannya. Struktur data mana yang diterima? Bagaimana algoritma berkelakuan ketika set data bertambah besar? Soalan seperti ini lebih penting dalam pengaturcaraan hari ini daripada soalan mengenai sintaksis atau bahasa. Memang, sekarang ada sejumlah alat yang menjadikannya mudah untuk memanggil rutin dalam satu bahasa dari yang lain. Contohnya agak mudah untuk menghubungkan perpustakaan C ke kod Java. Memahami API adalah perkara yang penting.

Bahu gergasi pantas berdiri

Bayangkan anda telah menjadi murid Erlang atau bahasa baru yang lain. Anda memutuskan bahawa ia menawarkan platform terbaik untuk menulis aplikasi stabil dan bebas pepijat. Ini adalah sentimen yang bagus, tetapi anda boleh mengambil masa bertahun-tahun untuk menulis semula semua kod yang tersedia untuk Java atau PHP ke dalam bahasa pilihan terbaru anda. Pasti, kod anda boleh menjadi lebih baik secara dramatik, tetapi adakah itu bernilai masa tambahan?

Kerangka kerja membolehkan kita memanfaatkan kerja keras mereka yang datang sebelum kita. Kami mungkin tidak menyukai seni bina yang mereka pilih dan kami mungkin berdebat mengenai perincian pelaksanaan, tetapi lebih cekap untuk mengatasi keluhan kami dan mencari jalan untuk hidup dengan perbezaannya. Jauh lebih mudah untuk mewarisi semua kebaikan dan keburukan pangkalan kod melalui kerangka kerja. Mengambil jalan macho dengan menulis semuanya sendiri dalam bahasa baru kegemaran anda dan bukannya salah satu kerangka kerja yang lebih popular, tidak akan membolehkan anda menikmati krim pilihan baru anda secepat mungkin hanya dengan memilih pembuat kerangka dan API mereka.

Mengetahui seni bina adalah yang penting, bukan sintaksis

Ketika kebanyakan pengekodan merangkumi panggilan API, tidak banyak kelebihan dalam mempelajari keanehan bahasa. Tentu, anda boleh menjadi pakar bagaimana Java menginisialisasi bidang statik dalam objek, tetapi anda akan lebih baik mencari cara memanfaatkan kekuatan Lucene atau JavaDB atau sebilangan besar kod lain. Anda boleh menghabiskan berbulan-bulan untuk menggunakan rutin pengoptimuman penyusun Objective-C, tetapi mempelajari selok-belok perpustakaan teras Apple terbaru akan benar-benar membuat kod anda menjerit. Anda akan mendapat lebih banyak mempelajari perincian kerangka yang lebih mudah daripada sintaks bahasa yang menjadi asas kerangka.

Sebilangan besar kod kami menghabiskan sebahagian besar waktunya di gelung perpustakaan. Mendapatkan perincian bahasa dengan betul boleh membantu, tetapi mengetahui apa yang berlaku di perpustakaan dapat membuahkan hasil secara mendadak.

Algoritma menguasai

Mempelajari bahasa pengaturcaraan dapat membantu Anda menyulap data yang tersimpan dalam pemboleh ubah, tetapi itu hanya membawa anda sejauh ini. Rintangan sebenarnya adalah membuat algoritma betul, dan algoritma biasanya ditentukan dan dilaksanakan oleh kerangka kerja.

Banyak pengaturcara memahami bahawa berbahaya dan membazir untuk meluangkan masa untuk melaksanakan semula algoritma dan struktur data standard. Pasti, anda mungkin dapat menyesuaikannya sedikit dengan keperluan anda, tetapi anda berisiko melakukan kesalahan yang tidak jelas. Kerangka kerja telah diuji secara meluas selama bertahun-tahun. Ini mewakili pelaburan kolektif kami dalam infrastruktur perisian. Tidak ada banyak contoh kapan masuk akal untuk "keluar dari grid," membuang kerja keras orang lain, dan membina kabin algoritma dengan dua tangan anda sendiri.

Pendekatan yang tepat adalah mempelajari kerangka kerja dan belajar bagaimana menggunakannya untuk keuntungan terbaik anda. Sekiranya anda memilih struktur data yang salah, anda dapat mengubah pekerjaan linier menjadi pekerjaan yang memerlukan waktu yang merupakan fungsi kuadratik dari ukuran input. Itu kerumitan besar apabila anda menjadi viral.