Javascrip{filter}t memiliki riwayat penamaan yang sangat aneh.
Ini pertama kali dirilis pada tahun 1995 sebagai bagian dari Netscape Navigator, yang memberi bahasa baru nama Livescrip{filtering}t. Setahun kemudian, untuk menangkap hype media tentang Java pada saat itu, namanya untuk sementara diubah menjadi Javascrip{filtering}t (tentu saja, hubungan antara Java dan Javascrip{filtering}t sama dengan Lei Feng dan Menara Lei Feng - itu tidak ada hubungannya dengan itu)
Lelucon kacang bengkok sama sekali tidak lucu
Catatan penerjemah: Entri Wikipedia Javascrip{filter}t menjelaskan sejarah ini secara lebih rinci
Pada tahun 1996, Netscape menyerahkan Javascrip{filtering}t ke ECMA International (European Computer Manufacturers Association) untuk standardisasi, dan akhirnya menyelesaikan standar bahasa baru, yaitu ECMAscrip{filtering}t. Sejak itu, ECMAscrip{filtering}t telah menjadi dasar untuk semua implementasi Javascrip{filtering}t, meskipun untuk alasan historis dan pasar (tampaknya ECMAscrip{filtering}t bukan nama yang disukai...... Pada kenyataannya, kami hanya menggunakan ECMAscrip{filter}t untuk memanggil standar, dan kami biasanya menggunakan Javascrip{filter}t untuk memanggil bahasa ini.
Terminologi:
- Standar: Seperangkat aturan yang menentukan apa yang membedakannya dari hal-hal lain
- Implementasi: Implementasi spesifik/praktik dunia nyata dari standar
Namun, pengembang Javascrip{filtering}t tidak terlalu peduli tentang ini, karena ECMAscrip{filtering}t tidak banyak berubah dalam 15 tahun sejak awal, dan banyak implementasi dunia nyata sudah sangat berbeda dari standar. Faktanya, setelah rilis versi pertama ECMAscrip{filtering}t, dua versi lagi dirilis tak lama kemudian, tetapi sejak rilis ECMAscrip{filter}t 3 pada tahun 1999, tidak ada perubahan yang berhasil ditambahkan ke spesifikasi resmi selama sepuluh tahun. Sebaliknya, vendor browser berebut untuk memperluas bahasa mereka sendiri, membuat pengembang web tidak punya pilihan selain bereksperimen dan mendukung API ini. Bahkan setelah rilis ECMAscrip{filter}t 5 pada tahun 2009, butuh beberapa tahun bagi spesifikasi baru ini untuk mendapatkan dukungan luas dari browser, tetapi sebagian besar pengembang masih menulis kode bergaya ECMAscrip{filtering}t 3 dan tidak merasa perlu untuk mempelajarinya.
Catatan penerjemah: Draf ECMAscrip{filter}t versi 4 ditinggalkan karena terlalu agresif, dan Adobe Actionscrip{filtering}t 3.0 adalah satu-satunya implementasi ECMAscrip{filtering}t edisi 4 (Flash hampir menyatukan web)
Pada tahun 2012, hal-hal tiba-tiba mulai berubah. Ada dorongan untuk mengakhiri dukungan untuk versi IE yang lebih lama, dan lebih layak untuk menulis kode dalam gaya ECMAscrip{filter}t 5 (ES5). Pada saat yang sama, spesifikasi ECMAscrip{filtering}t baru diluncurkan. Pada titik ini, orang mulai terbiasa menggambarkan berbagai implementasi Javascrip{filtering}t dalam hal dukungan versi untuk spesifikasi ECMAscrip{filter}t. Standar baru ini awalnya disebut ES. Harmoni. Pada tahun 2015, TC39, komite yang bertanggung jawab untuk mengembangkan draf spesifikasi ECMAscrip{filter}t, memutuskan untuk mengubah sistem untuk menentukan standar baru menjadi setahun sekali, yang berarti bahwa setiap fitur baru dapat ditambahkan setelah disetujui, dibandingkan dengan spesifikasi sebelumnya yang diselesaikan hanya setelah seluruh draf selesai dan semua fitur baik-baik saja. Akibatnya, ECMAscrip{filtering}t versi 6 berganti nama menjadi ECMAscrip{filtering}t 2015 (ES2015) sebelum diterbitkan pada bulan Juni.
Masih ada banyak fitur atau sintaks Javascrip{filter}t baru yang diusulkan, termasuk dekorator, async-await, dan properti kelas statis. Mereka sering disebut sebagai ES7, ES2016 atau ES. Selanjutnya, tetapi sebenarnya mereka hanya bisa disebut proposal atau kemungkinan, lagipula, spesifikasi ES2016 belum lengkap, dan ada kemungkinan semuanya akan diperkenalkan, atau tidak ada yang akan diperkenalkan. TC39 membagi proposal menjadi 4 fase, dan Anda dapat memeriksa tahap mana setiap proposal saat ini berada di situs web Babel.
Jadi, bagaimana kita menggunakan banyak terminologi ini? Daftar berikut dapat membantu Anda:
- ECMAscrip{filter}t: Bahasa yang distandarisasi oleh ECMA International dan diawasi oleh komite TC39. Sering digunakan untuk merujuk pada standar itu sendiri.
- Javascrip{filtering}t: Nama paling umum untuk berbagai implementasi standar ECMAscrip{filtering}t. Istilah ini tidak terbatas pada versi tertentu dari spesifikasi ECMAscrip{filtering}t, dan dapat digunakan untuk berbagai tingkat implementasi dari versi ECMAscrip{filtering}t apa pun.
- ECMAscrip{filtering}t 5 (ES5): Edisi kelima ECMAscrip{filtering}t, distandarisasi pada tahun 2009. Spesifikasi ini cukup sepenuhnya diterapkan di semua browser modern.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Edisi keenam ECMAscrip{filtering}t direvisi dan distandarisasi pada tahun 2015. Standar ini sebagian diterapkan di sebagian besar browser modern. Anda dapat membaca tabel kompatibilitas ini untuk melihat bagaimana berbagai browser dan alat diterapkan.
- ECMAscrip{filter}t 2016: Edisi ketujuh yang diharapkan dari revisi ECMAscrip{filter}t, dijadwalkan untuk dirilis musim panas mendatang. Fitur spesifik yang akan disertakan dalam spesifikasi ini belum diselesaikan
- Proposal ECMAscrip{filter}t: Proposal fitur dan sintaks yang dipertimbangkan untuk dimasukkan dalam versi mendatang dari standar ECMAscrip{filter}t akan melalui lima tahap: Strawman, Proposal, Draft, Candidate, dan Finished.
Sepanjang blog ini, saya akan merujuk ke versi ECMAscrip{filtering}t saat ini sebagai ES6 (karena itulah yang paling biasa dilakukan oleh sebagian besar pengembang), spesifikasi tahun depan sebagai ES2016 (karena, tidak seperti ES6/ES2015, nama ini akan digunakan selama proses standardisasi), dan konsep bahasa masa depan yang belum diselesaikan atau disusun proposal ECMAscrip{filtering}t atau Javascrip{filter}t proposal. Saya akan melakukan yang terbaik untuk mengikuti artikel ini pada setiap kesempatan yang dapat menyebabkan kebingungan.