Slashdot Mirror


Analysis of Google Dart

An anonymous reader writes "Google's new language landed with a loud thud, causing lots of interesting debates about the best place to stick semicolons... An article [in InfoQ] ... looks at some of the less discussed features. Snapshots seem to bring something like Smalltalk images and allow instant startup of applications (something Java has spent the last 15 years not delivering). Isolates are like OS processes and communicate with message passing — and as the article suggests, can fix the problem of Garbage Collection pauses by splitting up the heap (sounds like Erlang). There's more, mostly about features that remove some dynamic behavior in order to make startup and code analysis easier. Maybe Dart is worth a second look?"

171 comments

  1. What? by hexghost · · Score: 0

    and allow instant startup of applications (something Java has spent the last 15 years not delivering)

    Was that ever promised? As a Java developer, I really don't remember seeing "INSTANT STARTUP!" on JDK release notes/upcoming feature list.

    Hey, does Dart solve global warming? Cause that's something Google has yet to deliver in the last 5 years...

    1. Re:What? by AndrewStephens · · Score: 5, Interesting

      Oh please,

      Java (or more correctly; its user base) has been crying out for some sort of faster startup since the mid 90s. No other problem has done more to keep Java off the desktop that the very slow startup times. If Java applets started as quickly as Flash objects manage to then we would still be seeing Java implemented on major web sites. I could never understand why Java doesn't snapshot and cache a prelinked version of a class the first time it loads, if anything the JVM is getting slower - the demo Java Applets on my website take about as long to start up in 2011 as they did in 2000 but my computer is many times faster.

      --
      sheep.horse - does not contain information on sheep or horses.
    2. Re:What? by Required+Snark · · Score: 1

      You really have a chip on your shoulder. This is a issue that is important for browser side environment, it's not about Java. Are you feeling insecure?

      --
      Why is Snark Required?
    3. Re:What? by SplashMyBandit · · Score: 0
      You'll find that applets are slow because of the browser. If you make a WebStart applet and run it in a browser it is painfully slow. If you run the same WebStart applet directly from your desktop it is between 5 to 10 times faster in my experience (I won't give a URL to my applets where I can easily demonstrate this, as I don't want my home servers to get Slashdotted). The locally started Java applets/applications have had very fast startup ever since the JVM preload has been happening (eg a service that needed to be enabled on WinXP, and on by default on Win7).

      This emulates the way that native (eg C+++) preload their environment by loading the operating system ahead of time (eg. all those image and network libraries your C++ program uses come from somewhere, it turns out that the C++ program preload time is mostly operating system startup). Sure Java programs also suffer O/S loading time in addition to the JVM startup, but in modern desktop systems when the JVM starts when the system starts then you don't really notice it, and your Java desktop program starts 'straight away' when you use it (assuming the author knew what they are doing).

      My real point is, all programs have to pay the piper and I can't see Dart avoiding it for any meaningful program. Here I'm ignoring the relatively limited UI functionality out there on the web even with AJAX, it's getting better but there is still nothing of the caliber and *full-functionality* OpenOffice/MS Office, GIMP/Photoshop, Blender/3DSMax, FlightGear/X-Plane etc on the Web. It'll change one day (mostly due to better WAN infrastructure, not due to a language change like Dart), but not yet.

    4. Re:What? by Anonymous Coward · · Score: 0

      There's far more to computing than applets and UI widgets.... In fact, I've been coding in Java continuously for the last 10 years, and have only written the occasional UI, and most of that has been web applications. "Instant" startup has never been a major concern or problem in real applications. Flash is used only for toys and nifty videos, so it's hardly a real point of comparison.

    5. Re:What? by flimflammer · · Score: 3, Funny

      Did we strike a nerve?

      Forgive us if the lack of a promise from Sun/Oracle to implement it didn't stop us from feeling it was necessary for startup times to be quicker than that of a slug crossing a freeway.

    6. Re:What? by deniable · · Score: 1

      Promised, no, but it was one of the first applications we were looking at when Java was first announced and before browser applets became a big thing. Think about a cross between the JVM and VMWare's migration capability with some instant suspend / resume thrown in. IIRC, there were even articles about this sort of thing in DDJ.

    7. Re:What? by AndrewStephens · · Score: 3, Interesting

      You an not wrong, but are missing the point. Java conceded the desktop to other technologies not because it was an inferior language (I find that even the much-maligned Swing produces very nice UIs) but because it took an age to start, making it unacceptable for any kind of in-browser use.

      --
      sheep.horse - does not contain information on sheep or horses.
    8. Re:What? by AndrewStephens · · Score: 2

      And you'll find that applets are slow because the Java plugin distributed and maintained by Sun/Oracle doesn't use any kind of preloading as far as I can see. Who knows if Dart is better in this regard, but Java is it's own worst enemy when it comes to startup times. It is a shame, because I like almost everything else about it.

      --
      sheep.horse - does not contain information on sheep or horses.
    9. Re:What? by msobkow · · Score: 2

      .Net takes just as long to fire up an application on my box as Java does. Most of the applications built with either technology don't take much longer to load than comparably sized native applications do.

      The startup time is not significantly higher than a large binary application like Firefox or Chrome are.

      You need to download some updates. Java 1.2 hasn't been used for a while.

      --
      I do not fail; I succeed at finding out what does not work.
    10. Re:What? by ToasterMonkey · · Score: 2

      Oh please,

      Java (or more correctly; its user base) has been crying out for some sort of faster startup since the mid 90s. No other problem has done more to keep Java off the desktop that the very slow startup times. If Java applets started as quickly as Flash objects manage to then we would still be seeing Java implemented on major web sites. I could never understand why Java doesn't snapshot and cache a prelinked version of a class the first time it loads, if anything the JVM is getting slower - the demo Java Applets on my website take about as long to start up in 2011 as they did in 2000 but my computer is many times faster.

      Maybe the Java that ships with OS X is specially optimized (I'm joking), but the background of your website takes longer to load and render than any of your applets do.
      link

      This is fast enough for CLI usage outside of tight loops. For repeated usage, I'll concede you'd be better off finding a way to feed bulk data in rather than small chunks.
      echo "class Hello {public static void main(String args[]) {System.out.println(\"Hello World\");}}" > Hello.java && javac Hello.java && time java Hello
      Hello World

      real 0m0.189s
      user 0m0.210s
      sys 0m0.033s

      I understand Java is generally no speed demon compared to native compiled code, and desktop hard drive performance has almost stood still for ten years, but come on.
      I have a *very* hard time believing that Java load times are as big a limiting factor in desktop app production than people make it appear to be.

    11. Re:What? by Anonymous Coward · · Score: 4, Funny

      Xbox Live much, bro?

    12. Re:What? by msobkow · · Score: 1

      Tsk. How'd I end up getting sucked into a Java discussion on a new technology thread? Must... resist.... urge... to... post...

      --
      I do not fail; I succeed at finding out what does not work.
    13. Re:What? by drfreak · · Score: 1

      Wow. so many expletives. I won't bash Java, but it is certainly no faster at startup than its competitors. Coming from the .NET camp, I have to admit CLR apps are just as relatively slow to start, although the slow startup can be somewhat mitigated with pre-compilation.

      Unless an app has high demands for startup or IO times, all managed (that includes you, Java!) languages suffer from the same initial performance hit while the runtime loads and data structures get cached. Stop the arguments about launch time, they are idiotic unless you are strictly talking about browser apps.

    14. Re:What? by sodul · · Score: 3, Informative

      I just tried Hello World in Groovy and it took almost a whole second (measured with time: 0,7s avg, 0.952s max, 0.668s min) for it to run on my MacBookPro (latest high end 17" model, not ssd).
      Perl did it in about 0.007s average (0.011s max, 0.003s min), Python in 0.020s average (0.023s max, 0.017s min).

      So in practice it takes a 100 times longer to load with no libraries included, it get worse if you do have dependencies.

      Not an issue for a server/deamon app, a real big deal if you need to write a command line tool.

    15. Re:What? by LordLimecat · · Score: 3, Insightful

      I understand Java is generally no speed demon compared to native compiled code, and desktop hard drive performance has almost stood still for ten years,

      If by "stood still" you mean "almost tripled for mechanical drives", then yea, sure, i suppose.

    16. Re:What? by NoSleepDemon · · Score: 0

      You're just jealous because the rest of us learnt a programming language with real world application which you are obviously too stupid to learn. Or perhaps your shopping mall based community college only taught up to the Java level. Case in point - you can't discern why startup time would matter to a user. Here's a hint: they don't want to wait all fucking evening for your stupid program to load when John Doe here has built a better version of it in Flash. As for 'BASIC' and 'fills a purpose' in the same paragraph, I'll chalk that one up to your fat chubby fingers skittering across the wrong key combination as you barely struggle to contain your bottomless rage.

    17. Re:What? by DrVxD · · Score: 1

      +1. I have never needed mod points this badly...

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    18. Re:What? by Anonymous Coward · · Score: 1

      Java's slow startup times (and yes, Sun/Oracle recognizes it's slow and has projects specifically to address it) are directly related to how many classes you load. Hello World doesn't exactly stress the classloader now does it.

    19. Re:What? by Anonymous Coward · · Score: 0

      Well, at least he graduated from a school. Did you, ass wipe?

    20. Re:What? by Darinbob · · Score: 1

      Java may not have promised it, but earlier languages it copied from had it so maybe people assumed it was coming.

    21. Re:What? by Darinbob · · Score: 1

      Thank heavens. Preloading is not wanted if you don't know that the user is going to need it.

    22. Re:What? by Pikoro · · Score: 1

      Did anyone else read this whole thing in Sam Kinison's voice?

      --
      "Freedom in the USA is not the ability to do what you want. It is the ability to stop others from doing what THEY want"
    23. Re:What? by Anonymous Coward · · Score: 0

      he he he. Appears java is slow to startup because java developer refuse to believe it. Too busy pointing fingers at everything else.

    24. Re:What? by MichaelSmith · · Score: 4, Insightful

      Say I wanted to write ls in Java. Startup time would be very important to me. Having dived back into Java development recently the bloat is getting me down. Nobody does anything small, except on Android where Dalvik does some of the caching and optimizing instead of the normal Java runtime.

    25. Re:What? by DrXym · · Score: 1

      The JVM starts up fast enough at this point that it's not even worth caring about in the main part. It's the loading of the application on top which can take some time depending on what it is. It would be nice to be able to suspend an application and take a snapshot which could be instantly restarted (or clone) but I suspect that would be a function of the operating system and not easy given things like memory mapped files, open sockets etc.

    26. Re:What? by Anonymous Coward · · Score: 0

      Oh please,

      Java (or more correctly; its user base) has been crying out for some sort of faster startup since the mid 90s. No other problem has done more to keep Java off the desktop that the very slow startup times.

      I would say Microsoft actually did a lot more to keep it off the desktop (a case they had to settle out of court with Sun).

    27. Re:What? by insertwackynamehere · · Score: 1

      Flash is more powerful than you would think. I felt the same way you did until I started doing some stuff in it for a class. I've been doing DSP work (implemented an FFT among other things) as well as toying with a game (a game loop real game not some timeline BS). I even wrote a scripting language for said game that runs in Actionscript. "Sup dawg we heard you like scripting languages" I know I know :P

    28. Re:What? by Tsingi · · Score: 1

      Oh Jesus fucking Christ! ...

      +1 Funny
      +1 Blasphemy
      +1 for pissing yourself
      +2 for admitting it

    29. Re:What? by Tsingi · · Score: 1

      .Net takes just as long to fire up an application on my box as Java does.

      MS didn't get away with making Java proprietary, why do you think .Net exists? It's modelled on Java.

    30. Re:What? by Jaxoreth · · Score: 1

      I just tried Hello World in Groovy and it took almost a whole second (measured with time: 0,7s avg, 0.952s max, 0.668s min) for it to run on my MacBookPro (latest high end 17" model, not ssd).

      I'm writing a 68K emulator. Hello World in 68K machine code running in my emulator, itself running in another instance of the same emulator, running in a 68K application on Mac OS 9 (using Apple's 68K emulator) in SheepShaver (emulating PowerPC) on a 2.8 GHz MacBook Pro -- that's four levels of emulation, two of them completely unoptimized -- takes less than half a second.

      I just don't see what the problem is.

      --
      In general, it is safe and legal to kill your children. -- POSIX Programmer's Guide
    31. Re:What? by Anonymous Coward · · Score: 0

      Sentence verb little, sis?

    32. Re:What? by Anonymous Coward · · Score: 0

      What's the startup time of a slug crossing a freeway?

    33. Re:What? by i_ate_god · · Score: 1

      Not an issue for a server/deamon app, a real big deal if you need to write a command line tool.

      Many java services that I've had to start, they they've started, but they haven't ACTUALLY started. It's very annoying to start tomcat, get a response back suggesting things are a go, and then visiting localhost only to find out that started meant it started the paperwork to authorise the release of the forms for a port request, to be signed in triplicate and verified by 20 notaries.

      But it hasn't actually started the service.

      --
      I'm god, but it's a bit of a drag really...
    34. Re:What? by DalDei · · Score: 1

      As another poster mentioned, its not the "main" class that takes time its all the other jar files a real world app needs. A detailed analysis of this was presented at Balisage 2009 by Norm Walsh and myself. http://www.calldei.com/pubs/Balisage2009/index.html http://www.balisage.net/Proceedings/vol4/html/Lee01/BalisageVol4-Lee01.html Includes some pretty pictures and charts running tests across multiple OS's and platforms running real world XML processing in java, both by piecemeal (starting java for each operation) vs integrated into a single app (xproc and xmlsh). Results are 50x and up performance difference between having to start java for each operation or not. And these are pretty hefty operations to begin with (not "hello world"). -David

    35. Re:What? by DuckDodgers · · Score: 1

      I disagree. Java's startup time is a minor annoyance today on any PC purchased in the last three years that's better than a netbook. In the late 1990s and early 2000s Java was dog slow on consumer grade devices. And Java Web Start, Sun's platform for delivering convenient Java applets over the web with defined security rules and digital signatures, was an incredible pain in the neck to set up. You could argue it never got widespread use because of Microsoft, but I would say all of the work involved in getting it to operate properly was enough to kill it all by itself, and Microsoft didn't need to do a thing.

      I've spent the last years being paid a pretty penny to write Java code. I'm not going to switch because I can't pay the mortgage and daycare going from "senior java developer" to "junior foo developer". But the language is choking on its own bloat and even with brilliant toolkits like Play Framework it's a headache to use.

    36. Re:What? by macson_g · · Score: 1

      To remind an old joke:

      Knock knock!
      Who's there?
      .
      .
      .
      .
      .
      .
      .
      Java!

    37. Re:What? by Anarchduke · · Score: 1

      is the slug compiled or interpreted?

      --
      who prays for Satan? Who in 18 centuries has had the humanity to pray for the 1 sinner that needed it most? ~Mark Twain
    38. Re:What? by elrous0 · · Score: 1

      Swing

      How DARE you even speak that word on a family forum, young man!

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    39. Re:What? by bill_mcgonigle · · Score: 1

      Say I wanted to write ls in Java. Startup time would be very important to me

      They'd say your entire userland should be happening inside a JVM, so you wouldn't notice the startup time.

      In some universes that may work.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    40. Re:What? by Bander · · Score: 1

      is the slug compiled or interpreted?

      In the case of Java, it's both.

      Java: All the restrictions of a compiled language, plus the inconveniences of an interpreted one!

      Oracle is welcome to contact me, my services as a slogan-writer are available and quite reasonably priced (by Oracle standards).

    41. Re:What? by sodul · · Score: 1

      I hear you I manage a medium Tomcat farm (few hundred machines) and and some of the servers can take up to 15m to load (we have GBs of caches to fill) and we actually tail the tomcat logs to look for a 'ready to serve pages' notice.

    42. Re:What? by DrXym · · Score: 1
      Swing is great. Nice layout model, cross platform user interface, skinnable. Problem is it hasn't always been so nice and visual editors like Window Builder, Netbeans are still easy to break, in no small part because Java doesn't have an XML or other declarative layout format, or partial classes. Either or both of these would make it so much easier to write GUIs in Java. It beggars belief that partial classes hasn't been done given the amount of scenarios it could simplify (basically any robo generated code which a human written code must coexist with).

      Swing is also a lot more predictable and better thought out API than SWT although the latter benefits from greater native OS integration. SWT suffers from some really ugly APIs and hacks to work around limitations in native widgets.

    43. Re:What? by sexconker · · Score: 0

      I just tried Hello World in Groovy and it took almost a whole second (measured with time: 0,7s avg, 0.952s max, 0.668s min) for it to run on my MacBookPro (latest high end 17" model, not ssd).

      I'm writing a 68K emulator. Hello World in 68K machine code running in my emulator, itself running in another instance of the same emulator, running in a 68K application on Mac OS 9 (using Apple's 68K emulator) in SheepShaver (emulating PowerPC) on a 2.8 GHz MacBook Pro -- that's four levels of emulation, two of them completely unoptimized -- takes less than half a second.

      I just don't see what the problem is.

      INCEPTION (was a pretty bad movie and is a terribly overused meme).

    44. Re:What? by Desmont · · Score: 1

      I even wrote a scripting language for said game that runs in Actionscript. "Sup dawg we heard you like scripting languages" I know I know :P

      Despite the name Actionscript is a compiled language.

    45. Re:What? by Anonymous Coward · · Score: 0

      Ever had the (dis)pleasure of using SQL Developer?

    46. Re:What? by shutdown+-p+now · · Score: 1

      Actually, .NET apps typically take less to start, but that's because .NET exposes a way to pre-JIT bytecode on a given machine and cache that - NGen - which is usually done by the installer of a managed app. In theory, JVM could do the same thing - see Excelsior JET etc - it's just that few people seem to be interested.

    47. Re:What? by MichaelSmith · · Score: 1

      Say I wanted to write ls in Java. Startup time would be very important to me

      They'd say your entire userland should be happening inside a JVM, so you wouldn't notice the startup time.

      In some universes that may work.

      And I shall call it Eclipse.

    48. Re:What? by NoSleepDemon · · Score: 1

      Secondary education is irrelevant when butting heads with anonymous coward.

    49. Re:What? by bill_mcgonigle · · Score: 1

      Touché , Mr. Smith.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  2. Girl analogy... by GerardAtJob · · Score: 0

    Many girls are worth a second look, but each time I try, they're still as ugly as they were...

    --
    I can't call that English ;-)
    1. Re:Girl analogy... by Anonymous Coward · · Score: 2, Funny

      I have a little hint for you . . .

      You're uglier than all of them.

    2. Re:Girl analogy... by c0lo · · Score: 3, Funny

      Many girls are worth a second look, but each time I try, they're still as ugly as they were...

      I can't grasp girl analogies... can you please come with a car one?

      --
      Questions raise, answers kill. Raise questions to stay alive.
    3. Re:Girl analogy... by Anonymous Coward · · Score: 0
    4. Re:Girl analogy... by nschubach · · Score: 1

      It doesn't matter what angle you look at a Pontiac Aztec, it's still as ugly as it was when they first rolled it off the line. (?)

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    5. Re:Girl analogy... by Tom · · Score: 1

      you are supposed to increase the amount of alcohol in your bloodstream inbetween looks...

      --
      Assorted stuff I do sometimes: Lemuria.org
    6. Re:Girl analogy... by roman_mir · · Score: 1

      Many girls are worth a second look, but each time I try, they're still as ugly as they were...

      - aaaa, likely you are not looking at the right parts.

    7. Re:Girl analogy... by drinkypoo · · Score: 1

      I thought the PT Cruiser was ugly, but the original Aztek looks like its bounding box was textured.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  3. can't believe they missed this one... by larry+bagina · · Score: 5, Funny
    0 == false // expected
    1 == false // wtf?

    Yeah, everything except for true evaluates to false.

    --
    Do you even lift?

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

    1. Re:can't believe they missed this one... by cheater512 · · Score: 1

      People say Javascript has some typing oddities too.
      Clearly it doesn't actually affect the quality or the usability of the language - JS seems to be used just fine.

      It does make sense in a strict typing sense.

    2. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      Actually, it makes more sens than 0 is false and the rest is true.
      Ok, to be honest, in my opinion, it should just threw a nasty error at you and tell you are an idiot, but I'm fine with that too.
      I mean, an int is an int and a boolean is a boolean. If you want to check if something is not 0, just check it's not 0 : ( i != 0).

    3. Re:can't believe they missed this one... by jrumney · · Score: 3, Insightful

      In a strict typing sense, an exception makes sense. Pretending that any integer is either true or false is not strict typing, it is a convenience feature mostly offered for backwards compatibility with C, so making it incompatible with C like this makes no sense at all.

    4. Re:can't believe they missed this one... by gutnor · · Score: 4, Interesting

      Clearly it doesn't actually affect the quality or the usability of the language - JS seems to be used just fine.

      That is a bit ironic talking about a language designed to replace JS because Google thinks JS is "unsalvageable".

    5. Re:can't believe they missed this one... by fermion · · Score: 1

      My question would be what kind of language is Dart supposed to be. Is meant for rapid development? Is it there to allow incompetent coders to write code that is not error ridden? Does it exist to protect coders from any knowledge of how a computer operates? Is it the new just-above-bare-metal language It seems that we have all these already, and they work pretty well.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    6. Re:can't believe they missed this one... by jcfandino · · Score: 1

      Agreed. I think it's a very sane design desition.
      Comparing numbers to logic values makes ugly and confusing code, following that dark path you end up with things like:
      "" == false
      "0" == false
      BUT
      "" != "0"
      Violating the transitive property of the equivalence relation. Now you see the problem?

      Try it in the address bar
      javascript:alert("\"0\" == false is " + ("0" == false) + "\n\"\" == false is " + ("" == false) + "\n\"0\" == \"\" is " + ("0" == ""))

    7. Re:can't believe they missed this one... by Ghjnut · · Score: 2
      --
      MouseClass extends ScrollClass, which extends TabClass, which extends SidebarClass, which extends PowerClass, w
    8. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      its a replacement for javascript, I haven't spent enough time looking at it to know if its any better.

    9. Re:can't believe they missed this one... by Jesus_666 · · Score: 1

      And if you don't go the C compatibility route, wouldn't it make more sense to throw an exception when trying to treat a non-boolean like a boolean instead of saying "everything but boolean true is false"?

      Anyway, I just googled it and it appears that this behavior has been accepted as a bug. Well, partially. If the bug is fixed as requested in the bug report, everything will default to true now, with only null and false being false.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    10. Re:can't believe they missed this one... by Tom · · Score: 1

      Clearly it doesn't actually affect the quality or the usability of the language - JS seems to be used just fine.

      Actually, JS sucks things I can't write without pissing off the profanity filter. Very few people use it without some library (prototype, jquery, etc.) shielding them from its worst. And it still blows. But it's there in all the browsers, so if you need web-applications with client-side functionality, that's what you use.

      If anyone were to replace JS with a real programming language, with the same amount of browser-support, you can count me in on jumping ship.

      --
      Assorted stuff I do sometimes: Lemuria.org
    11. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      In checked mode using an integer in place of a boolean throws an exception.

    12. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      Have you tried CoffeeScript? It has the nice features of JS (yes JS has nice feutures) but it solves JS problems like global scope, added some sintax sugar from Ruby and, at the end, it compiles to JS so you can use it in every brownser.

    13. Re:can't believe they missed this one... by jez9999 · · Score: 1

      And if you don't go the C compatibility route, wouldn't it make more sense to throw an exception when trying to treat a non-boolean like a boolean instead of saying "everything but boolean true is false"?

      No, it would make sense to treat nonzero integers as true, which is what C does.

    14. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      Hey, I've written my own embedable scripting languages, "It arn't that hard"(tm) -- I don't know about you, but I totally lose faith in the language and it's designers if they can't even get a BOOLEAN construct correct on the first try. ::sigh:: Yet another bullshit thrown together language... Just like JavaScript.

      At the end of the day, we use JS not because it's great, but because it's available. All we REALLY want to do is have safe client side logic execution. Lua would be preferable, if it's syntax wasn't equally as fucked.

    15. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      Libraries don't "shield them from the worst in JS", but add an abstraction over DOM's clunkiness and shield them from the worst in browser DOM incompatibilities.

      The only way new language can solve it is by having browser compatibility shims analogous to those libs built-in.

      With IE=8 still have 1/3 of browser marketshare, they'll have a fun time pushing Dart into lead with either "please, please, install our plugin" or (ironically) compiling Dart to that very JS it's meant to replace.

    16. Re:can't believe they missed this one... by nschubach · · Score: 1

      To be perfectly honest, I don't think it makes sense to confuse integers with boolean values. If you want it to be not 0, use (something != 0). Is it really that hard to say "if (myValue != 0) {...}" instead of the somewhat cryptic "if (myValue) {...}"? Is myValue a undefined? Is it 0? I find it interesting that people who use a strongly typed language accept that an int can also be a boolean.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    17. Re:can't believe they missed this one... by nschubach · · Score: 1

      It also has meaningful white space (ala. Python) That's a non-starter for me, personally. I already have fun times with people deciding if they want to use tabs or spaces in their code. To make them meaningful just adds another pain in the ass.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    18. Re:can't believe they missed this one... by Tsingi · · Score: 1

      With IE=8 still have 1/3 of browser marketshare, they'll have a fun time pushing Dart into lead with either "please, please, install our plugin"

      LOL! You can get Chrome as an IE plugin.
      I've been writing stuff that runs on anything but IE for the last 6 years, it's a pleasure. Who gives a fuck about IE?
      1/3 market share means that it's primarily being used by people that run multiple browsers. I use them all, IE only for lame company proprietary stuff. The rest are at the bottom of the food chain, they don't know how to switch and no one feels sorry for them.

    19. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      You are wrong. I just tested.

      main() {
          if (1) {
              print("1 is true, yo");
          }
          else {
              print("1 is false, yo");
          }
      }

      Which returns "1 is true, yo"

      Link: http://try.dartlang.org/

    20. Re:can't believe they missed this one... by sgt+scrub · · Score: 1

      And this:

      int a, b, c // creates interface a b and c instead defining them as type integer.

      Just looking at it makes me want to shove a stick into my eye.

      --
      Having to work for a living is the root of all evil.
    21. Re:can't believe they missed this one... by sgt+scrub · · Score: 1

      The whole, "I think I'll put a semicolon here. Meh. Why bother." thing in javascript still gets on my nerve. But. It is the only scripting language built into all browsers so wtf are you going to do? sigh.

      --
      Having to work for a living is the root of all evil.
    22. Re:can't believe they missed this one... by sgt+scrub · · Score: 1

      Check out Cling. It is a perfect example of how C/C++ could be the "scripting language" used instead of ECMA. Think CINT for the browser. IMHO all scripting languages should be usable but...

      http://root.cern.ch/drupal/content/what-cling
      #include <iostream>
              using namespace std;

      int main()
      {
              int array[8];
              for(int x=0; x<8; x++)
              {
                      cout < < "enter a digit:" << endl;
                      cin >> array[x];
              }
              for(int x=0; x<8; x++)
                      cout << array[x] << endl << flush;
              return 0;
      }

      cint array.cpp
      enter a digit:
      1
      enter a digit:
      2
      enter a digit:
      3
      enter a digit:
      4
      enter a digit:
      5
      enter a digit:
      6
      enter a digit:
      7
      enter a digit:
      8
      1
      2
      3
      4
      5
      6
      7
      8

      --
      Having to work for a living is the root of all evil.
    23. Re:can't believe they missed this one... by Jesus_666 · · Score: 1

      Well, I did start my sentence with "and if you don't go the C compatibility route", so we already were in a situation where "do like C does" is not an option.

      Just for the record, I use "if (foo)" a lot and I like the construct. I don't use it a lot for comparisons against zero (false and null being much more common) but I can see how allowing zero in is a useful bit of syntactic sugar.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    24. Re:can't believe they missed this one... by shutdown+-p+now · · Score: 1

      For many languages where all types are reference types, it's pretty common to have the null reference to evaluate to false, and everything else (including integers, and specifically including 0) be true. For another similar example, take Scheme, where everything that's not the false value (#f) is true. Granted, this makes more sense for dynamically typed languages, but then Dart is one - its static typing is opt-in.

      What's really weird is reversing this, as Dart does - not "false is false, everything else is true", but "true is true, everything else is false". To the best of my knowledge, it's a first.

    25. Re:can't believe they missed this one... by shutdown+-p+now · · Score: 1

      If the bug is fixed as requested in the bug report, everything will default to true now, with only null and false being false.

      This actually makes sense, as it would bring it in line with many other dynamically typed languages.

    26. Re:can't believe they missed this one... by shutdown+-p+now · · Score: 1

      You don't need flush after an endl - endl is literally << '\n' followed by a flush.

    27. Re:can't believe they missed this one... by Anonymous Coward · · Score: 0

      At least that's somewhat useful

    28. Re:can't believe they missed this one... by sgt+scrub · · Score: 1

      Force of habit. I've always added a forced flush to the last output on CINT scripts to ensure a hang doesn't effect output. In an actual C++ application, that I've debugged and will strip, it would get removed. Sometimes. Maybe. OK I'm lazy it wouldn't get removed. :)

      --
      Having to work for a living is the root of all evil.
    29. Re:can't believe they missed this one... by Tom · · Score: 1

      I've been writing stuff that runs on anything but IE for the last 6 years, it's a pleasure. Who gives a fuck about IE?

      Those of us who deal with corporate customers. For my private online stuff, my attitude is pretty much yours. A browser game of mine actually displays an "some features won't work, please upgrade to a real browser" notice if it detects IE.

      But IE is still the default and often only browser in many company networks. If that's where your customers are, you need to support IE. Sadly.

      --
      Assorted stuff I do sometimes: Lemuria.org
  4. The "Good" Parts by Jack9 · · Score: 0

    A lot of the "Good" is found in other, more attractive, languages.

    No concrete method injection throws it into the pile of dinosaur languages.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
    1. Re:The "Good" Parts by Anonymous Coward · · Score: 0

      If you need method injection you're writing your code wrong.

    2. Re:The "Good" Parts by SplashMyBandit · · Score: 1

      Amen. The only time I can see method injection making sense is if you are writing a small program intended only to be maintained by yourself for less than two years of operation. Anything else and *keeping it simple* (eg. Java) more than makes up for a little extra boilerplate.

    3. Re:The "Good" Parts by Anonymous Coward · · Score: 0

      If you aren't using method injection you're writing boil

  5. Second Look? by VJmes · · Score: 1

    When did we get the first look?

  6. Landed with a loud thud? by Anonymous Coward · · Score: 0

    I think the sound of crickets would be a better description.
    The world isn't waiting for yet another average programming language; Google's effort would be better spent removing the (often deliberately inserted) bugs in existing programming languages than inventing a new one (and deliberately insert bugs in it).

  7. Go or Dart? by Boawk · · Score: 1

    Go is a language out of Google. Now Dart? Is Dart supposed to replace Go, or does Dart meet a different need?

    1. Re:Go or Dart? by antifoidulus · · Score: 1

      They are totally different animals, Go is a low-level language(gets compiled into native code, though interpreters exist), Dart is intended to replace Javascript as the de facto "web language", though both seem to be trying to solve problems that don't really exist. TFA talks about Dart, Go has some interesting ideas, but ultimately the fact that they forced GC into it means that the really low-level coders won't be interested in it, and it doesn't really seem to perform that much better than a lot of other high-level languages which offer the same, if not better, features. It's basically a solution in search of a problem.

    2. Re:Go or Dart? by pescadero · · Score: 1

      They are different. Is it surprising for one company to spin out more than one language? For a company of their size and age, Google has actually not invented very many. Compare to Microsoft, Apple, Sun, and Adobe who have each created several.

    3. Re:Go or Dart? by afabbro · · Score: 3, Interesting

      They are different. Is it surprising for one company to spin out more than one language? For a company of their size and age, Google has actually not invented very many. Compare to Microsoft, Apple, Sun, and Adobe who have each created several.

      Your point is valid, but MS, Apple, and Sun were all operating system publishers and creating languages makes sense. Adobe was long a tool maker and their languages were tooly.

      Google has become an operating system publisher only relatively recently (Android) and these languages don't target that platform. You could argue ChromeOS is an operating system but really that's just a Linux distro.

      Google creating programming languages is sort of like Yahoo or Facebook creating programming languages. In Google's case, I suspect that these creations have little to do with their actual corporate mission and more to do with their wildly undisciplined engineering management.

      (That doesn't indicate they're good or bad languages, of course.)

      --
      Advice: on VPS providers
    4. Re:Go or Dart? by Tom · · Score: 3, Interesting

      Google creating programming languages is sort of like Yahoo or Facebook creating programming languages. In Google's case, I suspect that these creations have little to do with their actual corporate mission and more to do with their wildly undisciplined engineering management.

      (That doesn't indicate they're good or bad languages, of course.)

      It also doesn't indicate that "undisciplined" is bad in any way. A lot of the successful Google projects have come out of their "long leash" attitude towards their coders.

      --
      Assorted stuff I do sometimes: Lemuria.org
    5. Re:Go or Dart? by Tsingi · · Score: 1

      Dart means Dublin Area Rapid Transit.

      I lost my umbrella on it, if anyone finds it, I'd like it back.

    6. Re:Go or Dart? by oakgrove · · Score: 1

      Your point is valid, but MS, Apple, and Sun were all operating system publishers and creating languages makes sense.

      There are many successful programming languages that did not come from operating system publishers. Java is very successful but that has little to do with the fact that Sun was an OS maker. People found and continue to find Java useful. Javascript is supremely popular. It was made by Netscape. A browser maker. What about PHP? And Perl? Python? Only the .net languages are highly successful and currently developed by and intended to be used on a particular OS vendor's OS. On what do you base your opinion on?

      Google creating programming languages is sort of like Yahoo or Facebook creating programming languages.

      Google perceives a need for a better scripting language for the web, they have the resources to build one, and a delivery mechanism. Seeing as the vast majority of their services are delivered through the web browser, wouldn't they want the best experience for their users? Since interface responsiveness is very important in complex applications, it very much does make sense for them to want to work to make that happen. At any rate, if Dart and Go solve problems (and are promoted and marketed well), they will succeed. Otherwise, they won't. There is no inherent reason why it doesn't make sense for Google to create them.

      I suspect that these creations have little to do with their actual corporate mission and more to do with their wildly undisciplined engineering management.

      Pure conjecture and nothing you've said supports it in any way.

      --
      The soylentnews experiment has been a dismal failure.
  8. google pushing there own product by Cyko_01 · · Score: 1

    Maybe Dart is worth a second look?"

    nope! sorry google, we are still not interested

    1. Re:google pushing there own product by Darfeld · · Score: 1

      Well of course they'll push there own product. That's what corporations do. Doesn't mean the product isn't of some interest. And by that I mean not necesary to you personally.

      --
      (\__/) This is Lapinator
      (='.'=) copy it in your sig
      (")_(") so it can take over the world
  9. Complaints about null by Georules · · Score: 1

    Can someone more experienced on the topic explain in-depth why people are complaining about there being "null" in Dart? I think it's pretty clear what not having a null reference would solve, but what are the solutions around not having null in cases where it is often used?

    1. Re:Complaints about null by Anonymous Coward · · Score: 0

      The Null Object design pattern is an alternative to "null".

    2. Re:Complaints about null by lennier · · Score: 1

      If you need a "design pattern" to work around the fact that your language doesn't allow you to abstract away repeated boilerplate code and say what you really mean instead of what the language forces you to pretend you mean, then that's not an alternative, it's a design flaw in the language.

      --
      You are not a brain: http://books.google.com/books?id=2oV61CeDx-YC
    3. Re:Complaints about null by Anonymous Coward · · Score: 0

      In other words: You either have NULL or you have Null; That, or you have null...

    4. Re:Complaints about null by mcvos · · Score: 1

      Take a look at Scala. It very effectively does away with null.

      The major way it does this, is by introducing the Option type. An Option can be either Some(value) or None. It's typed of course, so Option could be Some("foo"), Some("bar") or None. And Option is secretly a List with either 1 or 0 elements, so you can access the value by performing an operation on every element of the list (each). Or you can use getOrElse(alternative), where the alternative is what needs to be returned if the option happens to be None.

      It takes some getting used to, but it seems to work very well as far as I can tell.

    5. Re:Complaints about null by Tsingi · · Score: 1

      In other words: You either have NULL or you have Null; That, or you have null...

      Or 0, which should evaluate to false. Unless everything that is not true or false throws an exception where a boolean is required, which would be fine.
      Then there is undefined, which I will not attempt to define. > /dev/null

    6. Re:Complaints about null by Tsingi · · Score: 1

      Take a look at Scala. It very effectively does away with null.

      The major way it does this, is by introducing the Option type. An Option can be either Some(value) or None.

      None is what Python uses for null.

    7. Re:Complaints about null by nschubach · · Score: 1

      Not that I'm disagreeing, but why would you need 'null' and 'undefined'? I think it leads to easily to trinary conditions. If your object is empty, undefine/delete it.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    8. Re:Complaints about null by Georules · · Score: 1

      I'm still slightly confused. "None" "0" "null design patterns" "undefined" "None option types" still sound like names for the same concept. Why is one solution better than another?

    9. Re:Complaints about null by Tsingi · · Score: 1

      I'm still slightly confused. "None" "0" "null design patterns" "undefined" "None option types" still sound like names for the same concept. Why is one solution better than another?

      They are different things. We were talking about booleans, I'm of the opinion that you have to decide that it matters or it doesn't.

      If want strict typing, then booleans should be 'true' 'false' or an exception should be thrown.
      If you don't want strict typing, then an empty string, NULL null, 0, None, undefined, and false or any other concept of nothing that you might have in your language should evaluate to false.

      Anything in between is a nonsensical hack.

    10. Re:Complaints about null by Anonymous Coward · · Score: 0

      It pertains to the typing system. If you do not allow a null reference and instead have a work around (e.g. instead of being able to return null, a function always returns a list of items where the list may be 0 items long), then it allows you to guarantee your typing system (I believe the term is that it makes the system sound).

      This makes it so that if something is of a particular type, then it is guaranteed to be of that type (not null etc). It makes the code much more provable, and easier to ensure for consistency.

      Saying that, I have never worked with a language that does not permit null, but it seems like it would be cumbersome and a detriment to performance in some cases (returning a new list from a function every time, if that was the mechanism, would be a lot of unnecessary object creation).

    11. Re:Complaints about null by Georules · · Score: 1

      Ah! Now I understand what the issue is. Thanks!

  10. New Programming Languages by sunderland56 · · Score: 3, Insightful

    Every few days someone comes by with a new programming language claiming to be the best thing since sliced bread. Nobody every shows a scrap of proof.

    • - Take some open source programs coded in other languages. (Not 20-line apps - things that are significant).
    • - Recode them in your new language of the day.
    • - Show how much (easier|faster|better|clearer|whatever) your new language is compared to the old ones.
    1. Re:New Programming Languages by afabbro · · Score: 3, Insightful

      Even better, do something in your new language that we couldn't do before.

      --
      Advice: on VPS providers
    2. Re:New Programming Languages by JasterBobaMereel · · Score: 1

      ..and then realise that it is unsupported on a major platform ...

      Java is used because of it's near universal support
      JavaScript is used because of it's near universal support
      C/C++ is used because of it's near universal support
      Python is used because of it's near universal support

      There are far better languages, in all categories, but using them is pointless if the platform you are targeting does not have support for it; or the library, or program you want to use cannot interact with it ...

      --
      Puteulanus fenestra mortis
    3. Re:New Programming Languages by Anonymous Coward · · Score: 0

      If you did that, you would probably win the Turing Award. Read this for why.

    4. Re:New Programming Languages by Anonymous Coward · · Score: 0

      I recommend using the Apache web server for this purpose.

    5. Re:New Programming Languages by Anonymous Coward · · Score: 0

      Sigh. It's used because of its near universal support. If you can figure out the syntax of Java, JavaScript, C/C++, and/or Python, surely this isn't so much of a stretch?

    6. Re:New Programming Languages by Anonymous Coward · · Score: 0

      Ever heard of Turing-completness? There is no such thing as "something we couldn't do before".

    7. Re:New Programming Languages by Anonymous Coward · · Score: 0

      haXe, compiles to:
      - PHP
      - JavaScript
      - C++
      - Flash
      - Neko
      (Java target is being developed now)

      haXe supports client and server platforms as well as networking, has an extensive library for all target languages.

      haXe is used because of its (near universal support)^5 ...

    8. Re:New Programming Languages by mcvos · · Score: 2

      There's nothing new to be done. There are only easier and safer ways to do it.

      I recently saw a presentation that explained how all progress in programming language came through taking stuff away. Take away GOTO, take away global variables, take away lots of other stuff. Taking options away seems to give us more maintainable, easier to read programs with less boiler plate code. Taking away null seems like a good next step that Dart apparently didn't take.

    9. Re:New Programming Languages by Anonymous Coward · · Score: 0

      "its" is used because of its near universal support.

    10. Re:New Programming Languages by JasterBobaMereel · · Score: 1

      ...haXe... is not used because no-one has every heard of it ....having good advertising also helps ...

      --
      Puteulanus fenestra mortis
    11. Re:New Programming Languages by Anonymous Coward · · Score: 0

      If that is a reason, then we would be using nothing more than perl :D. Every language starts being unsupported in every platform

    12. Re:New Programming Languages by Anonymous Coward · · Score: 0

      so glad we took away pointers

  11. Running Dart on the JVM by cowwoc2001 · · Score: 1

    http://code.google.com/p/jdart/

    Web is boring ;) Let's see Dart running on the Desktop.

  12. Java sucks by symbolset · · Score: 0

    . net sucks. Perl, Pascal, all interpreted languages are a dead end. They're ui elements that don't count. If you can't use your available source to build theOS the compiler and core apps, you lose.

    --
    Help stamp out iliturcy.
    1. Re:Java sucks by Anonymous Coward · · Score: 0

      If you can't fake your way to a half-way coherent post, you lose.

      You don't know what an interpreted language is (Pascal?) and the sentence about "ui elements" is nonsensical.

    2. Re:Java sucks by ThePhilips · · Score: 1

      . net sucks. Perl, Pascal, all interpreted languages are a dead end. They're ui elements that don't count. If you can't use your available source to build theOS the compiler and core apps, you lose.

      An example of an OS or a libc (or analogous system library) written without assembler in studio please!

      --
      All hope abandon ye who enter here.
    3. Re:Java sucks by symbolset · · Score: 1

      Yeah, assembler is great when you're coding for one machine. C subsumed assembler with _asm. That was brilliant. Maybe Dennis Ritchie was smarter than you think. Frankly reading his work his intellectual judo is amazing. You should try it. You would get religion. As I write this the K&R book is under my hand. It was writ in 1988 and since then nothing in it has come untrue. It differs little from the 1978 work.

      In 1978 all of the computers on Earth could not in their aggregate compete with a single modern server - not in processor power, not in RAM. In no way. The people who made those things could not imagine our future day. Somehow Dennis Ritchie did and so now the computer in your pocket that's also a phone runs an OS that's compiled in a language he wrote, more than 80 percent of the time running an OS created or inspired by his work on Unix. iOS is derived from the BSD branch of Unix and powers iPhones, iPads and iPods (all writ in C derivatives). Linux is an OS inspired by Unix that powers Android phones and most world-facing servers, and is also writ in C.

      libc is writ mostly in C by purpose, and includes only those few bits of assembler required to make the hardware fit. It's a strong point of C that these are the only bits that need rewritten to port Unix to a new chip. This is by purpose. Underlying hardware will differ, and this interface allows chip designers to connect with potential users through a utility called Lex. Compare and contrast Windows Mobile, which needs to be rewrit in assembler from the ground up to make it run on a new chip, with the concomitant debugging starting over from scratch. That's a non-winner. By being, C has influenced hardware designers to be compatible with it.

      Remember, the idea of porting an OS, applications and data from one hardware and software architecture to another was a new idea back then. Computers were new and there were only a few of them. Persistence of data and apps as the core utility was a new idea. Dennis Ritchie invented that, and invented a method to serve that need with C and Unix. Some of us old geezers yet live who watched that happen.

      In short, you're either confused or arguing with the wrong guy. Have you checked the bulletin board lately?

      --
      Help stamp out iliturcy.
  13. rock-stars by macshit · · Score: 1

    0 == false // expected 1 == false // wtf?

    Yeah, everything except for true evaluates to false.

    Hmm, that is a bit stupid... I think the opposite rule — everything evaluates to true except for false (used by e.g. Lua) — makes a lot more sense. It'll trip up C programmers too, but at least it naturally supports the "have some value" idiom, where you can use false as an out-of-band "not initialized" value in statements like "if (var) do-something-with-var", or "if (! var) var = init-value;".

    I get the feeling that the reason Google keeps coming up with new languages is not really that existing languages aren't good enough, but rather that they've hired so many rock-star programmers. Programmers love to make new computer languages, and it's not like you can tell a rock-star what to do...

    --
    We live, as we dream -- alone....
    1. Re:rock-stars by Darfeld · · Score: 1

      It might very well be true, but in this case, it seems javascript need a replacement. If the rockstar programmers behind dart are good enough, it will be easier to push dart into use than Google go.

      --
      (\__/) This is Lapinator
      (='.'=) copy it in your sig
      (")_(") so it can take over the world
    2. Re:rock-stars by Anonymous Coward · · Score: 0

      I think the opposite rule — everything evaluates to true except for false (used by e.g. Lua) — makes a lot more sense

      "asdf" == "123" (true)
      5 == 3 (true)

      That makes sense to you? Really?

      And who cares about the "have some value" idiom? I don't need to test if something is null every few lines. Isn't it more important to know what the value is? Pretty sure it's more important to get work done with the values.

    3. Re:rock-stars by Waffle+Iron · · Score: 1

      I think the opposite rule — everything evaluates to true except for false (used by e.g. Lua) — makes a lot more sense.

      Actually, Lua counts both 'false' and 'nil' as false. Since Lua silently returns nil for almost any reference to an undefined or missing variable, field, parameter or index, in practice the boolean checks in Lua feel rather "lax".

    4. Re:rock-stars by shutdown+-p+now · · Score: 1

      That makes sense to you? Really?

      That's not quite what he said (and not how it works in Lua). A value "evaluates to true" only in a boolean context, such as e.g. a conditional statement. However, equality operator in Lua never coerces values - if they are of different types, such as int on one side and boolean on the other, they're simply not equal, and that's that.

      The fact that Dart tries to do an automatic boolean coercion when a non-boolean is compared to a boolean is a flaw in its design, and a separate one from the fact that they treat everything as false.

      And who cares about the "have some value" idiom? I don't need to test if something is null every few lines.

      Actually, it's extremely common to do just that, especially in languages which don't have primitive value types (i.e. everything is a reference, hence everything is potentially nullable).

  14. Smalltalk-- by Anonymous Coward · · Score: 0

    Dart is yet another Smalltalk--. Maybe in 10 years we'll get somewhere.

    1. Re:Smalltalk-- by mcvos · · Score: 1

      Smalltalks seem to be doing well lately. It's not that weird for Google to jump on that bandwagon, is it? In any case, it can't be worse than Javascript.

  15. Google Go by tbird81 · · Score: 1

    Now I could just Google this, but I'm wondering what ever happened to Google Go. Anyone here using it?

    1. Re:Google Go by lloy0076 · · Score: 1

      Goggle Go[ne] is Gone.

      DSL

    2. Re:Google Go by afabbro · · Score: 2

      No, there wasn't much interest in putting lipstick on Algol-68.

      --
      Advice: on VPS providers
    3. Re:Google Go by Anonymous Coward · · Score: 0

      Yes we're using it - we wrote a telephony application in it for call centers. Goroutines are very suitable for highly concurrent problems. We also like the community, the very fast compilation, and script-like feel of the language, even though it statically typed and compiled.

    4. Re:Google Go by Cro+Magnon · · Score: 1

      I guess Google Go just stopped.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    5. Re:Google Go by Anonymous Coward · · Score: 0

      In many ways, c is just lipstick on algol too. So is java.

      Maybe lipstick on algol isn't such a bad thing?

  16. Why Flash is fast by Animats · · Score: 3, Interesting

    If Java applets started as quickly as Flash objects manage to then we would still be seeing Java implemented on major web sites.

    First, the Flash run-time is incredibly tiny. It used to be under 1MB, and it's still not all that much bigger. Compare to browsers that need 100MB to display "Hello, World".

    Second, Flash can display without loading the entire file. It's an animation format, remember. There are two streams, a timeline of events and a collection of assets (images, etc.) As soon as some timeline data and the assets called out in it have been loaded, play can start. Files are explicitly laid out in time order of use. That was a really good design decision.

    Java is just loading and running programs. There's nothing special about the way it starts. First the VM has to load, then the JIT compiler has to do its thing, and then you get to execute something. There's no explicit concept of time, as their is with Flash files.

  17. Where to stick the semicolons... by jlar · · Score: 1

    "Google's new language landed with a loud thud, causing lots of interesting debates about the best place to stick semicolons..." I did not RTFA but a search on the page for "semi" did not show any hits on semicolons. But then again. I know where they can stick their semicolons. But if I write it my post will be caught by the profanity filter.

    1. Re:Where to stick the semicolons... by jez9999 · · Score: 1

      Shit, you think Slashdot has a fucking profanity filter??

    2. Re:Where to stick the semicolons... by Tsingi · · Score: 1

      Shit, you think Slashdot has a fucking profanity filter??

      People keep saying that, I think what it means is that they either can't be bothered to, or just can't, write what they actually think in English.

      If there was a profanity filter this place would be much less interesting.

    3. Re:Where to stick the semicolons... by Anarchduke · · Score: 1

      Well it wouldn't block fucking shit, but the stuff he was going to write? Well, let's just say his words weren't as tame.

      --
      who prays for Satan? Who in 18 centuries has had the humanity to pray for the 1 sinner that needed it most? ~Mark Twain
    4. Re:Where to stick the semicolons... by Wulfson · · Score: 1

      I wondered the same...I read the article and skimmed through a lot of the comments, but saw no particular mention of semicolons anywhere. Does anyone know what was being referred to?

    5. Re:Where to stick the semicolons... by Wulfson · · Score: 1

      (just to note, I did look at the spec and saw the oddity of placing the semicolon off on its own line...just wondering where the interesting debates are)

  18. problems and solutions by Tom · · Score: 2

    Like any other new programming language of the past decade, Dart sounds like a solution to problems I don't have.

    Show me something that I can't do in existing, established languages. Or show me something that works considerably easier, faster or better - with the stress on considerably.

    Otherwise, no matter what your pitch is, I simply don't need it.

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:problems and solutions by Required+Snark · · Score: 0

      Haskell

      --
      Why is Snark Required?
    2. Re:problems and solutions by mcvos · · Score: 1

      Being considerably easier, faster or better to program in than javascript shouldn't be too hard. I've been wondering for years why nobody has proposed a superior replacement for javascript yet.

    3. Re:problems and solutions by Rich0 · · Score: 1

      What I'd like to see is a way to write the client and the server components of a typical AJAXy application as a single work. When I look at the Dart tutorials/etc I see lots of examples of how the language can handle either side of the link, but nothing really that unifies the application.

      If you could just describe what the application needs to do then the compiler would put all the logic possible on the back end, and then only relegate to the front-end presentation, validation, and maybe logic that is more latency-critical. Perhaps there would be ways to tag the code to indicate parts that should be considered more latency-critical, or to indicate that some code is proprietary and shouldn't go out over the web no matter how bad it hurts performance. Beyond that the compiler would make reasonable choices.

    4. Re:problems and solutions by Tsingi · · Score: 1

      Otherwise, no matter what your pitch is, I simply don't need it.

      OK.

    5. Re:problems and solutions by ThePhilips · · Score: 1

      Built-in message passing? Multi-threading without shared resources? Weak typing?

      I know no other imperative language that offer that combination. Optional libraries - yes. But not at the core of the language. And optional libraries are pain to handle in the long term.

      In the end, it boils down mostly to the simple fact: Dart is supported by Google AND Google has sufficient resources to kick start widespread adoption of the new language.

      --
      All hope abandon ye who enter here.
    6. Re:problems and solutions by Anonymous Coward · · Score: 0

      I've been wondering for years why nobody has proposed a superior replacement for javascript yet.

      Because they already have. It's called jQuery. ;)

    7. Re:problems and solutions by mcvos · · Score: 1

      That's a library, not a language. It does fix one really big problem with Javascript, but in the end, you're still programming in the same confused hybrid language.

    8. Re:problems and solutions by gauauu · · Score: 1

      What I'd like to see is a way to write the client and the server components of a typical AJAXy application as a single work.

      I agree. The closest thing I've found so far is the Vaadin Framework for Java. Yes, it's another Java framework. No, it's not quite there in terms of being the best imaginable solution for what you're proposing. But practically, it's the best that I've found. It has some rough edges, but overall, I've been impressed at how well they let you write the logic once, and their framework takes care of separating the front and back ends.

    9. Re:problems and solutions by elrous0 · · Score: 1

      Dart sounds like a solution to problems I don't have.

      Well, if it isn't little Lisa Simpson--Springfield's answer to a question NO ONE ASKED!

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    10. Re:problems and solutions by Tom · · Score: 1

      What I'd like to see is a way to write the client and the server components of a typical AJAXy application as a single work

      This.

      There are some frameworks that go a good bit of the way towards something like this, but it would be extremely cool to have this really integrated.

      --
      Assorted stuff I do sometimes: Lemuria.org
  19. Hello Dart! by Anonymous Coward · · Score: 0

    I don't always write Hello World in Dart, but when I do, it takes 17259 lines. https://gist.github.com/1277224

  20. Slashdot you make me sick. by Anonymous Coward · · Score: 0

    Is there any semicolon-related discussion in that LtU thread? Then why make fun of it by pretending there is?

    1. Re:Slashdot you make me sick. by elrous0 · · Score: 1

      Humor. It is a difficult concept. It is not logical.

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
  21. Loud thud? by Anonymous Coward · · Score: 0

    "[Dart] landed with a loud thud"

    No, it didn't.
    It was completly ignored by professional developers around the world.

    Just like Go, F# and Brainfuck.

    Well, Brainfuck wasn't, but I didn't find another ignored language in my memory that got the "we don't give a ...." point across that good.

  22. Integrate into Browser Already by Anonymous Coward · · Score: 0

    I was SO looking forward to DART and then I tried to build it...

    Apparently they have no plans to integrate it into the browser either. I can't commit if they aren't and I'm not going to throw resources and time behind something that isn't in the browser. They need to integrate it in and then I'll be looking at rebuilding and integrating my projects but until then it is HIGHLY experimental... but still really neat.