Kami memiliki JavaScript, lalu kami memiliki Flash, lalu kami memiliki Silverlight dan kemudian HTML5 memiliki semuanya.
Jadi apa motivasi di balik TypeScript? Masalah apa yang akan diatasi dan perbaikan apa yang kita dapatkan dengan TypeScript?
Kami memiliki JavaScript, lalu kami memiliki Flash, lalu kami memiliki Silverlight dan kemudian HTML5 memiliki semuanya.
Jadi apa motivasi di balik TypeScript? Masalah apa yang akan diatasi dan perbaikan apa yang kita dapatkan dengan TypeScript?
Jawaban:
Menurut saya itu adalah bahasa yang diketik secara statis, berbasis kelas yang dikompilasi ke JavaScript. Itu ide yang bagus, dan yang lain juga punya.
Keuntungannya harus jelas bagi siapa saja yang dikembangkan dalam bahasa yang diketik secara statis, berbasis kelas dan dalam JavaScript:
Jadi seperti yang kita lihat, ide dasarnya adalah ide yang sangat bagus. Karena itu, saya tidak bisa mengatakan apa-apa tentang bahasa itu sendiri karena saya tidak punya pengalaman dengannya. Tetapi saya telah menggunakan Smart (ditautkan ke atas) dan menemukan itu sebagai alat yang sangat kuat dan berguna untuk pengembangan web.
Ada beberapa alasan bagus untuk menggunakan TypeScript, sejauh yang saya bisa lihat. Pertama dan terutama, seperti kata Mason Wheeler, kompiler . Atau lebih tepatnya semua pengecekan kompiler tidak. JSLint dan alat-alat lain berguna, tetapi melewatkan beberapa masalah dan kadang-kadang salah. Saya tentu menyambut "inovasi" ini.
Lalu ada sistem tipe nyata , meningkatkan keterbacaan dan menegakkan jenis yang benar. Bagaimanapun, ini meningkatkan kecepatan pengembangan.
Bagi saya, salah satu hal hebat adalah dukungan perkakas . Itu mungkin efek samping dari sistem tipe, tapi tetap hebat. Dan benar-benar perlu, karena dukungan tooling JavaScript saat ini sangat berguna.
TypeScript mencoba memperluas JavaScript . Kompiler menghasilkan JavaScript yang sangat bagus. Dan selain itu, ini mengikuti proposal ECMAScript 6 . (Misalnya sintaks fungsi panah , nilai standar parameter , modul , dan sebagainya.
Itu membuat bekerja dengan modul dan kelas lebih mudah. Sebenarnya mungkin dan sangat umum untuk bekerja dengan kelas dan modul dalam JavaScript, tetapi membutuhkan sejumlah kode boilerplate. Dan itu tidak mudah dibaca. TypeScript memungkinkan untuk menulis pernyataan kelas, antarmuka, dan modul seperti di Java atau C #, yang jauh lebih mudah jika Anda bertanya kepada saya.
Tapi bagaimanapun juga, itu masih JavaScript . Tidak perlu belajar bahasa baru, atau sintaksis. Satu-satunya hal yang ditambahkannya adalah sistem tipe opsional (yang bagus dan terlambat).
Lalu ada "perpustakaan definisi" , yang berarti saya dapat menggunakan semua lib JavaScript saya tanpa menulis ulang, atau bahkan menambalnya. Namun, saya memiliki sistem tipe tambahan sekarang.
Saya pasti akan mencobanya!
Satu hal terakhir, tidak ada persaingan antara HTML5 dan TypeScript. Tapi itu cerita lain.
Kami memiliki JavaScript, lalu kami memiliki Flash, lalu kami memiliki Silverlight dan kemudian HTML5 memiliki semuanya.
Ini TIDAK benar . Html5 tidak memilikinya, ia memperkenalkan markup baru yang menyederhanakan penggunaan multimedia, dan mengeksplorasi keuntungan dari browser era baru (seperti menggunakan akselerasi perangkat keras saat merender html).
Jadi apa motivasi di balik TypeScript?
Motivasi mungkin didorong oleh alasan untuk menggunakannya. Semua fitur TypeScript seperti: pemeriksaan statis, navigasi berbasis simbol, penyelesaian pernyataan, dan refactoring kode adalah alasan yang sangat kuat untuk mempertimbangkannya.
Selain itu, ia menawarkan kelas, modul, dan antarmuka untuk membantu Anda membangun komponen yang kuat. Fitur-fitur ini tersedia pada waktu pengembangan untuk pengembangan aplikasi berkeyakinan tinggi, tetapi dikompilasi menjadi JavaScript sederhana.
Ini mungkin diperlakukan sebagai alat untuk mengelola pengembangan javascript daripada total bahasa baru yang dikompilasi ke JS. Itu tidak ingin menjadi bahasa pengembangan sisi server seperti Dart, dan tidak memiliki sintaks yang berbeda seperti CoffeeScript. Itu tidak ingin mengambil bahasa populer (dan itu perpustakaan inti) dan mengkompilasinya ke JS seperti GWT atau skrip #. TypeScript bahkan mengikuti sintaksis "kelas" yang sama yang diusulkan untuk versi JS berikutnya.
Saya pikir sebagian besar pengembangan web dilakukan hari ini menggunakan javascript nyata, di sisi klien saja. Bahasa atau kerangka kerja seperti Dart, GWT tidak cocok untuk ini. Jika Anda menggunakan coffeescript, sintaks baru muncul. Dan Anda harus memahami coffeescript dan JS. Sementara TypeScript hanya menambahkan beberapa fitur berorientasi tipe tambahan, menyatu ke dalam JS, yang menyimpan pengembang dari kesalahan tipe-spesifik (yang merupakan sebagian besar kesalahan JS) dan memberikan alat pengembangan informasi lebih lanjut tentang maksud pengembang.
Pendekatan ini bukan hal baru. Buka bagian "Mengetik Statis" dari
Artikel ini membahas kueri Anda- http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/
Saya pikir ini adalah upaya untuk mengubah omong kosong (javascript) yang dibagi dan tidak dapat diandalkan menjadi bahasa berpemilik yang sebenarnya dapat digunakan untuk proyek-proyek besar.
Seharusnya dibandingkan dengan GWT, yang memiliki serangkaian tujuan serupa tetapi mengambil pendekatan yang lebih bersih dengan membuat javascript bukan bagian dari bahasa; dan dengan applet Java atau Flash, yang mengambil pendekatan yang sangat bersih untuk mendefinisikan lingkungan runtime lengkap yang tidak tergantung pada browser.
Pendapat Anda mungkin berbeda-beda, tetapi saya pikir itu akan terjadi selama itu tergantung pada browser yang secara native memasok implementasi javascript dan model DOM (yang bervariasi, tidak konsisten).