Skip to content

Modular Generation and Customization

The adventure in blogademics continues: I have posted a draft of my next paper. Comments are welcome - the deadline is 5/19. As of this moment, the related work section is still incomplete, but I will be continuously updating the paper.

Thanks to everyone who supplied references in response to my last post - you are in the acknowledgments.

[Update - people are choking on the syntax - LISP with curly brackets. I am going to delete the syntax and use outline diagrams exclusively.]

Collections with stable iterators

Oh oracle of the interwebs -

I am writing a GPCE paper, and one of the contributions is a model of sequences (AKA collections) that has stable unshifting positions. Standard collections use an array abstraction where access is by integer ordinal position, which shifts under insertion and deletion. This manifests as the fact that iterators are broken by insertion and deletion operations. Linked list iterators also break under deletion.

Does anyone know of alternative proposals with stable positions/iterators? I don’t know of any, but I can’t be the first person to do this. Continue reading ›

Sinners in the Hands of an Angry Programming Language

And now for something completely different. This post at the Jonathan Edwards Center at Yale compares my position on Beautiful Code with the theology of that other Jonathan Edwards. We are not related, as far as I know, but in a spooky coincidence we both went to college at the age of 13.

The modular transformation challenge

I got some good feedback here on my last paper. I want to see if I can get some equally good advice about what my next paper should be. My past papers have been about making programming easier. I would like to move on to making programming more powerful. Specifically, by making transformations and views a fundamental language feature. I have thought of a simple challenge problem that I might use to motivate and evaluate this idea. Please let me know whether you agree that a) this is actually an unsolved problem, and b) whether it is a worthwhile challenge. If there is interest, I will post this onto some collaborative editing surface. Thanks!

Continue reading ›

Informality sans Mysticism

Gregor Kiczales (of Aspect Oriented Programming fame) gave a keynote talk at OOPSLA’07 titled Effectiveness sans Formality (podcast and slides). Roly Perara has posted a critique, which reminded me that I wanted to discuss it too.

Continue reading ›

QWERTY vs. COBOL

There was a surprising pattern in the response to my talk during my recent road trip. I think of my work as trying to make programming more human-friendly. Yet the people most concerned with human factors had a common reaction: it just isn’t possible to reinvent programming languages from scratch. I was instead expecting negative reactions from the formal methods and analysis people, but some of them seemed to be quite entertained by my work.

Continue reading ›

Why Syntax Must Die

Roly Perera offers a critique of Subtext: Why syntax won’t go away. It’s great to get this kind of feedback. I like Roly’s visionary thinking – I hope grad school doesn’t pound it out of him. Overall, we are in violent agreement on many issues.
Continue reading ›

OOPSLA Gossip

OK, this is what everyone wants to hear.
Continue reading ›

Galactic Premiere of Subtext 2

Here I am live-blogging myself at OOPSLA. I guess you know you have arrived when you get heckled by Guy Steele. Actually the talk seemed to go over pretty well.

I have posted a video of essentially the same talk. As always, comments welcome.

Beautiful Code

O’Reilly just published Beautiful Code. I was invited to contribute, but I just could not go along with the premise. I disagree that beauty is a guiding principle of programming. Here is how I responded. Continue reading ›

Thank You

I have submitted the final version of my OOPSLA paper. What’s cool is that I got some very helpful comments on the blog and mailing list. I want to particularly thank Jacques Carette, Matt Hellige, and Macneil Shonle, whose comments were incorporated into the paper (and are acknowledged therein). Thanks to everyone else for their feedback and encouragement. It really means a lot to get this kind of grassroots support. I just hope I can now actually build something worthy of your interest.

Beachhead Dispatch

I have established a beachhead of sorts. A subset of the new model and UI is implemented. Everything is in place to launch the attack on conditionals. I have accumulated enough battle experience with C# and WPF to assess their strengths and weaknesses, which is the substance of this report. The bottom line is that WPF has some serious design defects, but as a package with C# it still looks like the best choice for my needs. Continue reading ›

Staying the course

I appreciate all the advice people offered in response to my last post. I have decided to stick with my previous choice of WPF for the UI. I hope it doesn’t turn into a quagmire. Continue reading ›

You are in a maze of twisty little classes, all alike.

OK, so maybe going with WPF wasn’t such a great idea after all. It is just so incredibly over-generalized and over-engineered. I am hitting my gag limit. I don’t have the time or the interest to become an expert on this monstrosity. I am scared of having to debug the mysteries hidden within this black box. They are simplifying it for Silverlight, but that is not ready. I have this sinking feeling that I have made a big mistake. Continue reading ›

Onward to OOPSLA

My paper was accepted. Phew! Now all I have to do is implement it…

See you in Montreal.

JavaFX

Sun just announced their entry into the Rich Internet Application horse race. JavaFX is essentially a domain-specific language for GUI construction layered on top of Swing. I rather like it. It reminds me of Tcl/Tk – light-weight, pragmatic, declarative rather than procedural. Sun must have been so desperate to not be left behind that they didn’t have time to over-design it to be all things to all people. If Sun can refrain from ruining it, it might turn out really nicely. Unfortunately it is not yet usable enough for my work. Continue reading ›

Goodbye Java

We’ve had 10 good years together, but it just isn’t working anymore. It’s not you, it’s me. Well, actually, it is you. I’ve found someone smarter, younger, and prettier. Yes, your little sister C#. There isn’t a nice way to put this: you need a major face job. Continue reading ›

Silverlight on Rails

I am looking to move to a better UI platform for the next version of Subtext. The two contenders are Flash and WPF. As it happens, I have stumbled into the first skirmishes of a major technology war between Adobe and Microsoft. I have a hunch about what Microsoft’s next move will be. In the finest traditions of the blogosphere I am rushing to broadcast my unfounded speculation. Continue reading ›

Brother, can you spare a pixel?

There is a lot of buzz these days about “Rich Internet Applications”. People are finally realizing that HTML is incapable of supporting a sophisticated user interface. AJAX is a reeking pile of hacks and cluges that offers only a glimpse of what could be possible with a halfway-intelligent browser platform. Many people are betting this platform will be Flash. Specifically Flash 9, Flex 2, and ActionScript 3. Maybe — but there is one dirty little secret no one is talking about: Flash is resolution-dependent. Continue reading ›

Switched to Mac — and back

I had a lousy cold all last week, so I spent it toying with a Mac. It seems that all the cool hacker dudes are on Macs these days and I wanted to see what it’s all about. I ended up installing Vista on the MacBook Pro, but Apple’s beta drivers are still too buggy, so I returned it. I have ordered a new Thinkpad with Vista. Continue reading ›