Okay, this sounds like an April Fool’s Joke, but it isn’t: in the past week or so, the middle knuckle of my middle finger has started hurting. A moment ago, I just flicked the scroll bar on my mouse and had a serious shooting pain as my finger “tented”: I think I have a repetitive stress injury! Amazing — typing is such a major part of my life that I have finger strength like a rock climber and I’ve never had the slightest indication of carpal tunnel syndrome. To have my wickedness felled by a mouse wheel — What a world! What a world!
Michael Platt sez: “General purpose, high performance transformation from one domain or space to another is not possible without the algorithm linking those domains.”
Good point. Does it invalidate my comments on visual programming? I don’t think so; I think what it does is appropriately introduce a certain amount of discipline early in the process. “Design the data structures first…” has been a theme of this blog for the past couple weeks and it would certainly need to be applied to the problem of visual programming.
Eric Newcomer doubts that visual programming is viable. I disagree. Visual programming is usually conceived to be executable UML, which is a terrible concept. I’ve argued against visual programming in the past, pointing out that developers value information density and won’t embrace something that takes half a screen to express “a = (b == c) ? d : e”.
But I also just read a eulogy to Hypercard and not long ago I re-read Fielding’s REST thesis. Also, I’ve long advocated the concept that the spreadsheet is actually a class of computer programming language whose metaphor is so simple to grasp that its potential expressiveness is ignored. I’d argue that if you combined the hyperlink with the spreadsheet so that you could zoom “in” and “out” (essentially, a “cell” could present the results of /traverse to an entirely different spreadsheet) and provide facilities for creating GUIs (by, for instance, providing access to the .NET BCL), you’d be well on your way. If, in addition, intercell dependencies could be generated with mouse / pen gestures, I think you’d have an interesting system. Note that this theoretical hyperlinked spreadsheet language would be programmed using spreadsheet visual metaphors, but wouldn’t necessarily have to deliver a spreadsheet-like interface to the end user.
Incidentally, there was at least one compilable spreadsheet for DOS. As I recall, it came out in the late 80s and was a victim of the Windows Software Extinction Event.
Microsoft and Sun have announced that it was all a sad misunderstanding and that from now on, they’re best friends for life. Okay, stop smirking and play along: If Sun and Microsoft were to decide to cooperate closely to serve the needs of the entire development community, what would be great possible initiatives? Visual Studio for Java(tm)? J2EE for .NET?
I’m very excited to announce that as of today, April 1st 2004, I’ve become the world’s first micro-outsourced developer. I’ve hired great developers in Bangalore (GMT +4.5), Cameroon (GMT +1), Brazil (GMT -3), and Vanuatu (GMT -7). My job is to write the unit tests. I post them as binary assemblies to our Groove workspace at any time of day or night, “injecting” them into a 24-hour implementation workday. After several low-profile expirements with Rent-A-Coder “open bids,” I’ve determined that this “4/1” configuration provides the best balance of quality, reliability, and cost-effectiveness. I pay piece-rate, but my guys are averaging just over $4 an hour, with which they’re delighted. Meanwhile, I’m averaging 1230 lines of clean code per day (at 30 lines of code per function point). At this rate, I am anticipating shipping my first application (a game for the Tablet PC) in time to compete for the $100,000 ISV prize, with out-of-pocket expenses totalling around $8,200.