1. 5

  2. 2

    Not that this is an excuse, but I’m pretty sure the etymology of the angular pattern is tied to CSS properties and their reflection in the DOM.

    #el { background-color: red } –> el.backgroundColor = 'red'

    1. 3

      That’s a really nice connection to make.

      As a web dev, I often feel like a ridiculous percentage of my day is spent converting between FooBar and foo_bar in the Ruby server code, foo-bar in the CSS class, fooBar in the JavaScript, and Foo Bar in the documentation. There’s just so damn much repetitive plumbing.

      I have the same feeling of wasting my time as I did shortly before Django and Rails were released, when I was working in PHP. I realized I was copying code around that did the same things for ORM, routing, organizing templates, etc. and starting to extract libraries to do it when poof some folks who were a year ahead of me released the thing I’d been working towards. When I look at the new wave of frontend toolkits (Ember, React, etc.) I don’t have that same shock of recognition, I think “ah, yeah, I see how that’s an improvement, let me get me pipe wrench and threader”. The job is back to lots of schlepping data into and out of strings, hashes, and ad-hoc data structures and serializations. There’s a new sea of drudgery waiting to be parted.

      1. 1

        Do you feel like it’s new tedium, or the same tedium returned? It certainly doesn’t surprise me that technology goes in cycles of misunderstanding, but it’s depressing to see it happen on such a short timespan.

        1. 3

          I think it’s a new, very similar tedium. Old tedium: mapping table column names to model attribute names, fixed with ORM. New tedium: mapping attribute names to HTML element classes, JSON fields, JavaScript model attribute names, form field names, etc. The old problem is still solved, but as our app scope has broadened we see the same problem in new clothes.

          There are other bits of new tedium that are much more novel like repeating validations on client and server.

          I don’t think it’s a cycle of misunderstanding, it’s a cycle where we realize we’re doing repetitive work and build new abstractions into new tools (or, far better but far more rarely, find ways to eliminate repetitions and abstraction) like Rails promoting ORMs.

          1. 1

            Hmm. I appreciate the insight, then.