Programming Means Text Editors

In the beginning, there was no difference between using a computer and programming.  That was the only way they worked; you created a program with punchcards or whatever, and the computer ran it. Well, not you.  Your dad maybe.

Then some history occurred, and you could use a computer without writing your own programs for it or even knowing how.  And then some more stuff happened, but using a computer was sometimes similar to programming still.  This was during the era of interactive prompts, like on the Apple II computers or in DOS sort of.  You’d type commands and the computer would run them, and sometimes you’d save a lot of commands and the computer would run all of them in a row, and you could save them for later.

Then people started writing fancy UIs for computers, and those caught on, and computer use spread.  But now using a computer is really totally different from programming one again.  I know there are higher level scripting languages, but there’s still a pretty thick border between writing code and running applications.

So why hasn’t programming kept up?  If we can make a simple, “intuitive” UI layer for our operating systems, why don’t we have simple, intuitive UIs for programming?  Why is does every programmer still use text editor, however fancy?

I really don’t know what a textless-UI development environment would look like or how it would work.  I guess it would be similar to visual basic or MFC or whatever the current generation of that stuff is, but those have always forced you to know syntax for an actual language, and write some text yourself.  Seems like WYSIWYG programming is right out, not even really making sense, but there’s got to be some middle ground.

Advertisements

7 Responses to Programming Means Text Editors

  1. I think Apple shares this view. Cocoa has Interface Builder which smoothes over a lot of the pain-points for GUI application development and Automator provides WYSIWYG scripting. Both are well designed and only wrap lower layers you can access directly if you need to. Neither is a “solution” to the problem, but maybe a step closer.

  2. MQG-9178 says:

    Uh, what about visual programming languages like Scratch, eToys, Squeak, or the like? I think the problem is that visual programming languages haven’t taken off at all. Just my $0.02

  3. greyfade says:

    The answer is simple:

    UIs necessarily abstract away the underlying work to perform a task. This is entirely antithetical to the task of creating software. There have been *several* attempts at making programming UIs, and *all* of them have been complete failures. The more you hide behind a button or control, the less it’s capable of doing, and that has been demonstrated time and again.

    Frankly, anyone who needs a button to do their work for them shouldn’t be programming.

    • joblivious says:

      grefade: I agree with you that it seems to take away your power to program, but compare Python to C. People said the same thing there. Then compare C to machine language. The same arguments happened. The evolution of programming languages looks a lot like the gradual removal of the confusing parts that you can work around.

  4. David says:

    Well they tried that with Visual Basic to mixed results. Also I vaguely remember a PLC interface that used logic icon blocks to string together actions to running robotic machinery… it did alright. Words are quite possibly one of the most verbose tools of symbology(sp?) we’ve got and they’ve come a long way from three character ASM symbols.

    My thought it, don’t go looking for a solution to a non-existent problem.

    • joblivious says:

      David: I agree with you; their results were mixed. I don’t think that’s a valid case for the rejection of a full UI-base programming environment. Visual Basic and its successors, like MFC, were still a mix of text editor and UI. In the rough drafts of this post, I mentioned them, but I removed them in the interests of going for brevity.

  5. ljlolel says:

    Hi,

    a few things.

    1. Love the blog

    2. Check out Subtext. Watch the demo video. I was very skeptical at first, but it seems very well thought-out and powerful. (http://subtextual.org/)

    3. Don’t just assume that because we have lots of GUI’s around right now, that the best interface is a buttony, icon-filled, point-and-click GUI all around. Check out Jef Raskin’s “The Humane Interface.” Jef Raskin is a brilliant interaction designer who designed the Macintosh. His book will completely change the way you think about computer interaction. His ideal interface is very text based, very efficient, very powerful, and very easy to learn.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: