Seven days ago, Google launched its ambitious plan for development on the web, Dart.
Histrionics aside, it seems clear enough that there are some significant problems with the state of affairs as it stands. As the Dart technical overview notes (and here I quote at length):
- 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.
The Dart project's stated goals are a response to these problems. This fact (in tandem with the fact that the organization undertaking it is one of the very few that could plausibly meet those goals) should be enough to perk up the ears of anyone interested in web development.