I’m looking for a good vector-illustration app and download a likely candidate. I rely on knowing the position of the cursor on the page—strangely, some programs won’t show this—so it’s a good first sign to see coordinates displayed at the top of the screen. Now I drag the selection rectangle around a shape to measure it.
Uh-oh, it’s still showing only the cursor coordinates as I drag. What I want to see are two sets of values: the cursor position and the current size of the rectangle. Now I could do the subtraction myself, but I’m using a computer that can do billions of calculations each second. I don’t want to get slowed down because of mistakes in my mental computation or because I mistyped a number into the Erlang or Python interpreter I use as a calculator.
I set this app aside and start evaluating another. And that sentence should be utterly horrifying to developers everywhere.
A team of people spent thousands of hours building that app. There are tens or hundreds of thousands of lines of codes split across dozens of files. There’s low-level manipulation of cubic splines, a system for creating layers and optimizing redraw when there are dozens of them, a complex UI, importing and exporting of SVG and Adobe Illustrator and Postscript files, tricky algorithms for detecting which shape you’re clicking on, gradient and drop shadow rendering, text handling…and I’m only hitting some of the highlights.
Yet here I am dismissing it in a casual, offhand way because of how the coordinates of the selection rectangle are displayed. The fix involves two subtractions, a change to a format string, and a bit of testing. It’s trivial, especially in comparison to all the difficult, under-the-hood work to make the selection of objects possible in the first place, but it makes no difference, because I’ve moved on.
These are the kind of front-facing features people use to decide if they like an app or not. Seemingly superficial fit and finish issues are everything, and the giant foundation that enables those bits of polish is simply assumed to exist.
(If you liked this, you might enjoy It’s Like That Because It Has Always Been Like That.)
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» statonjr (Larry Staton Jr.): I just liked “Elixir - A modern approach to programming for the Erlang VM” on Vimeo: http://t.co/CYykYf2tdZ
I just liked “Elixir - A modern approach to programming for the Erlang VM” on Vimeo: http://t.co/CYykYf2tdZ
» NotDoctorOk (Not Richard O'Keefe): I have 12 different kinds of
dictionary (one of them unfinished) and can foresee a need for
two more. http://t.co/RN76gjtvsK
I have 12 different kinds of
» rinaldifonseca (Rinaldi Fonseca): Current status: brincando com list comprehensions em Erlang
Current status: brincando com list comprehensions em Erlang
» bkmontgomery (Brad Montgomery ⚑): RT @justinvincent: How and Why We Switched from Erlang to Python http://t.co/L3uGOgYTN2
RT @justinvincent: How and Why We Switched from Erlang to Python http://t.co/L3uGOgYTN2
» jaz303 (Jason Frame): people, should i next dive into haskell, erlang or clojure?
people, should i next dive into haskell, erlang or clojure?
» andystopford (Andrew Stopford): @coreyhaines that sounds cool, how are finding nn coding in Erlang?
@coreyhaines that sounds cool, how are finding nn coding in Erlang?
Number of aggregated posts: 10648
Most recent article: May 14, 2013
» 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…