I Was Afraid of Angular.js Because it Reminded me of Drupal 26 March 2014
This post has nothing to do with any technical similarity between the two systems.
It is the conclusion of a series of posts, in which I have attempted to understand why my instincts were telling me to avoid Angular.js at all costs.
It’s not something I really emphasize on my online portfolio, but I was actually a major contributor to Drupal. I don’t think it’s hyperbolic to say that I was responsible for a lot of the parts of the framework that could generally be considered some of the most quintessentially ‘Drupal’ api’s.
It was only after almost 10 years with the project that I became aware that it’s growing complexity would eventually overwhelm me and become an obstacle to my future happiness.
It wasn’t really Drupal’s fault that I needed to leave, I think it is just any system that gets to this level of complexity. I can work on this level for a while, but working on this level every day will start to drain the colour out of my world, and is ultimately not going to make me a better person.
I had invested so much of myself into Drupal, that it had become part of my identity. Subsequently, stepping away from the project was one of the hardest things I had ever needed to do.
When I looked at Angular.js
I saw the same endless potential that I had initially seen in Drupal.
I dreaded feeling the way I had near the end of my time with Drupal.
I think it was this conflict that drove my need to properly evaluate Angular.js, even if just to put my mind to rest.
Nature of my Intuition
I now believe that my intuition was, in a way, projecting my possible/likely emotional state 6 (or maybe even up to 8) years down the line, if I were to invest myself or my time into this. Basically, would I be happy doing this for a really long time?
The only way this extra sense could really develop is through personal experience and if I hadn’t had those experiences, I would probably have charged ahead, not thinking about where I could be headed.
I can only really intellectually extrapolate how these types of systems could evolve maybe 2-3 years down the line, and even then when I am wrong, I can acknowledge it mostly on an intellectual level.
This form of intuition feels like I will really need to have experienced an outcome for it to become more honed, and that means I will need to make more mistakes =)
Why my intuition was wrong about Angular.js
With Drupal, my problem was that I came to realize there was no way I could make it any simpler, while still doing what it was busy doing. It would never get any easier for me, ever again.
I think that Angular is very rare in that actually has real potential to become simpler over time as the standards evolve. A lot of the things I was uncomfortable with, such as dirty-checking observables, can eventually be removed entirely.
The last thing that set off my spidey-sense was the black magic dependency injection, but even that is going to be gone in Angular 2.0. I really do think the developers know what they are doing, and I hope they will pick simple over easy whenever they can.
I am still not the model user for Angular, and I am still [likely to use Backbone when I have the choice]((/2014/03/why-wrong-to-be-afraid-angular#reuse), but I do look forward to seeing how it evolves over time.
Did I learn anything?
Yeah, I’d say I did. I now know why certain types of tools have a visceral reaction on me, and I’ve expanded my vocabulary in ways that will aid me when discussing these topics in the future.
I’ve also realized that I still have a Drupal community sized hole in my heart. Those were some of the happiest times of my life and I will always cherish them. I’d like to think I left behind an Adrian sized hole in theirs too.
Pictures below are from the first DrupalCon I missed, and therefor was carried around in effigy by my friends.
But I also know that leaving was the right thing for me to do, and I am in a much better place than I would have been otherwise.
Nowadays, I actively try to do less, and I pick my battles more carefully.