Rilis versi stabil dari Dart 2.0 dan Platform Web Dart

Catatan: Bergabunglah dengan komunitas Dart berbahasa Rusia di Telegram , Slack dan Google+ . Dan di akhir artikel Anda akan menemukan pengumuman kecil.


Bangkitnya Dart sebagai bahasa pemrograman populer untuk pengembangan seluler dan web


Hari ini kami mengumumkan rilis versi stabil bahasa pemrograman Dart - 2.0, serta platform web Dart, yang menawarkan kombinasi unik antara produktivitas, kinerja, dan skalabilitas.




Pengembang Flutter memanfaatkan banyak fitur Dart 2 sejak Flutter telah menggunakan versi pra-rilis SDK 2 Dart selama beberapa bulan sekarang. Namun demikian, rilis versi stabil dari Dart 2 merupakan langkah penting menuju rilis Flutter karena hubungan yang erat antara kerangka dan bahasa. Jika Anda belum menginstal Flutter, Anda dapat mencobanya sekarang .

Dengan rilis Dart 2, sekarang dan pengembang web juga dapat menggunakan versi bahasa ini, semua perpustakaan dan alat akan menerima sejumlah perbaikan khusus untuk Web. Semua informasi yang diperlukan tentang menginstal dan membuat aplikasi pertama dapat ditemukan di sini .

Dart: semakin populernya


Dart 2 adalah tonggak penting dalam perjalanan untuk menghidupkan kembali Dart sebagai bahasa pemrograman populer yang berfokus pada pengembangan aplikasi seluler dan web yang cepat dan nyaman. Kami ingin pengembang membuat aplikasi klien menjadi produktif: dengan bahasa, kerangka kerja dan komponen yang mengurangi kode boilerplate dan memungkinkan mereka untuk fokus pada logika bisnis, serta alat yang mengidentifikasi kesalahan sejak awal, membantu dalam debugging dan menghasilkan compact dan kode cepat.

Kami telah melihat peningkatan tajam dalam popularitas Dart selama setahun terakhir. Analisis kami sendiri menunjukkan peningkatan sepuluh kali lipat dalam penggunaan eksternal. Kuartal terakhir, Dart adalah salah satu bahasa dengan pertumbuhan tercepat di GitHub yang diukur dengan permintaan tarik; pertanyaan yang berkembang di StackOverflow juga menunjukkan tren positif dalam popularitas Dart:



Untuk Google, Dart adalah salah satu dari sedikit bahasa yang kami gunakan untuk mengembangkan aplikasi web dengan jutaan baris kode dari berbagai proyek, termasuk Google Ads, Google Shopping, dan proyek kami sendiri untuk infrastruktur internal.

Bahkan, Anda sudah bisa menggunakan Dart tanpa menyadarinya: preprocessor gaya Sass yang populer baru-baru ini ditulis ulang ke Dart untuk membuatnya lebih cepat, lebih portabel, dan lebih mudah untuk dikembangkan. Sass sekarang didistribusikan sebagai eksekusi mandiri pada Homebrew dan Chocolatey dan dikompilasi untuk JavaScript pada npm. Dart memudahkan untuk menginstal aplikasi di mana saja tanpa ketergantungan eksternal, serta untuk menyebarkan alur kerja untuk pengguna yang menulis di Dart, serta untuk pengguna yang tidak.



Dart 2 berfokus pada tiga aspek: memperkuat dan memperketat bahasa, mengembangkan dukungan kami untuk platform web dan seluler, dan menciptakan alat dan komponen yang mendukung penggunaan Google Dart untuk dunia luar. Sisa dari artikel ini akan membahas tiga topik ini.

Dart 2: bahasa yang dioptimalkan untuk pengembangan klien


Seperti yang kami katakan pada bulan Februari ( versi Rusia ) , sistem tipe Dart adalah eksplisit . Ini berarti bahwa sebelum pengguna meluncurkan aplikasi Anda, itu akan melewati tahap analisis dan kompilasi, di mana kelas besar masalah sering ditemukan. Ketika kami memperbesar Dart ke aplikasi yang sangat besar di Google, sistem tipe mendeteksi banyak kesalahan pada tahap awal pengembangan, yang mengarah pada pembuatan kode yang lebih baik.

Dengan Dart 2, Anda tidak bisa masuk ke keadaan di mana ekspresi dieksekusi dengan nilai yang tidak cocok dengan tipe statis ekspresi ini. Ini berarti bahwa Anda dapat skala basis kode Anda ke jutaan baris, refactor proyek besar dan menyebarkan kode Anda untuk produksi, percaya diri di dalamnya.

Jangan khawatir: Eksplisit tidak berarti kumpulan kode yang tidak perlu. Sistem tipe termasuk keluaran yang diperluas - bahkan untuk argumen tipe umum .

final _field = [3.14, 6.28]; void main() { //   ,   <int>   print([1, 2, 3].runtimeType); // List<int> //    ,       // int (1)  double (3.14)    `num` print([1, 3.14].runtimeType); // List<num> //        print(_field.runtimeType); // List<double> } 

Pelajari lebih lanjut tentang sistem tipe Dart 2 di halaman ini .

Seperti disebutkan dalam posting blog sebelumnya, Dart 2 juga mengurangi kebisingan bahasa di beberapa bidang utama: misalnya, kata kunci baru sekarang opsional, dan kata kunci const adalah opsional dalam konteks yang sesuai .

Akhirnya, kami melakukan banyak pekerjaan di belakang layar untuk menyatukan berbagai alat bantu, yang sekarang disatukan oleh antarmuka umum yang mendukung kompiler dan runtime kami . Ini memberikan konsistensi bagi pengguna kami dan berjanji untuk meningkatkan kecepatan dan kualitas fitur-fitur baru saat Dart terus berkembang.

Dart 2 di Web: Kerangka Kaya, Kuat


Aplikasi web sejak awal telah menjadi pusat misi Darth. Bahkan, sebagian besar pengembangan Dart Google adalah untuk aplikasi web. Salah satu yang terbesar adalah Google Ads, yang menyediakan miliaran dolar ekonomi online. Dalam proses kode porting ke Dart, mereka mengurangi ukuran basis kode UI sebesar 40%, sambil meningkatkan kinerja dan kualitas aplikasi.

Sementara SDK Dart inti menyediakan perpustakaan untuk mengakses API browser modern, kami juga mendukung kerangka kerja berbasis Angular yang kuat untuk membangun aplikasi web yang kompleks. AngularDart 5 , dikirimkan sebagai bagian dari Dart 2, mengambil keuntungan dari sistem tipe Dart yang eksplisit dan sistem build yang baru (dijelaskan di bawah) sehingga pengguna dapat menggunakan build inkremental yang cepat selama pengembangan dan JavaScript yang disusun lebih kompak.

Salah satu arahan utama dalam versi ini adalah untuk mengurangi jumlah kode yang diproses ketika halaman dimuat, yang secara signifikan mengurangi "waktu untuk interaktivitas" untuk halaman web. Dalam banyak aplikasi, ukuran kode telah berkurang lebih dari setengah dibandingkan dengan AngularDart 4.

Untuk menunjukkan peningkatan dalam platform web Dart, kami menciptakan implementasi klien berbasis Dart untuk situs web HackerNews sebagai aplikasi web progresif; itu diterbitkan bersama dengan contoh-contoh lain di situs web HNPWA populer. Menggunakan praktik terbaik untuk membuat aplikasi web di Dart, kami dapat membuat aplikasi yang berfungsi penuh yang sepenuhnya interaktif dalam satu detik pada perangkat modern dan hingga lima detik pada perangkat seluler sederhana di jaringan 3G yang lambat. Ini kompetitif bahkan jika dibandingkan dengan kerangka kerja web ringan yang dioptimalkan untuk aplikasi kecil.


https://hnpwa.dartlang.org/

Investasi infrastruktur kami juga meluas ke perpustakaan komponen kami, yang juga kami perbarui. Anda sekarang memiliki akses ke 100 kelas baru, termasuk berbagai komponen Material . Anda dapat menjelajahi semua komponen kami di galeri komponen .


Material Date Picker adalah salah satu komponen yang tersedia untuk aplikasi web Anda.

Toolkit untuk Dart 2


Bersama dengan Dart 2, Dart menjadi bahasa yang dikompilasi dalam JavaScript kelas satu, dengan siklus pengembangan yang diharapkan oleh pengembang web, dan fitur kinerja runtime yang luar biasa. Ini dicapai berkat keunggulan yang tidak disediakan oleh sebagian besar bahasa berorientasi JS: sistem tipe eksplisit dan dukungan luar biasa untuk aplikasi seluler asli.

Dengan Dart 2, alat web kami mencakup model pengembangan JavaScript 100% dengan dua kompiler JavaScript tambahan. Kompiler pengembangan, dartdevc , menyediakan kompilasi tambahan cepat saat membuat JavaScript yang mudah dibaca dan di-debug. Ini memungkinkan kompiler dart2js kami fokus pada pembuatan JavaScript yang sangat optimal untuk aplikasi web tingkat lanjut untuk aplikasi desktop perusahaan seluler dan kompleks. Kedua kompiler menggunakan sistem tipe Dart eksplisit untuk mengoptimalkan output mereka.

Alat web kami didasarkan pada sistem build baru yang dirancang untuk menjadi cepat, debugged, dan dapat dikembangkan. Sekarang tugas-tugas seperti menghasilkan kode serialisasi, mengkompilasi Sass dalam CSS, dan mengkompilasi Dart dalam JavaScript, semua terjadi dalam satu rantai alat yang mendukung pembaruan yang cepat dan bertahap seiring perubahan bagian aplikasi Anda. Sistem build juga dirancang untuk mendukung penggunaan di luar Web. Contoh: digunakan oleh pengembang Flutter untuk menghasilkan kode untuk serialisasi di JSON .

Bersama dengan Dart 2, kami memiliki seperangkat alat yang diperluas untuk pengembang. Selain mendukung perangkat Android Studio dan JetBrains, termasuk IntelliJ IDEA dan WebStorm , kami juga mendukung Kode Visual Studio dengan ekstensi Kode Dart . Dan kami juga memiliki platform untuk eksperimen: DartPad , yang telah sepenuhnya diperbarui untuk Dart 2.

Akhirnya, SDK Dart dilengkapi dengan seperangkat alat lain yang berguna: manajer paket yang bekerja dengan situs web kami, penganalisa statis , linter yang dapat Anda gunakan dari baris perintah atau sebagai paket, serta alat untuk dokumentasi web dan pemformatan yang sesuai dengan standar bahasa Dart .

Pelajari lebih lanjut


Lihat Panduan Memulai Flutter kami dan Web Dart Toolkit kami .

Catatan rilis memberikan informasi teknis terperinci tentang banyak perbaikan kecil lainnya yang dibuat sejak Dart 1, beberapa di antaranya sangat penting. Jika Anda menemukan masalah yang tidak dapat dipecahkan oleh Google, kami sarankan memulai dengan StackOverflow . Mendaftarlah untuk buletin Pengumuman Dart dan ikuti kami di Twitter untuk menerima pembaruan. Kami juga ingin melihat Anda di komunitas kami, misalnya, di Gitter dan r / dartlang reddit .

Terima kasih


Dart telah menjadi bahasa serba guna yang dioptimalkan untuk pengembangan di Web dan di perangkat seluler. Kami telah bekerja pada Dart 2 selama beberapa tahun, selama waktu itu mempengaruhi semua aspek ekosistem kami dan mengharuskan migrasi jutaan baris kode dan ratusan paket.

Kami berterima kasih kepada komunitas Dart dan Flutter , serta ratusan insinyur Google yang telah membantu kami dalam perjalanan ini. Kami tidak bisa melakukannya tanpamu!


Dari komunitas


Saya ingin mengucapkan selamat kepada tim pengembangan Dart pada acara yang sangat penting ini, ini benar-benar tonggak utama untuk pengembangan bahasa. Tentu saja, banyak kata dalam artikel ini mungkin tampak cukup dapat diperdebatkan bagi Anda, Anda dapat mendiskusikannya baik di komentar maupun di obrolan Telegram , Slack , dan Google+ kami .
Dan pengumuman yang dijanjikan: selain mitaps kecil, kami mengadakan acara besar tahunan yang didedikasikan untuk bahasa, peralatan, Flutter, AngularDart, dan segala sesuatu yang terkait dengannya. Tahun lalu, kami dikunjungi oleh para insinyur dari Google, kami menyeduh bir khusus, dan secara umum itu menyenangkan. Tahun ini kami akan mencoba melakukan yang lebih baik lagi! Karena itu, pesanlah akhir November - awal Desember, dan tunggu saja pengumumannya.

Source: https://habr.com/ru/post/id419635/


All Articles