डार्ट भाषा - संरचित वेब प्रोग्रामिंग

छवि

डार्ट संरचित वेब एप्लिकेशन बनाने के लिए एक नई कक्षा-उन्मुख भाषा है। यह सरल, कुशल और स्केलेबल होने के लिए डिज़ाइन किया गया है। डार्ट शक्तिशाली भाषा को एक समझ और पठनीय वाक्य रचना में परिचित भाषा के निर्माण के साथ जोड़ती है।

मुख्य विशेषताएं


कक्षाएं

कक्षाएं और इंटरफेस सभी प्रकार के एपीआई बनाने के लिए एक सरल और समझने योग्य तंत्र हैं। ये निर्माण विधियों और डेटा के इनकैप्सुलेशन और पुन: उपयोग को जोड़ते हैं।

वैकल्पिक प्रकार

डार्ट प्रोग्रामर अपनी जरूरतों के लिए स्थिर प्रकार जोड़ सकते हैं। प्रोग्रामर और डेवलपमेंट वर्कशॉप के आधार पर, कोड एक सरल, अनकैप्ड प्रोटोटाइप से मजबूत टाइपिंग के लिए एक जटिल मॉड्यूलर एप्लिकेशन पर माइग्रेट कर सकता है। टाइप किया गया कोड आपको कोड में क्या हो रहा है, यह समझाने के लिए कम दस्तावेज लिखने की अनुमति देता है, और डीबगिंग के लिए टाइप चेकिंग टूल का उपयोग किया जा सकता है।

पुस्तकालयों

डेवलपर्स पुस्तकालयों को बना सकते हैं और उनका उपयोग कर सकते हैं जिन्हें चलाने के समय में बदलने की गारंटी नहीं है।

उपकरण

भाषा के अलावा, डार्ट में भाषा के विकास और समर्थन के लिए रनटाइम्स, लाइब्रेरीज़ और टूल्स का एक समृद्ध सेट शामिल है। ये उपकरण आपको डिबगिंग के दौरान संपादन कोड सहित कुशलतापूर्वक विकास और डिबग कोड की अनुमति देते हैं।

भाषा के उद्देश्य


अब डार्ट अपने विकास की शुरुआत में है। निम्नलिखित लक्ष्य भाषा को उसके विकास में मार्गदर्शन करेंगे:
- वेब के लिए एक संरचित और एक ही समय में लचीली प्रोग्रामिंग भाषा बनाएं
- प्रोग्रामर के लिए डार्ट को परिचित और स्वाभाविक बनाएं
- सुनिश्चित करें कि सभी भाषा निर्माण उच्च प्रदर्शन और आवेदन की त्वरित शुरुआत प्रदान करते हैं
- फोन, टैबलेट, कंप्यूटर और सर्वर सहित सभी प्रकार के वेब उपकरणों पर डार्ट चलाना संभव बनाएं।
- ऐसे उपकरण प्रदान करें जो डार्ट को सभी प्रमुख आधुनिक ब्राउज़रों पर चलने दें।

ये लक्ष्य निम्नलिखित समस्याओं को हल करते हैं जो वेब डेवलपर्स अक्सर सामना करते हैं:
- छोटे स्क्वीक्स बहुत बार किसी भी संरचना के बिना विशाल अनुप्रयोगों में उत्परिवर्तित करते हैं, उन्हें बनाए रखने के लिए डिबग और समस्याग्रस्त करना बहुत मुश्किल है। इसके अलावा, इन अखंड अनुप्रयोगों को पर्याप्त भागों में विभाजित नहीं किया जा सकता है, इसलिए अलग-अलग विकास दल उन पर अलग से काम नहीं कर सकते हैं। जब वे बहुत बड़े हो जाते हैं तो वेब अनुप्रयोगों को उत्पादक रूप से विकसित नहीं किया जा सकता है।
- स्क्रिप्टिंग भाषाएं लोकप्रिय हैं क्योंकि उनकी हल्की संरचना आपको जल्दी से कोड लिखने की अनुमति देती है। एक नियम के रूप में, आवेदन के हिस्सों के बीच समझौते भाषा संरचनाओं का उपयोग करने के बजाय, टिप्पणियों के रूप में प्रेषित किए जाते हैं। नतीजतन, अन्य डेवलपर्स को ऐसे कोड को समझना, पढ़ना और बनाए रखना मुश्किल होता है।
- मौजूदा भाषाएं डेवलपर्स को 2 शिविरों में विभाजित करती हैं: स्थिर और गतिशील भाषाओं का पालन। पारंपरिक स्थिर भाषाओं के लिए भारी टूल और जटिल कोडिंग शैलियों की आवश्यकता होती है जो डेवलपर को सीमित करती हैं।
- डेवलपर Nog.js और Google वेब टूलकिट (GWT) के लिए कुछ वर्गों के अपवाद के साथ, क्लाइंट और सर्वर दोनों का विस्तार करने वाले सजातीय सिस्टम नहीं बना सकते हैं।
- विभिन्न भाषाओं और स्वरूपों में एक संदर्भ स्विच होता है, जो कोडिंग प्रक्रिया को जटिल बनाता है।

मुझे कोड दिखाओ


यहाँ कुछ उदाहरण दिए गए हैं जो भाषा का एक संपूर्ण रूप में एक विचार देते हैं।

कक्षाएं और इंटरफेस

डार्ट इंटरफेस और कक्षाएं आपको पुन: उपयोग किए जा सकने वाले एक्स्टेंसिबल ब्लॉक बनाने की क्षमता प्रदान करते हैं। एक इंटरफ़ेस विधियों और स्थिरांक के एक मूल सेट को परिभाषित करता है जो अन्य इंटरफेस से भी विरासत में मिल सकता है। एक वर्ग कई इंटरफेस लागू कर सकता है, लेकिन यह केवल एक सुपरक्लास से विरासत में मिल सकता है।

निम्न उदाहरण एक इंटरफ़ेस को परिभाषित करता है, साथ ही इस इंटरफ़ेस को लागू करने वाले वर्ग और सुपरक्लास के साथ:
interface Shape {
  num perimeter();
}

class Rectangle implements Shape {
  final num height, width; 
  Rectangle(num this.height, num this.width);  // Compact constructor syntax.
  num perimeter() => 2*height + 2*width;       // Short function syntax.
}

class Square extends Rectangle {
  Square(num size) : super(size, size);
}


Dart . . , .

, , Dart, Point, x y scale() distance().
class Point {
  var x, y;
  Point(this.x, this.y);
  scale(factor) => new Point(x*factor, y*factor);
  distance() => Math.sqrt(x*x + y*y);
}

main() {
  var a = new Point(2,3).scale(10);
  print(a.distance());
}

, . , x, y factor num Point num:
class Point {
  num x, y;
  Point(num this.x, num this.y);
  Point scale(num factor) => new Point(x*factor, y*factor);
  num distance() => Math.sqrt(x*x + y*y);
}

void main() {
  Point a = new Point(2,3).scale(10);
  print(a.distance());
}

Dart?


Dart :
— Dart JavaScript : Chrome, Safari 5+, Firefox 4+ ( ).
— Dart
— Dartboard Dart .

MIME


Dart HTML #import #source . MIME Dart — “application/dart”:
<html>
  <body>
    <script type="application/dart">
      main() {
        Element element = document.getElementById('message');
        element.innerHTML = 'Hello from Dart';
      }     
    </script>
    <div id="message"></div>
  </body>
</html>


Dart - :
Core Library
.
DOM Library
HTML5 DOM, HTML5 W3C/WHATWG. HTML5.

Core Library ( ):
image


. , , -. Dart:
— dartlang.org , , Dart
— Google Code code.google.com/p/dart
— Google Groups groups.google.com/a/dartlang.org/group/misc

Creative Commons Attribution 3.0 License, BSD License

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


All Articles