Slashdot Mirror


Google's Dart Becomes ECMA's Dart

mikejuk writes "Google's Dart just reached version 1.0, but now it seems that it has aspirations to being an international standard. The question is will this make any difference to the language's future? Given that Google effectively owns Dart, what advantage does standardization bring? The answer to what Google thinks it brings is indicated in the Chromium blog: 'The new standardization process is an important step towards a future where Dart runs natively in web browsers.' and this seems reasonable. A standard is something that would be required before other browser makers decided to fall in line and support native Dart. It is probably a necessary but far from sufficient condition, however, with Microsoft, Apple and Mozilla having other interests to further. Last but not least, having the backing of a standard might just encourage possible users to believe that the language won't sink if Google gets distracted with other projects and decides that Dart is dispensable. However, a strong open source development community capable of supporting Dart without Google's input would be a better reassurance. If you want to help, Google would like you to join the committee. After all, it still doesn't have a Vice Chair. So can we expect to see ECMA CoffeeScript or TypeScript in the near future? Probably not."

26 of 190 comments (clear)

  1. Re:OK, I'll bite by Anonymous Coward · · Score: 4, Funny
  2. Why would you do unpaid work for Google by Anonymous Coward · · Score: 2, Insightful

    Go find an open source project that actually matters.

  3. Re:OK, I'll bite by Anonymous Coward · · Score: 3, Informative

    Dart is Google's attempt to replace Javascript. They're doing this because Javascript is a shitty language.

  4. Who cares? by Anonymous Coward · · Score: 2, Insightful

    Earlier versions of C# are also an ECMA standard, but nobody cares either way. It's like looking for a sales bullet point which doesn't make any practical difference.

    1. Re:Who cares? by StormReaver · · Score: 3, Insightful

      Earlier versions of C# are also an ECMA standard, but nobody cares either way.

      More than that: after the OOXML ECMA debacle, no one takes ECMA seriously anymore. Submitting a standard to EMCA now is like announcing that your blue-chip company is selling penny stocks.

    2. Re:Who cares? by powerpopolon · · Score: 2

      Earlier versions of C# are also an ECMA standard, but nobody cares either way. It's like looking for a sales bullet point which doesn't make any practical difference.

      Agreed but this might be more Mircosoft's fault than ECMA's:
        - MS did not bother to submit to ECMA any of the nice things that happened after .Net 2.0, like LINQ or async/await
        - The MS "Community Promise" not to assert patents on the standard is somewhat convoluted and lacking. It obviously doesn't cover anything past .Net 2,0
      Thus the ECMA .Net standard only allows you to implement a limited subset and .Net and maybe not be sued for patent infringement by Microsoft. Nothing indicates Google is going to play these kind of games with the Dart standard.

      ECMA also standardizes Javascript and this standard tends to be implemented by the browser vendors, though somewhat slowly and imperfectly. So ECMA standards are not always irrelevant on all subjects.

  5. Re:OK, I'll bite by Anonymous Coward · · Score: 2, Insightful

    Dart is Google's attempt to replace Javascript. They're doing this because Javascript is a shitty language.

    They're doing this because:
    - they are going to try to monetize it.
    - they can't get developers to write stuff for ChromiumOS if it only runs on ChromiumOS.
    - it will natively search and report on your web pages.
    - their 'Go' language didn't go anywhere.
    - Google has an inherent need to have some sort of impact on (and therefore control over) whatever anyone does on the internet.
    - releasing version 1.0 means a Google product is finally out of perpetual beta.

  6. Re:Is it better than Javascript? by symbolset · · Score: 2

    The wonderful thing about standards is there are so many to choose from.

    --
    Help stamp out iliturcy.
  7. Not to rain anybody's party, but.... by Mister+Liberty · · Score: 2, Insightful

    Google is gaining way too much power over what you over the internet.

    The Internet is NOT google. They, Google, came along and appropriated a lot.
    And oh ueah, have yet to really show there is no partnership with others who might
    do user tracking not through software but through hardware.

    Listen: Google has NOT been in class with you!

    Oh, and all you MicroSofties: don't bother to chime in. I'm calling a spade a spade
    and you better not like it.

    1. Re:Not to rain anybody's party, but.... by Anonymous Coward · · Score: 3, Insightful

      They created their own replacement for NPAPI plugins, and got Adobe to prefer it over NPAPI. Now they're not going to support NPAPI anymore in a year. As a result, Linux Flash is now only going to work on their browser, and it hasn't really improved the situation in Chrome enough to justify the switch.

      They didn't like other people's image formats, so they invented WebP, and got a lot of nickel-and-diming image hosters to start pressuring other browser vendors to support the format as if it's a proven tech... even though it's a "standard" that has shifted so much it's turned into such a kitchen sink of a format that everyone will basically have to use their implementation.

      They decided that Media Source Extensions were good enough that they could flip the switch on Youtube before other browsers were ready for it, thus rendering Firefox unable to play hi-def videos in HTML5 on Youtube.. though it was completely unnecessary to do so.

      They didn't like how long it was taking to make HTML2 so they invented SPDY. They then enabled it on the products that they popularized by using other people's standards, like Google Documents, thus forcing other browser vendors to support it or feel comparitively sluggish, even though HTML2 was coming along at the time anyway.

      And that's just the tip of the iceberg.

    2. Re:Not to rain anybody's party, but.... by Anonymous Coward · · Score: 2, Informative

      We currently have one of the largest Dart code bases and six full-time Dart devs, and when we asked about being allowed to run Dart on a server OS, their evangelist insulted us. He recommended we run Ubuntu on our servers since they decided Dart should require gcc 4.6+ and glibc 2.14 or newer. He said using Debian, SUSE, CentOS, or Red Hat is "what old people do." The kids running that company just don't damn get it.

      Of course, don't take my word on it. Look at how they just don't get it in the bug comments:

      http://code.google.com/p/dart/issues/detail?id=11920

      Dart will never succeed if you have to run a bleeding edge desktop OS on your server in order to be allowed to use it.

    3. Re:Not to rain anybody's party, but.... by swillden · · Score: 4, Interesting

      Every one of your points is partially correct, but just wrong enough to make it misleading, and the combined effect is very misleading.

      They created their own replacement for NPAPI plugins, and got Adobe to prefer it over NPAPI. Now they're not going to support NPAPI anymore in a year. As a result, Linux Flash is now only going to work on their browser, and it hasn't really improved the situation in Chrome enough to justify the switch.

      Google's PPAPI fixes numerous problems with NPAPI, particularly around security, because NPAPI plugins run in the same process as the browser making them a perfect vector for compromising the security of the browser, and indeed many of the major NPAPI plugins are so riddled with security problems that Google blacklisted them some time ago. And it is those same security concerns that are driving Google's decision to deprecate NPAPI completely. This is a good thing and it will make the web safer. In addition, NPAPI standardizes the API and should make it possible for a single plugin to work with multiple browsers. The end result will be not only safer for users, but should actually encourage the creation of plugins, since they'll be more widely usable.

      With respect to Flash, Google didn't twist Adobe's arm. Adobe made its decisions for its own reasons; most likely because PPAPI is so much better to work with.

      They didn't like other people's image formats, so they invented WebP, and got a lot of nickel-and-diming image hosters to start pressuring other browser vendors to support the format as if it's a proven tech... even though it's a "standard" that has shifted so much it's turned into such a kitchen sink of a format that everyone will basically have to use their implementation.

      Again "didn't like" is misleading. The available image formats had serious deficiencies. Only GIF supported multi-frame animations, but did it in about the most inefficient way possible (storing each full frame, and compressing them individually with run-length encoding). JPEG works great for still images, but is far less efficient at compression than modern approaches, and also doesn't support layering, animations or transparency, and is limited to 24-bit color. JPEG2000 provided much more efficient compression, but lacked most everything else. PNG was pretty good at lossless stuff, but nothing else.

      And once again, Google didn't twist anyone's arms. It created a better image format, started supporting and using it, and then put it through the standardization process. Your implication that it's somehow "unproved tech" is rather laughable. It's not like there's any new technology there at all, just a better repackaging of what we already knew. And it's not a "kitchen" sink format at all. It supports both lossy and lossless modes, with variable bit depths and includes animation (because it's actually based on VP8, a video format, this was very easy). It's very flexible which means it's somewhat complex, but it's actually simpler than the raft of standards it's positioned to replace.

      They decided that Media Source Extensions were good enough that they could flip the switch on Youtube before other browsers were ready for it, thus rendering Firefox unable to play hi-def videos in HTML5 on Youtube.. though it was completely unnecessary to do so.

      I don't actually know anything about that situation. However, I suspect that your description is no more accurate than the others.

      They didn't like how long it was taking to make HTML2 so they invented SPDY. They then enabled it on the products that they popularized by using other people's standards, like Google Documents, thus forcing other browser vendors to support it or feel comparitively sluggish, even though HTML2 was coming along at the time anyway.

      And that's just the tip of the iceberg.

      In late 2012 the IETF HTTP committee solicited proposals from the industry, in competition

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  8. Re:OK, I'll bite by Anonymous Coward · · Score: 4, Funny

    Dart is Google's attempt to replace Javascript. They're doing this because Javascript is a shitty language.

    No... Dart is a shitty language. javascript is a web scripting language, albeit one that lacks the OOP syntactic sugar Java and C# weenies enjoy circle jerking over.

    I was going to learn Spanish a couple of years back but instead I invented a whole new language called 'Spanglish' that is basically English with some Spanish words. Can't believe that people are still speaking Spanish. I'm going to have myself a nerdy little tantrum about that any second now...

  9. Re:OK, I'll bite by fuzzyfuzzyfungus · · Score: 2

    Obviously, given Google's product areas, an improved replacemen for javascript is not exactly altruism. However, do you have any evidence to the effect that 'Dart' advances Google's control except by making 'web apps' better and/or easier?

    Any sign of them attempting to make Dart Chromium-only or somehow favored by Chromium's architecture in a way that will freeze out IE and FF? Any dependence on the mothership implied by either a dart-language program or support for dart in a browser or elsewhere?

  10. Re:Google should review the linked story by Desler · · Score: 2

    No kidding. Ghostery has a field day with that page.

  11. Re:OK, I'll bite by T.E.D. · · Score: 2

    The main problem with Go was, ironically, that it was ungoogleable.

  12. Re:OK, I'll bite by fuzzyfuzzyfungus · · Score: 2

    Dart is available under the BSD 3-Clause license, so if they are poisoning the well for other adopters, it's by subtler means, and 'dart2js' is designed to do exactly what it sounds like, for compatibility with any remotely recent JS implementation.

    I'm not seeing the lock-in here, though they haven't stirred enough buzz to get it more widely adopted.

    Again, I hardly suspect them of altruism; but they don't seem to think that they have the power to push a 'Google only' JS replacement, and so would rather try to improve webapps generally, even on competitors' browsers, as a strategic move against platform-native applications.

  13. Re:OK, I'll bite by Anonymous Coward · · Score: 5, Insightful

    Javascript is a shitty language. It has full object support, just based on prototypes instead of something sane. I do not know what it is about web "developers" that makes them like shitty languages like PHP and javascript, but they are. Aside from very poorly definitions of "standard" functions, both have so many side effects and scoping issues that it's a wonder anything ever got written with them. Not that anyone writes stuff based on javascript's "standard" library. No, you NEED to use a third party cross platform lib like jquery because the language is so poorly implemented too.

    Javascript was an accident. It wasn't and isn't particularly suited to ANY task, let alone the web. People have hacked together some decent solutions, but the fact remains that js's design has been an anchor around web browsers and web development in general.

    Not saying dart is any good either, but that doesn't make javascript good.

  14. Correcting a language's deficiencies by Baldrson · · Score: 2
    When going to a new version of a language, the correct strategy is to come up with the highest level language one can conceivably jit-compile and rewrite the current language as syntactic sugars of the higher level language. "Pragmas" may be part of the sugaring (especially since there may be important pragmatic information provided by the lower level language) but it is better if the so-called "pragmas" are, instead, assertions written in the higher level language itself. The answer here is not a functional language but a relational one since functions are degenerate relations. Moreover, since one seeks to have assertions in the place of pragmas, the formal basis of the relational language should be sentence oriented. The sentence-oriented relational formalism most widely accepted across disciplines (including program specification) and with the most history is the predicate calculus. The brain-dead zombies will now start chanting things about Prolog even though it was never an implementation of the predicate calculus and tried to do things that probably should never have been attempted on a DEC-10 anyway. There are neo-zombies who will start chanting things about Erlang. Erlang is a bastardization of Prolog which is a bastardization of the predicate calculus. The best thing I can say about Erlang is that Mozart/Oz is much worse, being a bastardization of Erlang that is attempting to add relational constructs in without undoing the damage that Erlang did to Prolog -- when, in fact, they should have undone the whole mess, including Prolog, and gotten on with arranging a legitimate marriage of the predicate calculus with computers. If you are such a zombie, spare yourself the pain of reading further.

    So, here is the high level idea (despite the danger of inviting Prolog zombies I'll be using its syntax for the Horn Clause):

    The Idea

    Parallelism spawns independent computations.

    The Horn Clause:
    m(A,B,C):-x(A),y(B),z(C).
    expresses AND parallelism spawning 3 independent computations.

    The Horn Clause document:
    m(A):-x(A). m(A):-y(A). m(A):-z(A).
    expresses OR parallelism spawning 3 independent computations.

    In an operating system, parallel computations are scheduled for execution, allocating resources according to priorities.

    There are also computations which cannot be scheduled until the computations upon which they depend complete. The Horn Clause document:
    m(A,B,C):-m(A),m(B),m(C). m(A):-x(A). m(A):-y(A). m(A):-z(A).
    expresses 3 AND parallel computations, each depending on 3 independent OR parallel computations.

    This kind of data-dependency suspension of scheduling is also handled by operating systems.

    By focusing on these constructs:

    • AND parallelism
    • OR parallelism
    • Scheduling
    • Dependency suspension

    a radical reduction in semantic complexity can be realized.

    Tools

    Seymour Cray once said that much of engineering creativity comes from using old tools in never-before intended ways. The same is true of anything. New understanding of a thing's use is a way to create a new tool. Indeed, even when creating a new thing-in-itself as a tool (the ordinary means of creating a new tool), what comes first is its desired use. It is harmful to think about the fact that your hammer can be used as a paper-weight when you are pounding a nail into a piece of wood with a rock.

    With that in mind, let us properly-use the Horn Clause:

    • Branching is properly scheduled parallelism. This is even done in CPUs with instruction look-ahead threads and their abort.
    • Looping is either AND parallel recursion or it is properly scheduled OR parallelism.
    • Class hierarchy is properly scheduled polymorphism.
    • Polymorphism is OR parallelism.
    • Name space determination is word-sense disambiguation embodied in a particular choice among various clauses for the same predicate enjoying logical success.
    • Exception handling
  15. Does it replace the DOM? by Daniel+Hoffmann · · Score: 3, Interesting

    People keep coming up with alternatives to javascript. Everything from whole languages that compile down to javascript, to building new languages into the browser, to javascript supersets, to plugins that makes your browser run compiled code. Not a single one of these caught on. The REAL problem is the DOM, the CSS and how they interact with each other. Javascript is a bad language, but it's not awful. What makes web development awful is the DOM and CSS with all its crazy and cross-browser incompatibilities. Why no one tries to replace THAT? I'm almost implementing myself a new api that runs on top of a 100% width/height canvas tag for christ sake.

    I'm not familiar with the Qt but QML ( http://en.wikipedia.org/wiki/QML ) looks pretty good to me. Why can't browsers just implement that? Oh right, because it was not developed by google/m$/apple/mozilla so they can't guide it to the directions they want. Noooo, you have to have a completely new language that no one knows.

    If they want to replace javascript so much why don't they just take the python or ruby runtime, bundle it to the browser, sandbox it and add DOM mappings?

    1. Re:Does it replace the DOM? by herve_masson · · Score: 2

      Some people have a near religious approach about what a browser should do, and what it should not. For those guys, the browser is a piece of code that render a "document" ; this is by no mean a way to implement GUIs. The other part of the world is fighting hard to implement GUIs in browsers, and making sure that their GUIS work well in every browser ! Sadly, the standardization groups have many of the first category, and few of the second. And franckly, that really sucks.

      Why not aknowledging that a browser, in 2013, is a piece of code that implement rich terminal capabilities and also (mainly?) intend to serve GUIS for apps ? From there, we could add rich UI elements to the totally outdated and pathetic form elements collection that HTML implements. A lot of people spend a hell of time to workaround CSS/DOM oddities or limits, simply because the web technologies was not made for GUIs... Such a move would likely to be way more useful than many recent additions to web standards.

      That being said, I don't think CSS and DOM are inherently bad. They allow very powerful things indeed, as well as javascript does.

  16. Re:OK, I'll bite by Anonymous Coward · · Score: 3, Interesting

    Javascript is a fine language. Javascript mostly gets a bad rap from the in browser DOM API (or lack of (thanks web standard politics)); and the fact that developer's only really learn VERY basic Javascript and spend all of their time manipulating the shitty browser DOM. I mean no one would like python, C, Java, etc if all you ever did with it was basic XML manipulation.

    Go checkout Nodejs or some other non-browser implementation of Javascript. It's a really remarkable language.

    P.S. saying it's the way it handles object generation is not sane is very wrong; in a fully interpreted language doing the object generation from a prototype allows flexability that traditional class definitions just won't allow, and is really the only sane way you can do it. And you can do things that blow Java/C++ developers' minds.

  17. Re:OK, I'll bite by symbolset · · Score: 2

    Lots of people don't like how Google is handling the integration of all their services, including social media. Certainly I'm not a fan of the whole "real name" thing, having been online for so long I know how that story ends. But what to do? They work in a world where this is how to succeed. For some things like social media real names work. For passionate discourse there are still forums where you can use your "handle" like in days of yore.

    At least here is not another example of Microsoft's "stacked panels" from when they got their byzantine document formats accepted as an international standard.

    BTW: some AC troll is trying to make me look bad by counter-replying in threads I comment in. That wasn't me, obviously.

    --
    Help stamp out iliturcy.
  18. Re:Let me translate by shutdown+-p+now · · Score: 3, Insightful

    No, it does not. It translates to "I know JavaScript rather well, but I also know several other languages", so I am capable of comparing things and seeing how many bad choices there are in JS language design.

    OTOH, the people who praise JS the language tend to be the guys who learned it after C or PHP, and who memorized that "JavaScript is like Lisp with curly braces" and accepted on faith that Lisp is uber awesome, without understanding what it all actually means - if you ask, they'll usually give you some canned reply along the lines of "it has first-class functions!!!1!!", as if it is somehow remarkable for a PL in today's age.

  19. Re:OK, I'll bite by RobHostetter · · Score: 2

    Personally I think Microsofts typescript idea is the best I've seen. Compiles to JavaScript, looks like a modern OOP language, tracks the next version of JavaScript fairly well, has a great IDE available with code completion, and is compatible with pre-existing JavaScript libraries.

  20. Re: OK, I'll bite by lucm · · Score: 2

    Over the last 10 years, Microsoft has hired more people than Google's current headcount.

    People who bring up growth to explain high turnover at Google are like those Apple marketing magicians who sweep their shrinking market share under the carpet and pretend that what matters is that average users spend more time using iPhones than Androids on a daily basis.

    --
    lucm, indeed.