From Google a new language for structured web applications-
http://www.dartlang.org/docs/technical-overview/index.html ( a rather unstructured website, if I may add)
Dart is a new class-based programming language for creating structured web applications. Developed with the goals of simplicity, efficiency, and scalability, the Dart language combines powerful new language features with familiar language constructs into a clear, readable syntax.
- a structured yet flexible programming language for the web.
- Make Dart feel familiar and natural to programmers and thus easy to learn.
- Ensure that all Dart language constructs allow high performance and fast application startup.
- Make Dart appropriate for the full range of devices on the web—including phones, tablets, laptops, and servers.
- Provide tools that make Dart run fast across all major modern browsers.
These design goals address the following problems currently facing web developers:
- Small scripts often evolve into large web applications with no apparent structure—they’re hard to debug and difficult to maintain. In addition, these monolithic apps can’t be split up so that different teams can work on them independently. It’s difficult to be productive when a web application gets large.
- Scripting languages are popular because their lightweight nature makes it easy to write code quickly. Generally, the contracts with other parts of an application are conveyed in comments rather than in the language structure itself. As a result, it’s difficult for someone other than the author to read and maintain a particular piece of code.
- With existing languages, the developer is forced to make a choice between static and dynamic languages. Traditional static languages require heavyweight toolchains and a coding style that can feel inflexible and overly constrained.
- Developers have not been able to create homogeneous systems that encompass both client and server, except for a few cases such as Node.js and Google Web Toolkit (GWT).
- Different languages and formats entail context switches that are cumbersome and add complexity to the coding process.