JavaScript, meskipun memiliki banyak kekurangan, bisa dibilang adalah bahasa pemrograman terbaik untuk pengembang pemula, dan bahasa terbaik yang bisa digunakan anak-anak.
Itu tahun 2007. Penerbit buku teknis yang sangat baik, O'Reilly Media menghubungi saya dengan sebuah ide. Mereka bertanya kepada saya apakah saya ingin menulis buku tentang JavaScript yang akan menjadi pemula mutlak dalam pemrograman. "Kenapa di bumi?" Saya langsung mengajukan pertanyaan balasan.
Tidak dapat dikatakan bahwa JavaScript adalah bahasa yang sama sekali tidak berguna pada masa itu. Tapi itu hanya satu, jauh dari unsur terpenting dari serangkaian teknologi yang dipilih dengan cermat untuk pengembangan situs web. Ya, potongan-potongan kecil kode JS dapat digunakan untuk memvalidasi formulir, atau untuk menyorot tombol yang melayang-layang. Tetapi JavaScript hanyalah tambahan opsional untuk fungsionalitas situs. Jika Anda menghapusnya dari halaman, maka semuanya terus bekerja dengan cara yang hampir sama dengan penggunaannya.
JavaScript, selain itu, menarik banyak bagasi, yang disajikan oleh teknologi lain. Jadi, masalah ketidakcocokan browser dikaitkan dengan itu, itu lambat, tidak aman, benar-benar tidak dapat diandalkan. Saya tidak tertarik mengajar seseorang untuk membuat widget yang tidak berguna untuk halaman web dalam JavaScript. Widget ini bagi saya sama tidak berartinya dengan GIF animasi dengan bola dunia berputar, yang sangat populer pada awal Internet.
Cara paling jelas untuk menggunakan JavaScript, seperti yang saya pikir naif, adalah sesuatu seperti ini: kerangka kerja server besar harus menghasilkan semua kode JS yang diperlukan dan menanamkannya dalam halaman yang dirancang khusus untuk browser Anda. Kode JavaScript yang dihasilkan oleh server mungkin terlalu rumit, tetapi akan dirancang untuk versi browser tertentu. Dan mengingat JS hanya memainkan peran sebagai mekanisme bantu, semuanya akan berfungsi sebagaimana mestinya bahkan jika pengunjung ke situs sepenuhnya mematikan JavaScript.
Tak perlu dikatakan, maka saya tidak menulis buku tentang JavaScript. Saya terus melakukan pemrograman sisi server dan menulis tentang teknologi favorit saya (biasanya tentang C # dan .NET Framework). Bertahun-tahun telah berlalu.
Kemudian sesuatu yang aneh terjadi.
JavaScript benar-benar lepas landas.
Saya masih merasa JavaScript tidak pantas disebut sebagai bahasa pemrograman terbaik di dunia. Bahkan jika, sejujurnya, saya tidak menganggapnya sebagai bahasa yang sangat baik. Tetapi dalam beberapa hal saya berubah pikiran. Sekarang saya pikir JavaScript mungkin merupakan bahasa pertama terbaik untuk anak-anak dan programmer pemula. Masalahnya adalah bahwa JavaScript memiliki satu keunggulan utama dibandingkan semua bahasa pemrograman lainnya.
Prevalensi yang menakjubkan dari JavaScript adalah keunggulan utamanya.
Salah satu manfaat unik dari JavaScript adalah prevalensinya.
Bahasa ini dapat ditemukan secara harfiah di mana-mana. Ini didukung pada semua sistem operasi, di semua jenis browser, dan pada komputer desktop dan perangkat seluler. Juga sangat penting bahwa aplikasi JavaScript berfungsi tanpa menginstalnya di komputer pengguna. Faktanya, sudah sulit untuk mengingat hari-hari yang tidak terlalu tua ketika perusahaan, menyebarkan aplikasi client-server di jaringan internal mereka, menghabiskan berminggu-minggu berjuang dengan masalah pengaturan aplikasi ini dan dengan kesalahan tak terduga. Menghadapi mimpi buruk ini, Anda mungkin menghargai daya tarik JavaScript.
JavaScript, karena prevalensinya, tidak harus menjadi bahasa pemrograman terbaik. Dia hanya perlu bahasa yang cukup baik.
Mekanisme serupa bekerja ketika datang untuk belajar pemrograman. Pada awalnya, masalah prevalensi bahasa tampaknya tidak terlalu penting bagi seseorang yang tujuannya adalah mempelajari teknik praktis yang telah teruji untuk mengembangkan program. Tetapi banyak dari masalah yang sama relevan, seperti untuk pemrograman profesional, dalam pengajaran pemrograman. Jika Anda ingin seseorang menggunakan apa yang Anda buat, maka JavaScript adalah satu-satunya alternatif.
Misalkan Anda sedang mengembangkan aplikasi luar biasa yang, dengan mengajukan pertanyaan kepada pengguna, menentukan profil kepribadiannya. Menyiapkan lingkungan pengembangan cukup sederhana. Tetapi apa yang terjadi ketika Anda ingin mengirim program Anda ke teman? Apakah dia perlu menginstal lingkungan runtime atau membuat ulang lingkungan pengembangan yang sama dengan Anda? Apakah perlu "mengubah" pengaturan keamanan komputernya sebelum ia dapat mengunduh dan menginstal program Anda? Mungkin teman Anda menggunakan sistem operasi yang sama sekali tidak mendukung program Anda, atau platform seluler di mana, jika Anda tidak merinci, Anda dapat menginstal hanya aplikasi profesional yang didistribusikan melalui iTunes atau Google Play? Jika Anda menggunakan JavaScript untuk mengembangkan program, dan menggunakan situs web sederhana untuk mendistribusikannya (misalnya,
GitHub memungkinkan Anda membuat situs semacam itu secara gratis), maka semua masalah ini akan hilang begitu saja.
Dan jika programmer masa depan kita adalah seorang anak, maka ini adalah fakta yang tidak dapat disangkal untuk Anda: anak-anak dan browser sangat terhubung. Jika Anda menonton seorang anak yang bekerja di komputer (bukan di perangkat seluler), maka Anda mungkin memperhatikan bahwa ia menghabiskan setidaknya 98% waktunya bekerja dengan browser. Anak-anak bermain game browser, menggunakan jaringan sosial, dan pergi ke sekolah dengan Google Classroom dan Google Documents. Dan jika kode yang ditulis anak-anak akan berfungsi di dunia peramban asli mereka, itu akan sepenuhnya alami.
Kami sekarang sedang mendiskusikan kekuatan JavaScript. Tapi, tentu saja, berbicara tentang JavaScript sebagai bahasa pemrograman untuk pemula, orang tidak bisa tidak mengingat kekurangannya.
Kelemahan JavaScript
Bagaimana dengan masalah javascript? Bahasa ini memiliki kelemahan serius, keanehannya, kontradiksi dan keterbatasan bisa sangat tidak menyenangkan bagi seseorang yang baru mulai belajar pemrograman. Untungnya, ada solusi modern yang dapat mengurangi sebagian besar kekurangan JavaScript.
Mari kita analisis empat keluhan utama tentang bahasa ini.
β1. Masalah dengan bekerja dengan tipe data dalam JavaScript
Konsep yang paling penting yang dipelajari oleh pemrogram pemula sangat awal adalah gagasan tentang variabel, wadah yang menyimpan informasi saat program sedang berjalan. Masalah dengan JavaScript adalah bahwa bahasa ini terlalu longgar dan berantakan dengan variabel. Ini memungkinkan Anda untuk melakukan sesuatu yang tidak beres, dan mengabaikan inkonsistensi yang jelas. Kelalaiannya dapat mengubah kesalahan ketik kecil menjadi bencana yang mengganggu operasi program.
Berikut adalah contoh kode yang akan gagal:
var myNumber = 100; myNumber = myNumbr + 1;
Apakah Anda melihat kesalahan? Baris kedua, pada kenyataannya, menggunakan dua variabel: variabel
myNumber
, yang dideklarasikan di baris pertama, dan variabel dummy
myNumbr
. Kita tahu bahwa variabel kedua adalah hasil salah ketik, tetapi JavaScript akan memberi tahu kami hanya selama eksekusi program, memberikan pesan kesalahan yang terlihat seperti
ReferenceError: myNumbr is not defined
. Hal yang sama terjadi jika ketika menulis nama variabel,
myNumber
dan huruf kecil digabungkan (misalnya, variabel dari
myNumber
tidak sengaja berubah menjadi
MyNumber
). Suatu masalah, tetapi dari sifat yang berbeda, dapat muncul jika Anda, mengingat bahwa variabel tertentu menyimpan angka, menambahkan nomor lain ke dalamnya, dan variabel ini, pada kenyataannya, berisi string atau sesuatu yang lain. JavaScript dalam hal ini tidak akan melaporkan kesalahan, tetapi hasil perhitungan akan sangat berbeda dari apa yang Anda harapkan dari menambahkan dua angka. Setiap pengembang JavaScript dapat mengingat kisah yang tidak menyenangkan dari jenis ini, ketika jenis kebingungan menyebabkan kesalahan aneh dalam program.
Cukup sulit untuk mempelajari cara memprogram, dan pada saat yang sama khawatir tentang bagaimana bahasa pemrograman yang Anda pelajari dapat membahayakan Anda. Tapi, untungnya, masalah bekerja dengan aman dengan tipe data dapat dengan mudah diselesaikan dengan bantuan alat pengembangan yang sesuai.
Salah satu editor kode favorit saya yang cocok untuk belajar pemrograman dan untuk penggunaan profesional adalah
Visual Studio Code . Ini gratis, tidak menuntut sumber daya, kodenya terbuka, dapat diperluas hingga tak terbatas. Salah satu fitur yang paling luar biasa adalah untuk mendukung organisasi memeriksa kode JavaScript untuk masalah umum dengan TypeScript. Anda dapat mengaktifkan pemeriksaan ini dengan menggunakan file konfigurasi yang sesuai atau dengan memasukkan komentar berikut di bagian atas file JavaScript:
Berikut adalah contoh di mana ada dua kesalahan, tidak ada yang, dari sudut pandang JavaScript, adalah kesalahan.
Masalah JavaScript Tidak Mempertimbangkan KesalahanJika Anda menambahkan komentar
// @ts-check
di awal file ini, maka VS Code akan menyoroti baris kode yang mengandung potensi kesalahan.
Baris kode yang disorotJika Anda mengarahkan kursor ke garis yang disorot, jendela sembul akan muncul menjelaskan masalahnya.
Penjelasan masalahKesimpulan apa yang bisa ditarik dari ini? Meskipun JavaScript toleran terhadap banyak hal buruk, jika Anda menggabungkan JavaScript dengan editor kode kualitas dan alat tambahan yang tepat, Anda dapat membuat lingkungan pengembangan yang mirip dengan yang dimiliki oleh bahasa pemrograman modern lainnya. Akibatnya, pengembangan dalam JavaScript sama mudahnya dengan bahasa lain, dan, tentu saja, kelebihan lainnya tidak hilang.
β2. JavaScript tidak mendukung OOP
Pemrograman Berorientasi Objek (OOP) adalah pendekatan untuk pemodelan dan pengorganisasian kode. Jika teknik OOP diterapkan dengan benar, mereka membantu programmer membuat kode sederhana dan terorganisir dengan baik. OOP juga membuatnya mudah untuk menggunakan kembali fitur-fitur program penting.
JavaScript terkenal karena kurangnya dukungan untuk pemrograman berorientasi objek. Faktanya, pengembang JavaScript secara tradisional menghindari kekurangan ini dengan menggunakan segala macam konstruksi aneh. Konstruk ini dapat berarti sesuatu bagi seseorang yang telah mempelajari OOP (dan bahkan bagi seseorang yang belum belajar, tetapi cukup menyalin templat ke dalam kode mereka dan terbiasa menggunakannya). Tetapi jika Anda adalah orang yang benar-benar baru dalam pemrograman, penggunaan konstruksi meragukan yang menerapkan konsep pemrograman dasar benar-benar salah.
Untungnya, ada solusi indah yang memberikan dukungan OOP dalam JavaScript. Solusi favorit saya dari jenis ini adalah
TypeScript , proyek open source yang diluncurkan oleh Microsoft pada tahun 2012. TypeScript adalah sedikit jenis JavaScript yang ditingkatkan yang mendukung OOP (serta banyak fitur berguna lainnya seperti pengecekan tipe yang kuat).
Seseorang mungkin mengatakan bahwa kita berbicara tentang JavaScript, dan bahwa TypeScript bukan JavaScript. Dan faktanya memang demikian. Tapi di sini ada satu detail menarik. Kode ditulis dalam TypeScript dan kemudian dikonversi ke JavaScript sebelum dijalankan. Ini memungkinkan Anda untuk menikmati semua yang terbaik dari dunia TypeScript dan JavaScript. Jika Anda memilih TypeScript, Anda akan memiliki bahasa pemrograman modern di mana Anda dapat menulis kode Anda, dan dukungan terluas yang menggunakan JavaScript biasa.
Dan, yang paling penting, kode TypeScript dikonversi ke JavaScript secara otomatis. Tentu saja, kode JavaScript yang dihasilkan komputer menggunakan konstruksi yang agak rumit untuk mencerminkan di dalamnya konsep yang diterapkan oleh TypeScript, tetapi ini tidak mengubah apa pun. Programmer mempelajari konsep-konsep OOP, dan kode selesai bekerja dengan benar, diproses tanpa masalah dengan menggunakan komputer modern.
Tidak percaya Kemudian pikirkan tentang kenyataan bahwa beberapa aplikasi desktop inovatif paling modern menggunakan kombinasi TypeScript dan
Electron , kerangka kerja yang memungkinkan Anda untuk mengeksekusi kode JavaScript di luar browser tradisional (walaupun harus dicatat bahwa Electron menggunakan kemampuan browser). Salah satu contoh paling mengesankan dari aplikasi semacam itu adalah editor VS Code. Ternyata alat yang sangat nyaman untuk menulis kode JavaScript itu sendiri ditulis dalam JavaScript. Benar, lebih tepatnya, VS Code ditulis dalam TypeScript, tetapi kode yang ditulis dalam bahasa ini masih dikonversi ke kode JavaScript.
Tentu saja, ketika mempelajari pemrograman tidak perlu menggunakan TypeScript, dan programmer JavaScript baru, jika mereka memutuskan untuk melakukannya, akan dapat melakukan banyak hal tanpa mempelajari prinsip-prinsip OOP. Ini sebenarnya adalah masalah pilihan. Bagaimanapun, dapat dicatat bahwa JavaScript adalah bahasa yang berkembang secara dinamis, dan fitur secara bertahap ditambahkan ke dalamnya yang membawanya lebih dekat ke semua yang berharga yang dimiliki TypeScript.
β3. Sekitar penuh dengan kode JavaScript berkualitas buruk
Apa yang bisa saya katakan. Kode berkualitas buruk dapat ditulis dalam bahasa pemrograman apa pun. Pernah mendengar tentang
Visual Basic ?
β4. Pengembangan JavaScript membutuhkan pustaka dan kerangka kerja tambahan
Untuk mendapatkan akses ke fungsionalitas yang lebih luas daripada bahasa (dan bukan untuk menemukan kembali roda), programmer JavaScript perlu menggunakan pustaka dan kerangka kerja pihak ketiga. Memilih bahan yang tepat digunakan untuk membuat proyek tidak semudah kelihatannya pada pandangan pertama. Khususnya, bahwa alat tambahan yang dipilih harus dengan benar menyelesaikan tugas yang diberikan kepada mereka, perlu bahwa programmer memiliki keyakinan bahwa mereka akan terus menggunakan dukungan dari pengembang mereka untuk waktu yang lama, bahwa mereka tidak saling bertentangan. teman.
Pengembang yang menggunakan bahasa lain juga dihadapkan dengan beberapa masalah. Namun, perlu dicatat bahwa beberapa bahasa menderita masalah ini sebanyak JavaScript. Untuk menjadi programmer yang serius di dunia terbuka untuk semua dunia JavaScript, Anda perlu merakit perangkat pengembangan Anda sendiri. Pada saat yang sama, masing-masing pilihan yang mungkin sangat kompleks dan beragam sehingga Anda hanya bisa mengerti jika perpustakaan cocok untuk Anda, jika Anda mempelajarinya dengan sangat baik (dan ketika Anda mempelajarinya, itu mungkin ternyata sudah kehilangan relevansinya dengan tempatnya akan datang sesuatu yang baru, menarik, mungkin - untuk waktu yang singkat, minat umum).
Tidak peduli betapa sedihnya semua ini, masalah-masalah ini, pada kenyataannya, tidak mempengaruhi pemula. Jika seseorang mempelajari pemrograman menggunakan JavaScript, maka yang terbaik adalah menjauh dari kerangka kerja dan perpustakaan, apakah itu sesuatu yang dikenal luas, seperti
jQuery ,
Angular ,
React atau
Vue , atau sesuatu yang ditemukan pada saat kalimat ini ditulis, atau yang kedua ketika artikel ini diterbitkan. Tentu saja, seorang pemula, setelah menguasai hal-hal mendasar dengan baik, mungkin ingin berkenalan dengan setidaknya salah satu alat tambahan yang populer. Tetapi ini adalah kisah yang sangat berbeda.
Ringkasan
Sebenarnya, pilihan bahasa pemrograman pertama adalah pertanyaan yang tidak mungkin untuk menemukan jawaban yang benar-benar benar. Penulis materi ini di sini hanya membagikan pendapatnya sendiri tentang hal ini, memberikan contoh yang dekat dengannya karena pengalaman dan kesukaannya. Tetapi, bagaimanapun juga, semua programmer memulai suatu tempat, dan tidak peduli betapa sulitnya pilihan bahasa pertama, pilihan ini masih harus dibuat.
Pembaca yang budiman! Apakah Anda setuju bahwa JavaScript, dalam kondisi modern, adalah bahasa terbaik untuk mempelajari pemrograman? Jika Anda tidak setuju, maka mungkin Anda tahu beberapa bahasa yang lebih cocok untuk tujuan ini?
