JavaScript Gets Visual With Waterbear 220
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."
Programming in the future (Score:3, Insightful)
Actual programming will never be done in this ridiculously simplistic, underpowered manner.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
You'd need/want to write shellscripts/wrappers for personalization though, but since that's
Re: (Score:2)
I bet I could still do whatever you were doing faster with a keyboard though.
Re: (Score:2)
Re: (Score:2)
Not if you already have the terminal open. If I could totally get rid of the mouse I would have already.
Practice will help you far more than any tool like this.
So do your shell scripting in a tool meant for that, vim does text highlighting.
Re: (Score:2)
Re: (Score:2)
I was thinking a multitouch screen. I have five fingers one one hand, so assuming a "palette" of "things to do"/basic operations (piping, flow control) on a panel at the edge of the screen I could put five things together at a time. Making simple array/list-like objects would also be intuitive using drag-and-drop. You could perhaps also pipe output to different widget-like objects (meters, graphs) for visualization.
You'd need/want to write shellscripts/wrappers for personalization though, but since that's something that I'd imagine most *nix users already do it wouldn't be that much of an inconvenience.
A mouse will, of course, be much faster and less fatiguing. Why move your hand a foot across a screen when you can achieve the same thing without raising your entire arm (or if you keep your touchscreen in your lap, unhealthily lowering your neck) with a 1 cm mouse movement?
Re: (Score:2)
Re: (Score:3)
I agree with you. I'd hate using this to code. Which is why all over-engineered projects will some day do it this way.
You know the ones I'm talking about - where you cross a Masters in CS with a jackass, subtract all common sense, give him the title of "Architect", and a budget roughly 20 times what the project should really cost.
Not only will all programming will be in diagram form, but the software will be shitty and nobody will like using it. But managers who don't code (but tell others how to) will lov
Re: (Score:2)
What about prototyping?
Then again machine generated code generally sucks, necessitating a sane rewrite anyway.
Re: (Score:2)
Unlike the grey beards, I think machine generated code producing crappy code is an engineering problem, not an inherent one.
By and large though, I don't think anyone is going to put in the raw effort it takes to produce good code. I mean for one job security...
Re: (Score:2)
Re:Programming in the future (Score:5, Insightful)
I'm not a Javascript developer, but working in the game industry, I've been involved in the development of mission scripting technology for a number of different games. In some ways the problem is the same: The people you need to write the code aren't necessarily comp-sci grads. It needs to be simple, yet powerful. I've seen multiple variations of both visual and textual languages used to represent mission flow, and the big problem I've seen with visual programming is that once a particular scripting problem becomes even mildly complicated in terms of requirements, the resulting visual script becomes a spaghetti mess which is far harder to understand than the lines of equivalent textual code. There's certainly a place for visual programming, but it's generally limited to fairly simple problems.
Basically, visual programming doesn't scale well with the complexity of the problem it's trying to solve.
Re: (Score:2)
I have seem some impressive diagrammatical programming systems before, but it is definitely tough to get right.
Re: (Score:2)
My last job was as a JavaScript/php dev for a call center. We needed to have work flow scripting and now.
Another team got tasked with doing it visually.
I got tasked with having it done now.
Guess who's still working on their solution?
The problem is the tasks themselves aren't that simple. When we broke down some of our more common calls, the resulting prototyped visios turned horribly complicated.
Re: (Score:3)
Clearly, someone's never worked on a Visual Basic project.
Re: (Score:2)
I was thinking the same thing, when I read your reply...
Re: (Score:3)
Re: (Score:3)
Try it and you will find why they abandoned it. Any decent size application become incomprehensible.
Re: (Score:2)
Anyone remember "Click n' Play"? That was the future if you asked me, before those verbal assholes ruined it.. If they had just continued in that process I would be expressing the ideas in this post with the dragging and dropping of icons and pipes by n
Re: (Score:2)
GUI-based programming has been attempted over and over and over for the past few decades with little success, unless you include spreadsheets.
There are good reasons to be suspicious that graphical computing languages using approaches like this one does will fail. Mainly because they've been tried before and failed many, many times, and not for the lack of attempts to patch them up.
Flow based graphical representations are limited by the necessity to draw connections. Lots of them. Until you have a huge me
Re: (Score:2)
If you look at hardware design, it's moved to verbal code from visual methods too. Way back in 1998, I was designing FPGAs using schematic-entry tools from Xilinx. Basically, you just plop down icons of AND and OR and XOR gates and inverters and such, and connect them by wires. Then you hit a button and the tool synthesizes the FPGA code to download to your device. 13 years later, how many companies are doing this for their ASICs? None. They're all using Verilog, a programming language (hardware descr
Re: (Score:2)
There's no visual do-it-yourself heart transplant tools either. For a reason
The primitive programming tools available make it too difficult to implement?
Re: (Score:2)
Just like there are no do it yourself books & tools & diagnostic equipment for casual drivers to work on their cars at home! Oh,... wait...
Ok, then. Just like there's no magic box in casual cooks kitchens to do things like cook bread or rice or whip up super quick meals! Oh,... wait...
I know. You want to feel special. But the natural progression of things is to put capabilities in more and more people's hands. You think you're a hotrod because you can fire up vim. 30 years ago, you would be c
100% accurate (Score:3)
The secret of good tools is that they hi
Re: (Score:2)
I think it's more likely you'll just tell the computer "write me a program that does X, Y, and Z". The computer will look on the Internet for code snippets and put garbage together until it works. If it sucks, you can optimize it or let the genetic algorithm run longer, but for many programs, it'll be Good Enough[tm].
Long way off, for sure, but Watson leads the way...
-l
Re: (Score:2)
If the men and women of this industry from 25-30 years ago saw what you took for granted today, you'd match your own definition of putting complete morons in charge of more and more complicated processes to a fault.
Re: (Score:2)
There's no visual do-it-yourself heart transplant tools either. For a reason.
Damn right there are good reasons why there are no DIY heart transplant tools. But then again, first aid kits are pretty useful things to have lying about. I trust you can see how the metaphor still applies.
Re: (Score:2)
Facebook is only less ugly because it will not let you do those crazy things. This means it is not even a comparison. They made it easy to use by crippling it. Programming can't be crippled in the same way if you want to get anything done.
Re: (Score:2)
Facebook isn't even real competition for GeoCities. People who were not web designers used to have useful websites there, with stuff like information on their various hobbies, to help other people who have those same hobbies. It made it pretty easy for say, a ham radio buff, to post some documents and tips n' tricks for working with XYZ brand ham radio, and make this available to everyone for free.
Now, to do that, you have to buy a hosting account, and then create your own website, and hope that site's si
Tool Wanted (Score:4, Funny)
Only sometimes... (Score:5, Funny)
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.
Riiiiight (Score:2)
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.
Re: (Score:3)
This 100times this.
No serious software can be written this way. Hell, shell scripts should not be written this way.
Re: (Score:3)
Oh, and Get Off My Lawn, ya lousy kids.
Re: (Score:3)
Pathetic, I once made a fully functioning system of street light controls out of nothing but logic gates, switches and wire.
That is not the point though, the point is visual programming is a total mess once you get to anything complicated. It is like voice input, it only sounds cool. In practice it is slower, less precise and a real pain for other people to deal with later.
Re: (Score:2)
Yeah, and annoying as heck when you're in a cubicle farm with a hundred other people yelling the same crap into their computers. This is why I seriously doubt voice computing ever coming into mainstream use unless it conjures us all individual offices at the same time (yeah, right...).
It might get rid of medical transcriptionists, though.
-l
Re: (Score:2)
Re: (Score:2)
That's lame. Instead of a legal note pad, he should have used the green engineering paper.
Re: (Score:2)
On a Z80, I think you had only 1K so that should about fit on a piece of paper.
And... 169, 0, 141, 208, 32, 141, 208, 33, 96
I'm sure a lot of people will know right away what this does - it's sort of a Hello World for a famous chip :)
Re: (Score:2)
Hasn't someone (GNU perhaps) started work on an out-of-browser JavaScript execution engine?
Plus, just like Java can be compiled with gcj, why couldn't JavaScript? Any scripting code should be able to be compiled in theory, it's just that no one ever bothers to write a compiler to do so because there's better languages for those purposes.
Nothing new here.. move on (Score:2)
snooze button (Score:5, Insightful)
wake me up when waterbear is implemented in waterbear.
Re: (Score:2)
Did you try it? It seems like it must have been implemented in waterbear, because everything feels like it was thrown together and nothing seems to work.
Graphical programming (Score:2)
Re: (Score:2)
Hell AmigaVision and HyperCard did as wll. It is an old idea and works great for trivial programs. Get to a large program that is say over a thousand lines and then things get iffy.
Re: (Score:2)
The problem with these visual programming languages is that they make the easy stuff super easy, but never figure out a way to make the hard stuff possible, so you run into roadblocks almost immediately when you start trying to use it for real.
Re: (Score:2)
We had an assignment to use that back at university in... 97? It was already discontinued at that point.
It was called something like Java Cafe... there seems to have been a product called "Visual Cafe"... but I can't find any screenshots to confirm it.
I think whatever it was may have been lost in the mists of time!
Re: (Score:2)
Re: (Score:2)
I'm pretty confident it was called 'crap'.
...in the future (Score:5, Insightful)
"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
Re: (Score:2)
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)"
Labview is the most gawdawful scourge released upon the computing world. Once I installed Labview on a machine with the defective Pentium chip running Windows Me. It disappeared instantly in a puff of smoke and b
Re:...in the future (Score:4, Interesting)
I've heard this before about visual languages, in a couple of different field, but it never pans out.
We could see these visual programming systems as versions of the "visual languages" that preceded full writing systems [wikipedia.org]. Very early scripts used ideograms, symbols directly representing ideas. These were replaced fairly early by more abstract systems, where the symbols represented words or sounds, which allow for much more sophisticated communication. These visual programming systems seem to want to take us back about 6000 years.
Kinda Cool (Score:2)
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.
Re: (Score:2)
> But its good to see people making these languages accessible for someone just starting out.
When I was starting out, I tried to use languages that were "accessible". I didn't get very far.
I threw that idea out the window and learned C instead. I learned how computers actually work. That was what made being a developer accessible.
Making javascript easy by using shapes and "drag and drop" so someone fresh off the typewriter can program in it, isn't really going to do much good for anyone.
1. they really ar
The future! (Score:2)
The website does not show right in FF. (Score:2)
The website does not show right in FF.
The dream that will not die (Score:5, Interesting)
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).
Re: (Score:2)
Visual programming is a dream that will not die.
Visual programming is to programming, what 3D is to displays. Hey maybe we can have 3D visual programming on a trusted platform touch screen desktop - in "HD". Yeah...No
Re: (Score:2)
True about visual programming, but I've always found it a great shame that Web never took off. You write your code as a story and then the compiler separates your explanation into documentation and the code into a compiled program. Way ahead of its time. One of Donald Knuth's ideas. See http://www.literateprogramming.com/ [literateprogramming.com] for more information.
Heh - comparing waterbear to literate programming is sort of like comparing a donald duck comic with War and Peace, come to think of it :)
Re: (Score:2)
You write your code as a story and then the compiler separates your explanation into documentation and the code into a compiled program.
If that lights your fire, you should look at .
The compiler is written in a variant of Web, too.
Re: (Score:2)
rargh. You should look at Inform 7 [inform7.com].
Re: (Score:2)
I remember IEF, later Cool:Gen, [wikimedia.org] that took flowcharts and generated the most hideous and confusing COBOL code I've ever seen. And considering how many godawful COBOL systems I've worked on I was impressed and horrified at the same time.
Re: (Score:2)
Plenty of domain-specific languages use a visual paradigm of stringing things together, and one of the most successful is LabVIEW.
The key to VP is DOMAIN-SPECIFIC. In a general-purpose form, it just isnt workable.
Can't help but think what now? (Score:5, Insightful)
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.
Re: (Score:2)
Heh... It's bad enough when someone goes and does a "program" with Mathcad and expects to have it gracefully and efficiently handle HUGE datasets and things like it. This tends to be even worse when someone doesn't see this for what it is- which is a learning aid. I've seen all sorts of train-wrecks where someone thought they could do without a Software Engineer or Programmer and tried to wing it with something like this tool. For over 25 years I've seen this sort of stuff. COBOL was the first attempt
Re: (Score:2)
Regardless, no, I can't help but think that most programming will never be done this way.
I'd throw it on the pile of making code that my non-techie manager understands. The premise seems to be that the manager is smart enough, if only computer code didn't look like computer code. And maybe for the domain knowledge part, he is. But if he has a budget... well, let's just say that people might be motivated to slip something in under his nose. All the charts, user manuals and documentation in the world won't save said manager from disaster. If you don't believe me, ask Kazuo Hirai.
Enhanced interrogation methods (Score:2)
I can't wait for my CPU to get waterbearded, desperately gasping for air.
Re: (Score:2)
can't wait for my CPU to get waterbearded
I believe they usually use a towel.
Images are always better than language (Score:3)
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.
Re: (Score:2)
That's far, far from true. And you know this to be the case. If it were so, Baen wouldn't be making money like they do.
Re: (Score:3)
Baen must not have a book called "The idiot's guide to sarcasm".
Nope (Score:2)
"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
Suuuure it's the way of the future... (Score:2)
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.
Looks a lot like (Score:2)
What? (Score:2)
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 syst
yeah, the future (Score:5, Funny)
Re: (Score:3)
Your point is well-received. ASCII is very expressive wi
Re: (Score:2)
Re: (Score:2)
oh no, not again (Score:2)
> 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 wi
So if that's the future ... (Score:2)
... 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 ...
You know who'd hate this? (Score:2)
Mel is turning over in his grave. [utah.edu]
Programming the the future.... (Score:2)
Coding, as we typically do it today, would not gen
We have poor calling semantics in our code (Score:2)
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
Needs a better UI (Score:2)
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 w
We ARE just pushing around little blocks now (Score:2)
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.
In the year 3000... (Score:2)
In the year 3000 computers will write their own code and humans will be obsolete.
Take a hint from human languages (Score:2)
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:
Looks like... (Score:2)
... Google App Inventor.
Why does that sound familiar? (Score:2)
http://www.macosxautomation.com/automator/ [macosxautomation.com]
It's the future! (Score:2)
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 can't help but think (Score:2)
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.
Blah (Score:2)
You can't help but think that this is the way all programming will be done in the future.
I hate statements like that.
Re: (Score:2)
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.
tout revient à la mode (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
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.