دارت (لغة برمجة)

دارت هي لغة برمجة صممها لارس باك وكاسبر لوند وطورتها جوجل . [ 7 ] ويمكن استخدامها لتطوير تطبيقات الويب وتطبيقات الجوال بالإضافة إلى تطبيقات الخادم وتطبيقات سطح المكتب .

دارت هي لغة برمجة كائنية التوجه ، تعتمد على الأصناف ، وتعتمد على جمع البيانات المهملة ، وتتميز ببنية مشابهة للغة سي . [ 8 ] يمكن ترجمتها إلى لغة الآلة ، أو جافا سكريبت ، أو ويب أسمبلي . تدعم دارت الواجهات ، والمزيجات ، والأصناف المجردة ، والأنواع العامة المُجسّدة ، واستنتاج الأنواع . [ 4 ] أحدث إصدار من دارت هو 3.12.2 . [ 3 ] عدّل هذا على ويكي بيانات

تاريخ

تم الكشف عن لغة دارت في مؤتمر GOTO في آرهوس ، الدنمارك، في الفترة من 10 إلى 12 أكتوبر 2011. [ 9 ] أسس المشروع كل من لارس باك وكاسبر لوند. [ 10 ] تم إصدار دارت 1.0 في 14 نوفمبر 2013. [ 11 ]

حظيت لغة دارت باستقبال متباين في البداية. انتقد البعض مبادرة دارت لتسببها في تجزئة الويب بسبب خطط تضمين آلة دارت الافتراضية في متصفح كروم . تم التخلي عن هذه الخطط في عام 2015 مع إصدار دارت 1.9. وتحول التركيز إلى ترجمة كود دارت إلى جافا سكريبت. [ 12 ]

تم إصدار Dart 2.0 في أغسطس 2018 مع تغييرات لغوية تضمنت نظامًا للأنواع. [ 13 ]

في نوفمبر 2019، قدمت لغة دارت 2.6 إضافةً جديدةً، dart2nativeوهي إضافة توسع نطاق الترجمة الأصلية لتشمل منصات سطح المكتب لينكس، وماك أو إس، وويندوز. [ 14 ] في السابق، كان بإمكان المطورين إنشاء أدوات جديدة باستخدام أجهزة أندرويد أو آي أو إس فقط. مع هذه الإضافة، أصبح بإمكانهم نشر البرنامج في ملفات تنفيذية مستقلة. لا يتطلب تشغيل هذه الملفات تثبيت حزمة تطوير البرامج (SDK) الخاصة بدارت. [ 15 ] تدمج مجموعة أدوات فلاتر لغة دارت، مما يسمح لها بالترجمة على خدمات صغيرة مثل دعم الواجهة الخلفية. [ 16 ] [ 17 ]

صدرت لغة دارت 3.0 في مايو 2023 [ 18 ] مع تغييرات في نظام الأنواع لضمان سلامة القيم الفارغة. تضمن هذا الإصدار ميزات جديدة مثل السجلات والأنماط [ 19 ] ومعدلات الفئات [ 20 ] .

يمكن ترجمة لغة دارت إلى WebAssembly منذ الإصدار 3.4. [ 21 ]

مواصفة

أصدرت لغة دارت الإصدار الخامس من مواصفاتها في 9 أبريل 2021. [ 22 ] ويغطي هذا الإصدار جميع قواعد اللغة حتى الإصدار 2.10. وتتضمن مسودة الإصدار السادس جميع قواعد اللغة حتى الإصدار 2.13. [ 23 ] ويمكن الاطلاع على المقترحات المقبولة للمواصفات ومسودات الميزات المحتملة في مستودع لغة دارت على منصة جيت هاب. [ 24 ]

شكّلت منظمة ECMA الدولية اللجنة الفنية TC52 [ 25 ] لتوحيد معايير لغة دارت. وقد وافقت ECMA على الإصدار الأول من مواصفات لغة دارت تحت مسمى ECMA-408 [ 26 ] في يوليو 2014 خلال جمعيتها العامة رقم 107. [ 27 ] وتمت الموافقة على الإصدارات اللاحقة في ديسمبر 2014، [ 28 ] ويونيو 2015، وديسمبر 2015. [ 26 ]

نشر التطبيقات

تأتي حزمة تطوير البرمجيات (SDK) الخاصة بلغة دارت مزودةً ببيئة تشغيل دارت مستقلة. وهذا يسمح بتشغيل كود دارت في بيئة واجهة سطر الأوامر . تتضمن حزمة تطوير البرمجيات أدوات لتجميع وتغليف تطبيقات دارت. [ 29 ] كما تأتي دارت مزودةً بمكتبة قياسية كاملة تُمكّن المستخدمين من كتابة تطبيقات نظام تعمل بكفاءة تامة، مثل خوادم الويب المخصصة. [ 30 ]

يمكن للمطورين نشر تطبيقات Dart بست طرق:

أساليب نشر دارت
نوع النشرالمنصة المستهدفةخاص بالمنصةيتطلب Dart VMسرعة التجميعسرعة التنفيذ
جافا سكريبتمتصفحلالابطيءسريع
WebAssembly [ 21 ] [ 31 ]متصفحلالابطيءسريع
ملف تنفيذي مستقلmacOS، ويندوز، لينكسنعملابطيءسريع
وحدة التخطيط المسبقmacOS، ويندوز، لينكسنعملابطيءسريع
وحدة الإنتاج في الوقت المناسبmacOS، ويندوز، لينكسنعمنعمسريعبطيء
وحدة محمولةmacOS، ويندوز، لينكسلانعمسريعبطيء

النشر على الويب

يمكن لـ Dart 3 نشر التطبيقات على الويب إما كتطبيقات JavaScript أو WebAssembly. يدعم Dart الترجمة إلى WebAssembly اعتبارًا من مايو 2024. .

جافا سكريبت

لكي تعمل تطبيقات دارت على متصفحات الويب الشائعة ، تعتمد على مُترجم من المصدر إلى المصدر إلى جافا سكريبت . وهذا يجعل تطبيقات دارت متوافقة مع جميع المتصفحات الرئيسية. تُحسّن دارت مُخرجات جافا سكريبت المُترجمة لتجنب عمليات التحقق والعمليات المُكلفة. وينتج عن ذلك كود جافا سكريبت يعمل بسرعة أكبر من الكود المُكافئ المكتوب يدويًا بلغة جافا سكريبت العادية. [ 32 ]

كان أول مترجم من لغة دارت إلى جافا سكريبت هو dartc. وقد تم إيقاف استخدامه في دارت 2.0.

كان مُترجم Dart إلى JavaScript الثاني هو frog. [ 33 ] كُتب بلغة Dart، وطُرح في عام 2013، ثم أُوقف دعمه في عام 2020. يجب عدم الخلط بينه وبين Dart Frog، وهو إطار عمل Dart مفتوح المصدر لبناء أنظمة الواجهة الخلفية من Very Good Ventures . [ 34 ]

المُترجم الثالث من لغة دارت إلى جافا سكريبت هو [اسم المُترجم dart2js]. تم تقديمه في دارت 2.0، [ 35 ] وهو مُترجم dart2jsمُتطور من مُترجمات سابقة. كان الهدف منه تطبيق مواصفات لغة دارت ودلالاتها بالكامل. يستخدم المُطورون هذا المُترجم في إصدارات الإنتاج. وهو يُترجم إلى جافا سكريبت مُصغّرة .

المُترجم الرابع من لغة دارت إلى جافا سكريبت هو [ 36 ]dartdevc . يمكن للمطورين استخدام هذا المُترجم في إصدارات التطوير. يُترجم هذا المُترجم إلى جافا سكريبت قابلة للقراءة البشرية. في 28 مارس 2013، نشر فريق دارت تحديثًا على مدونتهم يتناول كود دارت المُترجم إلى جافا سكريبت باستخدام هذا المُترجم، [ 37 ] مُشيرًا إلى أنه يعمل الآن بشكل أسرع من جافا سكريبت المكتوبة يدويًا على مُحرك V8 جافا سكريبت الخاص بمتصفح كروم في اختبار DeltaBlue. [ 38 ]dart2js

قبل إصدار Dart 2.18، كان بالإمكان استدعاء كل من `and` dart2jsو`and` dartdevcمن سطر الأوامر. في إصدار Dart 2.18، تم دمج هذه الدوال في حزمة تطوير البرامج (SDK) الخاصة بـ Dart. أدى ذلك إلى إزالة أغلفة سطر الأوامر المباشرة مع الإبقاء على المُصرّفين. webdev serveيستدعي الأمر `and` dartdevcالمُصرّف `and`. webdev buildيستدعي الأمر `and` dart2jsالمُصرّف `and`.

يتم تجميع Dart SDK إلى JavaScript بطريقتين.

لتصحيح الأخطاء في الكود، شغّل الأمر التالي webdev serveلتجميع ملف جافا سكريبت أكبر حجماً يحتوي على كود قابل للقراءة البشرية. يمكن تصحيح أخطاء جافا سكريبت المُولّدة بواسطة دارت باستخدام متصفح كروم فقط.

$ cd <dart_app_directory> خدمة webdev $ [--تصحيح] [-o <target.js>] 

لإنشاء تطبيقات إنتاجية، قم بتشغيل الأمر webdev buildلتجميع ملف جافا سكريبت مصغر.

$ cd <dart_app_directory> $ webdev build [-o <target.js>] 

WebAssembly

مع إصدار Dart 3.22، أعلنت جوجل دعمها لتجميع كود Dart إلى WebAssembly . [ 21 ] يتطلب الدعم الكامل لـ Wasm اعتماد ميزة WasmGC [ 39 ] في معيار Wasm. يدعم Chrome 119 [ 40 ] ميزة WasmGC. كان من الممكن أن يدعم Firefox [ 41 ] الإصدار 120 والإصدارات الأحدث ميزة WasmGC، ولكن هناك خلل حالي يمنع التوافق. [ 42 ] يعمل كل من Safari [ 43 ] و Microsoft Edge على دمج دعم WasmGC.

النشر على المنصات الأصلية

يمكن ترجمة لغة دارت إلى لغة الآلة الأصلية لأنظمة macOS وWindows وLinux باستخدام أدوات سطر الأوامر. كما يمكن لدارت ترجمة التطبيقات ذات واجهات المستخدم إلى تطبيقات الويب وiOS وAndroid وmacOS وWindows وLinux باستخدام إطار عمل فلاتر .

ملف تنفيذي مستقل

تتضمن الملفات التنفيذية المستقلة شفرة الآلة الأصلية المُجمَّعة من ملف شفرة Dart المُحدد، بالإضافة إلى تبعياته وبيئة تشغيل Dart صغيرة. تتولى بيئة التشغيل التحقق من أنواع البيانات وجمع البيانات المهملة. يُنتج المُجمِّع مُخرجات خاصة بالبنية التي قام المطور بتجميعها عليها. يمكن توزيع هذا الملف كأي ملف تنفيذي أصلي آخر.

$ dart compile exe "source.dart" -o "target_app" تم الإنشاء: <target_app> $ ./target_app 

وحدة التخطيط المسبق

عند تجميع كود Dart مسبقًا ، [ 44 ] ينتج عنه وحدات نمطية عالية الأداء ومخصصة للمنصة. يتضمن هذا الكود جميع المكتبات والحزم التابعة التي يحتاجها التطبيق، مما يزيد من وقت التجميع. يُخرج المُجمِّع تطبيقًا خاصًا بالبنية التي تم تجميعه عليها.

$ dart compile aot-snapshot "source.dart" تم إنشاء <target_app.aot> $ dartaotruntime "target_app.aot"

وحدة الإنتاج في الوقت المناسب

عند تجميع كود Dart في الوقت المناسب ، ينتج عنه وحدات برمجية عالية الأداء وسريعة التجميع. تتطلب هذه الوحدة البرمجية وجود آلة Dart الافتراضية المضمنة في حزمة تطوير البرامج (SDK) لتشغيلها. يقوم المُجمِّع بتحميل جميع الفئات المُحلَّلة والكود المُجمَّع في الذاكرة عند تشغيل التطبيق لأول مرة، مما يُسرِّع أي تشغيل لاحق له. يُخرج المُجمِّع تطبيقًا مُصمَّمًا خصيصًا للبنية التي تم تجميعه عليها.

$ dart compile jit-snapshot "source.dart" جارٍ تجميع <source.dart> إلى ملف jit-snapshot <target_app.jit> مرحباً بالعالم! $ dart run "target_app.jit" مرحباً بالعالم!

وحدة نواة دارت

عند تجميع كود Dart كوحدة نواة، فإنه ينتج تنسيقًا مستقلًا عن الجهاز يُسمى تمثيل Dart الوسيط (Dart IR). يمكن لتنسيق بايت كود Dart IR العمل على أي بنية تحتوي على آلة افتراضية Dart. هذا يجعل هذا التنسيق قابلًا للنقل بدرجة كبيرة وسريع التجميع، ولكنه أقل كفاءة من مخرجات التجميع الأخرى.

$ dart compile kernel "source.dart" جارٍ تجميع <source.dart> إلى ملف النواة <target_app.dill>. $ dart run "target_app.dill"

التزامن

لتحقيق التزامن ، تستخدم لغة دارت عمالًا معزولين ومستقلين لا يتشاركون الذاكرة، بل يستخدمون تبادل الرسائل ، [ 45 ] على غرار عمليات إرلانج (انظر أيضًا نموذج الممثل ). يستخدم كل برنامج دارت عاملًا معزولًا واحدًا على الأقل، وهو العامل المعزول الرئيسي. منذ دارت 2، لم تعد منصة دارت للويب تدعم العوامل المعزولة، وتقترح على المطورين استخدام عمال الويب بدلًا منها. [ 46 ]

أمان معدوم

ابتداءً من إصدار Dart 2.12، تم تقديم ميزة الأمان من القيم الفارغة (Sound null safety ). [ 47 ] تضمن هذه الميزة عدم إمكانية إرجاع المتغيرات لقيمة فارغة (null) إلا بإذن صريح. يمنع الأمان من القيم الفارغة المطور من إدخال استثناءات المؤشر الفارغ (null-pointer exceptions)، وهو خطأ شائع ولكنه يصعب تصحيحه. مع إصدار Dart 3.0، يجب أن يلتزم جميع الكود بمبدأ الأمان من القيم الفارغة.

تخزين البيانات

تُعد ملفات اللقطات جزءًا أساسيًا من آلة دارت الافتراضية، حيث تخزن الكائنات وبيانات وقت التشغيل الأخرى. [ 45 ]

لقطات من البرنامج النصي
يمكن تجميع برامج Dart في ملفات لقطات تحتوي على جميع أكواد البرنامج والتبعيات المجهزة والجاهزة للتنفيذ، مما يسمح بعمليات بدء تشغيل سريعة.
لقطات كاملة
يمكن تجميع مكتبات Dart الأساسية في ملف لقطة يسمح بتحميلها بسرعة. تحتوي معظم التوزيعات القياسية لآلة Dart الافتراضية الرئيسية على لقطة مُجهزة مسبقًا للمكتبات الأساسية يتم تحميلها أثناء التشغيل.
لقطات الكائنات
تستخدم لغة دارت اللقطات لتسلسل الرسائل التي تنقلها بين الوحدات المعزولة. وباعتبارها لغة غير متزامنة للغاية ، تستخدم دارت الوحدات المعزولة لتحقيق التزامن . [ 48 ] يقوم الكائن بإنشاء لقطة ، ثم ينقلها إلى وحدة معزولة أخرى، ثم تقوم الوحدة المعزولة بإلغاء تسلسلها.

المحررون

في 18 نوفمبر 2011، أصدرت جوجل محرر دارت ، وهو برنامج مفتوح المصدر يعتمد على مكونات إكليبس ، لأنظمة التشغيل macOS وويندوز ولينكس . [ 49 ] يدعم المحرر تمييز بناء الجملة ، وإكمال التعليمات البرمجية ، وتجميع جافا سكريبت ، وتشغيل تطبيقات دارت للويب والخادم، وتصحيح الأخطاء .

في 13 أغسطس 2012، أعلنت جوجل عن إصدار إضافة Eclipse لتطوير Dart. [ 50 ]

في 18 أبريل 2015، أوقفت جوجل دعم محرر Dart لصالح بيئة التطوير المتكاملة (IDE) من JetBrains . [ 51 ] يدعم كل من Android Studio و IntelliJ IDEA و PyCharm و PhpStorm و WebStorm إضافة Dart. [ 52 ] تدعم هذه الإضافة العديد من الميزات مثل تمييز بناء الجملة، وإكمال التعليمات البرمجية، والتحليل، وإعادة البناء، وتصحيح الأخطاء، وغيرها. وتشمل المحررات الأخرى إضافات لـ Dart [ 53 ] ، منها Sublime Text و [ 54 ] Atom و [ 55 ] Emacs و [ 56 ] Vim و [ 57 ] Visual Studio Code . [ 58 ]

محرر مطوري Chrome

في عام ٢٠١٣، بدأ فريق كروميوم العمل على بيئة تطوير مفتوحة المصدر، تعتمد على تطبيقات كروم ، وتضم مكتبة قابلة لإعادة الاستخدام من عناصر واجهة المستخدم الرسومية ، وكان اسمها الرمزي سبارك. [ ٥٩ ] أُعيد تسمية المشروع لاحقًا إلى محرر مطوري كروم. [ ٦٠ ] بُني المشروع بلغة دارت، ويحتوي على سبارك المدعوم من بوليمر. [ ٦١ ]

في يونيو 2015، نقلت جوجل مشروع CDE إلى منصة GitHub كمشروع برمجيات حرة، وتوقفت عن الاستثمار النشط فيه. [ 62 ] أُرشف مشروع محرر مطوري Chrome في 24 أبريل 2021. [ 63 ]

دارت باد

لقطة شاشة من لوحة رمي السهام

لتوفير طريقة أسهل لبدء استخدام لغة دارت، أنشأ فريق دارت منصة دارت باد في بداية عام 2015. تتيح هذه البيئة التطويرية المتكاملة عبر الإنترنت للمطورين تجربة واجهات برمجة تطبيقات دارت (APIs) وتشغيل أكواد دارت. كما توفر تمييزًا للبنية، وتحليلًا للأكواد، وإكمالًا تلقائيًا لها، وتوثيقًا، وتحريرًا لملفات HTML وCSS. [ 64 ]

أدوات التطوير

Dart DevTools، المكتوبة بلغة Dart، [ 65 ] هي مجموعة من أدوات تصحيح الأخطاء البرمجية وتحسين الأداء.

رفرفة

أطلقت جوجل إطار عمل Flutter لتطوير التطبيقات الأصلية. Flutter، المبني باستخدام Dart وC وC++ و Skia ، هو إطار عمل مفتوح المصدر ومتعدد المنصات لواجهة المستخدم. قبل Flutter 2.0، كان بإمكان المطورين استهداف أنظمة Android و iOS والويب فقط. أصدر Flutter 2.0 دعمًا لأنظمة macOS وLinux وWindows كميزة تجريبية. [ 66 ] أُصدر Flutter 2.10 مع دعم إنتاجي لنظام Windows [ 67 ] ، بينما أصدر Flutter 3 دعمًا إنتاجيًا لجميع منصات سطح المكتب. [ 68 ] يوفر Flutter إطار عمل، وعناصر واجهة مستخدم، وأدوات. يتيح هذا الإطار للمطورين إنشاء ونشر تطبيقات للهواتف المحمولة، وأجهزة سطح المكتب، والويب. [ 69 ] يعمل Flutter مع Firebase [ 70 ] ويدعم توسيع إطار العمل من خلال إضافات تُسمى الحزم. يمكن العثور على هذه الحزم في مستودع الحزم الخاص بهم، pub.dev. [ 71 ] كما يدعم JetBrains إضافة Flutter. [ 72 ]

مثال

مثال على برنامج "مرحباً بالعالم!" :

void main () { print ( 'Hello, World!' ); }

حلقة تكرار بسيطة : [ 73 ]

void main () { for ( int i = 1 ; i <= 10 ; i ++ ) { print ( i ); } }

دالة لحساب العدد النوني في متتالية فيبوناتشي :

void main () { int i = 20 ; print ( 'fibonacci( $ i ) = ${ fibonacci ( i ) } ' ); }/// يحسب العدد النوني في متتالية فيبوناتشي. int fibonacci ( int n ) { return n < 2 ? n : ( fibonacci ( n - 1 ) + fibonacci ( n - 2 )); }

فصل دراسي بسيط:

// استورد مكتبة الرياضيات للوصول إلى دالة الجذر التربيعي. // تم الاستيراد باسم `math`، لذا يجب استخدام `math.` كبادئة للوصول إليها. import 'dart:math' as ​​math ;// إنشاء فئة لـ Point. class Point {// لا يمكن تغيير المتغيرات النهائية بعد تعيين قيم لها. // قم بتعريف متغيرين من نوع مثيل. final num x , y ;// دالة إنشاء، مع اختصار برمجي لتعيين متغيرات الكائن. // تحتوي دالة الإنشاء على مُعاملين إلزاميّين. Point ( this . x , this . y );// مُنشئ مُسمى مع قائمة تهيئة. Point.origin ( ) : x = 0 , y = 0 ;// دالة. num distanceTo ( Point other ) { num dx = x - other . x ; num dy = y - other . y ; return math . sqrt ( dx * dx + dy * dy ); } // مثال على دالة جلب. // تعمل بنفس طريقة المتغير النهائي، ولكن يتم حسابها في كل مرة يتم الوصول إليها. num get magnitude => math . sqrt ( x * x + y * y );// مثال على تحميل المعاملات الزائدة Point operator + ( Point other ) => Point ( x + other . x , y + other . y ); // عند إنشاء مثيل لفئة مثل Point في Dart 2+، فإن new // كلمة اختيارية }// تبدأ جميع برامج Dart بالدالة main(). void main ( ) { // إنشاء كائنات النقاط. Point p1 = Point ( 10 , 10 ) ; print ( p1.magnitude ); Point p2 = Point.origin ( ) ; num distance = p1.distanceTo ( p2 ); print ( distance ) ; }

تأثيرات من لغات أخرى

تنتمي لغة دارت إلى عائلة لغات ALGOL . [ 74 ] وتشمل أعضاؤها لغات C و Java و C# و JavaScript وغيرها.

تم اعتماد صيغة استدعاء الأساليب المتتالية من لغة سمول توك. [ 75 ] توفر هذه الصيغة اختصارًا لاستدعاء عدة أساليب واحدة تلو الأخرى على نفس الكائن.

تأثرت مزيجات دارت بـ Strongtalk [ 76 ] [ 77 ] و Ruby .

تستخدم لغة دارت وحدات العزل كوحدة للتزامن والأمان عند هيكلة التطبيقات. [ 78 ] يعتمد مفهوم العزل على نموذج الممثل المُطبق في لغة إرلانج. [ 79 ]

في ورقة بحثية نُشرت عام 2004، اقترح جلعاد براخا (الذي كان عضوًا في فريق دارت) وديفيد أونجار واجهة برمجة تطبيقات المرآة (Mirror API) لإجراء انعكاس آمن ومتحكم فيه . [ 80 ] تم تطبيق المفهوم لأول مرة في برنامج سيلف (Self ).

انظر أيضاً

مراجع

  1. كوبيك، ديفيد (30 يونيو 2014). رمي السهام للمبتدئين تمامًا . دار نشر أبريس. ص  56. ISBN 9781430264828تم الاطلاع عليه بتاريخ 24 نوفمبر 2015 .
  2. باك، لارس (10 أكتوبر 2011). "دارت: لغة لبرمجة الويب المنظمة" . مدونة جوجل للبرمجة . تم الاطلاع عليه في 31 يناير 2016 .
  3. 1 2 "الإصدار 3.12.2" . 9 يونيو 2026. تم الاطلاع عليه في 10 يونيو 2026 .
  4. 1 2 "نظام أنواع Dart" . dart.dev .
  5. "لغات الويب والآلات الافتراضية: البرمجة السريعة رائجة دائمًا. (V8، Dart) - مؤتمر جوجل I/O 2013" . يوتيوب . 16 مايو 2013. تاريخ الاطلاع: 22 ديسمبر 2013 .
  6. "فريق دارت يرحب بـ تايب سكريبت" . 10 سبتمبر 2019. تم الاطلاع عليه بتاريخ 22 فبراير 2020 .
  7. "نبذة عن لغة دارت - تعلم دارت: الخطوة الأولى نحو فلاتر" . موقع تعليمي: دورات تفاعلية لمطوري البرمجيات . تم الاطلاع عليه بتاريخ 20 يونيو 2023 .
  8. "جولة في لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 9 أغسطس 2018 .
  9. "دارت، لغة برمجة جديدة لبرمجة الويب المهيكلة" ، مؤتمر GOTO (عرض تقديمي) (الكلمة الافتتاحية الرئيسية)، مؤتمر آرهوس، 10 أكتوبر 2011{{citation}}: CS1 maint: موقع الناشر مفقود ( رابط )
  10. لاد، سيث. "ما هو دارت؟" . ما هو دارت؟ أورايلي . تم الاسترجاع في 16 أغسطس 2014 .
  11. "Dart 1.0: حزمة تطوير برمجية مستقرة لتطبيقات الويب المهيكلة" . news.dartlang.org . تم الاطلاع عليه بتاريخ 2018-08-08 .
  12. سيث لاد (10 سبتمبر 2019). "أخبار وتحديثات دارت" . dartlang.org .
  13. مور، كيفن (2018-08-07). "الإعلان عن Dart 2 Stable ومنصة Dart للويب" . Dart . تم الاسترجاع في 2018-08-08 .
  14. "تطور لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 2023-06-20 .
  15. "نظرة عامة على لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 12-05-2023 .
  16. "دارت 2.5 تُتيح الترجمة الأصلية لسطح المكتب" . إنفوورلد . 20 نوفمبر 2019. تم الاطلاع عليه بتاريخ 28 نوفمبر 2019 .
  17. "إصدار Dart 2.6 مع dart2native" . SDtimes . 7 نوفمبر 2019. تاريخ الاسترجاع : 28 نوفمبر 2019 .
  18. "تطور لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 2024-01-09 .
  19. "الأنماط" . dart.dev . تم الاطلاع عليه بتاريخ 12-05-2023 .
  20. "مُعدِّلات الفئات" . dart.dev .
  21. 1 2 3 تومسن، مايكل (14 مايو 2024). "إطلاق Flutter 3.22 و Dart 3.4 في مؤتمر Google I/O 2024" . Flutter . تم الاطلاع عليه بتاريخ 17 مايو 2024 .
  22. "مواصفات لغة برمجة دارت، الطبعة الخامسة" (PDF) .
  23. "مواصفات لغة برمجة دارت، مسودة الطبعة السادسة" (PDF) .
  24. "مستودع لغة دارت على جيت هاب" . جيت هاب .
  25. "TC52 - Dart" . مؤرشف من الأصل بتاريخ 2016-08-02 . تم الاطلاع عليه بتاريخ 2013-12-16 .
  26. 1 2 "ECMA-408" . إيكما الدولية . تم الاطلاع عليه بتاريخ 12-05-2023 .
  27. ^ أندرس ثورهاوج ساندهولم (10 سبتمبر 2019). "أخبار ومستجدات دارت" . Dartlang.org .
  28. ^ أندرس ثورهاوج ساندهولم (10 سبتمبر 2019). "أخبار ومستجدات دارت" . Dartlang.org .
  29. "حزم أدوات الناشر dart.dev" . حزم دارت . تم الاسترجاع في 12 مايو 2023 .
  30. "مقدمة إلى مكتبة dart:io" . dart.dev . تم الاطلاع عليه بتاريخ 21-07-2013 .
  31. تومسن، مايكل (10 مايو 2023). "الإعلان عن دارت 3" . دارت . تم الاسترجاع في 13 مايو 2023 .
  32. "جافا سكريبت كهدف للترجمة: جعلها سريعة" (ملف PDF) . Dartlang.org. مؤرشف من الأصل (ملف PDF) بتاريخ 2016-07-02 . تم الاطلاع عليه بتاريخ 2013-08-18 .
  33. "نحو مُترجم واحد من لغة دارت إلى جافا سكريبت" . 10 سبتمبر 2019. تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  34. لوسون، لورين (2 مارس 2023). "دارت فروغ: لغة الواجهة الأمامية تنتقل إلى الواجهة الخلفية" .
  35. مور، كيفن (2018-08-08). "الإعلان عن Dart 2 Stable ومنصة Dart للويب" . Dart . تم الاسترجاع في 2023-05-13 .
  36. "dartdevc: مُجمِّع تطوير لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 13-05-2023 .
  37. لاد، سيث (28 مارس 2013). "أخبار وتحديثات دارت: لماذا يُنتج dart2js كود جافا سكريبت أسرع من دارت" . News.dartlang.org . تم الاطلاع عليه بتاريخ 21 يوليو 2013 .
  38. "أداء لعبة رمي السهام" . Dartlang.org . مؤرشف من الأصل بتاريخ 2017-01-03 . تم الاطلاع عليه بتاريخ 2013-07-21 .
  39. اقتراح لجنة إدارة مكتبة WebAssembly ، WebAssembly، 12 مايو 2023 ، تم الاطلاع عليه في 13 مايو 2023
  40. "تم تفعيل خاصية جمع البيانات المهملة لـ WebAssembly (WasmGC) افتراضيًا في متصفح Chrome | مدونة" . Chrome للمطورين . تم الاطلاع عليه بتاريخ 17 مايو 2024 .
  41. "نشرة سبايدرمونكي (فايرفوكس 110-111)" . محرك سبايدرمونكي جافا سكريبت/ويب أسمبلي . 16 فبراير 2023. تاريخ الاسترجاع: 13 مايو 2023 .
  42. "1788206 - OffscreenCanvas.transferToImageBitmap يتسبب في إنشاء نسخة" . bugzilla.mozilla.org . تم الاطلاع عليه بتاريخ 17-05-2024 .
  43. "ملاحظات إصدار Safari Technology Preview 167" . وثائق مطوري Apple . تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  44. أوبينا، أونوها (2020-04-07). "كيف يعمل كل من JIT وAOT في لغة دارت؟" . ميديوم . تم الاطلاع عليه بتاريخ 2023-06-20 .
  45. 1 2 "جوهر لغة جوجل دارت: بناء التطبيقات، اللقطات، العزل" . InfoQ . تم الاسترجاع في 29 أغسطس 2021 .
  46. مور، كيفن (23 فبراير 2018). "تغيير جذري في Dart2: إزالة دعم الويب لـ dart:mirrors و dart:isolate" . مجموعات جوجل .
  47. هراسيك، فيليب (10 يونيو 2020). "الإعلان عن سلامة الصوت الصفري" . دارت . تم الاسترجاع في 12 مايو 2023 .
  48. "التزامن في لغة دارت" . dart.dev . تم الاطلاع عليه بتاريخ 12-05-2023 .
  49. "جوجل تُصدر محرر دارت لأنظمة ويندوز، وماك أو إس إكس، ولينكس" . مؤرشف من الأصل بتاريخ 3 ديسمبر 2013. تم الاطلاع عليه بتاريخ 29 نوفمبر 2011 .
  50. "إضافة Dart لبرنامج Eclipse جاهزة للمعاينة" . 10 سبتمبر 2019.
  51. لاد، سيث (30 أبريل 2015). "حاضر ومستقبل المحررات وبيئات التطوير المتكاملة للغة دارت" . أخبار وتحديثات دارت . تم الاطلاع عليه بتاريخ 18 مايو 2015 .
  52. "مستودع إضافات JetBrains : Dart" . Plugins.intellij.net . تم الاطلاع عليه بتاريخ 21-07-2013 . 
  53. "أدوات دارت" . dart.dev . تم الاطلاع عليه بتاريخ 15-11-2016 .
  54. "Dart - Packages - Package Control" . packagecontrol.io . تم ​​الاطلاع عليه بتاريخ 13-05-2023 .
  55. "dart - إضافة Dart لـ Atom" . dart-atom.github.io . تم ​​الاطلاع عليه بتاريخ 13-05-2023 .
  56. ترينور، برادي (15 أبريل 2023)، bradyt/dart-mode ، تم الاطلاع عليه في 13 مايو 2023
  57. دعم دارت لـ Vim ، دارت، 9 مايو 2023 ، تم الاطلاع عليه بتاريخ 13 مايو 2023
  58. "Dart - سوق Visual Studio" . marketplace.visualstudio.com . تم الاطلاع عليه بتاريخ 13-05-2023 .
  59. بوفورت، فرانسوا. "فريق الكروم يعمل بنشاط حاليًا" .
  60. "بيئة تطوير تطبيقات كروم" . جيت هاب . 26 أكتوبر 2021.
  61. "Spark، تطبيق Chrome من Google هو بيئة تطوير متكاملة لجهاز Chromebook الخاص بك" . 22 نوفمبر 2013.
  62. ساروب، سري. "محرر Chrome Dev: الإعلانات" .
  63. "محرر مطوري Chrome هو أداة تطوير لإنشاء تطبيقات على منصة Chrome: تطبيقات Chrome وتطبيقات الويب، باستخدام JavaScript أو Dart. (لم يعد قيد التطوير النشط) - googlearchive/chromedeveditor" . 29 يوليو 2019 - عبر GitHub.
  64. لاد، سيث (2015-05-06). "الإعلان عن DartPad: طريقة سهلة لاستكشاف كود Dart" . أخبار وتحديثات Dart . تم الاطلاع عليه بتاريخ 2015-05-18 .
  65. أدوات مطوري Dart وFlutter ، Flutter، 12-05-2023 ، تم الاطلاع عليه في 12-05-2023
  66. سيلز، كريس (2021-03-03). "ما الجديد في فلاتر 2.0" . فلاتر . تم الاسترجاع في 2023-05-12 .
  67. سنيث، تيم (3 فبراير 2022). "الإعلان عن Flutter لنظام التشغيل Windows" .
  68. تشيشولم، كيفن (12 مايو 2022). "ما الجديد في فلاتر 3" . فلاتر . تم الاسترجاع في 12 مايو 2023 .
  69. "الأسئلة الشائعة" . flutter.dev . تم الاطلاع عليه بتاريخ 29-08-2021 .
  70. "Firebase" . flutter.dev . تم الاطلاع عليه بتاريخ 29-08-2021 .
  71. "حزم دارت" . حزم دارت . تم الاسترجاع في 12-05-2023 .
  72. "Flutter - إضافة IntelliJ IDEs | Marketplace" . JetBrains Marketplace . تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  73. "الحلقات في لغة دارت | عالم فلاتر | دروس دارت وفلاتر" . مؤرشف من الأصل بتاريخ 13 يناير 2024. تم الاطلاع عليه بتاريخ 12 يناير 2024 .
  74. "عائلة الغول" . c2.com .
  75. "سلاسل الأساليب في لغة دارت" . 10 سبتمبر 2019. تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  76. براخا، جلعاد؛ غريسولد، ديفيد (سبتمبر 1996). "توسيع لغة سمول توك باستخدام الميكسينات" (ملف PDF) . ورشة عمل OOPSLA . OOPSLA.
  77. لاد، سيث (13 نوفمبر 2011). "نسخة مكتوبة من جولة سريعة في لعبة رمي السهام بقلم جلعاد براخا" . تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  78. "جوهر لغة جوجل دارت: بناء التطبيقات، اللقطات، العزل" . InfoQ .
  79. "التزامن الجريء: كيف تُمكّنك لغات البرمجة Clojure وRust وPony وErlang وDart من تحقيق ذلك. - ريناتو أثايدس" . sites.google.com . مؤرشف من الأصل بتاريخ 13 مايو 2023. تم الاطلاع عليه بتاريخ 13 مايو 2023 .
  80. براخا، جلعاد؛ أونجار، ديفيد (2004). "المرايا: مبادئ تصميم تسهيلات المستوى الفوقي للغات البرمجة كائنية التوجه" (ملف PDF) . إشعارات ACM SIGPLAN . 39 (10). ACM: 331-344 . doi : 10.1145/1035292.1029004 . تاريخ الاسترجاع: 15 فبراير 2014 .

فهرس