Posted
by
Soulskill
on Friday September 09, 2011 @10:34AM
from the get-off-my-lawn-dart dept.

An anonymous reader sends this excerpt from El Reg:
"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 Goto website. There aren't yet any technical details on Dart but the bios of the two Googlers presenting at Goto strongly suggest a bent towards programming for the web and browser."

What's that make now, over two dozen different languages for web development, with ludicrous levels of overlap? Great, now things can get even MORE complicated. And, of course, MS and Apple won't adopt it--making it real useful, just as long as all your visitors happen to be using Chrome or some future version of Firefox.

I love C, but as a web application language... It ain't great. If only because web development is where programers when they can't comprehend C.> trollface, in b4 flamebait, etc

In all seriousness, though, C is a very general language to use for sure a relatively specific task. (As the difficultly of string handling vs the prevalence of string handling in web development make it particularly unsuitable.) A language specifically designed for the task, as designed well (I'm looking at you PHP!) would be

Why not assembly? C is a very minor step up from a good macro assembler. It's great for embedded work, DSP work (audio, video, etc), device drivers, and kernels but it seriously sucks ass for nearly everything else.

The big problem with C is not "too much thinking." That's the favorite strawman used against people who cirticize C. The real problems with C are that it's hopelessly verbose and the standard library sucks.

If you can't bring yourself to live under a virtual machine then check out one of the mo

I'll admit that it's kind of a PITA when you start playing with something Google offers only to find it's about to be discontinued. On the other hand, I can see it from Google's point of view, too. They are an innovative company. When they come up with an idea that they think has potential (for example, App Inventor), they release it to see if it takes off. You can't blame them, though, for deciding to pull the projects that didn't see enough interest to be worth maintaining. While I don't know if the

Python is not a good example to make this point. Google did not start the Python project, and Python has lots of uses that have nothing to do with Google. If Google were to fold tomorrow, Python (and Guido) would survive just fine.

This is what happens when a tech company gets too big and doesn't know what to focus on. Just like Microsoft used to do, they're releasing pet project after pet project after project, hoping one of them sticks.

I thought Google have been doing this the whole time, ie 20% projects. Nothing wrong with releasing the ones that come to fruition. It's not detracting from other parts of their business, and it's bringing cool stuff into the community - some of which might be really useful. Google are one of the companies that actually has a chance of making a replacement to JS "stick", though convincing MS would be a very tall order indeed.

I took a course that discussed personality profiles a little while back, and -- according to this class, at least -- the "creative" types tend to get really excited about a project, work on it for a little while, lose interest and abandon it in favor of the next project that comes to mind. This is a pretty good description of me, as my wife is fond of reminding me. I have a million things that I've started, gotten bored with and abandoned. A friend of mine once commented that techies seem to be borderline ADD; this theory could explain why. Whether you like Google or not, you have to admit they are pretty creative. If they have a culture that is lead by the creative, ADD types, you would kind of expect them to display this type of behaviour. The solution to this problem is to hire analytical/admin types who will drive the projects to completion rather than abandoning them when they get the next creative spark.

This is what happens when a tech company gets too big and doesn't know what to focus on. Just like Microsoft used to do, they're releasing pet project after pet project after project, hoping one of them sticks.

Yeah but at least they don't release them as finished products and charge $$$ for them..

If the Dart language is intended to replace something like the buggy, slow and badly designed PHP language, I'm likely to give it a try.
In other terms, if Dart is to PHP what Chrome is to Firefox, that new language sounds promising.

If the Dart language is intended to replace something like the buggy, slow and badly designed PHP language,

I was rather hoping it was intended to replace the buggy, slow (although progress has been made), and badly designed ECMAScript language, which you may also know as JavaScript.

JavaScript is not actually that bad compared to PHP. I know it can be used to create a complete mess, but in the hands of a competent developer it can be used to produce a decent end result.

PHP on the other hand seems to have hit a wall recently. I have to admit though I am a little jaded at the moment after a recent project exposing an existing PHP web application via web services. PHP has truly awful WSDL support, even if you try using the Zend Framework addons. Since more and more projects seem to involve some level of interworking with other systems that fact that PHP fail so badly in this regard is pretty inexcusable.

Just to explain why I am so jaded and not at all as a cathartic experience I am probably now going to rant about some of the issues:)

Firstly, the SOAP functions built into the latest verion of PHP only support rpc/literal WSDL. Since every other platform (.NET, JAVA, Axis2) wants document/literal this makes PHP only useful for talking to PHP.

Then you think Zend Framework might be better. Unfortunately although this lets you generate and expose WSDL2 files using document/literal, you cannot use them as a basis for your service. This means that you can't actually let anyone talk to the service without some awful compatibility layer that translates what a rpc/literal service would expect into document/literal by doing some crazy unravelling of arrays of parameters.

And then when you finally think you are done you discover there is a bug that means booleans are just broken and always get returned as false. You file a bug report but it looks like the maintainer of this part of the Zend Framework has died as he hasn't been on their bug tracker for months.

So I might have worked round all these issues and delivered a working service but it took far longer than expected and that costs money. For a server side language that is supposed to be an established heavy weight this is not acceptable. It's enough to make you learn.NET:)

Why the heck aren't they at least using Parrot [parrot.org]? It's not hard to target and it would really help the project to get some extra programmers on board. In theory Parrot would allow code sharing between all the different languages that target it. So Dart could call Ruby which can call Python, etc. It's the great unifier of the programming religious wars, and nobody seems to talk about it anymore. Even when it's finally DONE! If you're going to make a new dynamic language, please, please make it using Parrot.

And, of course, MS and Apple won't adopt it--making it real useful, just as long as all your visitors happen to be using Chrome or some future version of Firefox.

So make it compile to Javascript for browsers that don't support it natively.

Personally I think it would be pretty sweet if Google made V8 support Coffescript natively, both in Chrome and Node.js. But if they were also to build in some of what they've got with Closure, they've got something.

I wanted to use it but I can't find any ssl library or examples for it. The language syntax is easy, I write python and C++, and it is distributed by nature. I got the impression it was Erlang for those that don't want to poke out their eyes reading their own code. Anyway, a language designed specifically for distributed applications without an ssl library, IMHO, is useless.

Your article was an epic fail. Who needs an well reasoned, well articulated argument when you can just repeat statements from Google verbatim and slap a "You Decide" title over them? I knew nothing about Go before reading it, and I know even less now. Well done.

A new programming language create a huge problem, before start solving anything. And its that you lose all the work done with libraries. Everything. A new language is like a natural disaster that wipe civilization to the caves again.

People is doing a lot of cool stuff with Javascript. JS is starting to becoming a decent enough language to write code for the web!.http://jquerysbestfriends.com/#slide1 [jquerysbestfriends.com]

I've tried the grandaddies of all of them - from Simula to Smalltalk to C++ to rolling my own object systems with procedural pointers... hell, I've even used CLOS. Objective C and Ruby aren't that much different (object-model-wise) from Smalltalk.

Prototype-base inheritance is a different animal from class-based. It is more flexible, can handle certain situations that cannot be handled elegantly in class-based inheritance (even with multiple inheritance and/or aspects). If you truly don't understand the adv

I wouldn't call it terrible--just low-level. Building on top of it (or finding a package that already has) is the right idea. Re: the grandposter, JS lets you subclass; not sure how much stronger support you might be looking for there.

Corporate languages like.NET, Java, ObjC and now Go are here to create barriers of exit and lockins,...

So someone understands.;-)

Actually, that wasn't really true with Java. The gang at Sun did it first as an internal, embedded-controller language, with the ability to download components the first time they were needed, on-the-fly, from a server. The news got out, others got interested, and Sun's response was a serious effort to make it easily available to everyone. This was especially useful after we realized that Java was a good networking tool. Sun kept legal control, because they were well aware

"Seriously stop pitching this band aid language as a solve all, it wasn't designed for..."

That's what ya call a straw argument. No one claims it solves all. In fact, anyone claiming one language is a 'solves all' isn't thinking deeply enough.

But his point is good. There is an absolute shit-load of good quality JS code in libraries and it is not quite as simple as simply renaming stuff. A display can be reached using two incompatible approaches making the integration into your application code inte

So you wannabe coders keep saying, all of javascript is documented on google searches, its so easy to copy paste those functions and input your own field names and just seem them work.

Well, I've lately been experimenting with HTML5 canvases, which involves a lot of JS, and I've found that it isn't always quite that easy. Yes, there are zillions of examples that do cute things in a canvas. But they all seem to be made up of lots of hard-coded numbers that aren't explained anywhere in any coherent fashion. So to use them to draw your figures, you spend long hours tweaking the numbers, trying to grok what the relation might be between the numbers and what appears on the screen.

Similarly, there's lots of online HTML5 docs on zillions of sites, but it all seems to involve "handwaving", i.e., it describes what's going on in a "10-km view" fashion, using lots of undefined terms. When you try googling those terms, you find that you're searching through millions of ghits that are mostly about totally unrelated topics that happen to use the same words (with different meanings).

So you try asking in a forum. And you find that there are zillions of HTML5 forums, each of which has maybe 2 or 5 messages per month, and the people (or person;-) there are oh-so-friendly, but don't quite know how to answer your question. You try asking in multiple forums, and it takes forever, due to the fact that people don't like usenet any more; they prefer zillions of forums, each of which has its own GUI that takes days to learn to use effectively.

The "cargo cult" (google it) approach to web programming is widespread. But it can be a recipe for a very long, slow, drawn-out process of coming to some partial understanding of WTF is going on in the code that doesn't quite do what you need, and responds bizarrely to tiny tweaks. Getting downloaded code to do what you need done can take up a rather large chunk of your lifespan. And you are forever plagued by bugs due to your lack of understanding what it does in cases that you haven't tested.

The only way to produce code that actually works correctly is to understand (in every detail, to the bit level) all the things you're working with. Cut-and-paste sounds like a useful idea, but it's much of the reason for the widespread coding disasters that we're plagued with.

Learning to use "New! Improved!" Web tools has a history of being a lot like swimming in molasses. The intro examples look cool, but doing anything even slightly different from the examples tends to lead you down a maze of twisted passages, all alike. So there are reasons to be skeptical of this one, until we've seen some evidence of what it's like, and how much of a time sinkhole learning it will be.

See... that's the difference, so you have a bunch of hard coded numbers you don't know off the web, you just copy pasted your code... what now, it's useless. So... play with the numbers, alt + f5 is your best friend, and figure out what they do by changing them, I don't mean to give off the impression to copy paste code w/o understanding, but in the end all blocks of code are are inputs/outputs. I've used business tailored string parser functions off the web that probably took days to write and are illegi

Is this just a side effect of hiring too many bored CS graduates -- put enough in a room together and they come up with their own languages?

I just can't see this being used outside of google -- Web Programming is largely a solved problem, and there are already a plethora of options. Since MS and Apple won't touch anything that comes out of Google, it'll only ever be relevant on the server side -- which is where there are already too many options.

Unless this does something radical -- and judging by what Go was, I doubt it -- this will probably be a niche thing they use internally.

I recall reading that developers at Google are allowed to allocate something like 20% of their time to side projects, regardless of whether or not it's "useful" (because really you can't always predict when some widget, technique or acquired knowledge will come in handy.)

Dart may not be for anyone outside of Google (or inside for that matter), but it's there if and when you need it to do something. *shrug*

As someone who has had the misfortune of doing web programming for the past 5 years, after a decade of systems programming I can say that Web Programming is very much NOT a solved problem. At least not in the commercial world. The leading Java and.NET web frameworks are horrible to use.

A new language may not be needed, but programming for the web is already enough of its own beast that using a new framework in an existing language is already basically like using a new language.

The problem with adding yet another language to the mix is engineers as a whole need to focus on simplicity and good standards and stay away from reinventing the wheel. Diluting the market with more languages to "make web development easier" or "help with web development performance" or even "fill the gaps of other languages" is ludicrous.
The problem is most anything can be done very simply and effectively with the existing tools that are available, but really developers are always looking for the next la

After being in the programming field for a while now it seems that often companies that post those kind of job listings are looking for a reason to hire H1-B people. They can now legitimately go and say the couldn't find an American worker with that experience since obviously the job requires it and then hire some cheap labor. The other case is that it is a HR issue since they are told to find a senior programmer with experience with technology X. Technology x may only have been around for 2 or 3 years, but the HR drone immediately thinks they need someone with 10+ years of experience with technology x and then filter you out because you don't have that experience. I had that problem when I graduated college and companies were looking for people with 10 years of java experience even though the language had only been around for 5 years or so at that time

But how do you expect a HR drone to be able to know what an OO language is. I have never been impressed with HR people as I have talked with some on the phone who had no idea what the company actually did. They knew they did something with computers but beyond that nothing.

With the frustration of working with so many different languages and some that only work when you load in a bunch of code (jQuery...awesome, but JS should do all this natively) or a framework, I'm very curious to see if Google is in fact focusing on web development and can provide a platform that allows for simplified coding without lots of browser overhead. Why do we think that languages should stop and never evolve or change or die? I for one don't want to still be coding 20 years from now with JS and PHP the way they are. Would love to have something that works hand in hand between server, db, and browser in a more seamless way.
I'll wait to see before passing judgment.

Off the top of my head, I would say because it's got some language flaws (goofy typing, pseudo object design patterns). However, the primary reason JavaScript makes me cringe is because the majority of web designers I come across throw usability as far out the window as they can because they do something mind-blowingly stupid. Stuff like this:

I speak as somebody who came from a Java background when I first look at JavaScript. It just felt like a toy language, and I think the main things were no static typing and lack of support for things like namespaces.

Granted, there's a big divide between the dynamic typing and static typing folks, so some of it is a matter of preference.

Global-by-default-unless-declared for variables is a recipe of disaster.

Scoping rules are fubar. If I declare a "var" inside a pair of curly braces, it should only be visible in those curly braces - not outside of them, and most certainly not before the line it is declared at! Every other curly brace family language which has explicit variable declaration does it that way, but not JS.

Syntax for lambdas is overly verbose - not only there's no expression form, so you have to write "return"; but "function" its

I'm not AC, but I can opine about this.
The Javascript language, not too much problem. Enclosures grabbing any variable in scope and keeping them around is a major pain. That's all.
The API of Browsers: Oh, my complaints are legion, but that's not really about Javascript anymore than the Win32 API is about C/C++.
I wonder if AC is complaining about the browser API and not the language?

Enclosures grabbing any variable in scope and keeping them around is a major pain.

I've been doing perl now for a while (~10 years or so). And closures grabbing any variable in scope (that is actually mentioned inside the closure) is a godsend. I can't imagine another way. That sounds like a feature, not a pain. (As to your other points, I don't do JS/ECMAscript, so I can't speak to them.)

The first is subjective... there are plenty of good things about dynamic weak typing.
ASI is garbage... and you're right so I personally don't use it.
I haven't been bit by scoping rules too many times, I think that's mostly because I don't write JS like it's C or Java.
I honestly never ever use octal. Either decimal or hex. That is a valid gripe but a small one.
The === vs == operator thing is dumb, but hardly as dumb as PHP's situation, and honestly in all the lines of JS I've written, I've never had to u

Who cares how their lawyers "feel" about a dictionary word that's marketing a structured programming language, not a software package, that no one in the market will be confused by? Nobody, except maybe some other lawyers looking for more gravy.