I made a screencast explaining the new type system of Subtext 5: type as subtext
I have also refreshed the subtext website and redirected it to subtext-lang.org
Another masterpiece from Bret Victor: The Future of Programming.
What you probably don’t know is that his talk was actually an hour long. The second half was censored from the internet by an as yet unexplained mechanism. Luckily his talk was written on sheets of cellulose which survived the digital attack. I have seen these slides and can exclusively reveal their contents.
Continue reading “Leaked transcript of censored Bret Victor talk”
There is one gigantic problem with programming today, a problem so large that it dwarfs all others. Yet it is a problem that almost no one is willing to admit, much less talk about. It is easy to illustrate:
Coding again at last! In Dart. Herewith are my initial experiences with Dart.
Continue reading “State of the Dart”
Time for a progress report, now that I have some progress to report. I didn’t get much research done last semester because I was teaching a new class: 6.170 Software Studio. It was a noble experiment with mixed results, but that is another story. Back in March I presented the latest version of Subtext at the IFIP Working Group 2.16 on Programming Language Design. I realized then that Subtext should be statically typed. Ever since I have been falling down the rabbit hole of types.
Continue reading “Down the rabbit hole of types”
The process of constructing instruction tables should be very fascinating. There need be no real danger of it ever becoming a drudge, for any processes that are quite mechanical may be turned over to the machine itself.
– Turing, A. M., 1946, Proposed electronic calculator, report for National Physical Laboratory, Teddington
So was Turing wrong, or are we just doing it wrong?
Zed Shaw has another awesome rant at http://vimeo.com/43380467. I agree with much of what he says about both the web and OO. I don’t see the causal connection though: they both suck, but it is probably just a coincidence. However the best part of the talk was when he invoked the voice in the back of your head whispering “bulllshhhiiittt”. That nails what programming is like for me. Most of what we have to deal with is just so wrong wrong wrong. Having to get stuff done despite the deep wrongness of it all leads to textbook cognitive dissonance. I have always been slightly amazed by the people who seem so happy and satisfied with programming. I suspect that it ultimately comes down to personality differences. I also suspect that it is a hyper-sensitivity to wrongness that drives misfits and rebels ranging from Steve Jobs to the Unabomber. Does anyone else feel the wrongness of programming?
Update: the other thing I like about Zed’s talk is that it aligns perfectly with my research direction. Decades of listening to that whispering voice have driven me to develop a post-object language. I think the best way to demonstrate this language is by reinventing the web. So I am traveling the same path as Zed but in the opposite direction.
The discussion on the last post suggested Domain Specific IDEs as a possible way forward. By restricting the domain (e.g. games) the IDE might gain enough semantic insight into the program to properly support advanced interaction designs like live code execution and direct manipulation of results. Well here is a perfect example: the Iguana Translator. These guys have done a great job building an advanced programming experience for the domain specific problem of mapping between data formats. I love seeing new ideas deployed out on the front lines of programming. Hats off to iNTERFACEWARE.
Continue reading “An IDE is not enough”
On Kickstarting research I asked for comments on the Light Table project. They were largely positive. Now, for the sake of argument, let’s assume this will be a complete disaster (a reasonable assumption based on history). What are the consequences?
Are people going to be pissed off and give similar efforts a bad rap? Or will they just see it as $50 donated to a good cause? Or, to paraphrase P.T.Barnum, is there a micro-investor born every minute?
Chris Granger has a Kickstarter project to fund his IDE concept Light Table. He is looking for $200K and already has more than $100K in 13 days. It took him 6 days to build the demo.
There is much I want to say about this, but it all pales in comparison to the raw facts above. Let’s skip the sterile debate on whether there is anything intellectually new in the proposal. What is the bigger meaning of these events?
It’s time to put it down on paper: http://splashcon.org/2012/cfp/due-april-13-2012/380-onward-papers
I saw an interesting demo at SPLASH of an end-user visual programming language: Cloud Extend. There were two main interesting points. First, it is used to build plugins for Salesforce. Major web applications like Salesforce, and especially Facebook, are becoming software platforms unto themselves. This is a great target domain for end-user programming tools.
The second interesting thing was how radical they are in conceptually simplifying the language. For example, they tried eliminating variable binding, essentially using only global variables. That turned out not to work, so they brought back a limited form of binding. I really like that they are going at conceptual simplicity rather than the focus on syntactic simplicity that most end-user work seems stuck in. For example, rather than use standard nested if-then-else blocks like everyone else, they have imposed a global decision-tree structure on the program. Whether or not that works, it is the kind of radical simplification we need to make progress. I also like that they are working with real end users, and adjusting based on what works. This language is a valuable data-point on how simple we can make an end-user programming language, and has some fresh thinking. Worth following.
I have also been spending a lot of time thinking about my “market”. I have an idea for targeting web/mobile apps with a new twist. More anon. In other news, I am going back to calling the language Subtext. The name is apropos to my new direction, and it seems to be my brand. People ask me if I’m the “subtext guy”.
I saw some interesting work on touch programming languages at Onward. You may already have seen Codify. That is still a mostly textual language, as the clickety-click of the keyboard in the video attests. The new research explores how to program entirely in touch, which requires avoiding typing as much as possible.
Continue reading “From text to touch”