Slashdot Mirror


Google Ports Box2D Demo To Dart

mikejuk writes with an excerpt from an article at i-programmer about a neat graphics demo written in Dart: "One of the difficulties in getting a new computer language accepted by a wider audience is that there is doubt that it is real. Is it a toy language that just proves a concept or can it do real work? In the case of Dart, which is Google's replacement for JavaScript, the development is speeding ahead at a rate that is impressive but worrying. To prove that Dart is already a language that can be used, we now have a port of the well known 2D physics engine Box2D, the one Angry Birds uses, to Dart." Box2D has previously been ported to Javascript. Source is available at Google Code (under the Apache license). Note that you'll need Chromium to run the demos.

12 of 194 comments (clear)

  1. Re:Not again! by bhagwad · · Score: 5, Insightful

    So how does a company create something better than the standards? Or are you perhaps implying that standards once set are the best for ever and ever? It's not as if Google is DROPPING support for Javascript. That would be...outrageously stupid. What exactly is your problem here?

  2. Some Discrepancies with Your Bitching by eldavojohn · · Score: 5, Informative

    They're mimicking the old Microsoft here - make your own "standards" and break the web by making features and sites that only work Google's browser.

    From Dart's wikipedia page:

    Google will offer a cross compiler that compiles Dart to ECMAScript 3 on the fly, for compatibility with non-Dart browsers.

    And, in fact, dartc already cross compiles Dart code to plain Javascript. Once it's integrated into browsers, use it or don't use it.

    It's like Microsoft all again.

    Right, that's a stretch. You conveniently cherry pick details here. For example, NaCl is released under a BSD license with source code readily available. Are you saying the same was true of ActiveX since it's launch?

    --
    My work here is dung.
    1. Re:Some Discrepancies with Your Bitching by M.+Baranczak · · Score: 3, Informative

      Seems like they've worked on it since the last time you checked: http://www.dartlang.org/support/faq.html#hello-world-js-size

    2. Re:Some Discrepancies with Your Bitching by IamTheRealMike · · Score: 4, Insightful

      ActiveX was an "open" standard in the sense that Netscape could have implemented it if they wanted to ..... on Windows only. That's because the bulk of the APIs you needed to use to write an ActiveX control were just the regular Win32 APIs. Netscape had a policy of supporting not just Windows but all operating systems. That's why Microsoft made ActiveX - they saw weakness (other platforms gui frameworks kind of sucked at the time, so pandering to them restricted developers a lot), and they attempted to exploit it (by allowing developers to build better apps that were Windows only).

      Was ActiveX "evil"? Well, it was certainly platform specific. Making things like this NOT platform specific is a ton of work, NaCL uses techniques and technologies that didn't exist back then, and they had no incentives to do it. Whether it was wrong to do depends on your views on the importance of features vs platform independence.

      NaCL is different to ActiveX in some really important, fundamental ways. Firstly, the APIs it exposes to native code are really small: just Pepper, which provides you with the real basics along with some well accepted cross-platform APIs like OpenGL. Importantly there's no GUI toolkit. If you want buttons and sliders, you need to use HTML, not Win32/GTK/Cocoa. In fact NaCL will prevent you from accessing these APIs entirely!

      Secondly, it's got a strong focus on security. NaCL code has security properties that are provable using static analysis. It also runs in a sandbox for a second level of defence. This is very different to ActiveX, which relied entirely on Authenticode, and suffered some serious UI problems that made it vulnerable (modal dialog boxes).

      Thirdly, everything you need to implement NaCL is open source, so other browser makers can (and maybe will) adopt it. The core runtime and execution technologies are all open source, with the bulk of the integration work being joining Pepper to your browser. Mozilla already supports Pepper and I guess other browsers will too soon (maybe not IE). It really wasn't possible for Netscape to support ActiveX for all their users in the 90s, but it's quite feasible for Apple, Microsoft, MozCorp and Opera to support all their users with NaCL, especially now the dependency on x86 has been broken.

    3. Re:Some Discrepancies with Your Bitching by anonymov · · Score: 3, Informative

      Net result of any new extension is that users of the browser implementing it get a faster and better version. If it turns out to be a good idea other browsers follow and everyone ends with a net benefit.

      Canvas, for example, was Apple's extension in WebKit, year or two later other engines caught up to it too.

      XHR was created by MS for Outlook Web Access, with other browsers implementing it in a year or two after that, and W3C draft standard appearing only 5 or 6 years later.

      That's how innovation worked in browsers for a dozen years.

  3. The JS port by LDoggg_ · · Score: 5, Informative

    The article mentions, box2d-js. The more current port is box2dweb: http://code.google.com/p/box2dweb/

    --

    "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
  4. Re:Not again! by Korin43 · · Score: 4, Insightful

    You do know how web standards work right? It goes something like this:

    1. A bunch of people come up with ideas that would be cool to have in browsers.
    2. Some of them add those things to browsers.
    3. After we figure out which approach works / is most acceptable to all browser makers, it becomes a standard.

    For some reason it's a common belief that it works the other way around (make standard -> implement standard), but anyone know hows anything about programming can tell you why setting everything in stone and then writing the software is a terrible idea.

  5. Re:Not again! by bhagwad · · Score: 5, Insightful

    1. Google isn't claiming that this is the new standard. If they did, they would just drop support for Javascript

    2. Insisting on a consensus before every new technological upgrade would be frustratingly slow and the whole process can be held back by one individual. That's not how technology improves.

  6. Re:Not again! by Intropy · · Score: 4, Insightful

    And when you submit your new idea to the standard committee the very first thing they will ask for is demonstration of existing practice. Standards committees do not design new features. They observe existing practices and extensions and adopt them, possibly with some modification. To get something standardized you must first make it, work out the kinks, show why it's helpful, and get people to use it in practice. Only then will a standards committee consider it for the next version.

  7. Re:Micro$oft Shill by Overly+Critical+Guy · · Score: 3, Insightful

    Just because people disagree with you doesn't mean you're right.

    Nobody ever claimed such.

    However, just because someone has reached a conclusion you don't like doesn't make them mentally deranged or a paid astroturfer. If you believe a position to be wrong, it's so much more persuasive to respond to the points one by one rather than shoo them off with personal attacks, which only serves to please those who already agreed with you.

    --
    "Sufferin' succotash."
  8. Re:Micro$oft Shill by symbolset · · Score: 3

    Slashdot posts cannot be censored or filtered off the site. We don't do that here. They can't even be taken back by the author after you've pressed "submit" and believe me, I've put a few I'd like to have back. On the balance I prefer it this way, and well, as the post accepted page says, you should have thought of that before you pressed "submit".

    Shill posts detract. Pointing out shill posts detract. But there's nothing to be done. There are financial interests involved, and they will spam. There are folks who want to white-knight slashdot as a forum for Truth, and I'm guilty of that now and then even though I know that's not what it's for. As a wise someone once said (and I paraphrase), "the value of a free thing approaches zero over time". The moderation system works.

    Dart looks to be interesting tech. No doubt Google will look to make it an open standard that anyone can implement - even IE. And that will move us closer to the day that all apps are web apps, which cannot be anything but a good thing. It's time that the client architecture was unhooked from the application ecosystem at the network layer. In fact, it's at least 15 years past time for that. That was the goal of X Windows (not to be confused with the upstart), back in the day (onion, belt, lawn, etc).

    --
    Help stamp out iliturcy.
  9. Re:Is JavaScript really that nice?? by BZ · · Score: 3, Insightful

    Little IDE support is helped by building IDEs, not coming up with a new language that has even less IDE support.

    Dart doesn't do type safety by default. There have been proposals to add optional type annotations of the sort Dart _does_ have to JS... and they were shot down by certain members of the JS standards committee, last I checked. Don't recall what the stance of Google's representatives on it was, but they weren't the ones pushing it.

    As far as a compile phase goes, Dart doesn't have one either unless you're cross-compiling it to JavaScript. You just load your Dart code directly in the browser, which then compiles it. That's what browsers do with JS too.

    So ignoring for the moment whether these things are good or not, I don't see Dart making much of an improvement over JS here, except in the type-safety department, where Google didn't exactly try to improve JS in the first place.