DEV Community

Cover image for Mengenal Lebih Jauh Tentang EcmaScript , TC39 , 
 dan EcmaScript Proposal 🚀
Muhammad Fauzan
Muhammad Fauzan

Posted on

Mengenal Lebih Jauh Tentang EcmaScript , TC39 , dan EcmaScript Proposal 🚀

Banyak hal baru dan menarik yang belum diimplementasikan pada ECMAScript programming language karena mereka harus melewati proses TC39, proses TC39 memiliki beberapa spesifikasi yang didalamnya memiliki beberapa tahap (stage) untuk disetujui komite TC39 sebelum tahap selesai / terimplementasi.

Apa itu EcmaScript?

ECMAScript adalah bahasa skrip (.es) yang distandarisasi oleh Ecma International dalam spesifikasi ECMA-262, ECMA-262 adalah dokumen spesifikasi paling akurat dan up-to-date, untuk mengakses dokumen ECMA-262 silahkan akses url berikut ini https://tc39.es/ecma262/.

Singkatnya, ECMAScript adalah spesifikasi bahasa.

Bahasa Pemrograman EcmaScript

EcmaScript adalah superset dari sintaks dan semantik dari bahasa yang lebih dikenal sebagai JavaScript , meskipun begitu , EcmaScript memiliki beberapa bahasa pemrograman dan teknologi yang mengikuti standar spesifikasinya, diantaranya ActionScript , V8 , Google Apps Script , dan Nashorn.

TC39

TC39 atau disingkat sebagai Technical Committee number 39 adalah lembaga yang menstandarkan bahasa JavaScript di bawah spesifikasi "ECMAScript".

Tugas TC39 adalah untuk memastikan apakah sebuah proposal itu memungkinkan untuk ditambahkan, menciptakan breaking changes atau tidak melalui spesifikasi EcmaScript sebelum diimplementasikan ke Bahasa Pemrograman EcmaScript.

Spesifikasi ECMAScript inilah yang akan menentukan cara kerja JavaScript secara terpisah selangkah demi selangkah.

TC39 Process

TC39 mengikuti proses untuk mengembangkan fitur bahasa yang didasarkan pada tahap kematangan. Setelah proposal cukup matang, TC39 memperbarui spesifikasi dengan perubahan yang diimplementasikan dalam proposal. Hingga saat ini, TC39 mengandalkan aliran yang lebih lama berdasarkan Microsoft Word. Tapi setelah ES3 keluar, TC39 menghabiskan sepuluh tahun dengan hampir tidak ada perubahan pada spesifikasi. Setelah itu, butuh empat tahun bagi ES6 untuk keluar.

Setelah ES6 keluar, TC39 merampingkan proses revisi proposal untuk memenuhi ekspektasi modern. Proses baru menggunakan superset HTML untuk memformat proposal. Mereka menggunakan GitHub Pull Requests, yang membantu meningkatkan partisipasi dari komunitas dan jumlah proposal yang dibuat juga meningkat. Spesifikasi sekarang lebih dari standar hidup, yang berarti bahwa proposal melihat adopsi lebih cepat, dan kita tidak menghabiskan waktu bertahun-tahun menunggu edisi baru spesifikasi keluar.

Proses baru ini melibatkan empat tahap kematangan yang berbeda. Semakin matang sebuah proposal, semakin besar kemungkinan untuk akhirnya membuatnya menjadi spesifikasi.

TC39 Stages

Proses TC39 memiliki empat tahap kematangan sebelum diterima dan diimplementasikan oleh TC39.

1). Stage 0

Pada Tahap Strawman, Setiap diskusi, ide, perubahan, atau penambahan yang belum diberikan sebagai proposal formal disebut sebagai proposal "strawman". Hanya anggota dari TC39 yang bisa membuat proposal ini.

Daftar proposal dari tahap 0 bisa diakses melalui url berikut ini https://github.com/tc39/proposals/blob/master/stage-0-proposals.md.

2). Stage 1

Pada Tahap 1, proposal diformalkan dan diharapkan untuk menangani masalah lintas sektor, interaksi dengan proposal lain, dan masalah implementasi. Proposal dalam tahap ini mengidentifikasi masalah diskrit dan menawarkan solusi konkret untuk masalah tersebut.

Proposal Tahap 1 sering menyertakan deskripsi high-level API, contoh penggunaan, dan diskusi tentang semantik dan algoritma internal. Proposal ini kemungkinan besar akan berubah secara signifikan saat mereka menjalani prosesnya.

Daftar proposal dari tahap 1 bisa diakses melalui url berikut ini https://github.com/tc39/proposals/blob/master/stage-1-proposals.md.

3). Stage 2

Pada Tahap 2, proposal harus memberikan rancangan awal dari spesifikasi.

Pada titik ini, pelaksana akan mulai bereksperimen dengan implementasi aktual dalam waktu proses TC39. Implementasinya bisa dalam bentuk polyfill, kode pengguna yang mengacaukan runtime untuk mengikuti proposal; implementasi mesin, yang secara native memberikan dukungan untuk proposal; atau bisa juga didukung oleh build-time compiler seperti Babel.

Salah satu yang populer adalah Decorators , saya sebagai penulis sangat menunggu implementasi dari proposal ini di Javascript , namun karena banyak perubahan dan kepentingan , proposal ini mempunyai waktu lama untuk lanjut ke tahap berikutnya.

Daftar proposal dari tahap 2 bisa diakses melalui url berikut ini https://github.com/tc39/proposals.

4). Stage 3

Pada Tahap 3, proposal merupakan rekomendasi dari kandidat. Pada tahap lanjutan ini, editor spesifikasi dan reviewer yang ditunjuk harus menandatangani spesifikasi akhir. Proposal Tahap 3 tidak mungkin berubah melampaui perbaikan untuk masalah yang diidentifikasi.

Pelaksana harus menyatakan minatnya pada proposal , karena proposal tanpa dukungan dari pelaksana akan gagal. Dalam praktiknya, proposal berpindah ke level ini dengan setidaknya satu implementasi browser, polyfill dengan high-fidelity, atau jika didukung oleh build-time transpiler seperti Babel.

Daftar proposal dari tahap 3 bisa diakses melalui url berikut ini https://github.com/tc39/proposals.

5). Stage 4

Pada Tahap Terakhir, proposal akan masuk ke tahap ini ketika setidaknya ada dua implementasi independen yang lulus tes penerimaan.

Proposal yang lolos ke tahap empat akan dimasukkan dalam revisi ECMAScript berikutnya.

Fungsi async, Array #includes, dan operator eksponen adalah beberapa contoh yang berhasil mencapai tahap 4 sejak proses revisi dirombak.

Tamat

Saya bersyukur dengan adanya TC39, Tanpa adanya TC39, Spesifikasi EcmaScript, dan lain-lain. Bisa dibayangkan bukan? proses pengembangan Bahasa Pemrograman yang menggunakan spesifikasi ini tidak akan terstruktur, breaking changes dimana mana, dan lain sebagainya.

Jika kamu memiliki pertanyaan, silahkan komentar dibawah.

Terima kasih buat yang sudah baca âĪïļðŸ§ ðŸ§ âĪïļðŸĶ„ðŸĶ„🧠âĪïļðŸ§ 

Discussion (9)

Collapse
notkanade_san profile image
!Kanade.san

Nice post om..
kira kira kalau gambarannya ECMAscript ini sebagai low level bahasa pemograman yang jadi landasan bahasa pemograman javaScript ya?

Collapse
fncolon profile image
Muhammad Fauzan Author

benar tapi belum tepat, bukan sebagai low level melainkan spesifikasi yang hanya menentukan sintaks dan semantik dari core API, namun implementasi yang fungsionalitas i/o, file handling benarnya tetap di Javascript.

Collapse
notkanade_san profile image
!Kanade.san

wah.. terima kasih buat klarifikasinya ...
(āļ…>ω<*āļ…)

Collapse
alfian217050 profile image
Muhammad Alfian

Walaupun agak kurang mengerti, saya tetap baca sampai habis. Thanks for sharing!

Collapse
fncolon profile image
Muhammad Fauzan Author

Appreciate banget sama yang begini, thanks for reading anyway! Emang agak dalem ini bahasannya haha.

Collapse
syaufy profile image
SYAUQIZAIDAN KHAIRAN KHALAF

Nice post zan!

Collapse
fncolon profile image
Muhammad Fauzan Author

Thank you, semoga bermanfaat :D

Collapse
ibnusyawall profile image
Ibnu syawal

thx for sharing!

Collapse
fncolon profile image
Muhammad Fauzan Author

Thank you, semoga bermanfaat :D