So in my brief adventure into writing an LJ client, I learned that LJ has a really crappy API. It’s kind of funny, because a blog API is conceptually one of the simplest models in software. It’s the classic database CRUD model – Create, Retrieve, Update, Delete. It’s amazing how badly web developers are able to screw up on that age-old formula. Especially when it forms the underlying philosophy of the web itself. But then again I’d wager most web developers aren’t even aware that HTTP contains PUT and DELETE methods along with GET and POST (and HEAD ). I wish I could get a hardbound copy of RFC 2616, just so I could hit stupid web developers on the head with it.

I also learned that they don’t even implement their own API very well. At least not the XMLRPC version. When LJ is feeling colicky it tends to upchuck whatever random faultcode it thinks of first – and the faults may not even be well-formed.

Did I mention badly documented? Apparently some features have been silently deprecated, without any indication of what is supposed to take their place.

All in all, I have been given greater impetus to get myself off of what was originally intended to be an interim location for my journal. I don’t like having my words hosted near such… dirty software. I’m afraid it might rub off.

View All

7 Comments

  1. Fair enough

    …but what non-trivial applications can you name that have a really nice API?

    1. Re: Fair enough

      Microsoft Excel.

      1. Re: Fair enough

        OK, that’s a pretty good one.
        I do get irritated by the fact that much of the object model is 1-based, except where it’s not.
        Word and Access have reasonable APIs. PowerPointless hurt the brain, the one time I ever wanted to automate a presentation as a report object.
        However, Redmond spent a decade+ polishing these things.
        Thus, I’d still assert that non-trivial APIs tend to bite.

        1. Re: Fair enough

          The thing is, LJ’s API IS trivial. Create, retrieve, update, delete. What amazes is me is that developers can get something so small, so wrong.

          On the other hand, Knuth once observed that more than ten years passed between the first time quicksort was published, and the first time a bug free quicksort was published.

  2. LJ’s code is lame.

    Try retreiving the userinfo for a person whose realname is a number. The xmlrpc code then lists it as a number and not a string. (for instance, )

    That makes numerous xml processors choke.

  3. Hey……. speaking of bliog stuff, I don’t suppose you could help me out with getting an RSS feed (was it RSS feed?) so I can read other people’s blogs that aren’t on LJ? You had mentioned it when I was over. I have no idea what it is but I want it. šŸ™‚

    1. Okay, not only do I make a stupid typo, but I go ahead and post that anonymously! *smacks head* Sorry. The above comment, twas me.

Comments are closed.