Mark Damon Hughes Topic: Software [Parental Advisory: Explicit Lyrics] [about]
Hephaestus 3 is Coming
Wed, 2007May02 09:55:10 PDT
in Software by kamikaze

After a long hiatus, I've started work again on a new version of Hephaestus, and I'm looking for some feedback from RPG authors.

The main focus in Hephaestus 3 will be ease of authoring. In addition to the current Java-based system, you'll be able to use a simpler scripting language, probably Jython.

The standard art archive is low-res and pretty old-fashioned now, and the intention was always that people would make their own adventure-specific art. I'm strongly considering only including the old tileset with the Umbra adventure. Thoughts?

I'd like some specific, detailed UI requests and bug reports from people who've played it. Any serious problems? I'm considering making the UI more console-like, with a separate menu screen for character stats, more use of pop-up dialog boxes, and shrinking the text scroller to just a couple of lines. Thoughts?

What else? What's in your dream RPG creator? Especially people with notebooks full of game notes but no engine, what do you need?

Send me feedback.

Closures in Groovy and Java
Thu, 2007Feb15 11:33:12 PST
in Software by kamikaze

Lately, I've been playing with Groovy, and reading Groovy in Action. While I have some complaints about the optional syntax (I want minimal but absolutely rigid syntax rules... Groovy has elaborate syntax rules you can often ignore), it's a pretty good language, and it's trivial to embed into your Java code, or run standalone, or pop up a groovyConsole to execute some quick expression.

There's a new version of Jython now, but I'm spoiled by Python 2.5, so going back to 2.2 would be hard, and it's not as easy to hook into Java code.

One of the best features in Groovy is the ease of writing closures, which makes a lot of code easier to write. There are algorithms that are far easier to express with functional/closure-based code. There are algorithms that are far easier to express with procedural code. A pure functional language just isn't suitable for all of my work, never mind that most functional languages are hideous and unreadable. A pure procedural language like Java can fake functional programming sometimes, but it's never been pleasant. It's great to have something that's a usable hybrid of the two. I doubt I'll switch completely over to Groovy, but for my quick-and-dirty code, Groovy's becoming my first choice.

Java itself is finally catching up with closures, though. There's two proposals currently on the table. Doug Lea, et al.'s proposal, and Neal Gafter, et al.'s propsal (full version). The CICE proposal seems like the least disruptive, as it's built on anonymous inner classes, which are already usable, if ugly. Elliotte Rusty Harold's posted his thoughts and second thoughts about the two, and are worth reading.

← Previous: ed is the standard editor! (Software) Next: Disable Gimp splash screen (Mac) →
ed is the standard editor!
Wed, 2007Jan31 11:13:19 PST
in Software by kamikaze

IBM DeveloperWorks has an article on text editing tools, including use of ed, since ed is the standard editor.

Now, I love the Unix command line--one reason I love the Mac is that it's the best Unix workstation I've used in 20 years. But suggesting the use of ed, written over 30 years ago, reveals an interesting point: modern editors and software in general is significantly slower than software written 30 years ago. Yes, it does more. CPUs are also faster. Niklaus Wirth once half-jokingly said that software gets bigger faster than CPUs get faster.

← Previous: Music to Love Your Mac To (Mac) Next: Closures in Groovy and Java (Software) →
More Sun Lies About NetBeans
Wed, 2006Aug02 15:22:01 PDT
in Software by kamikaze

This is an email I just received from one of Sun's mailing lists:

Borland says that it is no longer investing in developer tools. Don't
worry. We've got you covered.

Sun has the tools to meet your needs, and they're available at no
cost! With NetBeans you can easily migrate your applications from
JBuilder to the NetBeans IDE. Additionally, you can be rest assured
that your investment is protected through training, developer
certification, third-party components and technical support.

Of course, this is all blatant lies, and they should stop letting their filthy lying marketing scumbags stop writing to developers who are smarter than they are; of course, this would mean they'd have to stop writing entirely, which can only be a good thing.

While Borland, Inc. will soon no longer doing development tools, they are still investing in the development team (see Allen Bauer's blog for some current news), and are spinning off "DevCo" (which will probably get a new name) into a new company. So Borland's tools are not dead, nor are they being neglected during the transition. Everything Sun says and implies in that first paragraph is a lie.

There is essentially no third-party support for NetBeans, that is simply a lie. To reiterate from last time I checked, there were 34 plugins for NetBeans vs. 1094 plugins for Eclipse. Let's ask the source of all wisdom, if anyone is even interested: netbeans plugin finds 17,600 hits. jbuilder plugin finds 746,000 hits. eclipse plugin finds 13,100,000 hits.

You can easily migrate your Java projects to any IDE, if you use industry-standard ant build.xml files, so this means nothing. "Training, developer certification, [...] and technical support" are nice ways of saying that NetBeans is so awful and unusable that you'll have to ask Sun how to do anything, and they'll charge you for that information.

Sun, please stop lying in support of your awful IDE. Accept that it sucks, and move on.

← Previous: GameScroll 0.7.1 (Software) Next: People Also Buy Lottery Tickets (Society) →
GameScroll 0.7.1
Sat, 2006Jul29 18:31:04 PDT
in Software by kamikaze

Yes, I'm incredibly slow when I'm busy at work, but you may now rejoice! I have released a slightly-updated version of GameScroll, which no longer crashes when saving and loading (I think). <sigh> Serialization is a tricky animal.

The graphical editor is nearly usable, but I haven't enabled it in the current version yet, there's still a few things left to do in it. I'd say "It'll be out soon", but we all know that's a lie. It'll be out when it's out.

← Previous: Mac to Linux? Are you mad? (Mac) Next: More Sun Lies About NetBeans (Software) →
Mon, 2006Jun05 19:29:53 PDT
in Software by kamikaze

As part of my great renaming, and trying to separate my professional activities from personal ones, I've moved most of my software to <>, my software gallery. So if you're looking for something and can't find it, that's probably where it is.

← Previous: About Book Reviews (Media) Next: Intelligent DeSign (Toys) →
Tim O'Reilly Does Not Apologize
Wed, 2006May31 01:42:53 PDT
in Software by kamikaze

3 days after he supposedly returned from vacation, Tim finally deigns to post his response to the Web 2.0 trademark disaster. Some people held out hope that Tim would speak sense and apologize and everything would go back to normal. They were mistaken; Tim did nothing but lie and abuse the people he'd already backstabbed once.

A few points for Tim:

  1. "Apologizing" and then demanding an apology from the other guy is not an apology, it is a calculated insult. You screwed up, Tim, and the manly thing to do would be to admit it and apologize properly.
  2. Calling people who criticize you for your mistakes "unprofessional" and saying they didn't check facts is not a good way to get back in their good graces. If you really had faith in the collective intelligence of the blogosphere, you'd sit down, shut the fuck up, and listen to what they were saying.
  3. Your decision on what to do about "Web 2.0" being forbidden in the name of any conference except your own is... That nothing will change. This is garbage. "Linux" is a trademark of Linus Torvalds, and yet there are plenty of Linux World and other conferences with Linux in their names. This does not dilute the Linux trademark. This has gone beyond an innocent mistake and entered the realm of malice.
  4. Tim, you and everyone else know perfectly well that you're lying when you say that a Cease & Desist letter is not a threat of a lawsuit. It's a demand to take something down OR ELSE THERE WILL BE LAWYERS. It's morally equivalent to pointing a gun at someone's head and demanding their wallet. Claiming otherwise is the most lawyerly, disingenuous, bald-faced lie you've said yet.
  5. If you tell a lawyer "something needs to be done", any intelligent person expects lawsuits or the threat of lawsuits; it's like telling a hit man "something needs to be done". Lawyers don't have morals or ethics, they're just sociopathic killing machines, that's what they do. The person who hires the assassin/lawyer is the one who is morally responsible for their actions.
  6. There's no reason O'Reilly couldn't restrict its trademark to "The O'Reilly Web 2.0 Conference", and end this entire mess. You choose not to, because you want to own everything related to Web 2.0. That ain't gonna happen, people will just burn their "Web 2.0" banners and go use a new term and ignore you.
  7. You did not create the term Web 2.0. This has been pointed out many times. Therefore, you do not get to claim that your conference was the origin of the term. You are simply wrong, Tim.

You just confirmed my first instinct, to walk away from O'Reilly books.

Edit 2006May31: See also part 1, part 2.

O'Reilly(TM) 2.0(TM) Annoyances(TM)
Fri, 2006May26 23:36:58 PDT
in Software by kamikaze

Edit 2006May31: See also part 1, part 3.

O'Reilly and Associates announces their new business plan:

  1. PR the hell out of a term "Web 2.0", that existed before you started using it (use to read page 2)
  2. Sue non-profit conferences using "your" term
  3. Earn the distrust of all your best customers
  4. Go out of business!

Tim O'Reilly is conveniently "on vacation" during this debacle, so he can try to shift the blame to overzealous underlings and not come out looking like a total shit, but that's a transparent lie these days; he has a phone, he has an Internet connection. He knows what's going on, and this is clearly something he planned and approved of.

So, what's the result? Well, the term "Web 2.0" is dead. Tim's partner in crime, John Battelle, is trying to spin that they only have a trademark if you're doing a conference, but it doesn't matter. Who's going to risk it? Who's going to tag themselves with a poisoned term like that? Who's going to risk their business on O'Reilly's benevolence when they've just shown they have none?

There's already a few useful replacements, but we need to hear if anyone else is trying to trademark these: Mashups (ugh), Interactive Web, Read/Write Web, Service-Oriented Architecture (double ugh!), etc. "Web 2.1" makes a good placeholder for now, but you can't keep using it with a straight face. I like the term "Web-to-Web Application", but that has that "web two" sound in there, which O'Reilly would probably sue over.

The other result is that I'm rethinking my use of O'Reilly books.

I've been buying O'Reilly books since 1988. I have a giant wall of technical books, over half from this one publisher. I was an early adopter of electronic books with O'Reilly's Bookshelf CDs, before they stopped trusting their customers and discontinued them (which should have been a huge warning sign). has been the only replacement available, but it's slow, only useful online, the bookshelf space is very limited, you can't get a PDF of the book, and despite many suggestions, they haven't updated the interface in years. They don't put many of their most useful (and heavy) books on, like the Head First books, which is a huge inconvenience when I want to refer to them from work. There's great content there, but it's increasingly annoying to get to, because of their determination to wring every last penny out of every last potential customer, and to prevent any non-customers from seeing their books without paying, even if it means inconveniencing their paying customers. O'Reilly's gone from being a good citizen in the open source community to a bunch of thieves and lawyers who would make Sony proud.

Meanwhile, many other publishers, especially Manning, are producing good books and selling cheap, high-quality PDFs. I just bought wxPython in Action, and I'm quite pleased with it. I probably won't stop buying O'Reilly books entirely, since that's basically impossible if you work in the computer industry, but I'm cancelling my account, and when given a choice of publishers for some subject, I'm going to always buy the non-O'Reilly book.

This isn't vindictiveness. I'm sad that O'Reilly feels the need to turn into this kind of company, after almost 30 years of supporting open source software, but ethically, I can't support someone who behaves like this, and practically, I can't trust them not to stomp on me at some point. I've used O'Reilly books to learn many of my skills, and they may well feel they own the contents of my brain. Best to stay well clear of them.

Edit 2006May31: See also part 2, part 3.

← Previous: What's Your Anti-Virus? (Mac) Next: O'Reilly(TM) 2.0(TM) Annoyances(TM) (Software) →
What I'm Reading (Technical division)
Mon, 2006Apr03 12:12:41 PDT
in Software by kamikaze

Even I need to learn new stuff sometimes.

Head First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra
Yes, I already know design patterns, but their take on it is very entertaining, and it's a good refresher. For anyone who doesn't know patterns, this is absolutely the first book you should read.
Head First HTML with CSS & XHTML, by Eric Freeman, Elisabeth Freeman
I know a lot about HTML--I've been doing web development since 1993--but even I need to catch up on things sometimes. I'm not very far in it, but as always for the Head First books it's an entertaining read.
Thinking in Java, 4th Ed., by Bruce Eckel
Astoundingly huge, and obsessively detailed. I'm just skimming through the sections on familiar technologies, but then I spend serious time reading up on the newer features. Bruce Eckel's explanation of Java 5 generics is essential reading.

If you don't know what Atom and RSS are, just ignore this.

I'm not going to link to anyone, because they don't deserve the attention (yes, pun intended). But the supporters of Atom are yet again whining about how terrible RSS 2.0 is, that it doesn't clearly define which elements are HTML and plain text, and how great Atom is.

Part of the problem is that they're lying. The RSS 2.0 spec strongly implies which elements take HTML and which do not, and 90% of the feed and reader implementations agree on this, which IMO is extremely good interoperability by real-world standards. The Atom spec is unclear about all but one kind of tag, and real-world interoperability with it is not noticeably better.

And that's why I use RSS 2.0: The creators of Atom are a bunch of whiny, sanctimonious, lying fuckwits, and I believe it is a moral imperative not to support things created by whiny, sanctimonious, lying fuckwits.

RSS 2.0's revised spec, whenever that happens, will almost certainly be more precise, which would be nice. For the most part, it already just works.

I think it's very unlikely that the Atom people will pull their heads out and behave like civilized human beings.

Properties props = System.getProperties();
for (String key : (Set<String>)((Set)props.keySet())) {
    System.out.println(key+": "+props.getProperty(key));

Isn't that charming and easily understood? Map.keySet() returns a Set<Object>, but you can't cast that to the more specific Set< String> without stripping off the subtype information first.

Sun, what the hell were you doing when you "designed" this stuff? Great Cthulhu, this is a wretched thing. Java's a very dynamic language, and it's easy to generate classes at runtime. There's no reason you couldn't have done "C++ templates, only intelligently designed". Instead you came up with something that sucks just as hard as C++ templates, but in a totally different way, by THROWING OUT useful type information.

All languages suck, but you didn't have to go out of your way to prove it here. 1.1
Mon, 2006Mar06 11:24:32 PST
in Software by kamikaze

I've released a new version of, which is a tiny little framework for building utility programs in Python. It's BSD-licensed, so use it where you need it!

← Previous: Perilar 0.4 (Software) Next: Walter Cronkite (Society) →
Perilar 0.4
Mon, 2006Feb27 00:05:02 PST
in Software by kamikaze

I've released Perilar version 0.4, a new beta to test remaining gameplay issues before I start working on the graphics, sound, and music.

[Perilar 0.4 screenshot]

One person wrote in with serious keyboard focus problems in 0.3, which hopefully are fixed by 0.4. If you find any problems at all, let me know.

← Previous: President's Day (Society) Next: 1.1 (Software) →
Why Are You Uninstalling NetBeans?
Tue, 2006Feb14 15:32:56 PST
in Software by kamikaze

Malcolm Davis asks: Why Are You Uninstalling NetBeans?, and lately I've been giving Gregg Sporar, Sun's NetBeans evangelist, a hard time about his filthy marketing lies.

And aside from the crappy fonts, which I'd forgotten about, Malcolm hadn't even got to the parts that really annoy me before he gave up. The bugs. The weak feature set. The slow, unbelievably slow, sluggish, bound-in-molasses-frozen-into-amber, not at all fast GUI. Did I mention it's slow? The lack of plugins (at last count of the main sites, 34 plugins for NetBeans vs. 1094 plugins for Eclipse!). Also, the speed, it is not high.

Sun, please stop with the astroturf marketing for NetBeans. Nobody believes you anymore, because they can try NetBeans and see how inferior it is, and it's starting to rub off on your other products, which are generally much better. If your IDE was good, you wouldn't have to astroturf for it.

Here's an opportunity for you, Sun: Borland is selling its IDE division. Buy JBuilder. Replace NetBeans with JBuilder, maybe add whatever little bit of unique value is in NetBeans into JBuilder (do not do this the other way around... NetBeans is not salvageable). You will be loved for this. JBuilder needs a home. You need a good IDE. If you were looking for a match made in heaven for Valentine's Day, THIS IS IT.

← Previous: V.D. (Society) Next: President's Day (Society) →
ThoughtPad 0.2
Fri, 2006Feb10 08:26:50 PST
in Software by kamikaze

I have an early, early, early pre-alpha, not at all ready for real use, test version of my note-taking software ThoughtPad available.

I'd appreciate it if people would pound on it and complain about the lack of features, and about my plans for future features.

← Previous: My Debugging Prowess is Mighty! (Software) Next: V.D. (Society) →
My Debugging Prowess is Mighty!
Mon, 2006Feb06 17:10:04 PST
in Software by kamikaze

Developers working on a baffling problem come to me on bended knee, asking for help. A component isn't displaying the first time a page is viewed, but is on refresh.

I check the log... The value is being set, just like it's supposed to.

So I take a second look at the browser. 50% of the page is scrolled off to the right. Scroll over, and there the component is.

I can debug by using the scrollbar. :)

They will never live this down. "Have you scrolled over?" is now going to be my standard response to all bug reports.

← Previous: Progamming Language Winners, Losers, and Farm Animals (Software) Next: ThoughtPad 0.2 (Software) →

Joey deVilla asks What Languages Should The Farm Cover?. This is how things have worked out for me at present.

The Winners:

Java, of course. If you haven't used Java recently, try it again (pick up a recent book and relearn it, if necessary). Java 5.0 of 2006 is nothing much like Java 1.0 of 1996, or even Java 1.2 of 2000, what with the additions of generics, for loops that don't suck, concurrent programming libraries, decent native Swing look-and-feels, declarative object-relational database mapping systems, scripting language plugins, and so on. The Java web frameworks are astoundingly powerful, and pretty easy to use.

Client-side programming in Java is so much better than it used to be. I still mostly write games in raw AWT, both for speed (yeah, I know, turn-based RPGs need *SO MUCH SPEED*, but those fractions of a second make a big difference in the feel of the game), and because all my components are custom, and I'll be switching to some kind of OpenGL layer over AWT at some point. But I'd never write a business/productivity app in AWT, that's what Swing is designed for. If you're skilled with Swing, you can make great native-appearing applications in no time flat.

Eclipse has also made an enormous difference in how Java programming works. Java + Eclipse makes every other development environment I've tried in my career look like Tinker Toys.

If you're at all interested in Mac and Linux users using your software (as well as Windows peons if you insist on being so retro), it's the only serious choice. Whether you program in Java, NetRexx, Jython, or some other language, if you can't compile to the JVM and use the infinite variety of Java libraries, you're missing out.

Python is the clear #1 language for tools and system scripting. It's an easy language to use, it lets me write complex thoughts in a clear manner, and has all the libraries I need for most purposes. Writing a large application (over a few thousand lines) in Python is a nightmare. Never ever ever EVER do this. No amount of testing will make up for the lack of static type-checking. The GUI libraries for it are so so poorly-integrated, ugly, incomplete, and slow that it might as well not have any. The web frameworks other than Zope are all pretty experimental, and I wouldn't put a one of them into production, even if I could find a cheap hosting service that ran Python. Now that Guido's pushing back on the web frameworks, I expect that something good will happen on that front by next year.

I do a lot of text tools and tinkering in NetRexx, but I don't really expect it to conquer the world at this point. Great language, not a lot of public traction. Still, I advise every programmer, expert or novice, to try out NetRexx and ObjectRexx.

PHP is the fast, cheap, dirty way to make dynamic websites, and everyone supports it. If you don't mind fooling around with bare wires, and can memorize the hundreds of badly-named functions in one huge namespace that they use, it's okay. I wrote this blog software in PHP and used PEAR::DB to hook into PostgreSQL, and it doesn't suck much. That doesn't mean I love it, just that it works. PHP5 sucks a lot less than PHP3 or PHP4, but good luck finding a system with it. I would have preferred for PHP5 to be totally incompatible with PHP4 and just fix everything, much like the jump from Python 1.5 to 2.0. As it is, we're still living with a lot of bad decisions and forward-ported code that isn't really correct anymore.

All four of these are totally compatible cross-platform, all four are totally free. At this point if you're paying someone to develop for their platform, you have done something tragically wrong and need to reevaluate your life. They are using you. Independent software vendors do OS companies a favor by writing for their platforms. If a compiler vendor sells me a better tool (for instance, before Eclipse 3, I really liked Borland's JBuilder and IBM's Visual Age for Java, neither of which were cheap), that's fine. If the OS vendor is trying to gouge me on the only viable tool for a platform, I give them the middle finger and stomp away.

The Losers:

C, C++, C#, Visual Basic, Objective C, and Delphi/Kylix are totally useless to me. C and C++ have no automatic garbage collection and no bounds checking (yes, there are add-on libraries that do at least a half-assed job of these; but no C/C++ programmer I've ever met uses them), so they're just trash for anything except writing device drivers. If you use C/C++ for writing applications, you are an enemy of humanity and a facilitator of spammers and virus writers. No, I will not say that nicer. Die, you evil, polluting, syphilitic, pustulating anal sores.

Delphi has partial GC, their Pascal variant's quite nice, and the IDE and GUI library rocks, but it doesn't work on Mac, which makes it irrelevant to me. Eh. I wouldn't object to more software being written in Delphi/Kylix, though.

Objective C has partial GC, but the syntax is ugly, and it's only really used on Mac anymore. The Mac is rich in libraries for it, everyone else is back to the stone age, coding on bare metal again. Nice language, but not worth it.

C# and VB are Windows-only, how quaint, how very 20th Century. Why do people make single-platform software? I use Mac OS X, Linux, and FreeBSD every day, and read work mail off Outlook on a Windoze box (eew). Crippling myself with single-platform software would just be stupid. Even if I used Windoze, I wouldn't use C# to make apps, because I might want to move to a real platform someday, and other people might not want to use Windoze.

Perl and Ruby are much the same kind of unreadable gibberish. It doesn't matter how good a language is if you can't come back to your programs 6 months later and figure out what they did. I'm of the opinion that Perl was an April Fool's joke that got out of hand:

"Awk without the implicit loop and BEGIN/END blocks! Hah! And functions that don't name their parameters! Ha hah! Nobody'll ever use this crap!"
-Larry Wall

"Oh, fuck, the stupid bastards are using it!"
-Larry Wall, 6 months later

Haskell, Dylan, OCaml, and other functional or semi-functional (heh) languages are interesting. It's hard to write real software in them, but they're fun to play with and solve problems in. But the joy is in figuring out the language, not in actually accomplishing your tasks, so I couldn't recommend them for real work. If you want to just fool around and have fun learning something, you cannot go wrong with any of those three.

As I've mentioned before, aside from the hideous, eye-searing syntax and lack of portable libraries for the free versions, Lisp and Scheme are fine languages. But since syntax makes programmers happy, and libraries make programmers productive, Lisp and Scheme are worthless in the real world, which is why nobody writes code in them.

← Previous: Poetic Justice (Mac) Next: My Debugging Prowess is Mighty! (Software) →
Wed, 2006Jan11 03:45:05 PST
in Software by kamikaze

So, now I have something presentable to show of what I've been working on for the last weekend or so [1]: Perilar!

There's a Java4K Game Contest, which inspired me to think about very small games. 4K is too small to do the kinds of games I like, even at the most minimalist; I might be able to make a maze game for it, but I'm not really interested.

Instead, I thought about Warren Robinett's Adventure for the Atari VCS and Shigeru Miyamoto's Legend of Zelda for NES. What's the bare minimum I can strip a roguelike CRPG down to and still have a real game? What's the bare minimum user interface?

Memory and processing power is cheap, so I made the world a single contiguous space, though for game balance reasons, I don't currently let monsters leave their sectors; I may have to change that. The user interface is down to almost nothing--8 directions and an item key. It could be played with a VCS joystick.

The quest isn't in place yet... All you can do is kill things and take their stuff. But I've found a way of putting a couple of plot twists in without making the game huge and bloated.

If you're in the mood to kill things, help me beta-test it, and send me feedback as to what you think. Thanks, and have fun!


[1] Yes, that's why I've been neglecting bug reports in GameScroll and Aiee!, and haven't been real communicative. I'll be taking care of those ASAP now that I've got the main burst of code done.

← Previous: The Perils of Old SchemeFogies (Software) Next: Fluorescent Lights (Personal) →
The Perils of Old SchemeFogies
Fri, 2005Dec30 11:55:21 PST
in Software by kamikaze

Apparently, Joel is unaware that prior to Java, most universities used to teach with Pascal or Lisp, which also kept students from having to learn pointers before doing anything useful... The students might actually learn something about algorithms and data structures in their Algorithms and Data Structures class, and put off learning about pointers and manually managing memory until taking a specialized C class, or Operating Systems in junior year. Only a handful of universities were ever so incompetent as to use C as a teaching language.

Java does not keep you from learning pointers when they become appropriate and relevant, whether as part of JNI (usually using C) or with standalone C/C++. C/C++, on the other hand, is a blight when used for anything except operating system and device driver programming. C is a menace to the world, the spreader of viruses, and causes brain damage in those who use it (proof: they continue to use it). C is pernicious toxic waste in cyberlinguistic form.

Joel's premise of using C, pointers, and memory leaks to weed out half the students, who might otherwise be good programmers, only makes sense as deliberate sabotage of future software engineers.

Java does not keep you from learning functional programming, whether in Java or in a good functional language like Haskell or ML. Almost all real Java applications make heavy use of functional techniques, as well as more advanced object-oriented techniques.

The problem with suggesting Lisp/Scheme as a replacement is that essentially nobody likes to program in them. They're some of the least popular languages that have ever been invented, and one glance at the spaghetti of parens in a Lisp program shows why. They all but destroyed an entire field of the software industry ("Artificial Intelligence"); the survivors of this catastrophe like to blame the failure on hostility from C programmers, as if they were somehow sending out evil psychic waves, but as any objective postmortem reveals, it's because they chose the wrong language to implement their systems in. Only a tiny fraction of lunatics work in these "great" languages on their own time. It doesn't help that there are no good free implementations of any of them; if you want enough libraries to get anything done, you're out hundreds or thousands of dollars, and then have code that only works on one incompatible implementation. Yes, the use of Lisp/Scheme is traditional; at one time, FORTRAN and COBOL (languages equally as old) were traditional, as well, but some people learn from their mistakes. Suggesting Lisp/Scheme use in academia, inflicting them on innocent students, again only makes sense as deliberate sabotage.

What's Joel's real agenda? What does he have to gain from America decaying and then completely ceasing to produce software?

← Previous: Post-Postscript (Software) Next: Perilar! (Software) →
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