Exposed to Modern Web Dev Pathogens
This weekend, my coworker Shannon and I participated in our first hackathon, Angular Attack 2016. Many developers spent the weekend developing apps using Angular, one of the many New Hotness view frameworks for Web development. As someone who now ostensibly gets paid to make Web sites, I should probably keep up with the hot new trends in the Web dev world, and this hackathon seemed like a great way to familiarize myself with a framework we had been considering using for work.
It’s no secret that I’m a critic of modern Web development practices. It seems damn near impossible to accomplish anything fancy on the Web these days without needing to resort to a web of node.js packages that seems even too ridiculous as a caricature. The Hello World project that was inside our source repository when we entered the hackathon had 434 dependencies to install on my machine, and it wasn’t even doing anything other than display Hello World yet. It seems like a house of cards teetering on the edge of collapse, and that’s because it is one.
But modern Web development also has some really cool stuff these days. Listeners to the podcast probably know I’m a big fan of Facebook’s React framework. It definitely isn’t perfect, but it defies many assumptions people had about best practices on the Internet, tries something bold and new, and proves that perhaps it isn’t so crazy after all. This kind of reimagining of Web development is sorely needed as bigger and bigger applications are developed atop of it on the client-side, and there’s no real structure in place to keep development sane.
From my limited experience with Angular 2 over the weekend, it feels like a more “enterprise” take on React, with much more plumbing needing to be done explicitly by the developers. The scale of our application (which you can vote for here) was incredibly limited, so it’s hard to say for certain, but it seems like it could come in handy in massive-scale applications. The things I tend to develop outside of work are much more minimal, so I’d tend to gravitate towards something like Riot myself, if I decide to bother with a fancy view layer at all.
Visual Studio Code has really nice tooling when combined with TypeScript, but I can’t help but feel that it and other Atom-based text editors still feel too much like typing in a Web browser (because fundamentally that’s what it is) and not enough like a native Mac app. Yes, it’s nitpicky, but you know me.
But overall, it was a decent learning experience, and I think we know enough about it now to make an informed decision on whether or not it’s the right tool for the job in future projects. That’s all we really wanted out of it, so I’d call it a success.