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.
You can't help but think that this is the way all programmng will be done in the future.
By complete retards maybe. Finally, we'll have a language to replace VB and PHP in the "languages for people who'd drown in the rain without supervision" department!
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.
Sounds like an "Illumination Software Creator" clone that only does javascript.
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
Another layer of ab-fucking-straction
It pains me when I see these flash apps that would have run quite happily on my 7 Mhz amiga with 1 meg of ram struggling along on a modern multi-core - multi-Ghz computer with more ram than anyone back then would have dared dream of.
"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!
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
This will be relevant when code is more about visual structure and spatial relationships instead of abstract notions and correlations. Until then, coding will continue to require abstract thought, not square-peg-in-square-hole monkey operations.
I can't understand why this keeps popping up. If I were to try and teach programming to somebody who has never done it before, this would be the worst possible way to go about it. How do you teach the difference between colors with only a sense of touch?
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.
On tablets that track your every move!
.. 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
a new 'Scratch- like' visual programming language ... You can't help but think that this is the way all programmng will be done in the future."
Where have you been living all these years mikejuk? The same stuff was said about Visual Basic 20 years ago dude!!!!
But thanks for the big laugh! hahahahaha
(wipes tears)
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.
I think this one dates back into 2006: http://thedailywtf.com/Articles/The_Customer-Friendly_System.aspx
"You can't help but think that this is the way all programmng will be done in the future.".
really? and who will be programming the templates that fuel your pop-up book 'programming experience'., or the OS it sits on, or the drivers... Playing 'connect the dots' is not programming or Computer Science. Programming and computer science should be taught as a branch of mathematics. If you don't know big O notation, algorithms, sorting methods, tree traversal, discrete math... you're not a programmer, you're a fancier LOGO/TURTLE operator.
I'll never understand why people that have a hard time groking how to set up a mail filter even with visual aids, suddenly feel the world of programming opens to them because there are pretty pictures.
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!
In the end it'll always boil down to efficiency. The size of the code vs the bandwidth speed of the server. The speed of the code's execution vs the browser's capability of executing it. And nothing will ever be able to match something hand-written to do the job. Just as there's a clear difference in program efficiency and size between something written in Assembly, C++, C#, Java, etc, there'll always be a difference between something hand-written for the task and something cobbled together by a visual tool incapable of automatically stripping out unneeded code.
> 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 ...
Uha? But even to demos don't work. "Even" in chrome. WTF?
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.
So, Java has successfully de-skilled programming into "Pointing and Clicking" and simple Typing.
Don't worry about memory management, it's hard, let Java/X do it for you.
Don't worry about algorithms, it's hard, let Java/X do it for you.
Don't worry about Performance, CPU cycles are FREE!
Don't worry about Memory, it's FREE!
If I wanted pointers and clickers and typists, I would hire them. I want programmers that can think, select algorithms appropriate for the task, and can think ahead to create fast, optimized code.
but the name 'Waterbear' brings to mind hairy homosexual men with urination fetishes.
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.
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
Is it a virtually unkillable polyextremophile like its namesake?
http://en.wikipedia.org/wiki/Tardigrade
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
I loaded the demo and nothing happened when pressing "Run" for Chrome or Firefox. What am I missing?
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
Or... you could do something similar with Illumination and generate Flash, iPhone, iPad, Android and Python applications. http://www.radicalbreeze.com/
Two legacy visual tools for you to Google: Layout by Objects, Inc. (DOS and Windows) and Prograph by Peregrine Systems (Mac).
You can't help but think that this is the way all programmng will be done in the future.
Said by the guy who can't even spell it. What a stupid comment, visual programming tools have been around for over 15 years if not more. They aren't as efficient or expressive as actually typing code it takes more time to express something than if you did it by typing it or using macros like everyone else. Not only that, given the provided screenshots it doesn't even look that good anyway, bunch of clipping and text positioning and size issues even in the provided screenshot.
I paid $32.67 for a XBOX 360 and my mom got a 17 inch Toshiba laptop for $94.83 being delivered to our house tomorrow by FedEX. I will never again pay expensive retail prices at stores. I even sold a 46 inch HDTV to my boss for $650 and it only cost me $52.78 to get. Here is the website we using to get all this stuff, BuzzPenny.com
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."
I assist with management of the Symantec Management Platform at my organization, which includes Workflow Solution, a visual .NET-based programming environment. We use this for all sorts of things, like client-side system information tracking (Helpdesk needs to know a client's computer name, os version, .net version, ip address, etc.), request interfaces to IT services, database integration, etc. It's got some serious shortcomings, mostly due to poor documentation (read: Nonexistant; thanks, Symantec) and the risk of complex projects quickly outgrowing the ease-of-use offered by the product. But overall, it's really saved me quite a large amount of time for developing quick interfaces, web services and processes, that can for the most part be maintained by lesser-skilled individuals in our IT organization. Just my $.02.
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
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?
I can't help but think you're not using the right drugs. They'll definitely help you sort through this problem.
Comments are nothing but language which has a decomposable structure. Nouns, verbs, adjectives... Definite articles? Definitely! There are only 23 helping verbs out there. That can't be too tough.
Creativity is not just a river in Egypt.
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.
Wow, it works great. I just load up a demo, and click run, a voila....
Error: invalid property id
Source File: http://waterbearlang.com/
Line: 4, Column: 37
Source Code:
local.shape = global.paper.arcslice({{1}}, {{2}}, {{3}});
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.
Well the demo doesn't even work in Chrome.
Or Firefox.
Yeah I'm not going to bother with it. JQuery hoooo....!
This article is clearly written by someone who doesn't ever write actual code.
If you have ever written software, and have ever played with Quartz Composer, you will understand the limitations of visual programming.
Another constant problem is that you have to manually dig around for the component wou want, drag it into place, and connect it up to the other elements (which you have to find, which gets harder as your application grows) and eventually you will end up with an unsightly mess of 'wires' strewn across your screen in a spaghetti-like fashion.
This process is ridiculously laborious compared to figuring out what to type, and typing it.
This kind of programming may however be a good entry point for starting programmers, so they can learn some of the logic that goes behind it.
I remember in my undergrad cs, when we studied digital logic, we had a mostly visual(?) program for building up logic gate circuts, and you could encapsulate components and use them in bigger components without being bothered by the smaller components inner workings... just the input and output pins. Do any higher-level visual programming 'languages' use this approach?