

Surviving UI Programming - hyperpape
http://inessential.com/2014/04/23/surviving_ui_programming

======
hibikir
UI programming is actually the most fun you can have in many shops. How many
developers are out there mind numbingly writing CRUD services to some ORM
abstraction? It's an easy life, but it's really no fun at all.

With UIs, things change, feedback is far faster than in a service-only world,
and there's a whole lot more freedom. For some of us, it's about as fun as
things can get. You just have to be able to pay the price of understanding a
bunch of infrastructure underneath, and the newer the technology, the worse
the infrastructure gets, because it's buggier and incomplete.

So as far as UI development goes, there's a bit of a technological ugly
valley. Things are fun if you are on the bleeding edge, and building libraries
yourself. They can also be fun if you are running on something mature and
documented. It's the space in between that sucks. Now, the sad thing is that
many places out there are choosing web technologies that are in this ugly
valley. Just enough help to start to have expectations on getting things done
quickly, but widgets that are one or two features away from what you want, and
yet are almost impossible to extend well.

So how do you survive UI programming? By being very careful about the tools
you use.

------
lightblade
If you are just bored, then perhaps you're not getting the hard problems. Even
CRUD can be hard when you are working with bad API backed by complex domain
model.

For example, I'm working on a form (easy right?) that allows user to build
layers on phantom models before it is allowed to persist. Each layer of model
is supported by one API. There are distinct possibility that the persisting
can fail at one time and you need to roll everything you persisted before back
(through the same API). Even those rollback calls can fail. Not only that, but
each of these API calls can take 10 to 90 seconds to complete.

Now it's hard right?

------
hyperpape
I submitted this because my feeling about UI programming is that I'm missing
some sort of theory/language/spec for describing what I want and what the APIs
can give me.

I don't know if that's a failure of my education, or if it's just not out
there, but I always feel like I'm guessing what a given API call or widget
will do. With other areas of programming, I make plenty of mistakes, but
they're because I ignored a case, or misread documentation, or didn't think
through how an algorithm would function.

