More Info On Google's Alternative To JavaScript
I'm Not There (1956) writes "Last week the news came in that Google is supposed to unveil 'Dart,' a new programming language for browser-based apps. Now an internal email from late last year describes this project as the 'high risk/high reward' path [of Google's browser development strategy]. Apps in this new language will run in a VM on browsers that support it, and can be translated to JS for other browsers. 'Performance, developer usability, and ability to be tooled' are the main characteristics of the language."
The email notes that Google will be working on ECMAScript Harmony in the near term, but they describe the project as ultimately doomed by "fundamental problems" with ECMAScript. It's interesting that Google took part in abandoning ECMAScript 4, which would have been almost fully backward compatible with current implementations while solving most of the "fundamental problems" Google claims require a brand new language to fix.
Yes, it is interesting to hear some random person say that Google doesn't know what they are doing. Wait a minute, it isn't interesting at all.
and make you code anything for their services in GLang so that they will be their own part of the internet separate from the open one
Hopefully it will be less horrible syntaxwise than Go.
Until I actually get my hands on the language, no amount of hype is going to do anything for me.
Besides which, CoffeeScript has got to be stealing their thunder. I have to wonder if they aren't regretting developing Dart yet.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
Until I see some sample code, that's the name I'll give it.
that Google is taking part in this abandonment. ECMAScript 4 will never be passed. The effort has long since been abandoned because the proposed changes were thought to be too complex, according to Doug Crockford.
The changes proposed in ES4 were ultimately abandoned as a group. Even if they're reintegrated over time it'll probably take far too long for Google to be happy with the adjustments to the "fundamental problems" they cited.
It's interesting that Google took part in abandoning ECMAScript 4, which would have been almost fully backward compatible with current implementations while solving most of the "fundamental problems" Google claims require a brand new language to fix.
Yeah? How many free license programming languages have you released and continued to support?
As a developer, I love to learn a new language. I write a few simple programs in the new language. I explore what advantages and disadvantages that language has and then I put it in my toolbox. If a problem comes along that I must fix, I select the best tool for the job from said toolbox. I don't know how any sane developer could get by any other way -- there is no silver bullet programming language.
The more tools I have at my disposal, the more effective I am. So shut your hole. I don't want people to stop exploring new languages just because it hurts your feelings that the market might fracture and you might have to -- *gasp* -- learn something new!
My work here is dung.
Lua is very Javascript-like already except it's very small, simple, clean, and fast. Much faster; LuaJIT is incredible.
It's interesting that this should come about when Javascript seems (to me) to be undergoing quite a surge.
The community has carved out a set of practices that makes Javascript pretty satisfying to work in -- Crockford's efforts, the require/export conventions etc.
Callback oriented programming habits learned in the browser with jQuery (etc.) have shown that Javascript lends itself quite well to that style of programming. Underscore has promoted a functional style.
Node.js seems to be more popular than forebears such as Twisted, presumably because of all those JS-in-the-browser programmers who can apply their callback habits to Node.
CoffeeScript is there for people who want a more expressive syntax. ... and just as people are coming around to the idea that JS isn't that bad after all, Google says "nah, it's irredeemable"
So what is it going to be called? Dart or Dash? The email refers to it as Dash while the older articles refer to it as Dart. It's going to be Dash then, I assume, if Google internally refers to it as Dash?
How does this affect our cloud IDE (Brightly)?
Brightly will enable building any web application in V1 using today’s Javascript plus the additions in Harmony. As soon as it is ready, Brightly will support Dash as well. We expect that the more prescriptive development aspects of Brightly that will come on line in the future will be more Dash focused.
We expect Brightly itself to be the first application written in Dash.
"If fifty million people say a foolish thing, it's still a foolish thing."
The whole point of the "type" attribute in the script tag is that a browser can support multiple scripting languages. The introduction of Dart wouldn't necessitate dropping JS for the browser, but if other browsers implemented it (or Google created extensions for other browsers), it would provide an alternative.
Javascript is something of an accidental success. As with many languages before it, its users valiantly cope with its flaws and do their best to dress up the squalor they live in, but it's not funny for Google anymore. They have to develop, maintain, and test one of the largest JavaScript codebases in the world, and the it's-the-90's-and-I'm-high-on-cocaine-at-4am-and-it's-due-tomorrow scripting language design philosophy is not helping them. In fact the story of the last few years has been the quiet proving out of the "extra keystrokes for correctness" paradigm, from simple assertions (including "type assertions" aka good old fashioned strong typing) to unit tests to highly complex integration tests of harrowing complexity.
If I understand correctly, Google already writes much of their JavaScript in an intermediate language that adds certain features. They have long needed a compile step anyway for compression/"obfuscation" and I suspect it was a natural outgrowth of that. This appears to be another step in the evolution of that development pipeline.
There are many interesting developments brewing in the browser these days. I wish the browser guys luck, because I think have just a little longer to get their act together before the world gradually changes out from under them, and a purpose-designed, clever, far more powerful platform, such as Android or iOS, might actually start to change the web browser's position in the computing ecosystem. A modern scripting language is only part of the price of admission to staying relevant as a platform.
Tired of Political Trolls? Opt Out!
It seems to be taken as a given in this document that Javascript is unusable.... But there is no explanation of why this is the case (except perhaps for google's business needs) - what exactly is the problem with it? Performance is quite good these days thanks in large part to google's chrome folks. Few languages are easier to use, but it is still quite powerful.
The language can be as great as you want. It doesn't matter if it is not supported by _all_ major browsers out there. Javascript support is probably less broken than CSS support, and you can do something and expect it to work in most browsers, most of the time. It took a long time to get there. The community is starting to build up, even using the language for server-side stuff (node.js).
When introducing a new language, don't just tell me how awesome it is, tell me your long-term plan on how and why most people should be willing to support it, why they should transition to a new language and support two languages at the same time, what is going to happen to the .js web, and why devs should port existing and working stuff to a new language. Sometimes its difficult to "evolve" a single component of a huge system, which will kinda break it, instead of just replacing the whole system, which is by itself quite scary.
Of course, maybe they could use some trickery and have the language compiled to .js (in addition to having its own VM) just so legacy browsers can still load a dart app and run it as js.
But this sounds to me like saying people should switch to IPv6 because its much better than IPv4, only IPv4 addresses aren't running out in this case.
And why should I put in any effort learning about this when they'll probably cancel it?
So Google will "extend" javascript with more capabilities for the supported browsers while other browsers would get a less than optimum solution. Because of the increasing market share of Chrome, all others would be forced to start supporting Dash and perpetually play catch up. If Microsoft did this, (and it has), we all would be shouting E, E & E, (and we have).
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Google has a history of homegrown languages. If few elsewhere in the world dont adopt it, then its not going to prosper.
Something should be done like .NET CLI. There should be a common language interface for web client scripting languages, and Microsoft, Google etc could each make their own languages so long as they have compatible type systems and compile in to the same byte code. To my mind this would be a huge win for everyone. Why does the web have to be stuck with one crappy scripting language?
Also, its sad that Microsoft seems to have abandoned any desire to be a leader. Are they just going to let Google dictate the future of the web?
Besides, Microsoft will fight this all the way.
I can't wait to see this in action., but they should stop teasing us and at least release an example of what kind of coding scheme to expect.
Rubbish attitude - this is why software is regarded as a 'hobby' for inexperienced and generally poor developers - you're too busy 'learning something new' all the time and not focussing on getting things done.
I don't know what to say other than I feel really sorry for you if you're a developer. I grew up coding C/C++ and had I only had your attitude, I never would have used LISP, PROLOG, Java, Ruby, etc. Could I be some badass C/C++ developer if I had never been "sidetracked" and "not getting things done"? Maybe.
But -- at the risk of being modded down as a shill -- I submit to you a recently launched site I coded with a friend. He did the canvas stuff, I did the backend. I could have picked any solution out there but I ended up going with Ruby on Rails. Is it slow? Yes, compared to C/C++. Is this a super complex site with massive usage? Well, not really. That's what made Rails a great choice. I haven't earned a dime on this project (we decided against ads). But guess how much time I put into making that backend? About 15 hours. I think I spent more time trying to figure out how the host allows me to manage my gems in Rails 3 than I did actual coding. I didn't even reuse a login module from my other sites. Hell, that was all pretty much from scratch aside from Rails 3 and jQuery.
Now, I know how to do this in Java, PHP, C++ and even Clojure. It's essentially a RESTful interface for particular CRUD operations. But could I have done all that in 15 hours if I had selected another technology and framework? I don't think so.
"change for change's sake"
I don't understand where you thought I said I now do all my development in $LANGUAGE_OF_THE_WEEK. There are now more tools in my toolbox. If I pick a different tool next time, I'm going to have a reason for doing it. In the above case, the prototyping time was far less in Rails.
If you really need something new, go for Google's native client and get that better supported across browsers and platforms.
Forgive me if I see this as directly opposed to your opening sentence. Tell me, what makes a new technology "noble" enough for your attention? How do you know NaCl won't flop?
...
Regardless of how you see it, I with my "rubbish attitude" and "inexperience" and "poor development" and inability to get things done am doing quite well in the job market
My work here is dung.
All languages are syntactic sugar for the IR code that gets generated. Fundamentally, all compilers translate from a Source language to a Target language (machine language in a lot of cases).
Whether the compiler checks that the types match, that there will be overflow, that you're doing signed vs unsigned comparison - it's up to the compiler and its developers. Clearly, one compiler can have more features than the other one. To access those new features, the compiler needs to see syntactic constructs in the source code. If you can't extend Javascript (or it's not feasible, or you just don't want) to incorporate those syntax changes, you can always develop a new language, such as Dash (or Dart?), with the risk that it will fail, but with the opportunity of fixing the bad things in Javascript and add the features that you want.
This is just a natural way of language evolution (in the broad scope of translating source code to machine code). You can't anticipate all the requirements of the future, so you design a language that solves all previous problems (or a relevant subset) and the current ones. In time, it will become obsolete, as people will build on top of your language to solve the problems they'll face at that point in time.
Obviously, everyone hates change. I say: Give it a shot! At least don't dismiss it till you've looked at it and figured out how it may or may not help you. If it doesn't, stick with what works for you. If it does, hey, you're now better off. Chances are, people aren't wasting their time to develop a new language, unless it solves someone's problem (their problem, your problem, everyone's problem - depends on the goals of that language).
I, for one, always welcome a new programming language, just to see what it brings to the table.
for obvious reasons:
- it doesn't have an elegant syntax
- it has a poor standard library
- it is not cross platform
- it is not open source
- it cannot be used on both sides of the app (client+server)
- it is not a functional language
- and neither an OO language
Maybe it's not so bad after all. [X]HTML/CSS is so crappy that I'm not sure any Python code would accept to run inside a browser.
Google is not evil points:
* Google massively supports open-source software
* Google pushes for open standards rather than lock-in
* Google has fought for the defense of fair use
* Google has fought for net-neutrality
* Google provides free services
* Google is wiling to take a loss on products to provide these free services
* Google allows you to easily export your data from their services, and even fully delete your online data/profiles
* Google is the cloud services provider that doesn't claim to own your data
* Google is running a test in Kansas of gigabit internet for the whole town and another test of free city-wide wifi.
* Google is the only search company to fight censorship in China
* Google is the only search company that refused to hand over user data to the Bush Administration
* Google fought Brazil as well to protect user data
* Google developed an open-source phone platform and has been encouraging handset manufacturers to open up and let consumers flash custom roms
Google is evil points:
* The Google Map street view team recorded data on open wifi networks. If people didn't want anyone to know you have a wireless network, you can turn off broadcasting the SSID.
* Google eventually caved/compromised on one portion of net-neutrality. They have a joint proposal with Verizon that would ensure the internet itself is protected by net neutrality, but wireless phone providers would be allowed to provide unique content and services. Is this really all that evil of a compromise?
* Google hasn't released the source code of Honeycomb because they don't want the market diluted with phones with a bad phone stack, but has promised to release the source code of Ice Cream Sandwich when it comes out in October/November. Man, that really is evil!
Seriously, the assumption that Google must be evil just because they are a big corporation is a flawed, simplistic view. I'd rather judge them on their actions. And according to their actions, they are the only major IT company out there I would trust given that my alternatives are Microsoft, Amazon, Facebook, Apple, AOL, Yahoo, etc.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
projects when they get bored, tell me again why I would invest > zero seconds of my precious time on this?
Please do not read this sig. Thank you.
and we are.. "The knights who say NIH!!!"
(Not Invented Here)
as far as rejecting ECMAscript 4
When ooxml came out, M$ was wanting to come out with their own version, could this be the same thing here, where they want to have more control and be the more prominent company out there to follow for these new standards
It will kill JDI.
How long until holes are found in the VM that let these apps break out of the VM sandbox?
This is about one thing and one thing only, compiled/encrypted scripts so that users don't know what Google is downloading on their behalf and can't control their web experience.