ملاحظة: انضم إلى مجتمع Dart الناطق باللغة الروسية على Telegram و Slack و Google+ . وفي نهاية المقال ستجد إعلانًا صغيرًا.
إحياء Dart كلغة برمجة شائعة للجوال وتطوير الويب
نعلن اليوم عن إصدار النسخة الثابتة من لغة برمجة Dart - 2.0 ، بالإضافة إلى منصة الويب Dart ، التي توفر مزيجًا فريدًا من الإنتاجية والأداء وقابلية التطوير.

يستفيد مطورو Flutter من العديد من ميزات Dart 2 منذ أن كان Flutter يستخدم إصدارات ما قبل الإصدار من Dart 2 SDK لعدة أشهر حتى الآن. ومع ذلك ، يعد إصدار الإصدار المستقر من Dart 2 خطوة مهمة أخرى نحو إصدار Flutter نظرًا للعلاقة الوثيقة بين الإطار واللغة. إذا لم تقم بتثبيت Flutter بعد ، فيمكنك
تجربته الآن .
مع إصدار Dart 2 ، يمكن الآن لمطوري الويب أيضًا استخدام هذا الإصدار من اللغة ، ستتلقى جميع المكتبات والأدوات عددًا من التحسينات الخاصة بالويب. يمكن العثور على جميع المعلومات اللازمة حول تثبيت وإنشاء التطبيق الأول
هنا .
دارت: شعبية متزايدة
تعد Dart 2 علامة فارقة مهمة على طريق إحياء Dart كلغة برمجة شائعة تركز على التطوير السريع والمريح لتطبيقات الهاتف المحمول والويب. نريد للمطورين الذين ينشئون تطبيقات عميل أن يكونوا منتجين: مع لغة وإطار ومكونات تقلل من كود لوحة الإعلانات وتسمح لهم بالتركيز على منطق الأعمال ، بالإضافة إلى الأدوات التي تحدد الأخطاء في وقت مبكر ، وتساعد في تصحيح الأخطاء وتوليد ضغط ورمز سريع.
لقد شهدنا زيادة حادة في شعبية دارت خلال العام الماضي. تظهر تحليلاتنا الخاصة زيادة في الاستخدام الخارجي بعشرة أضعاف. في الربع الأخير ، كانت Dart
واحدة من أسرع اللغات
نموًا على GitHub مقاسة حسب طلب السحب.
تظهر الأسئلة المتزايدة في StackOverflow أيضًا اتجاهًا إيجابيًا في شعبية Dart:

بالنسبة إلى Google ، تعد Dart واحدة من اللغات القليلة التي نستخدمها لتطوير تطبيقات الويب بملايين الأسطر من التعليمات البرمجية من العديد من المشاريع المختلفة ، بما في ذلك إعلانات Google و Google Shopping ومشاريعنا الخاصة للبنية التحتية الداخلية.
في الواقع ، يمكنك بالفعل استخدام Dart دون أن تدرك ذلك: تمت
إعادة كتابة المعالج الأولي على غرار Sass مؤخرًا
إلى Dart لجعله أسرع وأكثر قابلية للتنقل وأسهل في التطوير. يتم توزيع Sass الآن كإصدار مستقل قابل للتنفيذ على Homebrew و Chocolatey وتم تجميعه لـ JavaScript على npm. يسهّل Dart تثبيت التطبيقات في أي مكان بدون تبعيات خارجية ، بالإضافة إلى نشر سير العمل للمستخدمين الذين يكتبون على Dart ، وكذلك للمستخدمين الذين لا يفعلون ذلك.

يركز Dart 2 على ثلاثة جوانب:
تقوية اللغة
وتشديدها ، وتطوير دعمنا لمنصات الويب والجوّال ، وإنشاء أدوات ومكونات تدعم استخدام Google Dart للعالم الخارجي. ستغطي بقية هذه المقالة هذه المواضيع الثلاثة.
Dart 2: لغة محسنة لتطوير العميل
كما قلنا
في فبراير (
النسخة الروسية )
، فإن نظام نوع Dart صريح . هذا يعني أنه قبل أن يقوم المستخدمون بتشغيل تطبيقك ، فإنه يمر بمرحلة التحليل والتجميع ، والتي يتم خلالها اكتشاف فئة كبيرة من المشكلات. عندما قمنا بتوسيع Dart إلى تطبيقات كبيرة للغاية على Google ، اكتشف نظام النوع الكثير من الأخطاء في مرحلة مبكرة من التطوير ، مما أدى إلى رمز أفضل.
مع Dart 2 ، لا يمكنك الدخول في حالة يتم فيها تنفيذ تعبير بقيمة لا تتطابق مع النوع الثابت لهذا التعبير. هذا يعني أنه يمكنك توسيع قاعدة التعليمات البرمجية الخاصة بك إلى ملايين الأسطر ، وإعادة بناء المشاريع الكبيرة ونشر التعليمات البرمجية الخاصة بك في الإنتاج ، مع الثقة بها.
لا تقلق:
صريح لا يعني جبال من التعليمات البرمجية غير الضرورية. يتضمن نظام النوع مخرجات موسعة - حتى بالنسبة إلى وسيطات النوع
العامة .
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> }
تعرف على المزيد حول نظام نوع Dart 2 على
هذه الصفحة.
كما ذكر في منشورات المدونة السابقة ، يقلل Dart 2 أيضًا من ضوضاء اللغة في العديد من المجالات الرئيسية: على سبيل المثال ، الكلمة الرئيسية
الجديدة اختيارية الآن ، والكلمة الأساسية
الثابتة اختيارية في
السياق المناسب .
أخيرًا ، قمنا بالكثير من العمل وراء الكواليس لتوحيد الأدوات المساعدة المختلفة ، والتي توحدها الآن
واجهة أمامية مشتركة تدعم المترجمين
وأوقات التشغيل . وهذا يوفر الاتساق لمستخدمينا ويعدك بتحسين سرعة وجودة الميزات الجديدة مع استمرار Dart في التطور.
Dart 2 على الويب: إطار قوي وقوي
كانت تطبيقات الويب منذ البداية أساسية لمهمة دارث. في الواقع ، معظم تطويرات Dart من Google مخصصة لتطبيقات الويب. أحد أكبرها هو برنامج إعلانات Google ، الذي يوفر مليارات الدولارات من الاقتصاد عبر الإنترنت. في عملية نقل التعليمات البرمجية إلى Dart ، قاموا بتقليل حجم قاعدة رمز واجهة المستخدم بنسبة 40٪ ، مع تحسين أداء وجودة التطبيق.
بينما توفر Dart SDK الأساسية مكتبات للوصول إلى واجهات برمجة التطبيقات الحديثة للمتصفح ، فإننا ندعم أيضًا إطار عمل قوي قائم على الزاوية لبناء تطبيقات ويب معقدة.
يستفيد AngularDart 5 ، الذي يتم شحنه كجزء من Dart 2 ، من نظام نوع Dart
الصريح ونظام
البناء الجديد (الموضح أدناه) حتى يتمكن المستخدم من استخدام تراكيب تزايدية سريعة أثناء التطوير وجافا سكريبت أكثر تجميعًا.
كان أحد الاتجاهات الرئيسية في هذا الإصدار هو تقليل كمية الشفرة التي تتم معالجتها عند تحميل الصفحة ، مما يقلل بشكل كبير من "وقت التفاعل" لصفحات الويب. في العديد من التطبيقات ، تم تقليل حجم الرمز بأكثر من النصف مقارنة بـ AngularDart 4.
لإثبات التحسينات في منصة الويب Dart ، أنشأنا
تطبيق عميل مستند إلى Dart لموقع HackerNews على الويب كتطبيق ويب تقدمي ؛ تم نشره مع أمثلة أخرى على موقع
HNPWA الشهير. باستخدام أفضل الممارسات لإنشاء تطبيقات الويب على Dart ، تمكنا من إنشاء تطبيق كامل الوظائف يكون تفاعليًا بالكامل في ثانية واحدة على الأجهزة الحديثة وما يصل إلى خمس ثوانٍ على جهاز محمول متواضع في شبكة 3G بطيئة. يعد هذا أمرًا تنافسيًا حتى عند مقارنته بأطر الويب خفيفة الوزن المحسنة للتطبيقات الصغيرة.
https://hnpwa.dartlang.org/تمتد استثماراتنا في البنية التحتية أيضًا إلى
مكتبة المكونات الخاصة بنا ، والتي قمنا بتحديثها أيضًا. لديك الآن حق الوصول إلى 100 فئة جديدة ، بما في ذلك
مكونات المواد المختلفة. يمكنك استكشاف جميع مكوناتنا في
معرض المكونات .
يعد منتقي التاريخ المادي أحد المكونات المتاحة لتطبيق الويب الخاص بك.
مجموعة أدوات لـ Dart 2
جنبًا إلى جنب مع Dart 2 ، تصبح Dart لغة الدرجة الأولى التي تم تجميعها في JavaScript ، مع دورة التطوير المتوقعة من قبل مطوري الويب ، وميزات أداء وقت التشغيل الممتازة. يتم تحقيق ذلك بفضل المزايا التي لا توفرها معظم اللغات الموجهة إلى JS: نظام نوع
صريح ودعم ممتاز لتطبيقات الهاتف المحمول الأصلية.
مع Dart 2 ، تغطي أدوات الويب الخاصة بنا نموذج تطوير JavaScript بنسبة 100٪ مع اثنين من جامعي JavaScript إضافيين. يوفر مترجم التطوير ،
dartdevc ،
تجميعًا إضافيًا سريعًا عند إنشاء JavaScript يسهل قراءته
وتصحيحه . هذا يسمح
لمترجم dart2js بالتركيز على إنشاء JavaScript محسن للغاية لتطبيقات الويب المتقدمة لتطبيقات سطح المكتب المحمولة والمعقدة. يستخدم كلا المجمعين نظام نوع Dart الصريح لتحسين إنتاجهما.
تعتمد أدوات الويب الخاصة بنا على
نظام بناء جديد مصمم ليكون سريعًا ومُصححًا وقابل للتوسيع. الآن مهام مثل إنشاء رمز التسلسل ، وتجميع Sass في CSS ، وتجميع Dart في JavaScript ، كل ذلك يحدث في سلسلة أدوات واحدة ، والتي تدعم التحديثات السريعة والتزايدية كأجزاء من تغيير التطبيق الخاص بك. تم تصميم نظام البناء أيضًا لدعم الاستخدام خارج الويب. مثال: يتم استخدامه من قبل مطوري Flutter لإنشاء رمز
للتسلسل في JSON .
مع Dart 2 ، لدينا مجموعة موسعة من الأدوات للمطورين. بالإضافة إلى دعم أدوات
Android Studio و JetBrains ، بما في ذلك
IntelliJ IDEA و
WebStorm ، فإننا ندعم أيضًا
Visual Studio Code مع ملحق
Dart Code . ولدينا أيضًا منصة للتجربة:
DartPad ، التي تم تحديثها بالكامل لـ Dart 2.
أخيرًا ، تأتي Dart SDK مع مجموعة من الأدوات المفيدة الأخرى: مدير الحزم الذي يعمل مع موقعنا
الإلكتروني ،
محلل ثابت ، linter يمكنك استخدامه من سطر الأوامر أو كحزمة ، بالإضافة إلى أدوات
توثيق الويب والتنسيق الذي يتوافق
مع معايير اللغة دارت .
اعرف المزيد
تحقق من دليل الخطوات الأولى
Flutter ومجموعة
أدوات Web Dart .
توفر
ملاحظات الإصدار معلومات فنية مفصلة حول العديد من التحسينات الطفيفة الأخرى التي تم إجراؤها منذ Dart 1 ، وبعضها حرج. إذا واجهت مشكلات لا يمكن لـ Google حلها ، نوصي بالبدء بـ
StackOverflow . قم بالتسجيل في النشرة الإخبارية
لإعلانات Dart وتابعنا على
Twitter لتلقي التحديثات. نود أيضًا رؤيتك في مجتمعاتنا ، على سبيل المثال ، في
Gitter و
r / dartlang reddit .
شكرا لك
أصبحت Dart لغة عامة الغرض تم تحسينها للتطوير على الويب وعلى الأجهزة المحمولة. لقد عملنا على Dart 2 لسنوات عديدة ، وخلال ذلك الوقت أثرت على جميع جوانب نظامنا البيئي وتطلبت هجرة الملايين من أسطر التعليمات البرمجية ومئات الحزم.
نحن ممتنون لمجتمعات
Dart و
Flutter ، وكذلك لمئات مهندسي Google الذين ساعدونا في هذه الرحلة. لم نكن لنفعلها بدونك!
من المجتمع
أود أن أهنئ فريق تطوير Dart على مثل هذا الحدث الهام ، فهذا حقًا معلم رئيسي لتنمية اللغة. بالطبع ، قد تبدو العديد من الكلمات في هذه المقالة
قابلة للنقاش تمامًا بالنسبة لك ، يمكنك مناقشتها في التعليقات وفي محادثات
Telegram و
Slack و
Google+ .
والإعلان الموعود به: بالإضافة إلى الصور المصغرة الصغيرة ، ننظم أحداثًا سنوية كبيرة مخصصة للغة والأدوات و Flutter و AngularDart وكل ما يتعلق بها. في العام الماضي ، زارنا مهندسون من Google ،
وصنعنا بيرة خاصة ، وبشكل عام كانت ممتعة. هذا العام سنحاول القيام بعمل أفضل! لذلك ، احجز نهاية نوفمبر - بداية ديسمبر ، وتنزعج للإعلانات.