Mark Damon Hughes Topic: Software [Parental Advisory: Explicit Lyrics] [about]
Mon, 2005Dec12 11:30:34 PST
in Software by kamikaze

Postscript used to be the dominant way to distribute articles, before PDF made it irrelevant (ps is uncompressed, and has a giant security hole since it's essentially just a general-purpose programming language). I keep running into ps files I need to read, Ghostscript's gsview GUI is unpleasant to use, and converting by hand's annoying after a while. So here's my utility bash script to convert them:

ext=`expr $len - 3`
if [ "${psfile:$ext:3}" == ".gz" ]; then
    gunzip "$psfile"
    ext=`expr $ext - 3`
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "-sOutputFile=$pdffile" -c save pop -f "$psfile"
acroread "${pdffile}" &

You'll need to be using some kind of Unix (Linux, Mac, whatever) and have ghostscript installed.

Edit 2005Dec13: Previous version didn't properly handle spaces in filenames.

← Previous: Microsoft Live. Follow the Money. (Media) Next: The Perils of Old SchemeFogies (Software) →
The Curse of Knowing Too Much
Thu, 2005Sep01 15:06:35 PDT
in Software by kamikaze

I don't dare leave my desk, because people ambush me in the breakroom to ask me technical questions.

I don't dare stay at my desk, because people come up to ask me technical questions.

And my cubicle has no door.

← Previous: On Java and Python (Software) Next: The Perfect Serenity of Firefly (Media) →
On Java and Python
Fri, 2005Aug26 12:38:54 PDT
in Software by kamikaze

I routinely see casual Python users who "hate Java". And yet you almost never see a Java programmer who dislikes Python (some might prefer another scripting language, but they don't hate). There's a reason for this: the casual programmers have never written a large program, and therefore haven't run into Python's limitations, which are the areas where Java shines. Each has its proper place.

Java is best suited to building large programs and frameworks which can be customized in some other language (usually XML documents). On any project over a few thousand lines of code, you absolutely want the compiler to do type-checking, verify method and field names, and you need a good IDE (like Eclipse). For cross-platform GUIs and graphics, there is nothing else that has even decent performance.

Python is best suited to writing small- to medium-sized programs, often doing something slightly OS-specific. Tkinter is an abysmally slow GUI, and all of the other GUI/graphics libraries are difficult to install and use cross-platform (yes, I've already tried your favorite library, no matter what it is). I have written a 10,000-line Python program, Umbra, so if anyone knows this from hard experience, it's me. Until you've done that, you have no idea what it's like.

Java does things that Python simply cannot comfortably do: Writing a large videogame in pure Python (as opposed to Python-scripting something written in another language) is insane, and I wish I had never tried it. Any large app is going to have the same problems. Python does things that Java simply cannot comfortably do: Writing a Java version of Randpod would be stupid--Randpod took me a couple hours to write and test, a Java version would have taken a couple days. But if I was going to write a new iTunes, the Python version would be impossible, while the Java version would take a few weeks. Chandler has proven this point--it's a mess, and has taken three years to reach the point where it runs at all (and still doesn't do much), while a Java equivalent would be an easy month or two project. They simply made the wrong choice.

There's a reason why Guido van Rossum keeps adapting Java APIs and concepts into Python--because it's useful to have semantically equivalent concepts in both languages.

← Previous: Back from GenCon (Roleplaying) Next: The Curse of Knowing Too Much (Software) →
Links are underlined.
Mon, 2005Aug08 09:46:38 PDT
in Software by kamikaze

Look, people, we have a standard convention in HTML: links are underlined. I don't care if some retarded pot-smoking "web designer" thinks it violates his "artistic vision" (aka drug-induced hallucinations), UNDERLINE THE LINKS.

If I wanted to scrape my mouse pointer over every pixel on the screen to find hidden links, I'd play Myst, I wouldn't waste my time with your site.

However, since many people are too stupid and ignorant of the design of HTML to behave in a civilized fashion, there's a cheap technical fix. Edit your ~/.mozilla/firefox/RANDOM.default/chrome/userContent.css ("RANDOM" is some random key, look in the .mozilla/firefox dir), and put in:

a:link { text-decoration: underline !important; }
a:visited { text-decoration: underline !important; }

Voila! No more sites with stupid non-underlined links.

Update: On Mac OS X, the file is: ~/Library/Application Support/Firefox/Profiles/RANDOM.default/chrome/userContent.css

← Previous: Stupid, stupid iCal. (Mac) Next: Single People Are Selfish, And Proud Of It (Society) →
Don't feed the troll
Fri, 2005Jul22 11:34:32 PDT
in Software by kamikaze

burningbird posted something. And I am impressed--it's a perfect imitation of a schizophrenic shrieking out every whiny diatribe endemic to the field of blogging in one post. And the bizarre degeneration into baby-talk when discussing the cat, that's just priceless. If you ever wanted proof that cats suck out your soul while you sleep and make you retarded, this is it.

But beyond her parody material, her conclusion is nonsensical. She says it's too hard to deal with multiple formats. Bullshit.

FIRST: Supporting multiple protocols is a matter of writing one extra PHP or Perl or whatever script that reads your database and produces an appropriate feed. Yes, I do understand that not everyone is a master programmer, but a retarded monkey whose mother drank too much during pregnancy and then shook it a lot and fed it nothing but lead miniatures can do this stuff. If you're not as smart as a brain-damaged primate, you can still hire a programmer to do it for you; if you're broke, offer sexual favors, or whatever. This is not hard, you're just lazy.

SECOND: Choosing RSS 1.0? RDF? What the hell? There are two syndication formats that matter in any way today: RSS 2.0 and Atom 1.0, and Atom has a tiny tiny fraction of the users, who can call do RSS 2.0 if they want. No other format is even on the radar. I prefer to stomp my giant steel-toed boots on incompatible formats, so I only do RSS 2.0, but if you're going to choose a different format, choose one somebody cares about.

This is not something "incidental" to the weblog. THIS IS YOUR WEBLOG. I don't read blogs on their own web site. That's inefficient. I read them from my aggregator. Syndication is how you do that. So you'd damn well better pick the right kind of syndication, yeah?

And since it's Friday, rather than a picture of a soul-stealing kitty, here's a picture of a cute little octopus: tako

← Previous: Randpod, again, only different (Software) Next: The Switch (Mac) →
Randpod, again, only different
Thu, 2005Jul21 15:58:25 PDT
in Software by kamikaze

I've rewritten Randpod in Python, with a GUI.

Randpod is a simple little utility program to pick random music for mp3 players, mix CDs, whatever. If you use it and find a bug, or want more features, or have any other feedback, let me know.

Today's super-special mix starts with Meatloaf's "Two Out of Three Ain't Bad", Nine Inch Nails' "The Big Come Down", and Machines of Loving Grace's "Rite of Shiva".

← Previous: Batman (Media) Next: Don't feed the troll (Software) →
Sat, 2005May21 11:17:34 PDT
in Software by kamikaze

Someone in the newsgroup wanted a Java ASCII-display component, and while I don't do ASCII-only roguelikes myself, I had a few old terminal classes laying around. 10 minutes to clean it up and upload it, right?

Then I remembered I had a better version with double-buffering in JICB, though it has a bunch of JICB-specific behaviors, too. So I merged in some of that.

Then, I thought it'd be easier to test out if I had some basic cursor controls, so I implemented a few VT-52 commands. Before I knew it, I had a nearly complete VT-52 emulator with CP/M extensions (colors, etc.).

So yet again I've overengineered things. 10-minute hack and get back to my work, and it turns into hours and a 950-line class. Same thing that makes me build these RPG construction kits and get distracted from actually doing the game.

Anyway, have fun with, and let me know if you find any bugs.

← Previous: $OPPRESSED_GROUP Studies (Media) Next: Holding Women To A Lower Standard (Society) →
GameScroll 0.7
Tue, 2005May03 06:09:24 PDT
in Software by kamikaze

And like a coding machine, I knock out another version of GameScroll! Look, it's got automapping and everything!


Not that I recommend trying to make those maps by hand, like I did. I wrote a bit of script code to automate it, but it's still hard and fragile. The graphical editor will make this so much easier, and now that I have all the core engine working, I can make that editor.

But anything you write now will continue to work, so you can make something more than a bare minimum prototype.

As always, let me know what you think. Are there bugs I have not discovered? Does it work on your OS? Is my very terse technical documentation sufficient?

← Previous: GameScroll 0.6 (Software) Next: $OPPRESSED_GROUP Studies (Media) →
GameScroll 0.6
Mon, 2005Apr25 19:06:04 PDT
in Software by kamikaze

Another release of GameScroll, now with full HTML markup, author-defined score/character sheet page, hyperlinked choices, web browser integration, and more programming commands. And yet if all you want to do is make a basic adventure, it's as simple as ever.

Let me know what you think.

← Previous: Trick or treat... (Roleplaying) Next: GameScroll 0.7 (Software) →
GameScroll 0.5
Wed, 2005Apr20 17:51:55 PDT
in Software by kamikaze

I've just released version 0.5 of GameScroll, my Choose-Your-Own-Adventure and Fighting Fantasy Gamebook-style interactive fiction system. The new version supports images, sounds, a number of programming functions for advanced users, and a more native look and feel.

It's taken me a while to get back to it, but I think this is not just the best GameScroll version ever, but increasingly I think it's the right way to do IF. GameScroll doesn't simulate anything--it just lets you tell your story, and give the user whatever choices you think are meaningful.

With the programming functions, you can write very complex adventures. Or not even adventures: any kind of choice-response courseware, from teaching/study quizzes, to trivia quiz games, to Traveller-style lifepaths (as Peter Knutsen pointed out to me).

Let me know about any more ideas you have for GameScroll. I need to get it feature-complete before I can go to 1.0, so now's the time to ask.

← Previous: XML is driving me insane. (Software) Next: Trick or treat... (Roleplaying) →
XML is driving me insane.
Wed, 2005Mar16 21:55:00 PST
in Software by kamikaze

<i><fucking><love><angle-brackets/></love></fucking></i> &amp;<angle-brackets><love><fucking><me/></fucking></love></angle-brackets>

← Previous: Actions speak louder than words. (Mac) Next: GameScroll 0.5 (Software) →

Microsoft's not the only company that spreads fertilizer. Sun's lately been having their minions astroturf the notion that people are switching from Eclipse to their own IDE, NetBeans.

However, they're running into two problems. First, they're completely missing the point by focusing on drawing speed. Serious Java programmers use Eclipse because it gives them the tools they want in a usable fashion. That's all. NetBeans has incredibly weak refactoring tools, for instance. NetBeans does have some capabilities Eclipse does not, like graphically building apps, which is great for the Visual Basic crowd and managers who want to pretend they can write code, but no real Java developer ever uses such things. If not for other problems with NetBeans, I might recommend it as Baby's First IDE, but it's certainly not a professional tool.

Second, the numbers Sun wants to use are simply wrong. Eclipse with SWT/Fox on Linux is faster than Eclipse on Windows; Eclipse with SWT/GTK has improved, though not so much, but on the hardware any developer should have, it's not a big deal. The only benchmark comparisons are many years old, but side-by-side comparison puts their lies to rest.

I'm going to be extremely blunt here, because A) I'm like that, and B) their falsehoods are not amusing, and C) they might actually mislead someone into using NetBeans.

NetBeans is a travesty. It is one of the slowest, most unpleasantly unreponsive applications I've ever had the misfortune to use, and was clearly designed by people who had no idea what programmers actually do when they're working. The latest version is better than before, but only in the sense that syphilis is better than AIDS.

Borland JBuilder, Oracle JDeveloper, and IntelliJ IDEA are all more powerful IDEs than NetBeans will ever hope to be, and are incidentally more responsive; I'm not particularly fond of any of them, but at least they're usable. If you've tried SWT/Fox and still want an alternative to Eclipse, go try out JBuilder 2005 Foundation for free. I can't guarantee that you'll love it, but at least you have an alternative that isn't a toy.

I'm reminded of Public Enemy's song "Don't Believe the Hype!". There's more hype believers than ever in 2005.

Edited Sun, 2005Mar13 09:54:17 PST by kamikaze

Michael Malone says R.I.P. Microsoft. I think it's premature to call MS dead yet--they've always smelled bad, even if it has got worse recently. However, MS has entirely too much history of psychotically antisocial behavior and too much money to go quietly into that good night--they'll try to take everyone and everything else with them when they do die. We're just lucky they don't have nuclear weapons. Since I live in blast radius from the Microsoft cult compound, I really don't want Windoze-controlled nukes.

Anyway, Robert Scoble apologizes for Microsoft again, but manages to shoot himself in the foot badly, both in the article and in responding in his own comments thread.

Scoble writes:

It says volumes that I have written several letters to Bill Gates on my blog telling him how to change his company and I'm still here. Compare to other companies around us. That really is pretty unique. We all know several other billion-dollar companies that don't allow that kind of bottom-up kind of feedback. (If you're a Microsoft employee, and you're thinking of doing that, though, do it smartly. Remember, your words will get into the New York Times or Wired Magazine).

Robert, you haven't been fired for what you say because you're not a "journalist", you're not any kind of respected voice, you're just a dancing bear. Microsoft desperately needed a marketing shill like you to make it look like they were more open, but you haven't actually produced any of this "openness", "innovation", or in the latest round of Gatesian NewSpeak, "interoperability".

If real Microsoft programmers went ahead and said what they think without fear of censorship, that would be open. Linux developers say whatever the hell they want, and are only judged on the quality of their software. Even our insanity is better--our crazies are crazier than your crazies. Even Sun developers can say what they think these days, now that Schwartz openly kicks sand in the face of corporate rivals on his blog.

Scoble writes:

"Justin: When's Microsoft going to make that one thing that every other company is going to have to copy?"

Oh, you mean OneNote? Or Halo 2? Or SQL Server? Or the Tablet PC? Or Media Center? Or the SPOT watch? Or Channel 9? Or Xbox Live? Or Portable Media Center?

If Microsoft had invented a single one of the products you listed, or they were in any way original, that would be innovative, using the real meaning of the term. Innovation does not mean "anything branded by Microsoft". It means "creating a new idea or product". Yeah, take a while with that one, it might be a new, even innovative idea for you.

In case you're not following: OneNote is, essentially, Lotus Notes (great data model, inadequate user interface), tied into Office (terrible data model, inadequate user interface). Halo 2 was made by Bungie, and is just another in a long series of Wolf3D/Doom/Quake clones, a gaming genre invented 18 years ago. SQL Server is just another RDBMS, and a really bad and standards-violating one at that; if you want innovation, you look at Oracle, who had the first SQL RDBMS, and still have the best, or PostgreSQL, which is superior to MS's product in every way and is free. The Tablet PC is the Apple Newton, the Grid Pad, or the Tandy Model 100 reborn yet again. Media Center is an inadequate Tivo ripoff. The SPOT watch was built by another company, and purchased by Microsoft. Channel 9 is just another round of astroturf marketing; technologically, it's just a blog and wiki, both of which were innovated as open-source software. Xbox Live is just another version of the find-other-players features of Quakeworld, or TEN, or any of a thousand different game networks before it. "Those who do not remember history are condemned to repeat it... And think they're innovating!"

If Microsoft helped users use their files across platforms, whether those are Mac, Linux, or Windows, and followed standards-based network protocols, that would be interoperable. Show that you're interoperable. Dump SMB and switch to NFS, dump ActiveX, dump .NET and switch to Java, and make your web pages work correctly on all browsers. Of course, that's not what Bill means by "interoperable", he only thinks there are Windoze machines in the world. The one area where Microsoft uses a protocol more-or-less correctly is TCP/IP, which they directly copied from BSD Unix, which has a true open-source license that allows that.

But that's okay. Microsoft doesn't need to be interoperable. If anyone else cares to interact with Microsoft's increasingly irrelevant software, they'll eventually just decode MS's deranged formats and make tools to deal with it, like Samba, OpenOffice, and Evolution, and when we have to deal with the pseudo-HTML your apps generate, we'll just use demoroniser. Mostly, people don't bother because they have work to do on real software.

Your time has come and gone, old man. Your kung fu is weak.

← Previous: Syndication (Personal) Next: Eclipse vs. NetBeans Celebrity Deathmatch! (Software) →
Tue, 2005Jan11 00:00:00 PST
in Software by kamikaze

What is copyright? Before the printing press, it did not exist, and anyone could copy any book they wanted. Copyright was invented when cheap reproduction of information became possible, to enforce by governmental power a sole right to copy a work to a single publisher--not necessarily the author. Hey, that sounds familiar...

The first problem with copyright is simply practical: How do you enforce it? By threatening anyone who uses your material without your permission--whether you do it personally or get a mobster or gov't (same thing, except that mobsters are more honest) to do it for you, it's still not acceptable behavior in a state with even a minimal interest in liberty and justice.

Second, there is no such thing as "intellectual property", absent the presence of a mobster to enforce your monopoly. It's a deceptive and biased term. There is only information. Yes, you created it, but if you don't want anyone else to ever see it or use it, then don't show it to anyone, because the moment you do, it ceases to be "property" in any meaningful sense. If I walk into your home, use a magic wand to duplicate all of your property, and walk out with the duplicates, what crime have I committed, besides breaking and entering? Have I stolen anything? In what way have you been harmed?

Third, there are plenty of other business models for making a living creating information without holding a gun to anyone's head:

  • Patronage and commissioned works--the model 90+% of all software in the world is written under, mostly business software which is used in only a single company, as well as most art for advertising, videos for music artists, and so on.
  • Tips and shareware. People do actually enjoy paying information creators who've given them something they like.
  • Performance fees. The majority of real bands, not the handful who've won the RIAA lottery and now shill for them (as the late Bill Hicks said, "sucking Satan's pecker"), but the ones who actually have to work for a living, they don't make jack on their CDs, they make what little they live on from live performances, and even those deals get them screwed hard by parasites these days. That's caused by copyright law, not prevented by it.
  • Merchandising. Yes, you'll have bootlegs, but people aren't stupid, they'd rather give their money to the artist.
  • Selling copies of art, just like they do now. The Grateful Dead proved that despite unrestricted trade in free copies of their music, they still sold plenty of CDs. How can this be, if the record company executives are not lying to you? That's what they never want you to look at or think about.

And that's even presuming that creating information should be a living. Creative people create because they love creating. Many artists, myself very much included, feel that you're better off doing contract work you don't love part-time to pay the bills, and doing what you love the rest of the time. "Artist's rights" have nothing to do with it, it's a purely selfish desire to enjoy creating what I want to create. I put my money where my mouth is: all my computer games and RPGs are free. gapingvoid has some words and pictures on the subject that I think are pretty good, too.

Disney and the RIAA and Microsoft, well-known as friends of liberty, have devoted themselves to destroying the concept of the public domain, and to confusing and terrifying people into never challenging their "ownership" of information. And as long as they keep buying Senators and writing laws for them to pass, this "intellectual property" scam will continue to exist and copyright terms will extend indefinitely. But that doesn't mean you need to buy into their lies.

In software there are three camps. First, there's those who side with Disney and the RIAA; mostly large software publishers, who take the work-for-hire of their employees (who are rarely asked about this whole process) and sell it, and then get the mobsters, er, gov't, to attack anyone who reuses it in ways they don't approve of. These people are villains and parasites, who do not create anything but live solely to feed off the creations of others. Why should we allow parasites to thrive? Why are we allowing laws to be passed whose sole purpose is to protect parasites?

Second, there's the soi-disant "Free Software Foundation", which uses copyright law as a weapon to infect and steal other peoples' software. I'm opposed to some of their goals while I agree with a few others, but their means are so hideously immoral I can't comprehend how anyone supports that cult leader Stallman or the GNU Public Virus.

And finally, there's true open source, where you release your software in the spirit of scientific discovery; the BSD license's only distinction from public domain is a request to give credit where credit is due, and not all versions of it have that. Creative Commons and Lawrence Lessig deal with this approach to non-software information.

← Previous: MSIE (Software) Next: "Hipster PDA" (Toys) →
Mon, 2005Jan10 00:00:00 PST
in Software by kamikaze

I just don't get the Microsoft Internet Explorer thing.

Would you let some filthy homeless guy sneak in behind your security card?

Would you put your database on a public anonymous FTP site?

No? Then why would you run MSIE?

Anyone running MSIE is clearly trying to destroy your company's security, and should be fired.

Edited Mon, 2005Jan10 12:12:39 PST by kamikaze

← Previous: Doom: The Movie: We're all Doomed! (Media) Next: Copywrong (Software) →
EA: The Human Story
Mon, 2004Nov15 00:00:00 PST
in Software by kamikaze

Read ea_spouse's article "EA: The Human Story". This situation does not happen (much) in real software development, but it's an endemic disease of the games industry.

Painful flashback:

I worked for a while at a large games company which I won't name, because they suck, and they have lawyers. I was not paid what I am worth, but since I was surrounded by kids 10 years younger than me, and was working in the games industry, which makes up for crappy pay with *FUN*, that was normal.

We were expected to do 60-80 hour weeks. Anyone who had a life was ridiculed and called "weak". Hours were tracked on a corkboard, so you always knew who was "slacking off" by just doing 40-50 hours (hint: it was me, "the old guy" at not even 30 yet, who even wasted time having a girlfriend). Naturally, the programmers were exhausted, produced horrible code that didn't work, ignored the badly-written specs, and the product was dying. Management openly laughed at any suggestion that overwork could be causing this, they were convinced we weren't working hard enough. I left soon after. The project died and nobody but a few playtesters ever saw the game.

This is not unique to one company. Judging from numerous reports from other victims of these companies, they're basically all like that. It's the most miserable working conditions possible, and only the endless supply of dumb enthusiastic kids keeps them going. By some miracle, a few games do get finished and released, and their profits pay for the 90% or so that fail. But they're full of bugs (except on consoles, where the console makers require serious QA before release, and even there things slip through).

There is a happy ending to the story. I now work in comfortable low-stress environments, no more than 40 hours per week, doing interesting work that just doesn't happen to involve games (anyone who tells you that business software is boring is ignorant or lying, and you should punch them in the face), and get paid more than twice as much as the games company was paying me. And on evenings and weekends, when I feel like it, I work on my own little games and release them for free, because you don't have to be in the games industry to make games, you just have to be in the games industry to be miserable while making games.

← Previous: Aiee! 0.2 (Software) Next: Doom: The Movie: We're all Doomed! (Media) →
Aiee! 0.2
Wed, 2004Oct13 00:00:00 PDT
in Software by kamikaze

I've released a new version of Aiee!: An Interactive Environment Engine. Enjoy!

Aiee! is hands down the easiest way to get started writing text adventures ("interactive fiction", "Infocom games", whatever you want to call them). Aiee! uses standard, consistent XML syntax, and has a declarative style--for most tasks, you just define attributes, you don't ever have to do real programming to make a normal adventure. When you do start programming to do something unusual, you'll find Aiee! handles every task you'll need.

And now it has a pleasingly simple graphical shell, and can display images and sounds for multimedia adventures.

The other big change is the addition of actors. Actors are easy to create and to give interesting behaviors and conversations to.

I'm calling this release 0.2, but if all goes well (no bug reports) I'll be rereleasing it as 1.0 very soon. Kick the tires a bit and see if it's ready.

Edited Sun, 2005Mar13 10:01:38 PST by kamikaze

← Previous: Shiny new iMac (Mac) Next: EA: The Human Story (Software) →
Fri, 2004Aug27 00:00:00 PDT
in Software by kamikaze

RandPod is a minimal pair of Unix shell scripts to pick out random music for loading into an iPod or Palm Pilot (I use a Treo 600) or burning onto a CDROM as a mix disc.

"Now that's a stupid utility.", you say.

Yes, but you didn't have one, did you? I kept running into this problem: I only have a 128MB SD card in my Treo 600, and up to half of that is filled with books. But 64MB is enough for an album, enough for a bus trip to work or home. Picking out that music, though, that's such a pain, and it's so deterministic and planned. As in so many other things, I prefer to give myself over to chaos, and take whatever random chance sends my way. Today, I got Icon of Coil and Tori Amos and Nitzer Ebb's "Cherry Blossom" and Carmina Burana in the same mix!

← Previous: Watch "Ju On", lose 2d6 SAN (Media) Next: Treo 600 Cam (Personal) →
Fri, 2004Jul23 00:00:00 PDT
in Software by kamikaze

Tim Bray complains that there aren't any end-user-type authoring tools for HTML.

Time for another story. There's this guy who's driving a big truck full of Evian through Nevada, when it breaks down. So he shoots himself because he doesn't want to die of thirst.

I guess nobody at Sun has heard of this product called StarOffice/OpenOffice, despite them acquiring it some time ago. If they try doing a Save As, and look through the file types, they might find something even more surprising.

It's not the greatest HTML I've ever seen, but it's not like Word's HTML...


I just tried it out, curious to see if it had improved. I retract my disparaging statement that it's not the greatest HTML. This is perfectly acceptable HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <META NAME="GENERATOR" CONTENT=" 1.1.0  (Linux)">
    <META NAME="CREATED" CONTENT="20040726;16123900">
    <META NAME="CHANGED" CONTENT="20040726;16135000">
        @page { size: 8.27in 11.69in; margin-left: 1.25in; margin-right:
1.25in; margin-top: 1in; margin-bottom: 1in }
        P { margin-bottom: 0.08in }
        H1 { margin-bottom: 0.08in }
        H1.western { font-family: "Nimbus Sans L", sans-serif;
font-size: 16pt }
        H1.cjk { font-family: "Mincho"; font-size: 16pt }
        H1.ctl { font-family: "Lucidasans"; font-size: 16pt }
<H1 CLASS="western">Sun's Authoring Pain</H1>
<P>Tim Bray <A
that there aren't any end-user-type authoring tools for HTML.</P>
Why Does Everyone Hate Lisp?
Sun, 2004May30 00:00:00 PDT
in Software by kamikaze

Lispers constantly whine about how nobody uses Lisp, and come up with elaborate, sour-grapes conspiracy theories about Sun's marketing. It's not because we hate you (we do, but only because you Lispers whine so much). It's not because management mandates the use of some other language. It's because most programmers don't enjoy programming in Lisp, and do enjoy programming in some other language. It's that simple, and it's nothing you can ever fix.

Look at open source projects. These are what people do in their own time, for fun. The majority are coded in C, C++, Java, and Perl. Somewhat fewer are in PHP or Python. Almost nobody bothers to write open source code in Lisp.

Looking at, and picking out the usual suspects:

C (5903 projects)
Perl (2928 projects)
C++ (2752 projects)
Java (2722 projects)
PHP (2349 projects)
Python + Zope (1416 projects)
Tcl (371 projects)
Common Lisp + Emacs-Lisp + Lisp + Scheme (226 projects)
Ruby (145 projects)
C# (66 projects)
Smalltalk (19 projects)

Lisp (226 total) is about 1% as popular as the languages above it (18070 total) on that list.

Why is this? Because coders DO NOT LIKE LISP. Most programmers find Lisp unpleasant and unnatural to use. They're not idiots, they're not ignorant, and they're not willfully choosing a less-powerful or less-efficient tool, they're choosing tools based on what makes them productive and happy. That isn't Lisp, and never will be.

The professional software industry has ignored Lisp for the same reason. The lead developers of projects generally do have a choice about what language they'll use (they may have to fight a bit if their choice is unusual, but most software companies hire smart people and give them some room), and time after time, they do not choose Lisp, they choose C, C++, Java, Perl, PHP, or Python. I'm no fan of C, C++, or Perl, but they make a lot of people happy.

Every CS undergraduate at any halfway competent university learns Lisp or Scheme, and has to write real code in it, and almost every other programmer learns it on their own at some point. We all know how to use it. We just choose not to.

If you want to see software written in Lisp, do it yourself, but please stop whining at the rest of us to join you.

Edited Tue, 2004Apr06 16:26:06 PDT by kamikaze

Update: See also the TIOBE Programming Community Index. Similar rankings to my freshmeat analysis.

Edited Wed, 2004Apr14 16:29:24 PDT by kamikaze

← Previous: Final Fantasy XI (Personal) Next: CTHULHU SALVATION PROGRAM (Atheism) →
Page:   0    1    2    3    4    5   Archive  
Feedback  | Key: ] =local file, * =off-site link  | Copyright © 2003-2010 by Mark Damon Hughes | Subscribe with RSS 2.0