JavaScript Gets Visual With Waterbear
mikejuk writes "Waterbear, a new 'Scratch-like' visual programming language, made its debut at a JavaScript conference this week. Basically you can put together a JavaScript program by putting blocks together and entering some parameters. The output is JavaScript that you can use in other web pages. The Waterbear system runs in a browser, it's HTML5 based, and needs no installation. You can't help but think that this is the way all programming will be done in the future."
Actual programming will never be done in this ridiculously simplistic, underpowered manner.
I am still waiting for a development tool that allows me to write PHP by throwing cowpats at the screen with my WiiMote. (It wont degrade the quality of my PHP code, I promise, but I cant speak fo others!).
Sent from my ASR33 using ASCII
You can't help but think that this is the way all programmng will be done in the future.
Yes, occasionally, when I'm at my most cynical.
Spelling mistakes, grammatical errors, and stupid comments are intentional.
You can't help but think that this is the way all programmng will be done in the future.
Maybe if all you ever do is create are throw away toy applications. But all the low-level stuff that apps like this are built on are still going to have to be done by someone other than a mouth breather that can't do anything but put some blocks together.
Reminds me of LEGO NXT-G
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
wake me up when waterbear is implemented in waterbear.
Back in the early days of Java Beans, Sun had something similar that used this put-together-toys/plumbing&black-box model. It didn't last long. Anybody remember what it was called?
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
"You can't help but think that this is the way all programming will be done in the future."
I've heard this before about visual languages, in a couple of different field, but it never pans out. National Instruments tries it with LabVIEW, for example. Unfortunately, dragging around boxes and drawing wire is an even clunkier substitute for odd-looking but simple code like "x=power(10,2)". And as soon as it comes time to inspect code someone else has done, branches, loops, and all? It becomes a monstrous game of "Where's Waldo?".
It's an entertaining idea, but in the end when a written language becomes two cumbersome, one of two approaches are taken: you either come up with a framework of code that generates other code to make the writing easier, or the come up with a new language to handle the most common abstractions and make everything easier
I think I am with most slashdotters when I say this isn't for me. But its good to see people making these languages accessible for someone just starting out. My first programming language was a point-and-click drag-and-drop programming language, and I think they are really useful for teaching people the basics of computer programming. Now if someone is going to try and make their entire website like this...well good luck with that, I hope you like carpal-tunnel.
Violence is the last refuge of the incompetent. -- Isaac Asimov
"You can't help but think that this is the way all programmng will be done in the future." mikejuk, are you trying to troll us? Visual programming tools have existed for years now, but they won't replace textual programming because they can't handle complex scenarios without making the interface uncomprehensible (check out Max MSP). Also visual tools are usually domain specific, while general purpose languages (like Java, Ruby, Python are not).
The website does not show right in FF.
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
Visual programming is a dream that will not die. Those of us who've been around for a while remember flowcharts. Everybody was suppose to use flowcharts. I think that there were even programs that would turn flowcharts into code (and vice versa). How many people do you know who do much flowcharting now? Years ago, Fred Brooks addressed this issue and pointed out that software is very difficult to visualize.
The latest iteration of the idea is "Model Driven Architecture" which is suppose to turn UML (or BPMN) diagrams for a system into code. There are some people who claim some success with this is limited areas. The truth is somewhere between the unbridled optimism and luddite pessimism.
The thing is that programming is hard work and while these tools are helpful, you still need to think about programming. There is no magic bullet (to quote Brooks again).
un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
Visual programming has been done before, and it's never really caught on. Visualizations can help, but the advantages of working with raw text as a native format are too many. Just off the top of my head:
Comments? On the off-chance that I look at one of these visual charts and can't figure out WTF it's trying to do, or why this particular block is wired where it makes no sense for it to go, how might the original programmer tell me? Maybe it's a browser-specific hack, maybe it's legacy cruft that we mean to get rid of eventually... And how do I connect to some existing code someone wrote?
Speed? If I can't do this with a keyboard, it probably already loses. Even in JavaScript, is this going to be quicker than a decently capable typist hacking it together by hand?
Version control? Even something as simple as a diff -- how does that work in this system? Decades of research have gone into tools to work with text -- Git is awesome -- can I bring any of that stuff to bear with this system? If not, what do you have to replace it, and how does it measure up? This was my biggest complaint against systems like Squeak -- I think the idea of changing code live in the system and taking snapshots is awesome, but how do I wire it up to something like Git?
Expressiveness? Are there limits to what I can build with this and have it look sane? With text, I can come up with whole new domain-specific languages to suit the task at hand -- there are all kinds of ways of abstracting away complexity. What does this give me?
I could go on, and these same observations have been made before. It really seems like the attempts to make programming more visual are aimed less at making experienced programmers more productive, and more at making things easier on beginners, or worse, non-programmers. I'm all for making things easy on beginners, so long as they eventually outgrow this sort of crutch, but enabling non-programmers to write programs seems to always end in tears, in entire businesses run on Excel + VBA written by a business type. Understand, I'm not trying to build an ivory tower here, ensure job security, or anything of the sort -- by all means, if businesspeople want to learn to program, go ahead -- but attempting to dumb things down to where they can write programs without really understanding fundamental things about programming is giving us the worst of both worlds.
Regardless, no, I can't help but think that most programming will never be done this way.
Don't thank God, thank a doctor!
That's not "ab-fucking-straction" causing that, it's shoddy programming, both on the part of Adobe in writing Flash, and on the part of most Flash developers.
The real problem here is enabling idiots to program without doing anything to make life easier on competent programmers.
Don't thank God, thank a doctor!
Oh boy, Javascript AND HTML5.
I can't wait for my CPU to get waterbearded, desperately gasping for air.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
You can't help but think that this is the way all programmng will be done in the future.
It's true. Just like how, after the invention of the comic book, no one writes prose any more.
.. that graphic novels is the way all books will be written in the future.
Sounds silly? That's because it is.
Then again, i'd like to see a mod where the "boxes" are substituted with meatballs and the connections look like spaghetti. Finally we can have REAL spaghetti code!
"You can't help but think that this is the way all programming will be done in the future."
No, I am very sure it will not be.
I once had to use a graphical system to create a build script for something. All the time during the time I used it, I was wishing it would be a normal, plain text, programming language instead. Working with the mouse does not allow those text operations you need like easily duplicating, search and replacing, etc...
Plain text will always be more powerful than mouse. Try doing a regexp on your graphical programming language...
So, nope.
They've been saying "this is the way of the future" with this sort of stuff for DECADES. In the end, you still need to express things in a full-on programming language to make things perform well.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Scratch
You can't help but think that this is the way all programmng will be done in the future.
Only an idiot would not be able to help themselves think that all programming will be done like this in the future. Even most programming would be an incredible leap of logic and faith.
Drag and drop programming is good for simplistic solutions to simplistic problems. It will never replace traditional programming for complex systems. I hate to say never, but when talking about a system like this, it just simply isn't designed for doing anything complex, because the moment a program gets complex to a system like this would be even more complex to use and maintain than a traditional programming language, making it a hindrance rather than an asset.
All programming done like this in the future indeed.
...that you're new to programming. Visual programming is fun to play with until you try to get a lot of interesting things done very quickly. Language (specifically, the non-graphical sort) still rules the world.
(Curiously, the link in my sig is strangely relevant today.)
Koans and fables for the software engineer
It would be grossly inefficient to describe large, complex systems with a visual grammar like this. If programming is done visually in the future, it will be because we have much broader abstractions built in to the grammar, and detailed control flow structures and micro-operations (such as drawing an arc from angle to angle with a given line width) will be well beneath the expressive range of the language (much in the same way that, as a general rule, the C++ programmer is not interested in writing to hardware registers but instead prefers complete machine abstraction).
Until the artifacts of language-oriented software development are eliminated, this is just regular old programming with a "user-friendly" feel that will allow unskilled workers to accomplish simple things, and impede skilled workers from doing anything useful. This is not ground-breaking, it's certainly not new (systems like this have existed for decades), and I can confirm that "this is how all programming will be done in the future" is a false statement.
No because those were usable. Try using this, go for it. Tell me what a 10k line application ends up looking like.
Typing is still used even for human to human communication, it is not going away anytime soon.
get the hell off my lawn now!
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
What if there was a language where each block was a character? then you could string them together to form more complex commands, variable names, and flow control! If you wanted to add the values in the A and B blocks, you would just put a + block between them. you could then use the assignment block to put the resulting value into the C block! you'd probably never need to learn more than 50 or so blocks and you could do just about ANYTHING with that!
> You can't help but think that this is the way all programmng will be done in the future.
Well, I guess you might not be able to if you're retarded.
This visual programming crap crops up from time to time partly because so many people are brainwashed by that crap about a picture being worth a 1000 words. Draw me a picture of "misguided". We give children picture books while they are learning to read - they find them more intuitive than regular books, but that doesnt make them better.
Programming is done with languages because programming is communication. It's communication between programmer and computer.
The trouble with GUI interfaces is that they are predisposed towards the computer transfering information to the human. They are not an efficient mechanism for humans to transfer information to the computer. There is a good mechanism for this - one that has been used for millenia and which our brains have even evolved to use effectively.The power of language is that the range of choices grows exponentially with the length of the expression.
http://rareformnewmedia.com/
... I wonder if programming will be as easy and done perfectly by everyone just as Windows is administered as easy and perfectly compared to command line on Unix systems ...
I've worked with (actually, had to replace) a visual programming language before. One huge problem with the language was printouts. It's very hard to print large programs. If you have a conventional text-based programming language, you can print out a 10000 line program on a printer, and it's comprehendable.Now try that with a visual program with 10000 interconnected blocks. You have to print it in sections on letter-sized paper, then tape it all together, and it becomes about 20 ft wide and 15 ft tall. In order to show someone a bug in the program, you needed to schedule a conference room so you have a large enough table to unfold the printout. Another huge problem was inserting new code. With a text-based programming language, you can just insert a new line. With this visual programming language, you had to move all the graphical elements out of the way to create space so you could plop down a new graphical element. It turned what should have been a single keypress operation into a five minute task for rearranging graphical elements. I could go on and on, but needless to say, managment thought the visual programming language was a "differentiating feature against our competitors". The people who actually used it hated it.
Mel is turning over in his grave.
God invented whiskey so the Irish would not rule the world.
Coding, as we typically do it today, would not generally be practiced by anyone other than system programmers and library developers, not application programmers.
I give it maybe 15 years or so.
File under 'M' for 'Manic ranting'
You can't help but think that this is the way all programming will be done in the future.
Actually, I can help but think that.
Ask anyone who has ever tried to wire two programming languages together: the problem is that there is no coherence in the semantics of how we pass things around between modules.
Thanks to loose programming techniques with languages like C and C++, there is no way to determine the semantics of a function call by looking at its signature. 'const' is a lame half-hearted attempt to help but it's totally inadequate.
Until we solve this problem we will never have successful visual programming aids or even much in the way of automated code generation.
Long ago in MIT 6.170 they taught us the importance of writing formal function call signatures, but in our rush to implement everything ASAP these details are left aside.
The first thing I noticed upon loading the page, was that fuzzy turd thing that I can only guess is the Waterbear logo.
All in all, this looks interesting but the UI needs a serious makeover. I flipped through the element library and it was not quite obvious how things worked. Yeah, I get the puzzle piece concept, but it needs more visual feedback if this is truly to become an idiot-friendly scripting tool. If I'm dragging an object, show me right away which targets would be valid to plug it, instead of waiting until I'm hovering right over it. I don't really see myself using this for any serious work, but as a learning tool I think it could have tremendous value, since it shows you the resulting code.
For myself, I'll pass. JQuery is easy enough as it is, I rarely write more than a few lines of JS code per page.
-Billco, Fnarg.com
They are called ASCII characters and depending on what environment you are using, these little blocks have well-defined rules as to which blocks you can plug together and what the results will be if you make particular patterns out of the blocks.
Yes. They did say that. And the first compilers were generally shit and the good programmers wouldn't touch them. And they said the same things you're saying today.
But those things changed. This has not.
There are problems that are so hard to fix, they will not be fixed anytime soon. For a good example, explain how to make a regex using only a visual environment.
This is like speaking to a computer, it sounds cool but it sucks. It is less precise than typing, slower than typing and in general all around worse.
some moron comes along with a point and shoot yourself in the head tool that turns a simple page into a morass of 50 gazillion separately downloaded code snippets.
And then they wonder why the page loads so slowly.
I'm going back to HTML 1.0
-Xanthos
Average Intelligence is a Scary Thing
In the year 3000 computers will write their own code and humans will be obsolete.
Don't kid yourself. It's the size of the regexp AND how you use it that counts.
I went into programming from a liberal arts background. I majored in Communication, minored in English, was a technical writer before becoming a programmer. When I started learning programming, I was surprised by the similarities with good English writing:
My point is, we should take a cue from human communication. Um, it's still mainly text-based. We haven't replaced English with flash cards to talk to each other, and students aren't resorting to wireframes no matter how much they hate writing essays.
This is coming from someone who has a love for the visual arts. I was the guy in school who drew really well, I've worked as a graphic designer, and actually my major was filmmaking (it was a subset of the Communication major). You can illustrate an article with pictures, and you can "communicate" something with a movie, but, as Samuel Goldwyn said, "Pictures are for entertainment, messages should be delivered by Western Union."
... Google App Inventor.
I8-D
http://www.macosxautomation.com/automator/
List of Visual programming languages from 25 years ago:
http://www.nickerson.to/visprog/CH2/visprogsys26.htm
Every decade or so, someone comes up with "visual programming" or a "programming system that anyone can use" and claims it will make programmers obsolete or some such other nonsense. Yet here we are, in 2011, still programming in C (and assembly), and I can't name a single successful "visual" programming environment. The reasons are legion; I'm not going to rehash them here (especially since others have), but I can tell you a good place to start would be to read some of Paul Graham's writings or really anyone who has actually designed a programming language or studied CS or CS history. As a quick hint, there is a reason film didn't make books obsolete.
Nathan's blog
Two legacy visual tools for you to Google: Layout by Objects, Inc. (DOS and Windows) and Prograph by Peregrine Systems (Mac).
Yeah, sure... that'll catch on, just like it did back in the '90s with IconAuthor. (Incidentally, I'm pretty sure that IconAuthor was bought by Macromedia, and subsequently killed in favor of their competing Authorware product.) I had the misfortune of using IconAuthor to develop computer based training for a previous employer... and I absolutely did not list it as one of my proficiencies on my resume, because upon leaving that job, I didn't want to ever have anything to do with IconAuthor again!
(Come to think of it, I wonder if Waterbear is in any danger of running afoul of relevant IconAuthor patents?)
The secret of good tools is that they hide the problems by addressing them invisibly, not by pretending they do not exist.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
Would be nice if people writing these "articles" would do just a little bit of background research. Drag and drop end-user programming is ancient, e.g., AgentSheets 15 years ago: http://www.cs.colorado.edu/~ralex/papers/PDF/VL96.pdf (drag and drop even from a browser, creating applets, ...). This precedes some of the systems mentioned not only by years but by a decade.
More recently, CyberCollage has drag and drop programming based on HTML5, runs games/simulations probably much faster than any of the tools mentioned (try game of life: http://www.inf.usi.ch/phd/ahmadi/rm/index.html) has already been very successfully tested with kids in schools, AND is MULTI user: http://www.cs.colorado.edu/~ralex/papers/PDF/iseud2011_repenning_submission.pdf
My C.S. Dept chairman (not my favorite professor by far) once said to me, "No one will be programming in 10 years."
That was in 1989.
that you were told that some virtual LEGO would be the programming language of the future about 30 times the last two decades, alone.
That is, if you are old enough.
You can't help but think that this is the way all programming will be done in the future.
I hate statements like that.
"I loaded the demo and nothing happened when pressing "Run" for Chrome or Firefox. What am I missing?"
Doesn't work in Opera either. How many friggin browsers do I have to try to find one that works?
Need Mercedes parts ?
IBM Research a while back developed a product called Data Explorer (http://www.research.ibm.com/dx/) that used visual programming to create scientific visualizations of masses of data. It worked pretty well for many types of visualizations and it was popular amongst researchers at the time.
I still remember Matrix, and later Objects Layout. It had a forms designer and a flowchart mode. It actually produced tight DOS .exe files. One could also change the output to C, Pascal or even BASIC, if extra customization is needed. I got my copy for something like $200. Their tagline in Byte was "not a single damn line of code, ever" or something like it.
It had a Windows 3.1 version. Too bad it didn't take off. IIRC, its final incarnation was released around 10 years ago, Build-IT, which spitted out Java code. Those were the days.