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."
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.
.... 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?
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?
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.
I would describe it more as "a funny feeling".
Having to work for a living is the root of all evil.
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.
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..
Its java.
Read radical news here
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.
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...
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?
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?
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
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.
Screw it... just use perl.
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.
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.
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.
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.
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?
no, seriously, didn't Google just abandon the Go language?
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.
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
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.
Still no confirmation whether the object declaration will go something like:
objet d'art(foobar) { }
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.
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.
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!
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!
I was really hoping that they included something like Ruby's mixins. I'm sorry, Google, but I'm not interested.
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.
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.
Yes. It is.
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.
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.
... Oracle sues Google for leaving abusive relationship. More at 11.
Anons need not reply. Questions end with a question mark.
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.
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."
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.
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!
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?
Democracy Now! - your daily, uncensored, corporate-free
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.
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
because of all the shitty languages used to develop it.
it's going the way of Sun . . . just losing tons of users every day.
it doesn't matter what language you write it in.
Oracle should have just been happy someone was using Java.
Oh wait, this is slashdot ... nevermind
Free Dart Language ebook;
http://www.heronote.com/files/Dart.htm
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