Hacker News new | past | comments | ask | show | jobs | submit login

I think it's more about teaching kids/newbies to think in a programming way. That can be language agnostic. You're essentially trying to achieve something "complex" using simple instructions. At a basic level that's a great way to learn programming. As the problems get more complex it becomes obvious why paradigms & architectures exist, and your programming skills can improve.



I think that's the thing? Block programming languages come from folks who write "CS education" literature as opposed to the "new programming languages" literature. They're turing complete, because curriculums require teaching the use of if statements and for loops, but that's about it.

If I actually wanted to use a block language at my day job I'd want affordances for larger, more complex programs. Compiler or JIT, copy/paste, zooming in and out of parts of programs (ala Prezi or something), integration with source control diff tools, C extensions / integration with existing code, console output, file I/O, etc.


Whilst it was never completed, as funding for the program was diverted elsewhere, I worked on a team at a university using Blockly [0] compiling it to Lua, and parsing from Lua back into our specific runtime set of Blockly functions.

It could do absolutely everything that Lua could do. We also added a kind of multifile support, using tabbed views to reimplement libraries on the browser side of things (compiling into separate Lua files).

The idea was that educators at both ends of the spectrum could convert to and from the same visual representations. The primary school classes the uni were running could use blocks, and slowly move to normal Lua, one feature at a time, all the way up to the first and second year ICT programs for higher ed.

Because it could compile to Lua, we could use git and a whole bunch of other tools that already exist. There was an experimental C/asm.js branch to add in FFI support, but that was deemed too time-costly whilst the rest still had a bunch of edge-cases.

And then, unfortunately, the whole program got yanked. But about that time it was close approaching what I would consider "useable" for actual real work.

[0] https://github.com/google/blockly


Sounds like a wonderful tool for fundamental CS courses and projects. I remember assignments like creating a Cesar Cipher using Java, being distracted by tangential stuff like what the static keyword means and importing libraries. That language was a lot to take in, just tuning-out the noise from what I needed to learn. Something like half the class did not take the second course. Most of the thrash had little to do with the assignments themselves. Being able to toggle between a visual representation of the program and the code helps students' comprehension of the core concepts immensely. That much is obvious when you work with kids on Lego robotics projects. I could imagine a tool set like that, with the flexibility to build something like a console blackjack game. It would quickly become a standard for teaching secondary school programming courses. Hopefully someone else will take up that torch before my own kids are looking at learning how to program.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: