Slashdot Mirror


Google Starts to Detail Dart

MrSeb writes "After waiting for more than a month, Google has unveiled its mysterious Dart programming language... and you're going to kick yourself for getting so preemptively excited. Dart is a new programming language that looks like Java, acts a lot like Java, runs inside a virtual machine like Java... but ominously, it also has a tool that converts Dart code into JavaScript. Language-wise, its features are unlikely to knot your panties: there are classes and interfaces, it is optionally typed (you can switch between untyped prototype code to an enterprise app with typing), the syntax is very lackluster, there's a very strong concurrency model, and Google is promising lots of juicy libraries that can be leveraged by developers. Basically, the language isn't meant to be exciting: in Google's own words, it's designed to be 'familiar and natural' — and indeed, if you write Java or C# code, Dart will probably feel very approachable."

219 comments

  1. Could be really cool in about 5 years or so. by LWATCDR · · Score: 1, Insightful

    When and if every browser on the market supports it.
    Until then it is just interesting.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 1

      Do they need to support it? It can be converted to JavaScript.

      Everything supports JavaScript

    2. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 0

      The Dart project contains a Dart -> JavaScript compiler, so it will work everywhere from the beginning.

    3. Re:Could be really cool in about 5 years or so. by The+MAZZTer · · Score: 2

      It can be cross-compiled to JavaScript. So every browser will be able to support it right off the bat. Of course it would be slower than native Dart support.

    4. Re:Could be really cool in about 5 years or so. by jandrese · · Score: 1

      There is a Javascript cross compile, but no word as to how well that actually works. My experience with automatic code generators/translators like this is that they usually work fine for trivial projects, but tend to collapse when given something even moderately complex. Given how much of a moving target Browsers are, I wouldn't hold out much hope for such a device to produce usable code on its first outing. If you're lucky it will work in Chrome and you'll just have to tweak stuff to get it to work in Firefox and IE.

      --

      I read the internet for the articles.
    5. Re:Could be really cool in about 5 years or so. by maxume · · Score: 1

      Gmail is cross compiled java.

      --
      Nerd rage is the funniest rage.
    6. Re:Could be really cool in about 5 years or so. by Richard_at_work · · Score: 1

      Doesn't CoffeeScript already do cross-compile from native to JavaScript, with quite a few proponents and examples of complex usage working fine?

      No idea as CoffeeScript is something on my to-look-at list, and seems to be difficult to use on Windows.

    7. Re:Could be really cool in about 5 years or so. by Phs2501 · · Score: 1

      No it's not. Gmail (and most of Google's other high-profile Web stuff) is written with their Closure tools, which is JavaScript-based. Wave was GWT (their Java cross-compiler), but that was about it for public services other than the AdWords admin interface.

    8. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 0

      Coffeescript's whole concept is "it's just javascript". There is a 1:1 correspondence between each coffeescript construct and its javascript equivalent, so translation is trivial and mechanical in either direction, because nothing fundamentally new is added, just some new syntax.

      Dart appears to be adding quite a bit to javascript, like typing, so the translation is a bit less obvious. But it is google, and they usually do a pretty good job.

    9. Re:Could be really cool in about 5 years or so. by georgesdev · · Score: 1

      it's relevant today. Let java programmers program javascript web apps easily and today. This is great news for their Chrome OS clients.
      Also it's great for Google's patent issues with Java. If developers go away from pure Java, Google probably has less patent issues with oracle.
      It also means programmers can code for Android, chrome Os, and PCs with no porting. That's a big deal!!!
      For customers like me and you, however, I don't see a big plus.

    10. Re:Could be really cool in about 5 years or so. by shutdown+-p+now · · Score: 2

      There are several dozen languages that can be cross-compiled to JavaScript today. So far, none of them have become popular as replacement for JS in the browser.

    11. Re:Could be really cool in about 5 years or so. by danish94 · · Score: 1

      Because all of those were never ment to run directly in the browser. With dart there is hope that one day browsers will support it without compilation, chrome should have it soon, others perhaps later. With dart the compilation to js is just for a transitional phase until browsers adopt it. So it has more potential to become popular if developers think of it that way.

    12. Re:Could be really cool in about 5 years or so. by Samus · · Score: 1

      That's partially true. In fact you can write JS style coffeescript and the js output of the compiler is just about as long as cs input. However coffeescript adds some nice syntax sugar that can translate into more complicated javascript. List comprehensions is a good example of this. The generated code isn't very complex and you could write it yourself with a little bit of effort but you don't have to. That's the main selling point of coffeescript. It takes a simpler syntax and translates it to the code you would have written yourself (if you are of any decent skill level). What it does not do abstract you away from all of the odd parts of javascript like 'this' being context based. It does help some like taking away the ability to use == and forcing everything to be ===. If you're going to do a lot of javascript I would still recommend doing it in coffeescript. If you get tired of coffeescript mid way through just switch over to using the last bit of compiled output and go from there.

      --
      In Republican America phones tap you.
    13. Re:Could be really cool in about 5 years or so. by shutdown+-p+now · · Score: 1

      Because all of those were never ment to run directly in the browser.

      Can you explain how a language is designed any differently if it is meant to run directly in the browser? And what precludes, say, Python or Lua from being used that way?

      With dart there is hope that one day browsers will support it without compilation

      Good luck waiting for IE and Safari to do that.

    14. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 1

      Wave is actually the example that GP should have gone with. Wave failed for many reasons, but translating from Java to JavaScript wasn't one of them. And Wave was about as complex as a web interface gets, so it's hard to argue that GWT doesn't scale up. My personal experience with GWT is that is scales well beyond what traditional JavaScript frameworks can.

      Dart, to me, looks like Google trying to take the lessons learned from GWT and build a language that's designed from the start for the web. They can't really announce that they're enabling partial Java functionality in Chrome without a ton of public outcry and increasing their legal issues with Oracle. If that's what they really want to do, the natural thing to do is to create a Java-like language instead, which has the added benefit of allowing you to go in and change all the things you don't like about Java.

    15. Re:Could be really cool in about 5 years or so. by catbutt · · Score: 1

      The whole point is to make it appropriate for complex apps.

      And you really think google would make it so you have to tweak it for IE?

    16. Re:Could be really cool in about 5 years or so. by CODiNE · · Score: 1

      Which Google will add to Chrome once enough cross-compiled apps are out there. Then they get a huge speed boost and it forces everyone else to add a dart runtime to their browsers or lose the benchmark wars.

      --
      Cwm, fjord-bank glyphs vext quiz
    17. Re:Could be really cool in about 5 years or so. by LWATCDR · · Score: 1

      Except that the browser benchmarks will be written in JS.
      Very few people will be willing to take the performance hit that the cross compile might cause. If it is any slower they will keep living with JS for a good long time.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    18. Re:Could be really cool in about 5 years or so. by danish94 · · Score: 1

      Probably worded it out wrong. When I said "never ment to run directly in the browser" I ment that browser vendors never shown interest in making those languages run in the browser, there was never a plan to make them part of the browser. I see no reason to not use lua as js replacement but no vendor shown interest in doing so. with dart, at least 1 major vendor will, and perhaps google will manage with time to convince others. As for IE and Safari, if enough people use it and mozilla joins the party, eventually I think they will do it, especially since the vm will be open source so they could just fork it to fit their needs and they need not write their own. until then you can just compile to js for those 2 and send dart code to others.

    19. Re:Could be really cool in about 5 years or so. by Dillon2112 · · Score: 1

      Tons of folks use GWT, and that cross-compiles Java to JavaScript. This doesn't seem much different.

    20. Re:Could be really cool in about 5 years or so. by LingNoi · · Score: 1

      Wrong, it's all javascript.

    21. Re:Could be really cool in about 5 years or so. by justforgetme · · Score: 1

      so its GWT? (java that compiles to js)

      BTW: did anybody else read "Google starts to derail dart"?

      --
      -- no sig today
    22. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 0

      No. CS is JS preprocessor - it's no more of a new language than C with few #defines is not C.

    23. Re:Could be really cool in about 5 years or so. by Anonymous Coward · · Score: 0

      so its GWT? (java that compiles to js)

      BTW: did anybody else read "Google starts to derail dart"?

      It's even funnier if you live in the Dallas, TX area as that's the name of our light rail system: Dallas Area Rapid Transit.

    24. Re:Could be really cool in about 5 years or so. by LWATCDR · · Score: 1

      True but that is
      a java which a lot of people already know
      b A good enough tool.

      That is the key the pain of learning vs the gain of using. Dart my be good enough but until the VM is everywhere I do not think think the pain is worth the gain. But until I dig into it I am just guessing.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  2. Enlighten me by Peristaltic · · Score: 2

    .... but ominously, it also has a tool that converts Dart code into JavaScript.

    Sounds pretty mundane to me- What's so ominous about converting to JS?

    1. Re:Enlighten me by Anonymous Coward · · Score: 0

      Why do you continue to post this drivel? The only thing stagnated is you.

    2. Re:Enlighten me by larry+bagina · · Score: 1

      in this case, the article is awful. A simple link to the dart website would have been much better.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    3. Re:Enlighten me by Bucky24 · · Score: 1

      As was said in a comment above, browsers are moving targets. Even for the HTML5 DOM there are sometimes two different way to access a certain thing depending on which browser. Isn't really hard to work around, but someone would have to constantly be updating the converting tool as new changes come out.

      --
      All the world's a CPU, and all the men and women merely AI agents
    4. Re:Enlighten me by bcmm · · Score: 2

      Writing Dart-only websites is obviously a bad idea. Writing stuff that will work an order of magnitude slower on JS browsers could seem like a sensible lazy solution to many, especially if Chrome continues to gain market-share.

      In the worst case, this could lead to everybody having to implement Dart, and the new de-facto standard scripting language being controlled by Google, who, running several of the world's most popular websites, can hardly be considered neutral.

      --
      # cat /dev/mem | strings | grep -i llama
      Damn, my RAM is full of llamas.
    5. Re:Enlighten me by catbutt · · Score: 1

      Yeah well they are google, I think they can put someone on that task.

    6. Re:Enlighten me by DragonWriter · · Score: 1

      Writing Dart-only websites is obviously a bad idea. Writing stuff that will work an order of magnitude slower on JS browsers could seem like a sensible lazy solution to many, especially if Chrome continues to gain market-share.

      Dart->JS might be slower than Dart, but I don't see any reason to expect that it'll be an order of magnitude slower than just writing it in JS would be, since much of it won't be replacing stuff that would be handcrafted in JS, but stuff that would be built on several abstraction layers in most JS apps.

      In the worst case, this could lead to everybody having to implement Dart, and the new de-facto standard scripting language being controlled by Google, who, running several of the world's most popular websites, can hardly be considered neutral.

      Many things that became part of the HTML5 and related specs were contributed by Google (and many weren't, and many things that came from Google ended up dying without being standardized, like WebSQL DB.) What makes you think that just because Google created Dart they would control it once it was standardized and other browser vendors implemented it?

    7. Re:Enlighten me by Zancarius · · Score: 1

      Writing Dart-only websites is obviously a bad idea. Writing stuff that will work an order of magnitude slower on JS browsers could seem like a sensible lazy solution to many, especially if Chrome continues to gain market-share.

      I don't think anyone has yet suggested writing "Dart-only websites." From the blog:

      The Dart VM is not currently integrated in Chrome but we plan to explore this option.

      "We plan to explore this option" could be interpreted in that light, but I take it to mean that they're still in a planning phase for a Chrome-integrated Dart roll-out, which might never take place.

      In the worst case, this could lead to everybody having to implement Dart

      Given Google's track record with new technologies as of late, I don't see anyone other than Google implementing Dart.

      and the new de-facto standard scripting language being controlled by Google, who, running several of the world's most popular websites, can hardly be considered neutral.

      You speak of this as if it's a bad thing (correct me if I'm wrong); there's one significant advantage to Google's command over the market which, I would argue, actually plays against your scenario. Specifically, with Google's market share on search and ownership of other sites like Youtube et al, interoperability is more important to Google than their new shiny language. After all, that's why they've written a cross-compiler for JS.

      Now, I could feasibly see Google sites offering up Dart code to Chrome and JS to everyone else, but considering that most JS VMs are already reasonably fast--and getting faster--I don't see that as holding any significant advantage over JS-only implementations. Further, the argument they offer that Dart fixes unfixable problems with JS doesn't seem to hold much water when considered under the limitations of interoperability. After all, Dart may fix some of JavaScript's more embarrassing issues--and it may offer more control over what the browser can do--but what's the point if over half your visitors can't use that functionality anyway?

      That Google isn't exactly a neutral party in this is probably a good thing, because they have every reason to maintain the status quo--or at least try. If MSIE6 and ActiveX was any indication, vendor-specific browser extensions are not only a pox upon the essence of the web, but I don't think any developers will be eager to repeat the mistakes of the late 90s and early 2000s that ultimately lead up to the disaster that Microsoft eventually brought into the world. Could it be that Google is fated to repeat the mistakes borne out of Redmond? Maybe, but I think Dart is more likely to be adopted by application developers on the server-side with client code persisting as JS for a long time to come.

      Perhaps I should done my tinfoil hat, but I wonder how much of this is tied into Oracle's recent behavior while presiding over the JVM and the debacle with Dalvik?

      --
      He who has no .plan has small finger. ~ Confucius on UNIX
    8. Re:Enlighten me by farble1670 · · Score: 1

      Writing stuff that will work an order of magnitude slower on JS browsers could seem like a sensible lazy solution to many

      well, that's possible if they happen to do a terrible implementation of the compiler, but the intent would that it's faster as it can output optimized JS code.

    9. Re:Enlighten me by LingNoi · · Score: 1

      In actual practice it would probably be the other way around. There are a lot of JS hacks you need to know to write efficient JS. It's probably better to let a machine do it for the vast majority of people.

  3. Android? by Stonent1 · · Score: 1

    I wonder if they are trying to position this in any way to distance themselves from Java and provide a new interface for Android apps?

    1. Re:Android? by Sunday_Ironfoot · · Score: 1

      DART is meant to replace JavaScript, not Java. Although it could conceivably be used to write native Android apps, by providing the right libraries and API's, similar to using HTML/JavaScript to build native Windows 8 apps.

    2. Re:Android? by jkflying · · Score: 1

      No, it's designed to run on web servers. Full Java replacement perhaps, but not J2ME.

      --
      Help I am stuck in a signature factory!
    3. Re:Android? by rycamor · · Score: 2

      Seems to me DART is meant to replace the ubiquitous PHP/Javascript combination. Think about it: quick prototypes with untyped code, moving to static typechecking wherever wanted, Server-side and client-side execution, built-in HTML5 DOM library. Its features may be unexciting, but they could provide an easy escape from PHP/Javascript hell without too much learning curve.

      If that is Google's primary target with DART, it may prove to be a very strategic move.

    4. Re:Android? by Sunday_Ironfoot · · Score: 1

      NO!

      It's a JavaScript replacement.

      http://en.wikipedia.org/wiki/Google_Dart
      http://www.2ality.com/2011/09/google-dart.html

      But just like JavaScript it can (potentially) be used for server-side as well (node.js)

    5. Re:Android? by DragonWriter · · Score: 1

      I wonder if they are trying to position this in any way to distance themselves from Java and provide a new interface for Android apps?

      They've made pretty clear what their exit strategy for Android is: move things to the browser, merge with ChromeOS, and do everything as browser-based apps (not necessarily web-apps in the traditional sense, as Chrome supports browser based apps that can be fully offline, and which can include native code.)

      So, insofar as this is this intends to replace JavaScript as the main programming language for in-browser apps, and can be expected to fairly quickly be supported as a first-class citizen on Google's browsers even if it may be longer before it is supported elsewhere other than via a JS bridge, its part of that strategy, though not necessarily indispensable in that role.

    6. Re:Android? by DragonWriter · · Score: 2

      No, it's designed to run on web servers. Full Java replacement perhaps, but not J2ME.

      Its designed to run both client-side and server-side.

    7. Re:Android? by Samus · · Score: 1

      If DART catches on I bet you'll see something like PhoneGap or Titanium eventually.

      --
      In Republican America phones tap you.
  4. It's not a bad thing by i+kan+reed · · Score: 4, Informative

    The world actually needs more "enterprisey" languages. If you want experimental, fun languages, your choices are actually very good, what with ruby, python, and a ton of functional languages. In terms of safe and good for scalable, risk-averse environments, there's pretty much just Java and C#. Java seems to have accumulated so much inertia, it doesn't add new features anymore. As for C#, the problems dealing with Microsoft are well-known to the slashdot community already.

    A little more competition in that arena would do the industry some good.

    1. Re:It's not a bad thing by wzzzzrd · · Score: 2

      Exactly. In terms of "heavy enterprise", meaning the real back ends of big financial companies, airline conglomerates and insurances...They only let you touch their valuable cobol systems through java, mostly 1.3 (1.4 if you're lucky). The java 5 route (and thus 6, 7, 8) is too risky because of Oracle. Any new development in that sector is good news. Although some java integration is necessary (mostly connectors and MQ systems), because these are tested for 10+ years and that counts more than anything else.

      And no, twitter is not enterprise. You ruby wizards and whatnot-gurus, go bashing google or whatever further down the page.

      --
      On second thought, let's not go to Camelot. It is a silly place.
    2. Re:It's not a bad thing by DragonWriter · · Score: 1

      In terms of safe and good for scalable, risk-averse environments, there's pretty much just Java and C#.

      If by "risk averse", you mean "will only use what at least 1/4 of the rest of the people doing the same thing are using because it needs to be 'established'", then you'll never have more than a couple of options at best.

      If you mean any other sense of "risk averse", well, you can probably add Erlang to that risk, and several other things.

      In any case, it'll take quite somet time before any newly-created language is established enough to be attractive to any kind of "risk averse" environment.

    3. Re:It's not a bad thing by Nerdfest · · Score: 1

      ... and the problems dealing with Oracle are currently becoming obvious.

    4. Re:It's not a bad thing by JustinOpinion · · Score: 3, Interesting

      I agree, but in such cases, isn't the solution to make current "fun" languages more "enterprisey" by improving the back-end toolchain? Disclaimer: I'm by no means an expert (I'm a physicist with a minor in CS, not a hardcore CS person), so maybe I'm way off-base here (corrections welcome).

      Take Python. I love its syntax, the plethora of libraries available, the ability to rapidly prototype and see immediate results. All the things that make it "fun" really do make it productive (shorter time to a final, correctly coded solution). It's a great language. However, it doesn't run as fast as C/C++ code, for obvious reasons (interpreted, dynamic typing, etc.). There are ways to make it faster (rewriting critical subsections in C/C++, using fast libraries intelligently, various optimizers and pseudo-compilers exist, etc.). But everyone (or at least me) would love to code using Python syntax but have the code run as fast as C/C++. Best of both worlds.

      In other words, what I would love to see is tons of effort put into making toolchains for making Python (or other "fun" languages) faster (and probably by association more enterprisey in terms of being type-safe, etc.). I'm not saying doing this would be easy, but there are various proofs-of-principle for compiling Python code or automatically converting it to C/C++ code and whatnot. It could be done and would allow programmers to use the clean syntax of Python to more rapidly code a project without feeling bad about the performance not being up to scratch.

      Again, I'm aware of the alternatives (rewrite bottlenecks in a fast external, etc.). But it seems to me that we've learned a lot about what makes for a nice high-level syntax, so we should automate the grunt-work of converting that syntax into fast low-level code. (Yes, I'm aware of gotchas such as dynamic typing preventing full compiling in some cases, but something like adding type hints to a high-level language would surely be less onerous for programmers than going to a lower abstraction level wholesale. Even type hints could be automatically inferred by a parser in a lot of cases, with a programmer checking that they make sense...)

    5. Re:It's not a bad thing by randallman · · Score: 1

      And why must "fun" and "enterprisey" be exclusive? If your definition for enterprisey is scalable and risk-averse, why can't a language that is pleasant to use meet those requirements?

      I maintain hope for a language, compiler/runtime, and library that allows me to easily communicate my solution without being distracted by the language implementation (fun), while offering good performance and scalability. As for being risk-averse, there are never any guarantees there and I doubt you'll find that the great successes and advancements of the past belong to the risk-averse.

    6. Re:It's not a bad thing by corbettw · · Score: 1

      If you want experimental, fun languages, your choices are actually very good, what with ruby, python, and a ton of functional languages. In terms of safe and good for scalable, risk-averse environments, there's pretty much just Java and C#.

      Do you have any idea how much financial code is written in Python? I take that back, because it's obvious you do not.

      --
      God invented whiskey so the Irish would not rule the world.
    7. Re:It's not a bad thing by haystor · · Score: 1

      And why must "fun" and "enterprisey" be exclusive? If your definition for enterprisey is scalable and risk-averse, why can't a language that is pleasant to use meet those requirements?

      When you give "enterprisey" programmers a decent programming language, a foot shooting contest breaks out.

      This is why we can't have nice things.

      --
      t
    8. Re:It's not a bad thing by Anonymous Coward · · Score: 1

      That's what .NET does now. Have a look at IronPython, for example. It actually outperforms the official intepreter by a wide margin. The same goes with many other scripting languages re-implemented on top of the .NET CLR.

    9. Re:It's not a bad thing by Anonymous Coward · · Score: 0

      Yes, more language-competition is always a good thing.

      And with Oracle being a completely and utter uckfup with Java and bullying everyone in to submission, Google especially, couldn't come sooner.
      The Java communities all over are uncertain if they want to be where they are.
      At this moment in time, I'd even trust Microsoft and C# over Oracle. The MSDN side of Microsoft is actually one of the decent sides to them.

      And with focus on concurrency, more so. Cores are just going to keep going up for the next century probably. (ready for memory-stick sized processors? Oh, you better be!)
      Optical computing doesn't seem to be anywhere near ready.
      Graphene-based computing pretty much the same.
      Quantum computing... yeah...
      As cores become smaller, programs written The Old Way are just going to suffer greatly, even with stealth load-balancing being applied to the program.

      I just hope it doesn't end up like Go...

    10. Re:It's not a bad thing by squiggleslash · · Score: 2

      Well, that explains the state of the economy.

      --
      You are not alone. This is not normal. None of this is normal.
    11. Re:It's not a bad thing by phy_si_kal · · Score: 1

      Indeed, there already is competition in that space.
      Look at Opa for instance. Or Ur/Web. But of course, Google did not want to just join and contribute to an open source project :(

    12. Re:It's not a bad thing by abell · · Score: 1

      I agree, but in such cases, isn't the solution to make current "fun" languages more "enterprisey" by improving the back-end toolchain?

      I have found a very good mix of fun and "enterprisey" in Scala. Runs on the JVM, excellent Java interoperability, statically type-checked with some level of type inference and a very dynamic feel.

    13. Re:It's not a bad thing by lucian1900 · · Score: 1

      Just use PyPy. It's very, very fast for most things.

    14. Re:It's not a bad thing by Anonymous Coward · · Score: 0

      The scaling issues are not of code speed, but of human speed. The goal is to scale a codebase across a large number of less-experienced coders, which is now the standard enterprise model (a few experienced guys write the core; cheaper, less experienced ones work on top of it). This is plausible in any language, but the more explicit an isolated piece of code (function, method, class, library, etc.) is about its pre- and post- contracts (via things like static typing, generic type constraints and type variance, explicit condition statements) and the better these are enforced (compile-time checking where possible, unit tests where not) the more likely it is to work. For now, that means Java and C# are the languages of choice.

    15. Re:It's not a bad thing by sproketboy · · Score: 1

      Not so easy. Many of the fun languages eschew Enterprisey things. Like type safety, name spaces, unicode support, readability (important one!), etc...

    16. Re:It's not a bad thing by Anonymous Coward · · Score: 0

      I'd guess you're aware of psyco, but you don't seem to be aware of Unladen Swallow, Jython, Boo, and so on.

    17. Re:It's not a bad thing by Terrasque · · Score: 1

      ... would love to code using Python syntax but have the code run as fast as C/C++. Best of both worlds.

      I'd like to point you to the PyPy project, which experiments with, among other things, JIT for Python.

      The PyPy project aims at producing a flexible and fast Python implementation. The guiding idea is to translate a Python-level description of the Python language itself to lower level languages. Rumors have it that the secret goal is being faster-than-C which is nonsense, isn't it?

      (You should also read their architecture page - their goals are truly impressive. Which is why I'm such a huge fan of the project)

      You also have the project Shed Skin.

      Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python (2.4-2.6) programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs.

      So yes, there are people out there putting "tons of effort" into just that: Making python faster :)

      --
      It's The Golden Rule: "He who has the gold makes the rules."
  5. I got excited? by sgt+scrub · · Score: 1

    I would describe it more as "a funny feeling".

    --
    Having to work for a living is the root of all evil.
  6. Bad article and summary by fnj · · Score: 2

    Both the article and the summary don't seem to get it. This sounds like C#.NET take two, with the added trick that until browser support for the real Dart is there, you can deploy by translating your client side Dart code to JavaScript.

    1. Re:Bad article and summary by gbjbaanb · · Score: 1, Interesting

      just great... Java took at the 'best' ideas of C++ and then mangled it into something pretty nasty - a memory and resource hog with poor performance, especially for GUIs, and added non-deterministic finalisation (eventually - the original didn't even have that!) with verbose OO code everywhere. The only good thing it gives is a huge set of libraries.

      C# took that and did even more to it, so much so that you require an IDE to write code.

      So what does Google do? Take these languages and builds on top of them even more! Great, just great.

      Why don't they go back to the source, learn the mistakes that Java made (yes, some were just design decisions, others were due to the limitations of computing back then) and create a language initially based on C++ with the good bits of that included. Modern C++ is pretty good, if Google could update it by removing the 'backward compatible with C' stuff, and some of its poor design decisions (eg auto_ptr for example) then there's a good chance we'd get something pretty damn good.

      As it is, I imagine Dart will be just Java in all but name with a javascript compiler. I doubt anyone will be too enthused about that if they can write javascript in the first place.

    2. Re:Bad article and summary by Dr.+Tom · · Score: 1

      funny, I liked the Go language they developed

    3. Re:Bad article and summary by UtterCoward · · Score: 1

      Go is a wonderful language. I think that the well has been poisoned by flawed summaries, context-free bullet-pointed feature lists and snarky comments. Too bad for all of the folks who passed on it. I'm coding a big project in it, and using it makes me feel happy.

    4. Re:Bad article and summary by Anonymous Coward · · Score: 0

      Why don't they go back to the source, learn the mistakes that Java made (yes, some were just design decisions, others were due to the limitations of computing back then) and create a language initially based on C++ with the good bits of that included.

      I think that was called 'Go'

    5. Re:Bad article and summary by UtterCoward · · Score: 1

      The assertion that C# requires an IDE is arbitrary and deserves some kind of supporting evidence. Personally, I find that it is much, much easier to write C# without and IDE than C++. It has so much less ceremony than C++ and it feels more succinct than Java.

    6. Re:Bad article and summary by Anonymous Coward · · Score: 0

      From the Google internal memo, they seem to be using their languages like so:
      C++ is used sparingly, and only when the full weight of C++ is needed.
      Go replaces most of C++.
      Dart is used where most people would cobble together PHP/Java, and other light Java tasks.
      Java still gets used when the full weight of Java is absolutely needed.

    7. Re:Bad article and summary by Anonymous Coward · · Score: 0

      C# took that and did even more to it, so much so that you require an IDE to write code.

      Wait... You mean you write Java without an IDE?

    8. Re:Bad article and summary by gbjbaanb · · Score: 1

      I disagree about the ceremony of C++, C++ is a lot lower level and library code is pretty direct. C# on the other hand does like you to create classes all over the place (I'm thinking especially of XAML where you can only bind a gadget to a variable via an object which has properties - the equivalent in C++ would be 2 lines of code, and one of those would be the variable declaration).

      I wouldn't like to resolve those namespaces or the horrendously long method names that most style guides expect you to use without an IDE -- think of all the event / delegate hookups you've written and tell me they fit on an 80 characters display :)

      Java, of course, is in the middle - and not as good as either for the different areas C# or C++ excels at. a good reason not to use it as the start point.

    9. Re:Bad article and summary by DragonWriter · · Score: 1

      The assertion that C# requires an IDE is arbitrary and deserves some kind of supporting evidence. Personally, I find that it is much, much easier to write C# without and IDE than C++.

      Comparing C# and C++ as languages to write meaningful code in without an IDE strikes me as very similar to comparing a cantalope and an apple as a tool to drive nails. It might be easier (even much easier) to use one than the other, but either is far from a good choice for the role.

    10. Re:Bad article and summary by Anonymous Coward · · Score: 0

      Why do you need an IDE for C# but not for C++?

    11. Re:Bad article and summary by Anonymous Coward · · Score: 0

      just great... Java took at the 'best' ideas of C++ and then mangled it into something pretty nasty - a memory and resource hog with poor performance, especially for GUIs, and added non-deterministic finalisation (eventually - the original didn't even have that!) with verbose OO code everywhere. The only good thing it gives is a huge set of libraries.

      C# took that and did even more to it, so much so that you require an IDE to write code.

      So what does Google do? Take these languages and builds on top of them even more! Great, just great.

      Why don't they go back to the source, learn the mistakes that Java made (yes, some were just design decisions, others were due to the limitations of computing back then) and create a language initially based on C++ with the good bits of that included. Modern C++ is pretty good, if Google could update it by removing the 'backward compatible with C' stuff, and some of its poor design decisions (eg auto_ptr for example) then there's a good chance we'd get something pretty damn good.

      As it is, I imagine Dart will be just Java in all but name with a javascript compiler. I doubt anyone will be too enthused about that if they can write javascript in the first place.

      Oh please god no. No no no, you can't seriously at this point take C++ as an inspiration. Really C++ is a hodge podge of a language, so full of idiosyncrasies and complexities that it rivals Java in the "obscure" department. We need a nice, clean, well designed, strongly typed scalable language designed in the XXI century. Something like Scala. I don't understand why we have to do with shit languages and suffer through hell just to get a decent web application working.

    12. Re:Bad article and summary by farble1670 · · Score: 1

      Why don't they go back to the source, learn the mistakes that Java made ... and create a language initially based on C++ with the good bits of that included.

      let me guess. c++ developer?

    13. Re:Bad article and summary by ahabswhale · · Score: 1

      You cannot take C++ and mangle anything since C++ is a Frankenstein language to begin with. Only it's inventor and the deranged could possibly love it. As for memory hogging, there are plenty of C++ apps that are memory hogs. And please, poor performance in Java? Java is one of the fastest languages on the planet. The only languages that even compete with it are C and C++. Apparently you get your information from the 1990's.

      Oh, and last I checked...the vast majority of C++ developers use an IDE.

      --
      Are agnostics skeptical of unicorns too?
    14. Re:Bad article and summary by bar-agent · · Score: 1

      We need a nice, clean, well designed, strongly typed scalable language designed in the XXI century. Something like Scala. I don't understand why we have to do with shit languages and suffer through hell just to get a decent web application working.

      Dylan is an example of a practical, approachable, well-designed, strongly typed language that compiles well and scales well. It took Lisp and Scheme concepts, added a few of its own, and employs a nice, traditional Algol-ish syntax. It works well with C code. It was designed by Apple around the time that Java was developed. Unfortunately, this was during Apple's stupid ages, so they didn't do anything with it.

      Dylan is still actively developed on an open-source basis. Most recently, it is being ported to LLVM. It does not have the breadth of the .NET or Java libraries, but it has some handy ones, including a web server library. Why not use it?

      I will tell you why not. It is not established. You say "we need," but there are plenty of good languages out there; they are just fringe languages. You will not get a good language to use unless it has a corporate sponsor. That means you will only get languages with an agenda behind them. Of course, you can go your own way. In a small company that is not answerable to clients, you can say "we'll use X for our development." If you are lucky, the company will grow powerful yet stick with that language, making it established.

      I, for one, plan to use Dylan if I ever start my own little company.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    15. Re:Bad article and summary by DragonWriter · · Score: 1

      Why don't they go back to the source, learn the mistakes that Java made (yes, some were just design decisions, others were due to the limitations of computing back then) and create a language initially based on C++

      The only way you could "learn the mistakes that Java made" and then "create a language initially based on C++" is if the purposes of learning Java's mistakes was so that you could repeat them.

      Modern C++ is pretty good

      Modern C++ may good for some things, but they don't seem to be the things Dart is focussed on doing, which is why C++ isn't the dominant present server-side or client-side languages in the domains Dart addresses.

      As it is, I imagine Dart will be just Java in all but name with a javascript compiler.

      I think the key word in that sentence is "imagine"; actually reading the spec, its not particularly much like Java.

    16. Re:Bad article and summary by flimflammer · · Score: 1

      C# doesn't need an IDE to write code. It's plenty easy to write and compile projects outside of the IDE. All it requires is a little research, but you can't honestly decry that with a straight face now can you? Or were you born with the knowledge required to compile C/C++ projects at the command line? Microsoft even provides a shortcut to the visual studio command line environment when you install it for christ sake.

      Just because they give you the tools doesn't mean you are forced to use them (not that I know why someone would intentionally make their life harder).

    17. Re:Bad article and summary by gbjbaanb · · Score: 1

      I have developed some code (mainly diagnosing problems) before now, perched on a server with an old laptop resting on the box it came in, so sometimes you don't get the environment you'd prefer.

      My point isn't that you cannot do it, it's just that everyone who talks about 'programmer productivity' is really talking about the strengths of the IDE, and getting that confused with the language. I mean people say C# is "so easy to develop in, you just click here and half your code is written for you, then type and intellisense tells you what to type next". Without that tool they're a bit lost. So what does that say about the 'ease' of use of the language itself, if you need that tool? Often it means that you're no longer programming C#, say, but programming using VS. Extrapolate that a little and soon you find that knocking up a quick web app (in the context of Dart, now) might require a load of wizard-generated code and a bunch of under-the-covers, don't-worry-your-little-head boilerplate.

      That's what I would be trying to avoid in designing a new language.

    18. Re:Bad article and summary by rpopescu · · Score: 1

      I'm proud to be deranged then. You can have your sanity - its blandness goes great with the mediocrity of Java.

  7. That's actually very good! by goruka · · Score: 2, Insightful

    The main problem of Java and C# is that they are controlled by Oracle and Microsoft respectively, both of which have repeatedly shown to not play nice with the open source developer community, have used patents aggressively and care very little for open standards.
    Even mono is not open enough to allow usage in many embedded devices (read: game consoles) without paying royalties, due to the GPL license.
    A replacement for those that is portable, can be used everywhere, is easy to migrate to and is distributed by the very permissive licenses Google always utilizes sounds extremely good in my view, so I think the negative tone of the summary is misplaced..

    1. Re:That's actually very good! by dintech · · Score: 1

      The main problem of Java and C# is that they are controlled by Oracle and Microsoft respectively

      Google is still pretty young, you haven't given them enough time to become utter bastards yet.

    2. Re:That's actually very good! by caywen · · Score: 1

      In the world of programming, you choose your poison and insist to everyone that you are feeling fine.

    3. Re:That's actually very good! by Anonymous Coward · · Score: 0

      Even mono is not open enough to allow usage in many embedded devices (read: game consoles) without paying royalties, due to the GPL license.

      Can you please explain how exactly the GPL requires royalties to be paid to anybody under any circumstances?

    4. Re:That's actually very good! by martin-boundary · · Score: 1

      Isn't C++ portable, can be used everywhere, is easy to migrate to and is distributed by a very permissive license?

    5. Re:That's actually very good! by walterbyrd · · Score: 1

      The SCO claimed to own C++.

  8. In short by unity100 · · Score: 1

    Its java.

    1. Re:In short by wzzzzrd · · Score: 2

      ...with first class functions. So it's not java, thanks for playing.

      --
      On second thought, let's not go to Camelot. It is a silly place.
    2. Re:In short by gilleain · · Score: 1

      Its java.

      With optional typing. So, more like groovy.

    3. Re:In short by PybusJ · · Score: 1

      No, no, no -- it's most definitely not java. Google are being sued by Oracle over their use of Java in Android, don't you know. Any new language from Google is not java, not at all. Any superficial similarity you think you see is a mistake, so don't you go mentioning it Larry Ellison.

    4. Re:In short by Sunday_Ironfoot · · Score: 3, Informative

      Java = Statically, strongly typed language (like C# .NET) with classical inheritance, compile time safety etc.
      JavaScript = Dynamically typed language with first class functions with prototypal based inheritance, some runtime safety
      Dart = Dynamically typed language with first classes functions, but with some support for static types & classical inheritance, still runtime safety/error checking, no compiling etc.

      Dart is more like JavaScript than Java. It's been touted as a JavaScript replacement, not Java. Although, just like JavaScript and Java, it can be used for more than just browser based client-side web apps.

    5. Re:In short by DragonWriter · · Score: 1

      Its java.

      First class functions? Dynamic typing with optional static typing? Its not really very much like Java. It is more like the love child of JavaScript and C#.

      Looking at the spec, it looks like it has some of the best features of both and I'm looking forward to getting my hands on it.

    6. Re:In short by shutdown+-p+now · · Score: 1

      Java with first-class functions and opt-in dynamic typing is called C#. ~

    7. Re:In short by shutdown+-p+now · · Score: 1

      Actually, looking at the spec, this seems to be mostly C#, except that it defaults to "dynamic" type (it's even named the same!) when you don't specify it. Frankly, I think it's more trouble than it's worth, particularly in cases where C# would infer the type instead (e.g. "var", or non-type-annotated lambdas).

      Aside from that, and a few minor deviations such as no method overloading (but named constructors), I really don't see what this brings to the table compared to C# 4.0+ (the one that has "dynamic") - especially given that the stated goal was to have something familiar for Java/C# programmers. Looks like a clear cut case of NIH syndrome to me.

    8. Re:In short by DragonWriter · · Score: 1

      Aside from that, and a few minor deviations such as no method overloading (but named constructors), I really don't see what this brings to the table compared to C# 4.0+ (the one that has "dynamic") - especially given that the stated goal was to have something familiar for Java/C# programmers.

      Off the top of my head, the things it seems to have that C# 4.0 doesn't:

      • Erlang-style shared-nothing actor-model concurrency (via "isolates" which are analogous to Erlang processes).
      • Ruby-style handling of calls to non-existent methods (via noSuchMethod, analogous to Ruby's method_missing.)
      • Switch statements without the needless ritual of "breaks" (in C++, which allows fall-through, "break" makes sense -- in C#, which prohibits fall-throug,h "break" is an empty incantation.)
      • Futures (via "Promise") -- though, to be fair, these are planned for C# 5.0
      • Factory constructors for classes and factory classes for interfaces
      • Some Javascript-ish more concise syntax than C# for similar operations (e.g., extraction of methods as functions.)
    9. Re:In short by shutdown+-p+now · · Score: 1

      First of all, I want to note that I was talking here of C# as a language only, not of .NET as a framework. My point is that they could have easily taken C# (or a convenient subset - e.g. throw away "unsafe") with some core CLR types like arrays, strings and collections, and do their own implementation of that.

      Erlang-style shared-nothing actor-model concurrency (via "isolates" which are analogous to Erlang processes).

      It's a library thing, even in Dart. It could be a library thing in C# as well.

      Ruby-style handling of calls to non-existent methods (via noSuchMethod, analogous to Ruby's method_missing.)

      System.Dynamic.DynamicObject lets you do the same with more verbosity (but that same verbosity lets runtime do some more advanced caching, instead of calling noSuchMethod every time). Of course this only works when the receiver is typed "dynamic".

      Futures (via "Promise") -- though, to be fair, these are planned for C# 5.0

      These are there in .NET 4.0 in form of System.Threading.Task - 5.0 only adds some syntax sugar (async/await) on top of that. So far as I can see, Promise is purely a library artifact in Dart, so it's on par with C# 4.0, and C# 5.0 is actually ahead of it.

      extraction of methods as functions

      If you refer to what's described in Dart spec as 10.12 "Property extraction", then C# has that:

      class Foo { public void Bar(); }
      Action a = new Foo().Bar;
      a();

      The problem is that C# doesn't have structural function types, and so it needs a nominal functional type context to do that - you can't write e.g. (new Foo().Bar)(), because it doesn't know what the expected type of Bar is. This (function types) is one thing they've got right in Dart.

      Switch statements without the needless ritual of "breaks" (in C++, which allows fall-through, "break" makes sense -- in C#, which prohibits fall-throug,h "break" is an empty incantation.)
      Factory constructors for classes and factory classes for interfaces

      I agree that these are useful, but as features they are minor enough that they hardly merit a new and incompatible language. If really desired, they could be made language extensions, and then pushed for standardization in the next version of C#.

      The same applies to other differences, such as the concise => syntax for methods and properties (and not just lambdas), concise list & map literals etc.

    10. Re:In short by DragonWriter · · Score: 1

      It's a library thing, even in Dart. It could be a library thing in C# as well.

      Creating an isolate is defined in the language spec as being syntactically equivalent to a function call, and passing messages to an isolate is defined in the language spec as being provided by atomic library calls.

      Its an essential language feature defined in the spec, though the communication method (but not the spawning method, which looks like a library call) is left to the library.

      System.Dynamic.DynamicObject lets you do the same with more verbosity (but that same verbosity lets runtime do some more advanced caching, instead of calling noSuchMethod every time). Of course this only works when the receiver is typed "dynamic".

      TryInvoke and friends are somewhat similar, though the calling order of is reversed. OTOH, I can see a case for either order being better, so this is a different-but-not-necessarily-better thing. I don't know that the restriction to DynamicObject descendants in C# is a substantive difference as long as Dart uses closed classes.

      I agree that these are useful, but as features they are minor enough that they hardly merit a new and incompatible language. If really desired, they could be made language extensions, and then pushed for standardization in the next version of C#.

      Some of them could be, if one wanted to bring in all the baggage of C# that makes it (to my eye, at least) a heavily IDE-dependent, write-mostly language. Being concise has a value, and I don't think C#-without-.NET would be as useful as Dart, as it is, could be as a language for both sides of the web.

      Dart -- like JavaScript, Ruby, Python, Lisp/Scheme, and Erlang, but unlike C++, Java, and C# -- looks like it would pass my personal "simple editor test": that is, is all the tool support I really want for editing it (as opposed to SCM and test tooling) syntax highlighting, delimiter matching, and maybe auto-indenting. That's an attractive feature for me (because IDE tooling that eases the pain of writing overly-verbose languages doesn't do as much to ease the pain of reading them), and its probably an attractive feature to Google since they plan on building a cloud-based IDE for it. The less that IDE has to do to satisfy developers, the less work they need to do for that effort to be useful.

      The differences between any two Turing-complete languages is always going to boil down to syntactic variations and library features (how big the syntax differences are will, of course, vary).

      The fact that those that the differences between [currently popular language] and [new language] boil down to those two things doesn't mean that everyone should use [currently popular language] and that no one should spend effort developing and improving [new language].

      As much as developers currently devoted to [currently popular language] will try to convince you that it does (and the argument has, in this thread, been made with C#, Java, JavaScript, and C++ as [currently popular language].)

    11. Re:In short by t2t10 · · Score: 1

      It's Java, but without Oracle, without the JCP, and without the tons of patents that Oracle holds on Java. And maybe they even got around to fixing some of the blunders in Java's design.

    12. Re:In short by wzzzzrd · · Score: 1

      C# with loose coupling, dynamic typing (strong if you have the will to enforce it) and an automated C API (gir) is pyhon. Your point?

      --
      On second thought, let's not go to Camelot. It is a silly place.
    13. Re:In short by shutdown+-p+now · · Score: 1

      C# with dynamic typing is still C#.

      GIR is not automatic, since it requires writing C code in a very particular way (someone has to write those annotations). The result is, of course, usable from any language, not just Python - indeed, isn't Mono using them?

      I don't know what "loose coupling" supposed to mean in the context of language design.

      Anyway, my point was that C# - unlike Python - is already "Java-like", and shares common ancestor and a lot of design philosophy with Java. If you remember version 1.0, compared to what Java was back then (which was 1.4), they were much more similar. The difference is that Java language evolution stagnated, while C# has evolved reasonably quickly (for a commercial "enterprisey" language), so what you see today in C# is reasonably reflective of what "Java with first-class functions" and other nifty stuff will be once it gets there.

  9. Here we go again by Anonymous Coward · · Score: 0

    Hey, I know another company that did this.

    This meaning that they used Java, got into legal trouble with Java's owner and then created a similar language of their own. Worked out pretty well for them that time I think.

  10. My bot shot first issue by Anonymous Coward · · Score: 0

    How could this ever compete with native code (iOS) ? Those people never learn, even Jobs realized it that quality software = native software and Apple is dominating in app quality now. Another gimicky language to undermine their own platform...

    1. Re:My bot shot first issue by rubycodez · · Score: 1

      Apple is a niche market, non-native code is huge elsewhere.

  11. Why is JS compiling ominous? by AC-x · · Score: 2

    but ominously, it also has a tool that converts Dart code into JavaScript

    No, that's an excellent feature. Allows us to start developing sites with this new language without having to wait for all browsers to upgrade or to have plugins installed. How else would you get any sort of main stream takeup of a javascript replacement?

    1. Re:Why is JS compiling ominous? by LWATCDR · · Score: 1

      Yes and no.
      Unless Dart is "much better" why take the time to learn a new language where support will depend on two codebases. You will have your Dart code and your js translation of your Dart code?
      If you know JS your going to keep developing in JS until Dart support is proven and universal.
      Even then you will probably keep using JS unless you start a new project.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    2. Re:Why is JS compiling ominous? by dintech · · Score: 1

      Dart code into JavaScript

      Yawn, we've seen this before with GWT for Java. Wake me up when it has code to convert Dart into Bacon Sandwiches.

    3. Re:Why is JS compiling ominous? by AC-x · · Score: 1

      I don't see why this is any worse than a compiled language (Java, C# etc.), it's not going to be hard to manage your sourcecode and the JS output if you've got an automated build of your web project set up.

      Having done a lot of big projects in JS for me it has a lot of shortcomings and it would be great to have a replacement language that is backwards compatible. Sure I wouldn't do anything enterprise level for a year or so while Dart proves itsself, but I would happily use it for large projects before widespread browser support.

    4. Re:Why is JS compiling ominous? by LWATCDR · · Score: 1

      It comes down to time for most developers. For instance I need to filter a large text file a few weeks ago. I have been thinking about learning Python because it seems pretty interesting. Time ticks buy as I am reading and setting up things and then I think, " if I used perl I would have been done". So I write the four line perl script and I am done.

      A tool just needs to be a lot better to be worth the time sink. A lot of the time Good enough is just that good enough.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    5. Re:Why is JS compiling ominous? by AC-x · · Score: 1

      To a degree, but if everyone stuck to this mindset then everyone would still only be using the first language they ever learnt. It's like saying that no-one will ever use Java or C# because they know PHP and it's "good enough".

      Dart has many nice features that would be very useful for large multi-developer projects (typing, static checking etc.) which would easily offset the time for developers to familiarise (one of the design goals of Dart is that it is easy to learn from a javascript background anyway).

    6. Re:Why is JS compiling ominous? by Imbrondir · · Score: 1

      There is also the question of legacy code. There are plenty of excellent js libraries out there that I want to use. Does it have a decent strategy on interfacing with those?

    7. Re:Why is JS compiling ominous? by sgt+scrub · · Score: 1

      " if I used perl I would have been done".

      And if they would have spent this time, effort, and money on Parrot... You, the Python coder, the Lua coder, and the insert Parrot supported language coder would have been done.

      --
      Having to work for a living is the root of all evil.
    8. Re:Why is JS compiling ominous? by randallman · · Score: 1

      It's becoming obvious that browsers need to support a runtime like LLVM in addition to or instead of javascript. That way, the developer could use their language of choice and just compile to LLVM byte code instead of to javascript. I would think it should be easier to optimize performance for LLVM byte code that for javascript. Would there be any downsides except for the fact that it does not exist already?

    9. Re:Why is JS compiling ominous? by marcosdumay · · Score: 1

      Well, it should be obvious, but I'm saying anyway: Wait to learn Python when you have a problem that isn't The One Thing one of the languages you know shines at.

      When you need to filter a text file, please do it in Perl*, not Python. That is good advice even for Python programmers.

      * Or Haskel. It is amazing how good Haskel is for filtering text. But, of course, you need a completely different mindset than you'd use with Perl.

    10. Re:Why is JS compiling ominous? by LWATCDR · · Score: 1

      Ahh but PHP isn't good enough for desktop applications. To change tools it must be much better or you have no other choice.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    11. Re:Why is JS compiling ominous? by LWATCDR · · Score: 1

      True which is why I picked Perl. To me scripting languages like Perl and Python are the tools I use for simple one off programs like filtering a text file.
      I do not do much web stuff right now but I could see me using Python along with Perl and PHP.
      For anything more complex on the desktop I would use Java, C++ or ObjectiveC.
      If I need to do anything with or very old dos codebase I would breakout FreePascal.
      You see it is a need to learn thing.
      Now Haskel does interest me but when I have looked at it my head hurt.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    12. Re:Why is JS compiling ominous? by Anonymous Coward · · Score: 0

      I think Dart might be a better target language for cross compilers. The optional typing would allow languages like Scala or Clojure to translate more easily and the Java-like syntax might be an easier match. Gwt does this only for Java, but requires that other languages generate valid Java code to leverage its cross compiler. This has been an issue for Scala on Gwt due to the "lesser Java" problem, which Dart might solve more naturally. By having language bindings that generate Dart code and a standard Dart to JS compiler, it could finally make client-side frameworks more popular than server-side ones. If you think of Dart as a better assembler for the web, it could be more interesting than a JS alternative.

    13. Re:Why is JS compiling ominous? by marcosdumay · · Score: 1

      I find that Python is quite usefull for writting any kind of fancy UI. It is simlper to write in than C++ (or Java, how can a garbage collected language be harder to write in than C++?), and yet, it doesn't collapse at its own weight like Perl or PHP. I guess that is some of your more complex stuff, so I'd recomend you learn python next time you go out to use QT or do web development (or more complex UIs, like what you can do with PyGame or 3D modellers).

      PHP by its turn, I now consider defunct.

      I looked at Haskel to try to create some automatic software paralelizer, just to learn that Lisp is better for that task. Anyway, my time just vanished before I really started the project, so I don't have one :( Anyway, it surprised me how easy it is to deal with text files. I'd recommend it to the more complex kind, that need a statefull parser, something that is harder to do on Perl. It is also great to parse trees, but that is common knowledge, and it is very easy to write a Prolog-like backtracking in it, with the advantaje that it is resctricted to a small part of your code, thus a small error elsewhere won't make your calculation take years to run, also, you can change the search algorithm. (I'm quite near to consider Prolog defunct too.)

      Interestingly, I don't know ObjectiveC. When I have some time, I may try it. I've heard it is way clearer then C++ (I just don't know if it is a good or a bad thing).

    14. Re:Why is JS compiling ominous? by Junta · · Score: 1

      The key here is I'm willing to believe Dart can be 'much better', because really, being 'much better' than Javascript is a pretty low bar.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    15. Re:Why is JS compiling ominous? by LWATCDR · · Score: 1

      I am just not a big fan of C++ but I mostly used it on Windows so that may have tainted it for me. Java+Netbeans makes writing GUI software really easy for me. I also find Java's tread support very robust. It could just be that it fits my style.

      Perl I do agree is good for programs under 100 lines long and that you will never touch again.
      However for plowing though a bunch of data it is a great tool.
      I really like ObjectiveC. It seems far less like a Hack to me than C++.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    16. Re:Why is JS compiling ominous? by Anonymous Coward · · Score: 0

      Google tried it with GWT. Theoretically it was an excellent feature, practically it was another pain in the ass :( You need to compile GWT for different browsers, your old application may not work with new browser versions, you need to recompile it again, upgrade to latest version of GWT and feel lucky if your application still works.

  12. Oh, GREAT! by Anonymous Coward · · Score: 0

    Another VM machine with a thousand layers of abstraction.

    Instead of writing good code in the languages we already have, let's spend millions of man-hours optimizing hardware and porting existing frameworks to run on mess, and then give up on it after 15 years because it obviously compares unfavorably with native code.

    Sounds familiar?

  13. Whoa there by SuperKendall · · Score: 4, Insightful

    The main problem of Java and C# is that they are controlled by Oracle and Microsoft respectively

    But Dart is controlled WHOLLY by Google. Why is that really any different or better?

    The reality for Java is much better, it's controlled by a community standards body (the JCP). Oracle can provide direction but they are NOT in control the way Microsoft and Google are.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Whoa there by goruka · · Score: 1

      RTFA and the links to Dart website, Google intends to submit it to become an open standard. Also you ignored the patetns and very permissive implementation points.

    2. Re:Whoa there by caywen · · Score: 2

      That's what Microsoft did with C# and the CLI, too. Either we believe that our open standards bodies are real, and that standards are indeed standards, or we believe that they are corruptible by corporations and nothing is actually standard, or we believe that somehow Google is an incorruptible paragon of holy perfection.

      I understand the reasoning behind the first two. I think the third might indicate substance abuse.

    3. Re:Whoa there by Imbrondir · · Score: 1

      The difference is that Google have pretty much a clean track record when it comes to open source software. That could of course change, or be sold like Sun. But it does matter

      I would agree on your points about Java and JCP in theory though. But in practice how much good has it really done for Java? I despite working with Java, but I love working with dictator controlled Python.

    4. Re:Whoa there by Raenex · · Score: 5, Informative

      The difference is that Google have pretty much a clean track record when it comes to open source software.

      I don't think so. Chrome was marketed as an open source browser, yet from the very first release they added in proprietary bits without source code. It's nice that it is almost open source, and that Chromium exists, but it's important to note they compromised on open source principles.

      This continues now with Android, with Google releasing Honeycomb for their partners without releasing the corresponding source code. I don't care what excuses Google gave for that, no source code is no source code.

      Google cannot be trusted. They are a big corporation looking out for their own interests. Sure, they play nice for the most part, but many times they don't.

    5. Re:Whoa there by m50d · · Score: 1

      The reality for Java is much better, it's controlled by a community standards body (the JCP). Oracle can provide direction but they are NOT in control the way Microsoft and Google are.

      Nope, see what happened with Apache Harmony. Oracle are the only ones who can make a JVM.

      --
      I am trolling
    6. Re:Whoa there by swillden · · Score: 1

      Microsoft did standardize C#, but actual development of the language and tools moves so fast that non-MS implementations always lag. And MS only supports Windows (by design).

      Time will tell, but I think we can expect Google to actively support all of the platforms Chrome runs on, and to release full source code under a fairly permissive license. An open standard plus an open source, multi-platform reference implementation will be truly open in a way that C# isn't and Microsoft doesn't want it to be.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    7. Re:Whoa there by Anonymous Coward · · Score: 0

      The issued MS Patents aren't broad enough and as such its use is discouraged by the FSF, see: http://www.fsf.org/news/2009-07-mscp-mono

    8. Re:Whoa there by farble1670 · · Score: 1

      Google cannot be trusted.

      sure they can. they can be trusted to always act in a way that maximizes their profits. in fact, that's all any corporation will ever do, by definition. if you can't stand that, stop using any OSS project that consumes corporate resources in some way or another. that would rule out so many of the OSS projects that you'd be forced to start using non-OSS software in its place.

    9. Re:Whoa there by mspohr · · Score: 1

      What are the proprietary bits without source code? I just checked the chromium.org web site and it seems you can download all of the source code and build it yourself without adding in any proprietary bits. Google says it is all open source and you seem to be the only person who thinks otherwise. Do you have a link which describes the proprietary bits?

      --
      I don't read your sig. Why are you reading mine?
    10. Re:Whoa there by Raenex · · Score: 1

      I just checked the chromium.org web site and it seems you can download all of the source code and build it yourself without adding in any proprietary bits.

      "Chrome" is the official Google product and what you get when you download it from Google. It's a binary only release. "Chromium" is the open source version of Chrome without the proprietary bits.

      Do you have a link which describes the proprietary bits?

      Here's an official link from the early days, after people starting figuring out that Chrome was not fully open source:

      http://blog.chromium.org/2008/10/google-chrome-chromium-and-google.html

      "Chromium is the name we have given to the open source project and the browser source code that we released and maintain at www.chromium.org. One can compile this source code to get a fully working browser. Google takes this source code, and adds on the Google name and logo, an auto-updater system called GoogleUpdate, and RLZ (described later in this post), and calls this Google Chrome."

      Here's a more up-to-date wiki. I don't know how accurate it is:
      http://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome

      But I do know that Chrome contain's Adobe's proprietary Flash plugin at the minimum.

      You can also read the EULA for Chrome: http://www.google.com/chrome/eula.html , which includes the following:

      "9.2 Subject to section 1.2, you may not (and you may not permit anyone else to) copy, modify, create a derivative work of, reverse engineer, decompile or otherwise attempt to extract the source code of the Software or any part thereof, unless this is expressly permitted or required by law, or unless you have been specifically told that you may do so by Google, in writing."

      So any bits not open source are explicitly declared proprietary here.

    11. Re:Whoa there by DragonWriter · · Score: 1

      But Dart is controlled WHOLLY by Google.

      Well, today, since they only just announced it. JavaScript (born as LiveScript) wasn't an open, widely implemented standard independent of a single vendor when the first information on it was released by Netscape.

      Why is that really any different or better?

      I would say that the condition of Dart with respect to control compared to C# and Java remains to be seen.

    12. Re:Whoa there by walterbyrd · · Score: 1

      But Dart is controlled WHOLLY by Google. Why is that really any different or better?

      You're kidding right? Have you seen any aggressive patent trolling from Google? How about Oracle, Apple, and Microsoft?

      The reality for Java is much better, it's controlled by a community standards body (the JCP). Oracle can provide direction but they are NOT in control the way Microsoft and Google are.

      I guess Oracle didn't get the memo. You have heard of Oracle's lawsuit against Google, right?

    13. Re:Whoa there by walterbyrd · · Score: 1

      Apparently, Google believes that patent trolling is not in their best long term interest. This sets Google apart from Apple, Microsoft, and Oracle.

    14. Re:Whoa there by mspohr · · Score: 1
      Chromium vs. Chrome

      Chrome is the binary compiled browser provided by Google (and based on Chromium) which contains additional proprietary bits (such as Adobe Flash) as you point out. Google never said this would be open source since they don't control Adobe, etc.

      Chromium is the open source browser which they did say would be open source and it is open source. I don't think there are any evil bits in there (unless you have some other references).

      --
      I don't read your sig. Why are you reading mine?
    15. Re:Whoa there by walterbyrd · · Score: 1

      The difference is that Google have pretty much a clean track record when it comes to open source software.

      I don't think so. Chrome was marketed as an open source browser, yet from the very first release they added in proprietary bits without source code.

      Even if that were true, I don't see Google acting like a predatory patent troll, out to ruin foss projects because those projects compete with Google's proprietary offerings. Which means that Google is not behaving like Apple, Oracle, or Microsoft.

    16. Re:Whoa there by Raenex · · Score: 1

      Now you're shifting the argument. First you confused Chrome with Chromium, not realizing that there was a difference. At least acknowledge that.

      Second, they said Chrome would be open source. It was a huge part of their marketing. If you remember, Chrome was announced via a comic. It said right on page 2, "Finally, Google Chrome is a fully open source browser."

      The distinctions between proprietary Chrome and open source Chromium didn't come until later.

    17. Re:Whoa there by Raenex · · Score: 1

      Just because they aren't acting like a patent troll doesn't excuse them for not following through on open source promises.

    18. Re:Whoa there by gutnor · · Score: 1

      Actually, the JCP is massively slow and inefficient. Java may aswell be controlled by a lone dead blogger considering the glacial pace things get moving. Frankly, MS is much better than the JCP at churning API and improving its language.

      What really sets java appart though is the open source community around it and its legitimacy. Almost everything a java developer considers the standard java nowadays includes a myriad of open source projects (JUnit, Spring, Hibernate, ...) That is the main difference between Java and C#. It does not matter who controls the JDK, but it still matters with C#. Time will tell how it is for Dart. But if Android is any indication, that will be Google solo.

    19. Re:Whoa there by mspohr · · Score: 1
      I think we are both clear that Chromium (the browser base) is open source and Chrome (Google's binary distribution) contains some proprietary bits.

      Where is the evil you are afraid of...? Are you Stallman?

      --
      I don't read your sig. Why are you reading mine?
    20. Re:Whoa there by Raenex · · Score: 1

      I think we are both clear that Chromium (the browser base) is open source and Chrome (Google's binary distribution) contains some proprietary bits.

      Yes, after I explained it to you.

      Where is the evil you are afraid of...?

      Once again you are shifting the argument. I made it clear what my objection was in the original post -- that Google didn't follow through on their open source promises. You disputed my claims, twice, and have been answered both times. If you had some integrity you'd admit my original argument was based in reality and stop moving the goalposts.

    21. Re:Whoa there by mspohr · · Score: 1
      If you can read my post, I clearly stated that Chromium was open source. I never stated Chrome was open source. Google promised an open source browser and they delivered. It is called Chromium. Relax and enjoy it. If you think Chrome is evil, don't use it.

      (BTW, cute comic but I don't take that seriously as "Google Policy"... comics are simple presentation for simple people.)

      --
      I don't read your sig. Why are you reading mine?
    22. Re:Whoa there by Raenex · · Score: 1

      If you can read my post, I clearly stated that Chromium was open source.

      Which just demonstrates your confusion between Chrome vs. Chromium, because in the post you replied to I said: "Chrome was marketed as an open source browser, yet from the very first release they added in proprietary bits without source code."

      I never stated Chrome was open source.

      But you said Google didn't say it either, but they did.

      Google promised an open source browser and they delivered.

      Google promised Chrome would be a "fully open source" browser. They even added in the qualifier "fully".

      (BTW, cute comic but I don't take that seriously as "Google Policy"... comics are simple presentation for simple people.)

      That comic was the announcement laying out was Chrome was all about. Besides being cute, it was 38 pages full of technical information in addition to the strong features and policy statements made in the beginning.

      Giving Google a free pass after the fact because a) you're losing the argument, and b) it's a comic, doesn't hold water. A lie is a lie, and a broken promise is a broken promise.

      Besides Chrome, you haven't even touched upon Android Honeycomb, which was the other half of my argument. Just admit you were wrong and move on. Is it really so hard?

    23. Re:Whoa there by SuperKendall · · Score: 1

      You're kidding right? Have you seen any aggressive patent trolling from Google?

      The whole purchase form Motorola and other companies is in obvious preparation for such an action.

      I'm not saying if it's wrong or right given the world as it is. I am saying you are BLIND if you do not see that coming with the actions they have taken.

      I guess Oracle didn't get the memo. You have heard of Oracle's lawsuit against Google, right?

      Yes, that's because they are violating patents for not conforming to the agreed upon Java standard. That's because Google could not take the time to work within an inherently slow community process. I'm not even saying that action was wrong, but they have to be willing to accept the consequences for that choice and we should not pretend everything is white roses here.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    24. Re:Whoa there by t2t10 · · Score: 1

      The reality for Java is much worse: it is extremely patent encumbered, and both Sun and Oracle have a long history of using their ownership of key Java-related IP to kill competition and open source. The fact that Oracle has a bunch of people giving them free consulting and advice through the JCP doesn't change that.

      Java's second problem is that it sucks technically: it has a bad type system, and awful set of toolkits and libraries, and lousy numerical support. That's the consequence of Sun/Oracle's control: all the real experts gave up on using the JCP to fix the language more than a decade ago, and since then the language has just floundered and rotted away.

    25. Re:Whoa there by t2t10 · · Score: 1

      Yes, that's because they are violating patents for not conforming to the agreed upon Java standard. That's because Google could not take the time to work within an inherently slow community process.

      Why should they work within the community process? Google has its own VM and its own libraries, they just used Java to bootstrap their environment and use Java syntax.

      Apple gave Java the boot, for the same reason that Google wasn't working "within the community process": the Java standard sucks and it isn't getting fixed. And Apple has done the same thing with Objective-C: they took a clone of StepStone's language and a clone of Xerox's Smalltalk libraries and made a new product out of it. What Google did was reasonable and normal; it was Sun's management of Java that was unacceptable.

    26. Re:Whoa there by gmhowell · · Score: 1

      Time will tell, but I think we can expect Google to actively support all of the platforms Chrome runs on, and to release full source code under a fairly permissive license.

      Right, just like they did with Android Honeycomb (or Sugar Smacks or whatever the fuck 3.0 is).

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    27. Re:Whoa there by Anonymous Coward · · Score: 0

      Only the C# Syntax is ECMA certified. The background operations like data exchange in binary with SQL Servers is non-standardized, closed and patented

    28. Re:Whoa there by swillden · · Score: 1

      Time will tell, but I think we can expect Google to actively support all of the platforms Chrome runs on, and to release full source code under a fairly permissive license.

      Right, just like they did with Android Honeycomb (or Sugar Smacks or whatever the fuck 3.0 is).

      There's been extensive discussion of why Google didn't release Honeycomb source. I'm not saying it was right, just that Google claimed it was an exceptional case, and explained why. I believe it was an exception and that ICS will be released. Time will tell, of course.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  14. very simple exlpaination by Anonymous Coward · · Score: 0

    it works just like java .. why .. because google is worried about the future of java @ oracle, as should the rest of the programming community. All it takes is for oracle to decide to lock down lava and require hefty licences to use it. they developed their own java-like language to slowly migrate and make the switch.

    as for browsers supporting it, i don't see how that is relevant. it pushes/converts things to javascript. And if you want to run a native dart "applet" you'll need a plug-in just like you do for java.

  15. Perl by liquidhokie · · Score: 1

    Screw it... just use perl.

    1. Re:Perl by vlm · · Score: 1

      Screw it... just use perl.

      Sorry, its not on The List

      https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

      Supposedly you can compile scheme, ruby, or basic into JS. Never tried it, don't know.

      I transitioned from Perl to Ruby probably about 6 years ago, it was fairly painless, would advise if you feel you're "stuck" on perl to try ruby.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Perl by sgt+scrub · · Score: 1

      awk

      --
      Having to work for a living is the root of all evil.
  16. Closed platforms by Animats · · Score: 2

    The ominous part of that memo is "The cyclone of innovation is increasingly moving off the web onto iOS and other closed platforms." By which they mean iPhone and Android "apps". "Apps" are not a very good environment, and many of them are just web pages with delusions of grandeur. But that they have a payment model, DRM, and give the app distributor absolute control.

    It's all about screwing the end user. "You're the product, not the customer".

    As a language, Dash looks mediocre, as the article points out. "Optional typing", an idea that started with Visual Basic is usually a lose in language design. Statically typed languages have been successful, and dynamically typed languages have been successful, but optional typing is usually an afterthought bolted on to increase performance at the cost of programmer confusion. There's a typed Python variant, for example; PyPy is written in it. It's rarely put in a language from the beginning.

    A few languages have tried a form of soft typing, where you have, essentially,"integer", "real", "boolean", etc., and arrays of same, plus "object". That way you get efficient code for machine arithmetic, which means you can do codecs and graphics in the language. Objects have to be dispatched anyway, so a performance penalty there isn't so severe.

    1. Re:Closed platforms by farble1670 · · Score: 1

      sorry, but did this,

      But that they have a payment model, DRM, and give the app distributor absolute control.

      and this

      It's all about screwing the end user.

      go together?

      having a payment model doesn't screw the user, it gives the developer a way to feed their family. as to the user, it's up to them if they want to pay or not. nobody is screwed.

      at least on android, there's nothing special in the platform that forwards DRM. android does have a "license verification" API that allows developers to validate that users actually purchased the app. see point above about feeding the family.

      on android, the "distributor", by which i guess you mean google, doesn't have control. anyone can build a market (see: amazon app store), and anyone can side-load apps, unless your operator has disallowed that, and you were naive enough to purchase the phone anyway.

    2. Re:Closed platforms by 21mhz · · Score: 1

      at least on android, there's nothing special in the platform that forwards DRM. android does have a "license verification" API that allows developers to validate that users actually purchased the app.

      Actually, any serious pretense to verify the legitimacy of copying a bunch of bits to the device can only be done with a technology that amounts to DRM, requiring device lockdown all the way down to the bootloader. So either Android is claiming their verification to be more than it is, or it forwards DRM.

      --
      My exception safety is -fno-exceptions.
  17. Static types by Anonymous Coward · · Score: 0

    Looks like they've put static types in the specs, just to list as a feature. Seems pretty cheaty to me, a really simple and optional compiler check.

  18. How is this Java-like? by tires+don+exits · · Score: 1

    I'm looking at a couple of the examples, and this looks far more Perl-like than Java-like. I can see some things that look like they were inspired by Java in the syntax (mostly the interfaces), but the print syntax is definitely more in line with how Perl works.

    It also has a free "main" function, which is C/C++/D-like and isn't Java-like in anyway whatsoever. There looks like there's either dynamic typing or type inference (I'm guessing a combination of the two personally) which is C++11/C#/D/.

    Also, I'm not sure how a VM has anything to do with being Java-like. A VM is pretty much a staple of any interpreted language. Your code is always running on a machine. If it's not running native code, it's running on a VM interpreting bytecode (which may JIT sections to bytecode, the distinction between VM and native code is becoming smaller every day).

    Strange definition of "ominous" being used there. This sounds like an amazing leap for web development.

    1. Re:How is this Java-like? by tires+don+exits · · Score: 1

      Upon closer inspection, looks far more Scala-like than Java.

  19. Quick! Everyone start converting your code! by caywen · · Score: 1

    I have this idea of a new language that is 100% Javascript-compatible. It would require no code conversion whatsoever, works with your existing tool chain, and requires no new learning. It started out from an Ada-like project, and I dubbed it "New ADA", or "NADA". It's evolved quite a bit and doesn't look like Ada anymore. In fact, it looks exactly like Javascript. But it's new! I recommend that everyone start using Nada as soon as possible to open a whole new world of possibilities.

  20. First Impressions by TheCount22 · · Score: 1

    Looking at the syntax it looks like nothing special. However, I have to admit it looks infinitely better than JavaScript.

    I am really curious about these isolates, what do the rest of you think?

  21. go by Dr.+Tom · · Score: 1

    no, seriously, didn't Google just abandon the Go language?

    1. Re:go by UtterCoward · · Score: 1

      I haven't seen or heard anything to the effect that Google has abandoned Go.

    2. Re:go by jgeiger · · Score: 1

      Go = backend
      Dart = frontend

    3. Re:go by firewrought · · Score: 1

      no, seriously, didn't Google just abandon the Go language?

      What makes you say that? The latest release was a Sept. 07th... about a month ago. Dart may or may not threaten Go at some point, but for now it seems that Dart is more focused on client/GUI code and Go is more focused on server code (e.g., as a systems programming language). Google probably intends to throw resources behind both to see whether either (or both) succeed.

      --
      -1, Too Many Layers Of Abstraction
    4. Re:go by burris · · Score: 1

      I thought Go was just a project of some Google engineers and not an official product.

    5. Re:go by Anonymous Coward · · Score: 0

      Go is a systems level language. Dart is a web programming language. You can't run Go in a browser.

    6. Re:go by DragonWriter · · Score: 1

      What makes you say that? The latest release was a Sept. 07th... about a month ago. Dart may or may not threaten Go at some point, but for now it seems that Dart is more focused on client/GUI code and Go is more focused on server code (e.g., as a systems programming language).

      Dart is more than just for clients, one of the big points is that it can also be suitable for server-side applications. But Go is designed for lower-level systems code than what Dart is aimed at, even where Dart would be used on the server side.

      (I suspect, thought, that the experimental Go runtime for Google App Engine may never make it out of "experimental" state -- this seems to be an area that Dart is aimed squarely at, and that is outside of the sweet spot for Go as Google is positioning it.)

  22. Standard library by thue · · Score: 1

    The corelib looks very sparse: http://www.dartlang.org/docs/api/index.html

    The thing I like about jquery and dojo is that you actually get a reasonable standard library, which JS sorely lacks. It would be nice if dart included a better standard library.

    1. Re:Standard library by Anonymous Coward · · Score: 0

      Core library doesn't look sparse to me. It seems to have everything you'd want in a core library. It needs more extensive library support around its core.

  23. The end game for GWT by Windrip · · Score: 1

    GWT rocks - don't expect it to go easily into that good night.

    Consider the following scenario:
    o Convert the compiler to accept Dart instead of "pure" Java. Remember, GWT does not implement the entire language, only a subset of the run-time. This conversion can easily be implemented as a rolling replacement to the compiler.
    o There's absolutely no reason now for GWT to support Java 7+
    o The Google Plugin for Eclipse will easily convert to Dart, keeping the developer mind-share
    o Keeps all those nifty 3rd party libraries
    o Keeps the advantage of all those optimizations that the GWT compiler reduces to practice. Google will not flush all that work.
    o Tell Larry to stick it where the sun don't shine

  24. MIT licensed anylanguageVM by sgt+scrub · · Score: 2

    If Google would have spent time and effort on Parrot or helped to release a VM that interprets multiple languages under the MIT license, I would be loving Google. Another scripting language and VM doesn't make me warm, fuzzy, or even remotely interested.

    --
    Having to work for a living is the root of all evil.
    1. Re:MIT licensed anylanguageVM by shutdown+-p+now · · Score: 1

      Look up PNaCl. To be honest, I'm somewhat disappointed that this Dart thingy isn't running on top of that.

    2. Re:MIT licensed anylanguageVM by sgt+scrub · · Score: 1

      Salt, Pepper, Pinnacle are for pluggins and JIT'd C. I want a virtual machine designed to efficiently compile and execute bytecode for dynamic languages built into the browser instead of a JavaScriptVM.

      --
      Having to work for a living is the root of all evil.
    3. Re:MIT licensed anylanguageVM by shutdown+-p+now · · Score: 1

      If you have a low-level VM (such as LLVM, which is what PNaCl uses), you can always build something higher-level on top of that - be it bytecode interpreter, JIT compiler or whatnot. You could take Clang and compile Parrot to LLVM bytecode for example.

      On the other hand, it also lets one use compiled languages. It's all about having more options.

    4. Re:MIT licensed anylanguageVM by sgt+scrub · · Score: 1

      "It lets one use compiled languages." Yes, LLVM absolutely does. I love it. It also allows one to create JIT's for high level languages. Jade, Crack, Rubinius, etc... are all done with LLVM. However, a JIT for a language is far from an anylanguageVM. I would call it an HLVM but that name was taken then absorbed back into LLVM. What I'm talking about is an interpreter that interprets more than JavaScript not a JIT for each language. There is a huge difference. Yes, one could use LLVM to build one. One could use it to convert an existing one. My point was, "Why wasn't Google that ONE". They have Native Code. Why not use it for something that frees developers to use any language instead of creating Just Another Language.

      --
      Having to work for a living is the root of all evil.
    5. Re:MIT licensed anylanguageVM by DragonWriter · · Score: 1

      One could use it to convert an existing one. My point was, "Why wasn't Google that ONE". They have Native Code. Why not use it for something that frees developers to use any language instead of creating Just Another Language.

      Uh, they are doing that. You don't need an "Anylanguage VM" to do that, you need, well, exactly what PNaCl provides as an execution environment (so that you can run LLVM bitcode anywhere, so anything anyone can compile to that can be run anywhere the browser runs), plus what PPAPI provides to interface with the DOM, etc.

      Doing that doesn't stop them from designing, implementing, and promoting a new language designed to be useful both on the client side and the server side of web-apps. Google can do more than one thing at a time. In fact, since there are practical limits to the productivity gains they can get by throwing more resources at any single project, they need to do more than one thing at a time.

    6. Re:MIT licensed anylanguageVM by sgt+scrub · · Score: 1

      Ah! I see the error of my original post. I should have written, "anylanguageInterpreter" or "anylanguageEngine". VM brings to mind bitecode and JIT. I, very poorly, tried to describe an engine/interpreter (Rhino - V8 - SpiderMonkey - Narcissus) capable of interpreting Python, Perl, Lua, Ruby, etc... My apologies.

      --
      Having to work for a living is the root of all evil.
    7. Re:MIT licensed anylanguageVM by DragonWriter · · Score: 1

      Ah! I see the error of my original post. I should have written, "anylanguageInterpreter" or "anylanguageEngine". VM brings to mind bitecode and JIT. I, very poorly, tried to describe an engine/interpreter (Rhino - V8 - SpiderMonkey - Narcissus) capable of interpreting Python, Perl, Lua, Ruby, etc... My apologies

      How would you build such a thing? Real multilanguage environments have a common intermediate representation of some form, and some kind compiler/translator/etc. for each language that converts it to the common representation (or separate interpreters for different languages running on the common environment, or a mixture of both approaches for different languages.)

      A "multilanguage interpreter" isn't a coherent concept, its multiple interpreters for different languages that happen to share some backend components.

      And, still, Google's working on the fundamental groundwork for that with PNaCl and PPAPI, by providing a starting point for the shared target in the browser and integration with the browser environment (e.g., DOM, etc.) in that shared target, in a way that provides an easier path for many existing languages than compile-to (or interpret-in) JavaScript.

      There's a long way to go (PNaCl itself isn't in general release yet), but doing Dart doesn't mean Google has stopped doing the work that is needed to underlie what it seems like you are looking for.

  25. There shall be puns by rwa2 · · Score: 1

    Still no confirmation whether the object declaration will go something like:

    objet d'art(foobar) { }

  26. In the year 8357 A.D... by Anonymous Coward · · Score: 0

    there are two sentient beings existing in a virtual reality plane, excavating what seems to be layers of execution abstractions...

    archaeologist #1: Just another day of the same eh mate? we've been digging for months. We find nothing but malware from various era...
    archaeologist #2: I feel ya mate. But today's such a beauuuutiful day, I think we might find something milky way-shattering.
    archaeologist #1: The origins of the modern day sentient beings...
    archaeologist #2: Ya got that right mate. I was told our reality is build atop of one layer over another, leveraging the most mature technologies of their respective time.
    archaeologist #1: You remember professor Moveax Esi? He taught us the equivalence of sentience executing on different substrates. What differs is the perception of time.
    archaeologist #2: I remember that, mate. Coupled with the universe's speed limit of c, each added reality layer inevitably leads to slower perception of time, with respect to the very first layer.
    archaeologist #1: Ah, the first layer. I wonder what it could be, and what it is made of.
    archaeologist #2: That's what we are here for, mate. To find it and reveal it to the world.
    archaeologist #1: OH MY. I think I hit something.
    archaeologist #2: What is it, mate? Did you find the first layer?!
    archaeologist #1: I think so. Look...
    archaeologist #2: *Gasp*
    archaeologist #1: It's made using...DART?
    archaeologist #2: Glorious! DART...it looks so ancient, mate! What interesting constructs...we gotta show this to the world!
    archaeologist #1: Agreed...wait! There's something beneath it!
    archaeologist #2: What is it?
    archaeologist #1: It...it reads...javascript.
    archaeologist #2: What is that?
    archaeologist #1: I...I don't know.
    archaeologist #2: Look at this. What is this...if (isChromeBrowser() || isFirefoxBrowser())...
    archaeologist #1: Look, another one here! if (isMSIE8())... else if (isMSIE9())...
    archaeologist #2: I don't know, mate. All this...looks awful.

  27. Microsoft? by Fujisawa+Sensei · · Score: 1

    It took Microsoft less time than Google has been around to start being utter bastards.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
  28. The real reason for Dart by IGnatius+T+Foobar · · Score: 1

    The real reason Google is developing the Dart language is to hedge their bets in case they lose the frivolous lawsuit filed by Oracle. Rather than pay royalties to Oracle they will make Dart the primary development language for Android. They will make Dart compile down to Dalvik bytecode (chances are, they've already done this) and they might even offer developers a tool to translate Java source to Dart source.

    Remember, Dalvik bytecode is not Java bytecode. Android only uses the Java language, not its virtual machine, which is why Oracle mistakenly believes they can sue Google over its use. Changing the source language removes the perceived violation without breaking existing software.

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
    1. Re:The real reason for Dart by tobiasly · · Score: 1

      Remember, Dalvik bytecode is not Java bytecode. Android only uses the Java language, not its virtual machine, which is why Oracle mistakenly believes they can sue Google over its use. Changing the source language removes the perceived violation without breaking existing software.

      Mistakenly? I'm pretty sure they *are* suing Google over its use.

    2. Re:The real reason for Dart by Raenex · · Score: 1

      You've got some faulty assumptions. One of the reasons Oracle is suing Google is over the Dalvik implementation and patents:

      http://en.wikipedia.org/wiki/Dalvik_(software)#Licensing_and_patents

    3. Re:The real reason for Dart by Anonymous Coward · · Score: 0

      Remember, Dalvik bytecode is not Java bytecode.

      Have you actually looked at the bytecode? It's 99% identical to Java except having registers instead of stack positions. They even named the opcode the same... OP_MONITOR_ENTER vs monitorenter, OP_INVOKE_STATIC vs invokestatic, OP_ARRAY_LENGTH vs arraylength, etc.

      Dalvik is so similar to JVM that one could write a translation program in bash in a day. Saying that it's 'not Java' is a joke.

    4. Re:The real reason for Dart by Rich0 · · Score: 1

      Well, I can sue you because I don't like your hair color. It doesn't mean that it will get anywhere, but I bet I can cost you a pretty penny defending yourself.

  29. More Virtualization == More Speed! Recursion FTW by Anonymous Coward · · Score: 0

    Just what we need, another virtualized language.

    Why not. for the greatest speed possible, run it inside a java interpreter, written in java, running on a java interpreter written in java.

    Just think of the raw speed.

    Since "java is faster than C" at least in the java world, we would get a bigger speed boost on each level of recursion!

  30. Interfaces = Meh by kikito · · Score: 1

    I was really hoping that they included something like Ruby's mixins. I'm sorry, Google, but I'm not interested.

    1. Re:Interfaces = Meh by DragonWriter · · Score: 1

      I was really hoping that they included something like Ruby's mixins.

      Interfaces are useful for static checking, since they express an implementation-free contract; this makes them important for Dart.

      Mixins might be useful in addition to interfaces, but don't fill the same role. Its also early in the game for Dart, unless there is a philosophical opposition to having mixins, they could well be added in. Maybe you should recommend that on the forum on the dartlang.org website?

  31. Lack of imagination by dtbx · · Score: 1

    Google lacks imagination when designing a new language. Even Microsoft can design a bold language like F#, whose design was inspired (or stolen) from OCaml. Microsoft Research has at least two geniuses working for them: Simon Peyton Jones and Erik Meijer. Both came from the Haskell world.

    Can Google design an experimental language crazier than Dart (or Go)?

    Who wants another Java?

    I don't want to learn a new language that lacks functional features, or my beloved lambdas. For me, is simply not functional, haha.

    1. Re:Lack of imagination by DragonWriter · · Score: 1

      Google lacks imagination when designing a new language. Even Microsoft can design a bold language like F#, whose design was inspired (or stolen) from OCaml. Microsoft Research has at least two geniuses working for them: Simon Peyton Jones and Erik Meijer. Both came from the Haskell world.

      Can Google design an experimental language crazier than Dart (or Go)?

      Who wants another Java?

      Dart isn't another Java. Unless, at some point where I wasn't looking, Java dropped mandatory strong typing in favor of dynamic typing with option type checking, eliminated the primitive/object distinction, added Erlang-style concurrency and Ruby-style handling of calls to non-existent methods, and added non-allocating constructors (what Dart calls "factory constructors" rather than "generative constructors"), and factory classes to provide default implementations of an interface so that an interface can be instantiated as if it were a class.

      I don't want to learn a new language that lacks functional features, or my beloved lambdas. For me, is simply not functional, haha.

      Dart has functional features, including a concise notation for lambda expressions (function literals).

      Here's a Dart function literal for a function that takes one parameter and returns the result of adding one to it:
          (x) => x+1
      Here's an alternative notation for the same thing:
          (x) { return x+1; }
      Here's a version that uses explicit typing:
          (num x) => x + 1;

  32. Cluelessly-written précis by Anonymous Coward · · Score: 0

    The writer switches tones ten times per sentence and doesn't seem to understand the meaning of the words he uses in context. The words just don't parse.

  33. If only Google would have thought of that! by DragonWriter · · Score: 1

    It's becoming obvious that browsers need to support a runtime like LLVM in addition to or instead of javascript. That way, the developer could use their language of choice and just compile to LLVM byte code instead of to javascript

    Yes. It is.

  34. Android Gets a Replacement Language! by Anonymous Coward · · Score: 0

    Since Java is possibly a liability for Android, Google is forced to create a new alternative language that's very similar to Java but not Java.

  35. Great! by aurb · · Score: 1

    What the world needs is yet another language. One that solves the same problems in the same way, only with code that looks slightly different.

    1. Re:Great! by walterbyrd · · Score: 1

      So you can use it without being sued. Too bad the folks at Oracle are such dicks. I thought Java was supposed to free?

  36. in other news... by Gravis+Zero · · Score: 1

    ... Oracle sues Google for leaving abusive relationship. More at 11.

    --
    Anons need not reply. Questions end with a question mark.
  37. It's a chicken-and-egg problem. by Anonymous Coward · · Score: 0

    Modern web development suffers from a pretty bad chicken-and-egg problem.

    Good developers, who are willing to try new languages so as to improve their productivity, do everything they can to avoid web development because existing web technologies are often quite shitty (JavaScript, PHP, MySQL, Ruby on Rails, and the not-expected-to-be-standardized-until-2022 HTML5, just to name a few).

    So the only people doing web development are fools. Being foolish, they don't realize how bad the tools they're using actually are. So they're content to use JavaScript, while maintaining complete ignorance of the alternatives.

    This, unfortunately, causes JavaScript to appear far more popular and useful than it actually is. Far better alternatives never get any traction because the good developers who would instantly use them are instead doing much more enjoyable and sane software development (embedded systems, enterprise systems, and so forth).

    Unless somebody like Google steps in a make the big changes necessary to fix all of the broken aspects of web development, it's unlikely that the situation would ever resolve itself.

  38. Erlang by Kupfernigk · · Score: 1

    I think it is an attempt to combine features of JS and Erlang to get concurrency. Why? Because after reading an Erlang primer I decided to code a version of the messaging system in Java, and the result is something like this.

    --
    From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
    1. Re:Erlang by DragonWriter · · Score: 1

      I think it is an attempt to combine features of JS and Erlang to get concurrency. Why?

      The isolate/sendPort/receivePort setup seems to be pretty much exactly Erlang-style concurrency, but that's not even close to the whole of how Dart differs from (insert any existing language here). Its certainly an important feature, but its not the sole motivation.

  39. After some tests with the emulator by qrwe · · Score: 1

    It's Google Python, Java/C# flavored. Time will tell if this language adds anything new and juicy to the market. As Stroustrup put it: "There are two types of programming languages: those that everyone's complaining about, and those which are never used".

    --
    There are 2 types of people in the world - those who understand decimal and those who don't.
  40. it's always been pretty clear that by Anonymous Coward · · Score: 0

    js has structural problems that cannot be solved by evolving the language and it's only a matter of time before this realisation spreads to the all the other browser vendors.

    bottom line is that those devs that bothered to learn html5 must be kicking themselves.

    hold tight for a huge shake-up, things are about to get very interesting!

  41. Embrace, extent, extinguish by bigsexyjoe · · Score: 1

    I think Google is taking this from MS's playbook. They certainly have embraced JavaScript. Now they make there own language that can be compiled to Javascript, but also run natively. How long before they add features and syntax to Dart that can't be compiled to efficient JavaScript, but run blazing fast on Chrome?

    1. Re:Embrace, extent, extinguish by walterbyrd · · Score: 1

      Since when has Google taken anything from Microsoft's playbook? I don't see Google patent trolling, or astroturfing, like Microsoft routinely does.

  42. Browser's need a VM by Anonymous Coward · · Score: 0

    Browser's don't need another script language to run inside the browser. JavaScript is good enough.

    Browser's need a tiny, super fast and language neutral VM so we can build (and develop for) any language on top of it.

  43. OPA for the server side too by Anonymous Coward · · Score: 0

    With OPA, we have strong typed language that generate a checked and optimized JS for the client, but also everything needed for the server and the communication.
    This new open source language was on slashdot few weeks ago : http://developers.slashdot.org/story/11/08/27/2115210/announcing-opa-making-web-programming-transparent

  44. yup. it's like the internet is dying by decora · · Score: 1

    because of all the shitty languages used to develop it.

    it's going the way of Sun . . . just losing tons of users every day.

  45. a slow algortihm is a slow algorithm by decora · · Score: 0

    it doesn't matter what language you write it in.

  46. Goodbye Java on Android by Anonymous Coward · · Score: 0

    Oracle should have just been happy someone was using Java.

  47. Did the poster even read the lang specs? by Anonymous Coward · · Score: 0

    Oh wait, this is slashdot ... nevermind

  48. Share by Anonymous Coward · · Score: 0

    Free Dart Language ebook;

    http://www.heronote.com/files/Dart.htm

  49. Apple "didn't give Java the boot" by SuperKendall · · Score: 1

    Why should they work within the community process?

    Why should anyone follow any standards? Also Google gained a HUGE lead by using an existing language and VM as a base, that is why they should have respected the Java license. Otherwise they were perfectly free to roll their own language and VM. You can't have your cake and eat it too, if you use the standard you should do so in accordance to the standards body that maintains it.

    Apple gave Java the boot

    I have been using boy Java and the Mac for many years, so I know the whole history of that as it unfolded...

    Apple did not "give Java the boot". They simply stops working on ports THEMSELVES. XCode still supports Java and the JVM is kept up to date by Oracle, which is as it should be - in the same way that Apple now lets Adobe keep Flash up to date on the platform.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Apple "didn't give Java the boot" by t2t10 · · Score: 1

      Why should anyone follow any standards?

      Standards traditionally are based on enlightened self-interest: I follow the C standard and you follow the C standard so that we can exchange code.

      The very fact that Oracle needs to pressure people into following their "standard" tells you that there is something wrong with it.

      Otherwise they were perfectly free to roll their own language and VM.

      They did roll their own VM and libraries, and Oracle has no legitimate claims to the Java language itself.

      Apple did not "give Java the boot". They simply stops working on ports THEMSELVES

      In different words, they gave Java the boot: they kicked it out of their company.

      XCode still supports Java and the JVM is kept up to date by Oracle, which is as it should be

      Maybe in the twisted, proprietary world of Apple the idea that a "standard" consists of a single vendor maintaining all the implementations of that standard is "as it should be", but in the real world, that's ridiculous. And of course Oracle's implementation for Apple is piss-poor.

      in the same way that Apple now lets Adobe keep Flash up to date on the platform

      Oh, wow, Apple allows Adobe to deliver software on "their" platform. How magnanimous of Apple! Apple's management is rediscovering the marketing and management insights of such companies as Compuserve, AOL, and Ma Bell: "keep it proprietary and closed, control everything, and remain eternally successful".

      I'm really glad that Apple is going to crash and burn within a half dozen years.