22 ms·
More information on Google's new web language, Dash
- LiteOn 15y agoI thought it was dart?
- CurtHagenlocher 15y agoThere seem to be quite a few ex-Microsoft people involved.
- peterbraden 15y agoInteresting that they blame the rise of apps on easier to use platforms like iOs rather than the bigger issue of closed ecosystems with better hooks to devices and vendors crippling browsers.
- jameskilton 15y agoThis is from a year ago, but this is also the first time I've heard of it. Do we know the progress of this movement today? Googling for "Dash Language" and variants doesn't give me anything of note.
- arctangent 15y agoGoogle is unveiling this new language at the Goto conference next month: http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming http://gotocon.com/aarhus-2011/presentation/Opening%20Keynot...
- patrickaljord 15y agoThere you go https://plus.google.com/112643613234453381402/posts/XTDu92t9N1c https://plus.google.com/112643613234453381402/posts/XTDu92t9... Edit: this one says Dart, not Dash
- goodside 15y agoCalling it 'Dart' is rather confusing, given that there's already an existing Google product called DART: http://www.google.com/doubleclick/publishers/dart.html http://www.google.com/doubleclick/publishers/dart.html
- Dobbs 15y agoAnd Dash is confusing because there is already a shell/language called dash: https://secure.wikimedia.org/wikipedia/en/wiki/Debian_Almquist_shell https://secure.wikimedia.org/wikipedia/en/wiki/Debian_Almqui...
- malbs 15y agoSo is it Dash or Dart? It was referred to as Dart earlier in the week when someon linked the conf that Lars Bak / Gilad Bracha (spelling) would be revealing all at. I'm confused now.
- tonfa 15y agoIt is Dart.
- drgath 15y agoBut considering Google already stole the name "Go" from another language, it's likely that they just don't care.
- deleted 15y ago[deleted]
- swah 15y agoSince they are the ones (IIRC) that started writing Java and converting it to Javascript (GWT), they wouldn't be pushing for a language without some static typing, right?
- wahnfrieden 15y agoGoogle's Closure compiler also has some kind of ability to add stati typing annotations to JavaScript.
- sriramk 15y agoAs an ex-MSFT person, this doc sounds like a Microsoft doc more than something you would see from Google. And I'm amazed at sentences like these - can you imagine MSFT saying this and getting away with it? "The goal of the Dash effort is ultimately to replace JavaScript as the lingua franca of web development" and "What will Google developers be using? We will strongly encourage Google developers start off targeting Chrome-only whenever possible as this gives us the best end user experience."
- true_religion 15y agoYou can say whatever you want until you've squandered the public good will, and then the public will skeptically peruse even the most innocuous of words coming from your mouth. People's skepticism of Microsoft is based on what they (MS) have done in the past.
- deno 15y agoAnd also: ”Developers using Dash tooling will be able to use a cross-compiler to target Javascript for browsers that do not support Dash natively.” Not very different to having native support for e.g. CoffeScript in browser X and supporting other browsers via JS. Of course the main issue is that this is yet another language. Since all browsers are essentially becoming poor man’s virtual machines, why not drop the pretense and adapt some kind of bytecode instead. There’s JVM/CLR/LLVM/NaCL — just pick one already! Alas, politics (Oracle/Microsoft/Apple/Google). Well anyway, Dash is a very positive news nevertheless. The biggest issue with current cross-compilers (GWT, Pyjamas, Haxe etc.) is that they lack good tools to develop and debug. Having support for those natively, there’s hardly any reason to target JS directly anymore. And once Chromium has the infrastructure to support more than one language, it’s possible that the abstractions will be general enough to add support for other languages as well. “Our approach is to make an absolutely fantastic VM/Language and development environment and build great apps that fully leverage it in order to help other browsers see the wisdom in following. Once Dash has had a chance to prove its stability and feasibility, we are committed to making Dash an open standard with involvement from the broader web community.”
- wahnfrieden 15y ago
- peterhunt 15y agoI really wish that we would see a concerted effort to get Python in the browser (or anything reasonable, really) rather than creating yet another new dynamic language that needs half a decade to grow a decent ecosystem. JavaScript has been around for years and only in the past few years have we seen a legitimate developer ecosystem emerge around it.
- fuzzythinker 15y agocoffeescript is probably the next closest thing. I think I remember firefox and/or chrome will enable it soon.
- ma2rten 15y agoThat's because heavyweight clientside applications are only a more recent thing and JavaScript engines have improved alot. JavaScript is great for event based programmming because of it's scoping rules. Python can't offer that. That's why a few langang
- riffraff 15y agowhat scoping rules make javascript better than python for evented programming? I am not a big JS writer, but I can't seem to see anything important (nested functions, globals). Maybe you are referring to the fact that JS has an arguably better syntax for anonymous functions?
- crizCraig 15y agoIn python nested functions must be declared before calling them. Also stuff like this seems to crop up on me when I ry using closures: http://stackoverflow.com/questions/2516652/scoping-problem-in-recursive-closure http://stackoverflow.com/questions/2516652/scoping-problem-i...
- riffraff 15y agothat is what I meant as having a better syntax for anonymous functions. I agree it's bad (even with nonlocal in python 3) but that is not a matter of different scoping rules, it's only syntax.
- fuzzythinker 15y agoIn Chrome by mid 2011, I guess it's a bit behind schedule..
- richdougherty 15y agoIt might be written already, but waiting for a certain keynote before being released... http://gotocon.com/aarhus-2011/presentation/Opening%20Keynote:%20Dart,%20a%20new%20programming%20language%20for%20structured%20web%20programming http://gotocon.com/aarhus-2011/presentation/Opening%20Keynot... (Assuming Dart is just Dash renamed.)
- mumrah 15y agoMaybe rather than a new language, we should work towards browser "assembly" code. Lots of modern JavaScript development is in the direction of: write in language X, compile to JS. Would be nice if there was a lower-level target than JS
- jules 15y agoThey are doing that with NativeClient. It runs x86 assembly and LLVM IL in the browser. Supposedly they'll even make it work in other browsers than Chrome.
- stephenhalter 15y agoNaCl does not allow direct manipulation of the DOM or provide other JavaScript APIs like canvas. NaCl provides alternative ways of getting things done like pp::Graphics2D, but it is not meant for DHTML. Dash, on the other hand, provides access to JavaScript APIs. I think that browser "assembly" code, like Dash, would have to support this, particularly if it is meant to be an alternative to compiling to JavaScript.
- Detrus 15y agoPepper is the link between NaCl and browser APIs.
- nxn 15y agoPNaCl seems like a separate project from NaCl to me, and NaCl itself can't run LLVM IL. Also, there's really opposition of having it implemented in other browsers, at least Mozilla vocally opposed it. I think that if they managed to do it via a plugin though, that could work.
- compay 15y agoAgree 100%. The fact that Javascript is the only language you can realistically use to script the browser is a terrible limitation and legacy of bad technical decisions at Netscape more than a decade ago. I'm always surprised at the lack of concern about this. While I do actually like Javascript a lot, I think we need to have more choices. When people point out Node as a benefit because "you can use the same language on the client and the server" I agree - but it misses the bigger problem in that, if you want to use the same language on the client and the server, you only have one real choice.
- cousin_it 15y agoWhenever I look at all these old and new curly-brace languages, I imagine a world where they are different runtime libraries for the same language instead, and no one has to learn the subtle syntactic differences introduced by the latest group of well-meaning overlords. I mean, there's only one widely accepted way to write a "for" loop in a curly-brace language, right? Only one possible syntax for the ternary operator. One obviously right way to organize classes and imports. A couple competing ways to declare types (Foo foo or foo:Foo), but perhaps we as a community could make a bold choice just this once? One obvious syntax for generics, and so on. The lowest common denominator I have in mind looks almost exactly like early versions of Java, except with optional typing ("var"), some rudimentary generics and without checked exceptions. There seems to be no good reason for new languages like Dash to embrace a different style. And there's one big reason why you'd want source-level compatibility: polyglot libraries! For example, there's a rather huge open source library for dealing with geographical coordinate systems, basically a huge bunch of complicated math with almost no platform dependencies. How awesome would it be to have it compilable for the JVM, the CLR and the Flash player from the same source code? I'd imagine many shops would jump at the chance to future-proof big parts of their code in this way. And the syntaxes are already so tantalizingly close to each other! Juuuust different enough to enable platform lock-in...
- ricardobeat 15y ago... Flash player?
- josephg 15y agoIt sounds like you're not looking for a bold choice; you're looking for language innovation to stop. The only widely accepted for loop syntax is the C-style for loop, which was invented 40 years ago and is vastly inferior to for..in loops, ruby's .each / .each_index and python's list comprehensions. That says nothing of generics[1]. The reality is, we can make much better languages today than Java or C#. [1] http://weblogs.java.net/blog/arnold/archive/2005/06/generics_consid.html http://weblogs.java.net/blog/arnold/archive/2005/06/generics...
- cousin_it 15y ago
- Groxx 15y ago>Developers using Dash tooling will be able to use a cross-compiler to target Javascript for browsers that do not support Dash natively. So it'll have all the inherent downsides of Javascript, because you can't cross-compile without restricting the abilities. I wonder how they feel about CoffeeScript? At least Mozilla is trying something completely different with Rust. Maybe they could support that effort instead?
- pcwalton 15y agoRust isn't intended to be run by Web content. It's designed to be a systems language. In that regard it's more comparable to Go.
- antimatter15 15y agoLater in the document they say that only a subset of Dash code can be cross-compiled into ordinary JS.
- Groxx 15y agoAh, thanks :) I didn't wade through the whole thing. There didn't seem to be a whole lot about the language itself.
- deleted 15y ago[deleted]
- wavephorm 15y agoThis sounds like a pretty good strategy to me. I'd like to see some syntax examples. And I hope they have a JavaScript-to-Dash converter so I can move over as much as my existing codebase as possible.
- arctangent 15y agoThe article says: "The Dash Cross Compiler should be capable of taking typed Closure code (with some restrictions) and converting to Dash. Although the migration process won’t be fully automatic, it should make moving over to a Dash codebase somewhat easier." I agree that a JS->Dash/Dart compiler is necessary to improve take-up of the new language.
- antimatter15 15y agoIn the FAQ section, they mention a "Cloud IDE" named Brightly, which frankly seems more interesting than the language itself: "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."
- deleted 15y ago[deleted]
- feronull 15y agoGoogle is working on a web-based IDE named Brightly for building JavaScript and Dart apps. source: http://geddesign.com/post/10097230191/google-dart http://geddesign.com/post/10097230191/google-dart
- tree_of_item 15y agoBrightly sounds almost as interesting as Dash. A web based IDE from Google!
- mythz 15y agoI Like the ethos behind Dash but language design is also an art, and judging by Go - Google is not very good at it.
- equark 15y agoYour best bet is to check out Strongtalk to see if the main designers have a good artistic sense. It actually has a number of similarities to how Dart/Dash is described. http://www.strongtalk.org/index.html http://www.strongtalk.org/index.html Although perhaps because it's Smalltalk you can't learn much from this example.
- enneff 15y agoWow, way harsh. Those of us that actually use Go are pretty enamored with it.
- mythz 15y agoLet me explain, Rather than trying to make a language as aesthetically pleasing to the programmer as possible, the Go team tried to get by its limitations with design kludges and workarounds that are visually less appealing and intuitive then the many well-designed solutions that preceded it, e.g: - Error codes are a poor substitutions for Exceptions - Have to code around lack of generics, e.g. by abusing their typed map if possible - Defer less desirable and intuitive than C# using - array bracket notation prefixing the variable - No proper classes? I mean, take their example on a File type (http://golang.org/doc/go_tutorial.html http://golang.org/doc/go_tutorial.html): type File struct { fd int name string } func (file File) Read(b []byte) (ret int, err os.Error) {} func (file File) Write(b []byte) (ret int, err os.Error) {} file := &File{fd, "file.txt"} The same signatures in CoffeeScript can be achieved by: class File constructor: (@name) -> read: (cb) -> write: (contents) -> file = new File "file.txt" Which I'm sure a majority of people would find a lot more readable. Just for kicks I decided to rewrite Go's Cat example to StdOut in CoffeeScript for a side-by-side comparison. The examples are fairly close but not exact, i.e. cat.Go implements via streaming while CoffeeScript's is non-blocking. https://gist.github.com/1207994 https://gist.github.com/1207994 The CoffeeScript version ways in at 12 LOC, while Go's example is over 110 LOC and a lot more unfriendlier on the eye.
- chc 15y agoWhat they're talking about here seems a bit vague, but with all the talk of somehow being related to Harmony, this sounds more like Traceur (get a jump on that slow-moving JavaScript) than whatever Dart is going to be. But I could be totally off and maybe Dash is Dart.
- craigmccaskill 15y agoThis looks like (from my admittedly limited perspective) an attempt by Google to build their own language ecosystem to reduce the reliance on Java and limit any potential future liability from patents held by sun/oracle.
- pjriot 15y agoI'd agree w.r.t. Go in a sense, but Java doesn't have much of a stake in front end web development.
- voyou 15y agoWhy do you say that? The post doesn't mention Java, and is talking about an area (in-browser scripting) in which Java is largely irrelevant.
- Udo 15y agoFrom the post: Does Dash replace Java? For many projects that will be a viable option but it requires significant engineering effort on Dash tooling and an extensive set of libraries.
- zmmmmm 15y agoI think Java prominent by its omission. So much so that it underlines the GP's point exactly. When you read all the stated goals of the project you can basically put a tick next to Java on every one: - runs in all browsers - works client side and server side - scales from large projects to small projects - contrary to your point, supports in browser scripting (admittedly, crudely). - highly performant (with some specific issues) They could easily inherit nearly all of these qualities by starting with the Java VM and going from there. The reasons not to basically boil down to NIH, politics and the encumbrances (not sure if there is a way to tightly embed a GPL engine inside a non-GPL product, but at this point it would rightly scare the hell out of anyone making a browser to even attempt it). I see this as very much Google saying "We need a new Java, one that we control this time".
- moonboots 15y agoFirst Go now Dash, Google should really google for these names before choosing them
- woadwarrior01 15y agoThat's probably the least of your concerns, especially when you have a near monopoly in the search business. I think by choosing a not so unique name, they're ensuring that people remember to prefix these names with Google (Google Go, Google Dash etc). This should has a significant effect on Google's branding.
- redthrowaway 15y agoHow is "Dash" any less unique than "Python", "Ruby", "Lisp", "Java", "Basic", etc? We only associate those names with languages because those languages are established; I doubt googling "Ruby" in 2000 would have resulted in anything but minerals on the front page.
- Corrado 15y agoDash[1] (Debian Almquist SHell) has been around since the early 2000's and is the first thing that I thought about when reading the title of this post. 1 - http://en.wikipedia.org/wiki/Debian_Almquist_shell http://en.wikipedia.org/wiki/Debian_Almquist_shell
- Detrus 15y agoFor a while it seemed like Google had a strategy with Go, NaCl and Pepper. But they have other "evolutionary vectors" and the reasoning is not obvious. Is it technical or political?
- allertonm 15y agoHidden away in there is the news that Google plans to obsolete GWT. Sorry, I mean "support teams for a long time on the current generation".
- equark 15y agoI have a feeling that Dart may be some version of Bracha's Newspeak. If you read his blog post on Javascript's failings, you'll see him talk about how they are already trying hard to have Newspeak fill the gap: http://gbracha.blogspot.com/2011/03/truthiness-is-out-there.html http://gbracha.blogspot.com/2011/03/truthiness-is-out-there.... There is also an uncanny link between the features Dart highlights -- security, optional typing, modularity -- and Newspeak. The timing of Newspeak development and Google's Dart also coincide perfectly. The blog post talks about a Javascript compiler, pluggable type system, IDE (Brightly?) all being in the works. Newspeak's pluggable type system sounds similar to what is known about Dart. For instance, http://bracha.org/newspeak.pdf http://bracha.org/newspeak.pdf > We also intend to extend Newspeak with an optional type system and a framework for pluggable types , enabling the language to enjoy most benefits of static type systems without incurring their limitations. It also seems like a smart engineering choice to base whatever Dart is heavily on some proven language, even if there is a new VM. Given that Newspeak is Bracha's most recent attempt and it's goals are so well aligned, it's hard to imagine he'd start from scratch.
- nickik 15y agoNewspeak has a very cool IDE (that is written in Newspeak). Maybe this "Brightly" is just that with HTML/CSS as a presentation layer. I belive he said that its written in a way that could make it possible to replace the presentation layer.
- jink 15y agoMaybe Dart does not require HTML/CSS.
- tluyben2 15y agoThis sounds bad to me. I was hoping they had something real, but this is disappointing. It won't work as JS is too big (I would love to see them try), but it doesn't seem to 'fix' anything; it's just more of the same.
- ThaddeusQuay2 15y agoYou kids and your new languages! While you endlessly debate over features and runtimes and whatnot, I still happily use PL/I under OS/360 on Hercules, and I don't think that I'm missing out on anything worthwhile. All of the below were built by real engineers, and have stood the test of time. It's an unfortunate waste of manpower that the industry keeps trying to reinvent things which remain perfectly usable. May the 60's never re-IPL! http://en.wikipedia.org/wiki/OS/360 http://en.wikipedia.org/wiki/OS/360 http://en.wikipedia.org/wiki/Hercules_(emulator) http://en.wikipedia.org/wiki/Hercules_(emulator) http://en.wikipedia.org/wiki/PL/I_programming_language http://en.wikipedia.org/wiki/PL/I_programming_language
- nickik 15y agoThats the same thing some generals said when the wanted to replace the Cavalry with tanks and cars. There are always people like you but luckly there are always more people that want to push ahead. If you trully belive that the last 50 years of PL/Compiler/VM research did do nothing, I pity you. Luckly for you that these old PL/1 and Cobol-System will be almost imposible to replace since they are a monilitic blocks of messy code. I know of banks that teach the unimployed programming so that they can update there cobol code.
- ThaddeusQuay2 15y agoDo you deliberately misspell words? If you truly believe what you say, then you should tell IBM to stop providing PL/I certification (http://www-03.ibm.com/certify/certs/pl_index.shtml http://www-03.ibm.com/certify/certs/pl_index.shtml), and stop updating their PL/I compilers (http://www-01.ibm.com/software/awdtools/pli http://www-01.ibm.com/software/awdtools/pli). Apparently, the last 50 years of PL/Compiler/VM research did do something: It turned you into a sourpuss. I pity you. "The geeks shall inherit the properties and methods of object Earth."
- nickik 15y agoNot everybody is a nativ english speaker. Why should I tell them that, I never sad its not ok to make money of people that still use this stuff! Why should IBM not do it if there are still lots of people with old code that they can make money off? All I said is that there are languages way better then PL/I.
- reddit_clone 15y ago> isolation, leaves the web in a hobbled state and unable to compete against the encroachment of other, less open platforms. This seems more about fighting Apple Appstore than fixing Javascript issues.