-
-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update ABOUT.md #596
Open
hesham04Dev
wants to merge
2
commits into
exercism:main
Choose a base branch
from
hesham04Dev:patch-1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Update ABOUT.md #596
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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/). | ||
hesham04Dev marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- **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. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please follow the Exercism Markdown layout standards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went ahead and pushed a commit that uses one sentence per line.