Download presentation
Presentation is loading. Please wait.
Published byYenny Muljana Modified over 6 years ago
1
CSE4102/5102 Team Project Dart Programming Language
Michael Presch and Patrick Guyer
2
Why We Chose Dart ALGOL Language Family
Developed and supported by Google Many tools to test and learn the language Criticism over original intended usage Dart is open-source Snapshot feature Isolates Diverse Usages (web, mobile, traditional, servers) The language is still in the beta phase Built for modern usages
3
ALGOL Language Family ALGOL is short for "Algorithmic Language"
Sometimes referred to as "C-like" family ALGOL 58 is seen as the predecessor for many modern programming languages ALGOL introduced the concept of code blocks (structured programming) Code blocks in the ALGOL family allow statements (if, else, while) ALGOL languages incorporate subroutines Languages in this family are more familiar to new users since C, Java and others in the ALGOL family are very popular
4
Developed and Supported by Google
Currently in beta phase called Dart 2 New features and functionalities are constantly being added Dart is designed around using the popular Angular Framework, and Google invests in this tool combination, and uses this combo in its own production software Dart is also designed around using Flutter, Google software for creating mobile apps. The Android platform and popular web browser Chrome are developed and owned by Google, indicating Dart will have continued support in the popular mobile and web development fields.
5
Tools to Learn and Test The official Dart website dartlang.org has tutorials on using Dart in all its capacities. They are focused under 'web', 'mobile', and server. These tutorials seek to increase the user base which is important for open-source languages. DartPad is an embedded console that can allow users to write Dart programs with no installation required. It includes all basic Dart APIs. These factors make Dart an excellent language for teaching.
6
Early Criticism Originally developed to replace Javascript as a "faster alternative" Viewed as a "Java clone" Since Javascript is such an industry standard and Dart is Google developed, many thought Chrome would be the only browser to support it This would mean web programs written in Dart could only be used by the Chrome browser
7
Result of Criticism The current beta, 'Dart 2' saw Dart pivot from being a Javascript replacement to being a more versatile language used for both mobile and web development. This led to its current iteration where it can be used on many platforms. In the future with Chrome's popularity its possible that Google could be incentivized to shift Dart back to a web development focus
8
Open-Source Advantages
Since Dart is open-source anyone can contribute to the SDK This provides the advantage that the user have more sway over how the language evolves Since the source code is available to everyone, bugs can be found easier as more users view it. Security issues are also available to everyone and can be found and fixed before they are exploited. This leads to an overall more secure language.
9
Open-Source Disadvantages
Many more people contribute to the core of the project which means the code can be less uniform with different conventions There may be multiple versions of the same language with compatibility issues. Community interest in the language drives advancement No company dedicated to troubleshooting or providing suppport
10
Snapshot Feature One of the most common problems with mobile applications is how constrained the device memory is. Right before an application starts executing the Dart VM is started and a snapshot of the heap is logged. Dart can then use this log file for faster startups in the future that require less memory from less processes being used.
11
Isolates Basic unit of concurrency in Dart
Every isolate is single threaded New isolates are created for multi-threading Splitting applications into multiple isolates increases reliability. If one crashes, the others continue to run and that isolate restarts. Isolates increase security by allowing insecure code to run on its own isolate. Message- passing can then be used to "communicate" with that isolate. This allows greater control over what the untrusted code can access.
12
Diverse Uses (Web Programming)
Can transcompile to Javascript allowing compatability with all modern browsers using dart2js Dart transcompiled to Javascript can be faster than native javascript due to the compiler optimizing the output javascript Browsers can natively support Dart (eg: Dartium Browser and Chrome)
13
Diverse Uses (Mobile Applications)
Google Flutter is an open-source application development SDK that allows the creation of mobile apps using Dart on both Android and iOS Dart code is Ahead of Time (AOT) compiled into machine code and distributed onto app marketplaces. Object-Oriented paradigm functionality puts Dart on-par with other popular alternatives such as Java for Android Only held back by the number of libraries compared to more traditionally used languages in industry
14
Diverse Uses (Mobile Applications: Flutter)
Uses built-in Android and iOS UI elements for fast performance Allows the reuse of code from languages like objective-C and Swift in your mobile apps Built-in APIs allow interaction with phone utilities Dart and Flutter were both developd by Google with using them together in mind
15
Diverse Uses (Interpreter and Servers)
Dart comes packages with a VM that allows you to practice using the language with an interpreter This VM allows the creation of command-line apps The VM and dart:io package allows the creation of scripts for creating HTTP Servers
16
Diverse Uses (Conclusions)
The advantage of Dart is its versatility. Knowing the one language can allow you to use it in a variety of ways in your software stack. This can streamline your development process and allow new creators to spend less time learning languages and more time creating. Google includes many built-in APIs and packages so less time is spent searching for libraries that suit your problems.
17
Inventors Dart is a programming language developed at Google.
Dart was first released in October 2011 The latest stable release is version 1.24, which came out on June 12, 2017 The primary developers behind it are Lars Bak and Kasper Lund.
18
Biography – Lars Bak Lars Bak is a Danish computer programmer.
Received an MS degree in computer science in 1988 from Aarhus University in Denmark. Became active in designing and implementing object-oriented virtual machines.
19
Biography – Lars Bak Contributed to the Chrome browser by developing the V8 JavaScript engine. Co-designed the Dart programming language with Kasper Lund and has spent the last five years making Dart an effective programming platform.
20
Achievements - Lars Bak
1991 – Joined Sun Microsystems Laboratories. During his time there, he developed a programming environment for Self and added several enhancements to the virtual machine. Self is an object-oriented programming language based on the concept of prototypes. 1994 – Joined LongView Technologies LLC, where he designed and implemented high performance virtual machines for both Smalltalk and Java. 1997 – Became engineering manager and technical lead in the HotSpot team at Sun's Java Software Division where he developed a high-performance Java virtual machine.
21
Achievements - Lars Bak
2002 – After returning to Aarhus, Denmark, founded OOVM, a company which developed software for mobile phones. 2004 – Sold OOVM to a Swiss company, Esmerteces. 2004 – Joined Google to work on the Chrome browser. Bak has been coordinating the development of the V8 JavaScript interpreter for Chrome 2011 – Co-developed the Dart programming language presented at the 2011 Goto conference in Aarhus, Denmark. 2018 – Awarded the 2018 Senior Dahl–Nygaard Prize. The senior prize is recognized as one of the most prestigious prizes in the area of software engineering.
22
Trivia - Lars Bak In early 2000, he left silicon valley to move back home to Denmark. Google allowed Bak to work from home, more than 5,000 miles from headquarters. Google was “prepared to trust me. They knew I wasn’t going to goof off.” He didn’t touch a computer until he was at university. “The computer room at high school was a dark and smelly place for nerds,” he says. “I played sport. Springboard diving – which is pretty cool, by the way. The nerdy stuff came late.”
23
Domains – Mobile Applications
Flutter is a mobile app SDK that gives developers a way to build and deploy mobile apps using Dart. The Flutter team chose Dart because: Dart is AOT (Ahead Of Time) compiled to fast, predictable, native code Dart can also be JIT (Just In Time) compiled for fast development cycles Dart allows Flutter to avoid the need for a separate declarative layout language like JSX or XML Dart makes it easier to create smooth animations and transitions that run at 60fps. Dart can do object allocation and garbage collection without locks. Mobile app developers have found that Dart is particularly easy to learn.
24
Domains – Mobile Applications
Flutter has hot reload for quick and easy experimentation, UI building, feature implementation, and faster bug fixes. Flutter allows you to prepare a release version of your app for both Andriod and iOS that can be submitted to the Play Store and the App Store.
25
Domains – Mobile Applications
Flutter has built-in widgets, rich motion APIs, smooth natural scrolling, and platform awareness Layered architecture allows full customization Fast rendering and expressive and flexible designs Provides full native performance on both iOS and Android
26
Domains – Dart for the web
Google builds many critical web apps using Dart language, often with AngularDart. Good choice even for programmers with limited or no JavaScript experience, as things work the way C, ActionScript, and Java developers would expect. You can do Dart web development with whatever web framework you choose. AngularDart is a web app framework that focuses on productivity, performance, and stability.
27
Domains – Dart for the web
Dart is compiled into Javascript, so it works in all modern browsers. “Dart helps developers from all platforms build complex, high performance client apps, for the future web” Designed for mass adoption Execute Dart code in any modern browser at
28
Domains – Dart for the web
Preferred IDE, WebStorm, supports: Code completion, refactoring, step-by-step debugging, powerful static analysis, profiling, code coverage, a standard unit test library. Dart plugins also exist for other IDEs and editors
29
Domains – Server Applications
Dart is a great fit for server applications. Runs nearly everywhere Does nearly everything Easy to develop and debug Scales out The Dart VM runs anywhere you can get a Linux, Windows, or Mac prompt. It has been ported to i32, x64, ARM, ARM64, and MIPS. You can access files, UDP and TCP sockets, HTTP, WebSockets, and more with the dart:io libraries.
30
Domains – Conclusions Dart is a general purpose programming language that can be used for: Mobile Application Development Web Application Development Server Application Development Features are aimed at client-side development, making it a great fit for both mobile and web apps. Dart is designed to be: Productive Fast Portable Approachable Reactive
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.