Google has built a brand-new programming language for "structured web programming", one that appears to be suited to browser-based apps. Two of the search giant's engineers will discuss Dart, Google's new language, at the Goto international software development conference next month. News of the new language was posted to the …
"the bios of the two Googlers"
Erm, were they Androids...?
I wonder if they can run UEFI on top of their bios
@the bios of the two googlers
Do they dream of electric sheep?
I can't see it actually taking off, but a statically typed, compiled client side language of any description is far preferable to the vagaries of JS programming.
Frankly the ideal solution would be something like Microsoft's CLR as everyone would then be free to pick the language syntax of their choice (including dynamically typed using the DLR). But despite being an ISO standard it's Microsoft originating technology so I can't exactly see Google/Mozilla/Opera signing up in a hurry.
...that jQuery can't fix
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
It's a foul and error-prone language suited for simple scripting tasks at best.
Silly party trick
'' == '0' // string comparison, obviously false
0 == '0' // again, conversion occurs.
The rest of the examples behave consistently with the rules of == and ===.
This is why it's often best to set your own false and true; Indeed any constant that ends up being architecturely set.
realfalse = (1==0)
realtrue = (1==1)
It avoids the issues lower down in the cpu and makes life a little more portable as you dont care about true being anything from 1-255 and false being -1 or 0 or even the <0.
But you realy shouldn't have to be worrying about that in a scripting language - should you.
Re: Silly party trick
But "most people" aren't programmers.
I think the point the chap was making was that to a casual observer, it's rather inconsistent.
The trouble is programming is, generally, taught so shallowly that lots of people think they have skills in this area which they do not. These 'script kiddies' then think they can do anything by copy-and-pasting fragments of code together, and we get left to pick up the pieces when it all goes horribly wrong.
and there's nothing wrong with jQuery...
that Dojo can't fix :P
title? you know how i like titles!
"But "most people" aren't programmers."
Then they probably shouldn't be programming should they?
Also, PHP (one of those other non-programmer programming languages) make exactly the same distinction between typed and non-typed comparisons.
This difference is part of every loosely typed programming language. Personally I'd prefer that over having to learn programming with a typed language every time (both when learning to code years ago and as bloke who taught his fair share of programmers).
The real problem with ECMAScript
And there's nothing wrong with jQuery that not using bloated, bug-ridden, braindead, broken-by-design frameworks can't fix.
That's the real problem, and it's why introducing new client-side browser-hosted languages won't work. Most of the people writing software in them are lazy and sloppy, and are happy to take whatever shortcuts they find rather than doing it right.
Now I would like you damn kids to get off my lawn. (The Reg needs an old-man-shaking-his-cane icon.)
Since when did script kiddies do anything beyond run scripts/others code already compiled for them.
Think your getting mixed up with those that dont understand object oriented code and think that cutting and pasting one bit of code into another application is object oriented programming - which it is most certainly not in many levels.
Some people can make paintings, come can make pictures out of bits of others (puzzels) and others just code. Alas there aint realy any good certs I'm aware of that would allow you to descriminate against white/yellow belt coders from the 5th dan black belts. Even if there was I doubt any of the black belts would trust said exams/certs. Which is why we have people who are in programming jobs and have the skill level of a photocopier. Are these script kiddies - NO. There far far worse and I dont think there is a term that you could label them with that would be printable - unless you copy and paste a label from say another comparable group of uselessness!
Just what the world needs
Like there aren't enough half-assed programming languages around already...
...it'll be added to Google's redundant project list in six months along with Wave, Labs and all the others.
Come on, bring more to the webspace! The worse, the better. Hopefully people will some day get tired of supporting many competing content/interactivity platforms (Flash/Java/Silverlight/ECMAScript/Dart) and resort to common denominator - HTML/plaintext + JPG/GIF.
"There aren't yet any technical details on Dart"
Can someone wake me up when there are? Thx.
Not another language. Leave me alone, I'm quite happy with the several other languages I already know. Google, sometimes you have to know when to stop.
In the end...
+1 from me.
I think developments like these may very well turn out to be more counter productive than some companies realize. Sure; the whole product might be far superior in comparison to others (I have no idea there btw) but that isn't always enough.
Especially considering that Google operates in the OSS market makes this a rather weird move IMO. Because as many posters pointed out already; we already have so many languages available already...
Although I somewhat question(ed?) their motivations I have to admit that Microsoft has recognized this by adapting well known languages and heavily expanding (and according to many other programmers:) /improving/ on them after which they became officially supported for their .NET framework.
Its all the 'evil' Microsoft but still allowing you to use whatever you want without learning (too) much new tricks.
I think you'll achieve much more by adapting to what your users want instead of trying to adapt your users to what you want. Some of us don't want to learn something new every day.
I beat you to it.
I said exactly the same thing in the 70s.
Ya don't need anything more than Fortran, COBOL and Algol.
Actually, Algol was quite late to the market, so this should reed "Ya don't need anything more than Fortran, LISP and COBOL." And, of course, real programmers don't use Pascal, patch program image directly in core memory and use machine codes directly without need for even an Assembler.
I await the job ads now
"5 years+ DART experience required" - regardless of what the position is.
Great staff retention
Perhaps it is Google's way of retaining staff by getting them to use Dart. No other organisation uses it so they will stay at Google.
New programming language
As long as it uses different operators for different operations, I'll be happy.
If it's another language that tries to use "+" both to concatenate strings and add numbers, and/or tries to use the same comparison operators to compare strings and numbers, then it's doomed to failure.
@ AJ Stiles
"If it's another language that tries to use "+" both to concatenate strings and add numbers, and/or tries to use the same comparison operators to compare strings and numbers, then it's doomed to failure."
oh yeah, exactly like how perl failed.....?
also @AJ Stiles
That's not a problem if you understand the two concepts of 'string' and 'number'. Which, presumably, includes everybody who is going to use Dart?
>"If it's another language that tries to use "+" both to concatenate strings and add numbers, and/or tries to use the same comparison operators to compare strings and numbers, then it's doomed to failure."
>oh yeah, exactly like how perl failed.....?
You are trolling aren't you?
"+" vs. "."
"==" vs. "eq"
If they already have "Go" for server-side...
...wouldn't a better name have been "Ogle"?
I agree. "Obfiscated Group Language Enviroment" is best I can come up with having run out of coffee.
Go Go Hamsters
would be easier to remember. I only mention it because I used to think they were guinea pigs. Which rather undermines my argument. Ignore this post.
Message to Google....
"Go" away and do something useful.
@ A J Stiles
Yeah, they seem like real big failures. Or maybe you just decide what languages to use based on minor details rather than, say, its strengths and your needs.
@Five years Dart Experience.
Don't forget the keyword buzz jockeys.
Skills : Enterprise Dart Architect, Dart for the Cloud, ITIL3 (Dart), Dart (REST)
Might one suggest GoGo from the google at the GoTo by Go?
Stop. My brain is already full.
Norra 'nuther one!
Oh noes ...
Not another useless language ...
Go was inadvertently funny. This is getting sad.
It's really beginning to look like a bunch of CompSci grad students who can't snap out of their 2nd year PhD funk. The fastest Smalltalk VM? Who cares?
How about writing something useful for a change? Here's an idea: an open source C++ front-end for C++2011. Compete with EDG, if you can.
What's that? No? It's hard? Might be subject to scrutiny and peer review?
Yeah, didn't think so.
Usefulness is in the eye of the beholder
> The fastest Smalltalk VM? Who cares
People who use(d) it, actually there are still quite a lot people and businesses using smalltalk and rightly so.
> How about writing something useful for a change? ... an open source C++ front-end for C++2011
Useful for you I assume, can't see how that would be that useful for Google. Anyway, as there are not many details released how do you know it's not going to be useful to many people?
> What's that? No? It's hard? Might be subject to scrutiny and peer review?
Some how I doubt that the two engineers mentioned are likely to be scared of something hard or subject to peer review. To be honest you even suggesting that is insulting to two well respected developers who have contributed a lot to our industry.
"The fastest Smalltalk VM? Who cares?"
Smalltalk is having a bit of a resurgence at the moment, actually. Mostly due to the complete failure of "Smalltalk killers" to actually make improvements on it. Java is a sinking ship of good questions with bad answers and C++ is still claiming that its half-arsed object system is "good enough" when it is abundantly clear that they no longer are.
Both languages are effectively dead and Smalltalk is as good a re-spawn point as anything else for asking "where *should* we have gone from here?"
No offense, but ...
... I smell a Google Fanboi.
You are hopelessly trying to argue that bug-fixing a VM for a dead programming language - Smalltalk, ahhh, those were the '80's - is somehow more useful than writing a compiler front-end for the newly ratified C++2011 Standard. Smalltalk passed away in the mid-90's; it was a painless death and no-one noticed. May it rest in peace. C++ and Java killed it, and rightly so. Oooops, I wrote the J-word. "Businesses using Smalltalk". Really? You mean "legacy code we can't get rid of because hiring someone to re-write it in C++ or Java isn't worth the money"?
I don't believe for a second that C++2011 would be useful just for me. C++2011 isn't useful to Google, but Smalltalk is? Interesting.
So yeah: how about writing something useful (unlike Go or Dart), releasing it under a FOSS license - preferably not invented by Google, we have enough FOSS licenses already, and making it available for peer review, instead of spinning wheels in the mud on useless projects involving dead languages? Google has never been an example of openness and collaborative development processes. Maybe they should have, it would have likely saved them from the Oracle lawsuit.
The 1990s is a long time ago. Can we leave the OO rhetoric back there, where it belongs? It sounds like the last time you looked at C++ was about the same period, because *no-one* (interested in the state of the art) is discussing the finer points of object models these days. In case you hadn't noticed generic programming and meta programming is where the interest is now (amongst many other things, such as, oh, I don't know, parallelism..?)
OK, no-one likes sarky comments and the bashing of their favourite language, but as unsubtle as the comment was he actually has a point. Banging on about Smalltalk these days really does smack of academics who really should get out more as was implied.
Actually, Xerox killed Smalltalk. It just seems that it's quite dead and it's inspiring a lot of new languages as well as making fresh appearances in its own right. Java has reached the end of it's useful life and will fade away. C++'s big advantage - speed - is still there and will carry it on for years but it's not really the future, it's the best of the past. So, finding ways of implementing real OOP that runs at a decent lick *is* ultimately more important than worrying about C++2011. Not that the world has to settle for one or the other.
As to Google - I couldn't care less what they do and look forward to the day when someone comes out with a decent search engine and consigns theirs to the bin of history.
C++ is a big subject, but certainly the bigger picture is that is will eventually be replaced by something 'better'. Herb Sutter himself has mentioned that he sees a place for a language with the same semantics as C++ but with an easier to parse syntax. That is certainly an important part of the jigsaw as far as modernisation goes, but to still be hankering after "real OOP" completely misses the point and (trust me on this) is completely out of date.
As much as performance is the big selling point for C++ that is not the only advantage. Determinism in execution and the ability to mix (for example) OO (where appropriate) with generic programming are also just as important.
What C++ really needs is a decent module system. In extreme cases builds can actually go on for days! As nice as C++2011 is, I agree that it is a mere side show in the bigger scheme of things.
...most certainly is not dead. I work at a major engineering consultancy company with a multi-million pound turnover. A large fraction of that is from licensing and maintenance of our flagship software package, the vast majority of which is coded in a Smalltalk VM, with some of the heavy number crunching done in fortran. We have a dev team of about a dozen working on it full time, including some working on Smalltalk web apps. I have to say having worked in a lot of environments, Smalltalk really rocks.
a few important details about C++
1. You can safely mix C++ with C, and that is by design of the C++ Programming Language. Most modern compilers allow mixing C++ with at least one other Imperative Language other than C (assembler at a minimum).
2. You can use C++ as an imperative Language, just like C. Again, by design. C++ was never designed with OO Purists in mind.
3. Template-based meta-programming is actually one of C++'s strongest features. See BOOST.
4. Determinism in execution (if I understand correctly what you mean) is a function of the Operating System, and not a function of a particular programming language choice. Eventually, any compiled Language becomes assembler (during compilation). A real-time Operating System should behave like a real-time Operating System regardless of the Language a certain piece of software might have been written in (C, assembler, C++, Objective-C, Fortran, etc).
5. Parallelism is explicitly built in the C++2011 Standard. Many modern C++ compilers support OpenMP in C++ within the C++2003 Standard.
5. Exceedingly long compilation times are positively correlated to code complexity.
@Ben Hanson 1
"In case you hadn't noticed generic programming and meta programming is where the interest is now".
Wow, how wrong I was thinking that Haskell is the hottest thing at the moment :)
And, what do you mean by metaprogramming? LISP? lex/yacc? IDL/WSDL code generators (e.g. ZSI.generate.wsdl2python)? Since when have they become more interesting than ever before?
I think you should just get the right tool to get the job done, regardless of where the interest is now. If you can solve a problem with Smalltalk, great. If you can't, then there's no sense in flagging the dead horse, better go find something else.
Unfortunate choice of name
Goto considered harmful?
"Go has been something used only by Google, as far as we can tell..."
I use Go and love it. And I don't work at Google. Lots of people use it. It's a language built for a certain type of developer. If you aren't one, you won't want it. If you are one, you will think it's the best thing out there. Thankfully we have a lot of language options.
One of my favorite benefits of Go is that it carries its own runtime. No need for any of those pesky frameworks to be pre-installed on the customer's machine. And it works for Lin/Win/Mac and has been tested to work on Android (but not as a real Android app (yet?)). It's cross-platform without the .NET / Mono / Java baggage. No need to update your OS (.NET Framework) or reboot (ahem, .NET) or keep installing new updates every damned week (Java). It's all self-contained. Plus it compiles amazingly fast and has goroutines and channels. Yes, this is quite the way I want to code.
I'm not sure why this new language "Dart" should exist. Why not just tack on some libraries to Go? Or is it so drastically different that it needs its own language? I'm skeptical about this one. I feel they did a great job with Go, so maybe they could do well on Dart, but why is a whole new language necessary? I wish to hear more.
>One of my favorite benefits of Go is that it carries its own runtime.
Like... C++? FreePascal? <insert your fav. compiled language here>