This post originated from an RSS feed registered with Web Buzz
by Stuart Langridge.
Original Post: Developers are users too
Feed Title: as days pass by
Feed URL: http://feeds.feedburner.com/kryogenix
Feed Description: scratched tallies on the prison wall
When you talk about the “user experience” of the thing you’re building, remember that developers who use your APIs are users too. And you need to think about their experience.
We seem to have created a world centred on github where everyone has to manage dependencies by hand, like we had to in 1997. This problem was completely solved by apt twenty years ago, but the new cool github world is, it seems, too cool to care about that. Go off to get some new project by git cloneing it and it’s quite likely to say “oh, and it depends on $SOME_OTHER_PROJECT (here’s a link to that project’s github repo)”. And then you have to go fetch both and set them up yourself. Which is really annoying.
Now, there are good reasons why to not care about existing dependency package management systems such as apt. Getting stuff into Ubuntu is hard, laborious work and most projects don’t want to do it. PPAs make it easier, but not much easier; if you’re building a thing and not specifically targeting Ubuntu with it, you don’t want to have to learn about Launchpad and PPAs and build recipes and whatnot. This sort of problem is also solves neatly for packages in a specific language by that language’s own packaging system; Python stuff is installable with pip install whatever and a virtualenv; Node stuff is installable with npm install whatever; all these take care of fetching any dependent stuff. But this rush for each language to have its own “app store” for its apps and libraries means that combining things from different languages is still the same 20th century nightmare. Take, for example, Mozilla’s new Firefox Tools Adaptor. I’m not picking on Mozilla here; the FTA is new, and it’s pretty cool, and it’s not finished yet. This is just the latest in a long line of things which exhibit the problem. The FTA allows you to use the Firefox devtools to debug web things running in other browsers. Including, excitingly, debugging things running in iOS Safari on the iPhone. Now, doing that’s a pain in the ringpiece at the moment; you have to install Google’s ios-webkit-debug-proxy, which needs to be compiled, and Apple break compatibility with it all the time and so you have to fetch and build new versions of libimobiledevice or something. I was eager to see that the new Firefox Tools Adaptor promises to allow debugging on iOS Safari just by installing a Firefox extension.
And then I read about it, and it says, “The Adapter’s iOS support uses Google’s ios-webkit-debug-proxy. Until that support is built directly into the add-on, you’ll need to install and run the ios-webkit-debug-proxy binary yourself”. Sigh. That’s the hard part. And it’s not any easier here.
Again, I’m not blaming Mozilla here — they plan to fix this, but they’ll have to fix it by essentially bundling ios-webkit-debug-proxywith the FTA. That’ll work, and that’s an important thing for them to do in order to provide a slick user experience for developers using this tool (because “download and compile this other thing first” is not ever ever a nice user experience). This is sorta kinda solved by brew for Mac users, but there’s a lot of stuff not in brew either. Still, there is willingness to solve it that way by having a packaging system. But it’s annoying that Ubuntu already has one and people are loath to use it. Using it makes for a better developer user experience. That’s important.