Want People to Use Your Language Under Windows? Do This.
Programming in the 21st Century - James Hague - July 28, 2009Whenever I hear about a new programming language or new implementation of an existing language, I usually find myself trying it out. There’s a steep cost—in terms of time and effort—in deciding to use a new language for more than just tinkering, so I’m not going to suffer through blatant problems, and I admit to being sensitive to interface issues. Nothing gets me disinterested faster than downloading and installing a new language system, double-clicking the main icon…
...and being presented with an ugly little 40x24 character Microsoft command window using some awkward 1970s font.
(Now before the general outcry begins, be aware that I’m a regular command line user. I’ve used various versions of JPSoft‘s enhanced command processors for Windows for close to 20 years now, and I usually have multiple terminal windows open when using my MacBook.)
The poor experience of this standard command window is hard to underestimate. It always starts at a grid of 40x24 characters, even on the highest resolution of displays. Sometimes even the basic help message of an interpreter is wider than forty characters, causing the text to wrap in the middle of a word. The default font is almost always in a tiny point size. Cut and paste don’t work by default, and even when enabled they don’t follow standard Windows shortcuts. And, rather oddly, only a small subset of fonts actually work in this window.
It’s possible to do some customization of the command window—change the font, change the font size, change the number of rows and columns of text—and these will take it from completely unacceptable to something that might pass for 1980s nostalgia. But that’s a step I have to take manually. That initial double-click on the icon still brings up everything in the raw.
Basic aesthetics aside, the rudimentary features of a monochrome text window limit the opportunities for usability improvements. I’m always surprised at how many Windows ports of languages don’t even let me access previously entered commands (e.g., using up-arrow or alt-P). Or how about using colors or fonts to differentiate between input and output, so I can more easily scan through the session history?
If you want me to use your language—and if you care about supporting Windows at all—then provide a way of interacting with the language using a real Windows application. Don’t fall back on cmd.exe.
Some languages are brilliant in this regard. Python has the nice little IDLE window. Factor and PLT Scheme have gone all-out with aesthetically-pleasing and usable environments. Erlang and REBOL aren’t up to the level of any of these (Erlang doesn’t even remember the window size between runs), but they still provide custom Windows applications for user interaction.
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» LisaYudistira (Lisalisud ): @mellyameel @agnsloho @doni_erlang hhi ingat jaman kita duluuu hhi
» sascha_d (Sascha): @old_sound PR on its way back to the Erlang cookbook as soon as I get it tested.
» old_sound (Álvaro Videla): @sascha_d see here for “esl-erlang-compat” maybe http://t.co/n30q366Pg8
» old_sound (Álvaro Videla): @sascha_d I’ve heard something on the mailing list that it would support ESL erlang
» sascha_d (Sascha): @old_sound The problem is that rabbitmq rpm has a hard dep on ‘erlang’ while esl-erlang is the package name that gets installed.
» old_sound (Álvaro Videla): @sascha_d have you tried installing ESL Erlang + rabbitmq generic unix? Or you need rabbit from a package as well?
» rzezeski (Ryan Zezeski): @psnively @djspiewak Erlang has been doing it for 2 decades, no one cares, FUD all around (BTW I agree with you)
» jj1bdx (Kenji Rikitake): RT @lhoguin: Been experimenting with writing a compression algorithm (LZ77 based) in pure #erlang. HiPE makes it run 3 times faster.
» Crad (Gavin M. Roy): RT @lhoguin: Been experimenting with writing a compression algorithm (LZ77 based) in pure #erlang. HiPE makes it run 3 times faster.
» ErlangLisp (Lisp Flavored Erlang): @0xAX There is now a *highly experimental* .mobi available from the #LFE site: https://t.co/jq0hEQVcuW Enjoy! #lisp #erlang #mobi #ebooks
Statistics
Number of aggregated posts: 10651
Most recent article: May 21, 2013
Latest comments
» Moraru on This is Why You Spent All that Time Learning to Program: It is true that computer science was a pain in the back at time that i’ve had to learn it…
» Commercial hand dryers on Couchbase Meetup at new HQ: Buy online from here where you will get so much of variety in Commercial hand dryers for people. If you…
» Fort McMurray Homes on Motivated Reasoning and Erlang vs Python vs Node: I don’t really understand why this post is motivational? I don’t even see a post, just a title. Fort McMurray…