-
-
Notifications
You must be signed in to change notification settings - Fork 98
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4670ad7
commit ce83eec
Showing
1 changed file
with
23 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,31 @@ | ||
# About | ||
|
||
Dart brings object-oriented and typing together with the flexibility that JavaScript is known for. It is designed to simplify common programming tasks. In recent years, its popularity in the software development community has grown tremendously. | ||
Dart combines object-oriented programming and static typing with the flexibility of dynamic languages like JavaScript. Designed to simplify common programming tasks, Dart has rapidly gained popularity in the software development community, particularly due to its close integration with [Flutter](https://flutter.dev), a widely-used framework for cross-platform development. | ||
|
||
To dig deeper into Dart, [click here](https://www.dart.dev/guides/language/language-tour). | ||
## Key Concepts of Dart | ||
|
||
The primary concepts baked into the making of the language were: | ||
- **Simple and Familiar:** Dart is easy to learn for developers familiar with languages like Java, JavaScript, or C#. It features clean and consistent syntax, making it approachable. | ||
- **Modern Object-Oriented Language:** Dart incorporates modern object-oriented principles, providing robust support for classes, inheritance, and interfaces. | ||
- **Strong Typing with Flexibility:** While Dart is a statically-typed language, it offers flexible type inference and dynamic features, giving developers the best of both worlds. | ||
- **Asynchronous Programming Made Easy:** Dart’s `async` and `await` keywords simplify concurrency. The event-driven model, built around **isolates** (lightweight thread-like structures), allows efficient asynchronous execution without complex threading. | ||
- **Comprehensive Tools and Libraries:** Dart offers extensive built-in libraries, and its ecosystem is bolstered by [Pub.dev](https://pub.dev), a package manager providing a wide range of open-source libraries and tools. | ||
- **Cross-Platform Development:** Dart powers [Flutter](https://flutter.dev), one of the most popular frameworks for building high-performance, cross-platform apps for mobile, web, and desktop from a single codebase. | ||
- **Web Support:** Dart code can be transpiled into JavaScript, making it suitable for both client-side and server-side web development. Frameworks like [AngularDart](https://angulardart.dev/) are tailored specifically for Dart web apps. | ||
- **Server-Side Capabilities:** Dart is not just for frontend development; it can be used to build scalable server-side applications with frameworks like [Shelf](https://pub.dev/packages/shelf) or the now-deprecated [Aqueduct](https://aqueduct.io/). | ||
- **High Performance:** Dart code is compiled to native machine code for mobile and desktop applications and optimized JavaScript for the web, delivering high performance across platforms. | ||
|
||
- It is simple, object-oriented, and familiar. | ||
* The language derives its syntax from Java and JavaScript; as well as Smalltalk. | ||
- It has a built-in concurrency model that is easy to learn and use. | ||
- It provides tools out of the box to help development efforts. | ||
- It has strong support via many standard libraries. | ||
- It is architecture-neutral and portable. | ||
- It executes with high performance for practical applications and not just benchmarks. | ||
## Versatility of Dart | ||
|
||
Dart is a very versitile language that can be used in a variety of different ways: | ||
- **Mobile Apps:** Dart’s most prominent use is in mobile app development through Flutter, allowing for consistent UI and business logic across iOS and Android. | ||
- **Web Development:** Dart can be compiled to JavaScript for building modern web applications, either through native Dart frameworks or Flutter for web. | ||
- **Desktop Development:** With Flutter, Dart now supports creating native applications for Windows, macOS, and Linux, offering true cross-platform capabilities. | ||
- **Back-End Services:** Dart is increasingly used in back-end services thanks to its concise syntax and performance optimizations. It can handle RESTful APIs, microservices, and more. | ||
- **Firebase and Cloud Integration:** Dart has robust support for integrating with Firebase and other cloud services through official libraries, making it a preferred choice for cloud-connected apps. | ||
|
||
- Dart code can be transpiled into JavaScript for [web development](https://dart.dev/web), typically using [AngularDart](https://github.com/angulardart/angular). | ||
- [Application servers](https://www.dart.dev/dart-vm) can be written using Dart. | ||
- Cross-platform mobile application development can be achieved through a popular framework called [Flutter](https://flutter.io/). | ||
- [Google Firebase](https://github.com/firebase/firebase-dart) APIs can be integrated into Dart apps using the libraries written by the Firebase team. | ||
## Recent Enhancements | ||
|
||
There is a rich ecosystem springing up around Dart because the standard (built-in) libraries can be supplemented by open source libraries found on [Pub](https://pub.dev). | ||
- **Null Safety:** Dart introduced **sound null safety**, which helps eliminate null reference errors by ensuring non-nullable types are used correctly during development. | ||
- **Faster Compilation:** Dart has made strides in improving its compilation pipeline, offering both **ahead-of-time (AOT)** and **just-in-time (JIT)** compilation, ensuring fast development cycles and optimized release builds. | ||
- **Desktop and Embedded Devices:** Flutter's expansion to desktop and embedded platforms has made Dart more versatile than ever, enabling developers to create applications for a wide range of devices beyond mobile and web. | ||
|
||
Dart’s growing ecosystem, strong developer support, and cross-platform capabilities make it an attractive choice for modern app development. |