Dart: A language for structured web programming

Monday, October 10, 2011

Labels:

Cross-posted on the Google Code Blog

Today we are introducing an early preview of Dart, a class-based optionally typed programming language for building web applications. Dart’s design goals are:

  • Create a structured yet flexible language for web programming.

  • Make Dart feel familiar and natural to programmers and thus easy to learn.

  • Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.

  • Dart targets a wide range of development scenarios: from a one-person project without much structure to a large-scale project needing formal types in the code to state programmer intent. To support this wide range of projects, Dart has optional types; this means you can start coding without types and add them later as needed. We believe Dart will be great for writing large web applications.

    Dart code can be executed in two different ways: either on a native virtual machine or on top of a JavaScript engine by using a compiler that translates Dart code to JavaScript. This means you can write a web application in Dart and have it compiled and run on any modern browser. The Dart VM is not currently integrated in Chrome but we plan to explore this option.

    The language comes with a set of basic libraries and tools for checking, compiling, and running Dart code, all of which will evolve further with your participation. We've made the language and preliminary tools available as open source on dartlang.org. Check out the site to give feedback, learn more about Dart, and participate in its development.

    We look forward to rapidly evolving Dart into a solid platform for structured web programming.

    38 comments:

    ShivShankar said...

    Exciting!!

    Matthew Welborn said...

    Sounds awesome - something I've always wanted in a web language is the ability to designate code to run server side or client side. Since Dart is in its infancy maybe there would be a way to implement this. something along the lines of:

    #! serverside;
    // #! clientside;

    Sidharth K said...

    In the introduction above:
    " The Dart VM is not currently integrated in Chrome but we plan to explore this option. "

    This is a very vague statement and can potentially hinder the adoption of Dart. Google needs to make stronger statements.

    Why should I invest so much time and effort when there is no commitment from Google to integrate the VM in Chrome? Isn't one of the main points of Dart to be able to get high speed execution due to type information given to the VM?

    Otherwise how does Dart become different from the tons of languages running today on javascript e.g. Clojurescript, coffee script...

    Adrian said...

    Do we need another language? Why not implement an existing language, such as C# or Java.

    Christian Hoffmann said...

    ...or Python? Would seem like the closest friend here to me.
    I hope you all have good reasons for a new language, and if so - I am willing and happy to learn it.

    I have to admit though, a main() for a simple print doesn't wanna make me jump at Dart instantly.

    Pau Garcia i Quiles said...

    Looks a lot like C++.

    I don't understand why the need for a new language or VM when you can get the same results using Wt already:
    - Use the Wt Native Client port instead of the Dart VM to run on the browser
    - Use Emscripten to compile the Wt app to JavaScript

    juve said...

    Finally some code. It looks nice and clean and I guess Java programmers will like it.

    But I'd rather stay with CoffeeScript (jashkenas.github.com/coffee-script/) as long as JS-VMs are the major execution engines in web browsers. It is closer JavaScript and is very usable in tools like notepad++ and Vim (don't forget to turn on the awesome "word completion" in those tools).

    I would also not want a new web language without list-comprehensions (or something like LINQ). How could you miss such a LOC-saver in Dart?

    jessevdam said...

    It is a create language to improve the runtime performance of JS, the static type info will allow for better performance optimization.

    Secondly it will allow the easy usage of jquery in a type checked environment, which is great.

    Dmitry Utkin said...

    Syntax is disappointing...
    I'm staying with CoffeeScript.

    Leo Balter said...

    disappointing as CoffeScript.

    No reason to be excited with a language that requires a main() {} to print a string.

    No need to run in a wrong direction of ECMAScript 6, against the open web.

    Gami said...

    Im staying with CoffeeScript, as much as i hate JS Dart as language level doesn't give me any advantage.

    Kelly said...

    I've got to say, Dart is the most disappointing announcement recently. Not because it's not good, I don't know enough about it to say. The problem is, this is not positive for the web development and browser community. We need browsers to move closer together, not further apart. I hope that Dart dies on the vine because I don't think it will ever be anything more than a proprietary feature. Which is why I think it's sad, because a lot of people will waste their time learning it, when we should really be working on improving the web...the web that will still be here in three years time.

    giraam said...

    Some people just posted a comment before even read the homepage of the project.. Trolls!

    Having read the technical overview and most of the Language Spec
    and Library Reference, this seems to be a very good idea!

    Obviously it just started and there are a lot of work to be done yet but the idea is still good

    gvg.fede said...

    Dart Team, please don't mind the lot of bad comments out there, you're pursuing a good goal. Keep up the good work.
    Just two wishes: 1) implement all the goodies that languages like python has (such as list-comprehension, decorators, and the like). 2) bring a dartVM at least in chromium dev ASAP, please. :)
    Thank you.

    CocoaDev said...

    Wow! What will they think of next. Seems exciting can't wait to give it a whirl.

    sTraTo said...

    Dear Google:

    Please reference this comic:
    http://xkcd.com/927/

    Thanks - The Internet.

    Ömer Nuri ÇAM said...

    Exactly javascript is weak. So new language is needed. But this language must be;
    1-precompiled binary code to hide source codes.
    2-able to access to basic operating system commands. Such as saving, opening, browsing files...
    3-able to develop opengl based games
    4-have session based local variables,with this feature, bank operations etc. can work like desktop software.
    Thank you!!!

    Ankit said...

    Too early to say anything bad or good. But still wondering how many are going to adopt it!

    Garrett Moffitt said...

    Imagine my confusion:
    http://www.image.ucar.edu/DAReS/DART/DART_Starting.php

    rdenadai said...

    uhm... hope this improve the web... not another way to drive away any browser vendors.
    Only time, will show us if Dart will go along...

    The ideia is not that bad... but does Mozilla, Microsoft and the Opera guys are thinking of adopt?
    And the Chrome must have soon a VM of Dart! Otherwise... i don't know...

    Junior Mayhe said...

    Not sure this is an interesting project claiming to have better performance. Google should focus on getting better existing solid products.

    Lechuza said...

    Why we need a new language for Web Programming? Now when JavaScript is gaining in maturity the ego of a company is saying to the people need to learn a new language... come on guys, there are a lot of languages, Java, C#, Python, Ruby or Javascript itself, We don't need a new language no matters if it is similar or built on top of Javascript.

    Jon_E said...

    How is GWT affected by Dart?

    Basha said...

    Woooooooooo long live Googlers what a great people,,,

    They always come with new fantastic tools.

    I will be one of Dart fans from it's early stage, because I know it will have strong support, documentation and tools.

    amarender kanala said...

    interesting but have to see how quick Dart gets enough traction so that IE, Safari picks it up ;)

    lintegrule said...

    Javascript may be a good language but frankly it sucks in terms of productivity compared to Java.

    Dart is a good move, and the syntax close enough to java so that many java developers may give it a try.

    However, why not adopt a similar framework with java directly. For example, Android is based on a markup language for the presentation layout and java for adding dynamic behavior and everything else. For the web, the markup could stay HTML (with CSS for styling) and java for enhancing the interactivity + communication. The benefits would be reusing all the already numerous libraries available in java, multithreading, XML binding, etc. I wonder what Oracle would think of it: a JVM in every browser!

    => HTML + Java at the client side.

    Luis said...

    Why do you keep on inventing new clones of C++ and Java????
    Haven't you learnt anything from all those beautiful, productive and succinct languages like python or ruby??

    Coffeescript is a step in the right direction.
    If you can't create a nice syntax, at least please make a good compilation target, so others can write their transpilers, and we'll all be happy...

    M.Szlapa said...

    I found it underwhelming:

    - kludgy C like syntax, needless brackets even for calling closure,

    - idiomatic features are nowhere near of what ruby/ groovy/scala offered for years,

    - not sure if google folks really treat it seriously, google own's code examples are lacking syntax highlighting,

    I would think if you release something new you want to make best impression you can.

    Alina said...

    "We are experts in rapid software development of web-based, distributed and standalone applications designed to meet your organization's specific requirements and business needs.We follow proven practices that allow for successful project completion, and deliver solutions that exceed customer expectations. We have experience with working with broad range of customers, from individuals to some of the world’s largest companies".
    Go Visit:- www.foutsventures.com/Software-Development for Software Development.

    Ken "It was broke when I got here" Waletzki said...

    Call me when you have reached critical mass.

    zbenjamin said...

    Thx chromium team, as soon as its useable i will adopt it for my projects. I hate JS Prototyping with passion!!!
    Dart FTW!

    Basha said...

    I was thinking one day before they announce this big issue, why google don't have a programming language and the next day voila google announce this, thank you googlers I'm a big fan.

    Alina, this is not an AD blog so don't put some advertisement of your work, please admin delete her comments.

    Luis said...

    Extremelly dissapointing. Another c-like language? Why??
    We already have thousands: c, c++, java, javascript, php, c#, go, etc...

    Why? Why??? Can't we have at last a world without braces, semicolons and tedious syntax?

    Haven't you learned anything from python, ruby or even coffeescript?

    zbenjamin said...

    @Luis
    Python? Itendation that marks blocks?
    I can't see how that is better than braces. In fact its just more error prone. It just enforces that every block is intendet and that can be done with or without braces.
    C Syntax is extremely easy to read everyone can easily understand it, every widely used Programming language uses C like syntax and missing alternatives is not the reason for that.

    venkatx5 said...

    Google always make Web faster. Hope this lang has a Great Scope.

    اسامه الطحان said...

    http://www.uobabylon.edu.iq/

    اسامه الطحان said...

    http://www.uobabylon.edu.iq

    اسامه الطحان said...

    http://www.uobabylon.edu.iq/