Inventing on Principle

edited in General
Found this little gem on the interwebs...thought I'd share, enjoy:

Here is some more from the same guy:
Thanked by 2Tuism francoisvn


  • I'm only 30 minutes in and I'm flabbergasted at the amazingness. Thanks for sharing!

    Now I have a question - is this a principle in tool building, to facilitate the creative process, or is it a tool that we have access to? Because I know for a fact that Game Maker can't do this. Unless I build it myself, right?

    Oh Em Gee I really wish I could do things like this.
  • This guy makes some amazing stuff... I watched the data visualisation vid before, and I really wish I could have it. (At the time, you could not, and scanning his web site now, I don't see any tool downloads :--/). I think for many tasks it would be such a big boon for productivity...

    @Tuism I think building this kind of software is highly non-trivial. It looks like he is using Javascript, which I think is easier to interpret dynamically. (It's posible with many language, and GML is of course already interpreted; not sure if that is exposed though, but even if it is you will need to write an mini IDE for it to be useful).

    I have been feeling frustrated with code presentation for a long time now. When presentation was properly separated from HTML, it made a huge difference to the web and the way we structure data. I wish we could have the same for raw code... Why can't we have code that is formatted to show structure (bigger fonts for function names for instance), doc-comments that we can format WYSIWYG instead of stupid syntaxes... why can't we link in images; or drag and drop code blocks? Why can't I highlight blocks of code, or add comments Word-style? Code presentation technology is 10 or 15 years behind :--/

  • This was awesome. I can only imagine if they taught programming like this in school. Thanks for sharing @Tuism
  • Lol I only now saw you didn't share it. Thanks to you @SquigyXD //facepalm
  • @hermantulleken I totally agree that making something like that is non-trivial. And yes I see that he's using java and the likes, which is nowhere near the... Bulk? I don't know how to put it - the complexity of the Compiled languages. Can it be done with compiled languages? Unity? C++? Or whatever we build in?

    My thoughts would be if we could "block off" the code to run in sections it could happen, but I'm really just talking in ideas rather than any actual knowledge.

    Tools like this would up productivity immensely. Like, crazily. But to build a tool like this for our own personal project use is a huge drain on that productivity in the first place.

  • I have a huge nerd crush on Bret Victor. I wouldn't expect to use any of his tools anytime soon. Rather I think he sees his role as a challenger of assumptions, and in some respect he has already inspired a great deal of people into action. The lightable IDE for instance owes a great deal of its existence to this talk. Indeed I've mucked around with a few ideas for my own IDE.

    Many of his more ambitious ideas require radical technical advances and paradigm shifts. But it's still a good thing he's posing question in the first place. I think what people are mostly going for though is the wins available today, ie improving our tools. One tension I've noticed in his ideas is that building specialized tools can be a great boon to productivity. For instance I often consider that building UIs in code is far more effort than it should be, and that some special tools would be awesome. Yet with specialization you lose flexibility.

    Taken to its logical conclusion you end up with a tool like flash ( the application not the runtime ). A tool to make building interactive UIs and yet I haven't used it in over a year of daily flash/actionscript work because the tool couldn't keep up with technology. Ultimately the lack of flexibility in the assumptions used to create the tool in the first place reveal themselves and it becomes irrelevant.

    That is why I think plain text is so powerful as a fundamental building block. The languages and technology might change, but it takes nothing more than a text editor to write code. That guarantees that no matter what direction technology takes there will always be a capable tool to manipulate it. I think in many senses that might explain why our toolset for programming is stuck in a time warp: because of the flexibility afforded by a text file and some code outpaces the opportunities for our tools to catch up. Not nay saying, just that I think this is an aspect that once solved will enable incredible tools like those bret victor talks about.
  • I think one of the things he's advocating is that we shouldn't be trapped by this idea we need "flexibility". We need tools to do what we need to do. His tool that he made the platformer with, he couldn't make the leaf animation with, and vice versa, yet those tools would make creative output in either "specialisation" a million times faster, better, and more creative.

    Of course, those tools are super specialised - because they're non-commercial and arguably just for his personal use - but that's the far far extreme compared to, say, text editors. I believe that in all things, extremes are bad. There will be several points of balance that would harness the optimal cross-section of goodness from either side.

    With the advent of touch more and more "natural input" are becoming reality, which is going further and further towards translating the human intention as easily and closely to machine code.

    Here's to hoping... Damn I wish I could use that tool he has there for that rabbit animation.
  • @Tuism Most modern languages nowadays support that kind of thing (I know C# does, for instance), but not sure about machine friendly C++ and its ilk...

    @Funtastic... what is the lightable IDE you talk of? It sounds interesting.

    I think you are right about the power of text. (Every visual programming I have worked with scaled very badly. I also find it soooo slow). But I would like the code-text to be more readable. For instance, can't there be hidden HTML and CSS in the background that make the code more structured? (I mean, it can still change doc-comments to doxygen syntax in the background.)

    It would be awesome if a company like Microsoft could throw their millions at the problem and build the thing for us.
  • sadly only for select interpreted langs

    My idea centered around bringing some of that awesomeness to compiled langs with some of the stuff you mentioned. Agree there is scope for radically better tools. Debuggers for instance have terrible ux but are really powerful tool. I lost steam when I realized I needed to understand compilers to get anywhere though.

    @tuism I think there is reason any decently sized production has a tools team ;) what I'm commenting on though is how do we make programming on a whole better. I want better tools to make tools with! ;)
  • Very cool talk.

    Some of this (not all of it, for sure) is pretty staple in tools like Visual Studio and Blend - especially if you're working on Html, Javascript and/or XAML. If your're using Chrome there are lots of dev tools and visualisers for javascript that make the process more transparent, and the feedback cycle more immediate.

    Many javascript projects also use something called dat-gui ( for adjusting variables on the fly to experiment with them visually. For example:
Sign In or Register to comment.