Google Blockly — a Language With a Difference
mikejuk writes "There are aspects of Google that increasingly don't make sense. First they dump App Inventor — a graphical language for Android apps — in a fit of spring cleaning and closures — and now they have launched another Scratch-like graphical language, Blockly. However Blockly is different. It works like Scratch or App inventor but it is written in JavaScript. This means it can be included in any web page or web app very easily. This, in turn, means that it can be used for education, getting people to learn to program, or as an easy-to-use script generator for the app. The FAQ gives the example of automating GMail filters and management. The additional difference is that Blockly can compile its programs to JavaScript, Dart or Python so you can take the script and develop it further. This is a really good idea. As long as Google doesn't throw this one out in a fit of reorganization and spring cleaning, it's a welcome new language."
I thought Minecraft had comprehensively solved the problem of creating a Turing-complete graphical programming language. It's redstone all the way down.
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
There are things Google does that don't make sense, such as X and Y. Now they've done Z that makes sense of X and Y. I sure hope they don't do to Z what they did with X and Y!
When you bring a product to market, your users just don't expect it to suddenly go away and be replaced by something else a year down the road.
If you violate this expectation too many times, people will stop paying attention. For this reason, "maintenance mode" is one of the most overlooked -- yet most important -- parts of the product lifecycle.
Look Google, yeah, we get it: you like inventing stuff. Great. But here's the thing -- people want to use the products you've invented. We'd rather have you support your existing products than throw them away and spend a year or two developing a replacement. Yes, there's a cost to doing this. But if you care about the long term, you'll put in the extra effort.
There's no -1 for "I don't get it."
Google can start something like this, but they should reach out to individuals, Universities and other corporations that may be interested, form a foundation, and let it be free as in freedom. If it is something interesting and people want to use it, more people will contribute effort to growing and maintaining the environment. If Google finds it useful, then Google can contribute money or time to the foundation and leverage the efforts of everyone else involved. In the long run it is better for Google and for people using it.
..."building an app graphically" is to "learning programming" what "using a calculator" is to "learning math." You've replaced an actual understanding of the underlying process with a bunch of buttons to be punched.
It's only still "programming" if you have the knowledge to do it without the tools, but not the time.
As long as Google doesn't throw this one out in a fit of reorganization and spring cleaning, it's a welcome new language.
If the sun doesn't come up in the morning, I can sleep all day!
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
We've developed this new language that... SQUIRREL! Oh, what was that language again. Screw it. Let's dump it and develop a purely functional... SQUIRREL!
May I gently suggest that another language is NOT needed, and that rationally built, compatible extensions and frameworks added to existing languages might, instead, be far, far more useful. C to C++ worked.
Please do not read this sig. Thank you.
Yet Another Google Language.
This will be another failed product by google.
I'm seeing no evidence this is a Google-backed project, at least in the links provided - it's a project from a guy who works at Google, that's all. So expecting Google to guarantee this exists in perpetuity is not particularly realistic. Realistically, you should have the same expectations you'd have on a project from, say, SourceForge.
Basically this looks like a Javascript re-envisioning of Apple's Automator. Might be a fun toy, but not much more than that.
#DeleteChrome
..."building an app graphically" is to "learning programming" what "using a calculator" is to "learning math." You've replaced an actual understanding of the underlying process with a bunch of buttons to be punched.
It's only still "programming" if you have the knowledge to do it without the tools, but not the time.
You've just summed up Google's whole business model.
Who cares, it's not real programming anyway. To teach someone programming, you have to convey both the concepts - ok they get that - and the ability to grok structures made of text. No structures made of text grokking, no programmer.
While I've never made time to go do the experiments, I've often wondered why someone hasn't done a Python IDE that provides a Scratch-like UI, but manipulates the Python AST directly. Seems like that should be doable.
Anyway, I believe Scratch-like interfaces are the future of programming languages. Much as when Backus discovered Noam Chomsky's formal grammars and compilers development as it was done in FORTRAN and COBOL was replaced by a grammar-driven parser in the development of Algol, and pretty much all languages since, eventually, the Scratch-ification of the IDE will become the "obvious" replacement for linear streams of ASCII character codes.
Why is "mikejuk" allowed to just post his own opinion pieces as news?
I've taught quite a few courses ranging from traditional programming to tools such as Adobe Flash (which allows you to use any combination of the graphical tools and ActionScript, the latter being a full-fledged object-oriented programming language, with GC and all the other modern niceties). I've drawn boxes around variables to symbolize how they contain the values, I've given assignments to write pseudo-code, I've demonstrated the concept of algorithms by asking students to give me clear instructions on how to order a stack of documents alphabetically, when I only know how to access them by index and compare two documents... and I'm not sure if any of that has been worth the time.
I don't think I've ever run into a student, who would have been able to actually grasp the concept but would then have stumbled because the code part is difficult. There are people who can grasp the concepts and who then have no real trouble with the code and then there are people who don't really understand having one loop inside another, no matter whether you allow them to write down code, draw flowcharts or whatever.
Also, is there any evidence whatsoever that these "graphical" languages are easier for people to learn?
My kid is 5, and he spends hours writing little programs in Scratch. The click and drag aspect of the graphical language makes it much easier for him. If he had to rely on his nascent typing skills to write code, he'd be stuck in the frustration of Syntax Error Hell, as I was for years when I first started pounding out Basic code on the Apple II.
SpyDock: Scientific Python in a Docker container
After some playing around, i had a script that could solve the maze with
while(true){
turn(left);
while(wall(ahead)){
turn(right);
}
move(forward);
}
assuming i was given an api with functions like turn(), wall(), and move() and they took those constants it would be a hell of a lot easier just to type what i typed there than to navigate menus and drag things all over the place. maybe it's inviting to non programmers, but sooner or later they are going to realize that the punctuation isn't what's hard about programming, it's the logic.
You're quibbling over symbology, while missing the important distinctions.
At the most trivial level, just about all programming is "graphical". Characters are symbols. A two-dimensional array of symbols is a graphic. You don't think of it as a graphic, but there it is, right there on your display.
If you've got a graphical language that lets you drag colorful boxes around, snap them together, and watch them twinkle contentedly as the program executes, how exactly is that different from using text? If it's "less rich" -- if there are constructs available in a "conventional language" that aren't available in the graphical language -- then we can discuss the graphical language's particular deficits, and perhaps correct them.
Model-Ts were "any color you like, as long as it's black". It was General Motors that started coloring things up and I think they also invented model years. The model year is a not so subtle suggestion that you are driving an "old" car even though it still runs fine.
As people "acquire" technology like search and programming languages, the people who made their scratch creating these things are left with nothing to do. You might think they'd move on to create something entirely different, or that they'd move into maintenance mode as you suggest. However, they have special expertise in creating not maintaining, and moreover they have special exerptise in creating particular kinds of things. The easiest thing for them to do is fool people into believing that thing A is obsolete so they can create thing B which is fundamentally the same. They maximize their profit that way. It's not so much malice as it is simple laziness. It's economics 101, really.
People want recurring revenue. It's the next best thing to economic rent. Or as I like to say, "everybody wants to be a subsidized farmer".
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
It's just the normal programming blocks, while untill, if, and then some actions and boolean expressions... Where you put things together like blocks... It's for people who can't type the keywords in plaintext and would thus rather drag n' drop the keywords... Doesn't make sense...
:)
By the way I doubt this is a product, looks more like an experiment. And let not blame Google stop wasting money on this when they do...
Instead I'd give them a little respect for wasting money trying to make something that might be slightly new, though I seriously doubt it is
Anyone remember HyperCard?
Drill baby drill - on Mars
And now Oracle seems to be getting blacklisted in the industry, which is good. A lesson well learned for those that become greedy and try to change the way of open source
I got a version that looks like this
when (aProblem.comes(along)){
you.whip(it,must);
}
before(cream.sitsOut(tooLong)){
you.whip(it,must);
}
go(forward);
move(ahead);
try(detect(it));
if(it != too late) {
you.whip(it,good)
}
blog
At the rate they float these trial balloons then yank them back just as you get used to it, no thanks.
Google is far too unstable with their 'extra' offerings to even warrant a look at them.
---- Booth was a patriot ----
It was open sourced and is available at http://beta.appinventor.mit.edu/ I plan to use it with my kids this summer.
and nowhere near as egotistical to name the language after itself either
It works like Scratch or App inventor but it is written in JavaScript.
Stop reading. Lose interest. Next story.
I am looking forward to seeing this type of site.
Be prepared for disappointment.
It works like Scratch or App inventor but it is written in JavaScript. This means it can be included in any web page or web app very easily. This, in turn, means that it can be used for education
You mean like javascript?
If this is the beginning of a 'Rosetta Stone' project then I'm all for it.
Spoken language translation is getting pretty good. I don't see why formal language translation and interoperability should be behind.
Is this really a language as much as it is an IDE that saves to Javascript, Dart, or Python?
Well, you could say the same thing about C and C++. C++ code is "saved" to C code and THEN compiled to machine code (at least that's how it used to work) using the C compiler.
With the first link, the chain is forged.
Does anyone know if there is a Maven plugin that can unit test my Blockly apps on our Jenkins server?