I've been in this industry for over a decade now, and the one thing I've learnt is that you should never believe the hype.
Technologies come and go, things get superceded, things improve. You just need to look at the technologies or frameworks that are no longer with us, such as Flash and those that are now barely used including the myriad of JS solutions we've used. Sure, sometimes you might want to ride the wave, it'll be fun, but you might not be left with much afterwards.
Using what is cemented into the ecosystem and battle tested will mean you don't come across any horrible surprises. You have a myriad of documentation and stack overflow questions answered on the most superfluous of issues. Getting things done is easy, if not always elegant.
Selling you the dream.
Twitter, blog posts and conferences will sell you a reality that in most cases doesn't exist in the corporate world. That's the purpose of those mediums, they are trying to build and audience, create a market, get you interested in what is new. It's basic marketing.
Mircroservices, Macrofrontends, Unit tests, Static code analysis, Best practices, Containers, K8s, Serverless, Cloud, ai, big data, react, go, nosql, sass, PWAs, design systems, automation, agile.
All these things are useful and important in the right circumstances, however if you think your company should be following all of these methodologies then you're being naive. Businesses have objectives and stakeholders to appease. They're not here for us to create the mecca of the technology world. Sure, some big businesses can afford to live the dream, but those are far and few between.
K.I.S.S.
There is nothing wrong with a well organised and structured monolith. In fact for most of us, that's still the best way to go.
All these things have been heralded as the holy grail and yet most businesses are using at most a couple of these idioms.
Our new devs are lambasted with complicated tech stacks, overpriced hosting solutions and preachy beliefs that make all but the most simple hello world application a difficult and unsatisfying proposition.
The Fundamental Fallacy
Rather than looking at problems, we memorize frameworks, syntax and convoluted ways to complete simple tasks.
I'm sick of telling people that you can achieve things in a few lines of JavaScript. There is no need for a complex SPA application written in React/Angular/Vue installing 37 dependencies to make an http request, or fill a simple form.
I'm tired of reading countless blog posts on how to use Gatsby and React to create the most perfect blog site that you can host on Netlify or GitHub pages. If you want to blog, create some content, don't spend 3 months creating a damn blog framework, there are hundreds out there already! Just use one!
The internet and technology has been around for a long time, and people are always pining for what's new. It's understandable, it's new, it's shiny, it's cool. But it's not always necessary. Actually it's very rarely necessary.
Sometimes a few lines of JQuery can do everything you need. Sometimes you don't need 100% code coverage across your codebase. Sometimes you just use WordPress to deploy your blog, and focus on the content you are trying to share.
Sometimes you shouldn't believe the hype.
Top comments (35)
I don't agree. Sure, at the job it's often not about the newest or shiniest tech and unfortunately, the code quality is often problematic.
But if every blog was about good enough solutions using only the most proven, commonly used, and boring tech, what would be my value as a reader? It would be just like work, only without pay.
I'm here to get inspired and learn about things beyond my day to day work.
So true! Sure you can use a lot of other’s blog frameworks but will that make you a better dev? I don’t think so. For those who are joining the field need all the experience they can get.
It's not about being a better dev, it's about creating a solution that solves your problem. Do you think your end user cares if you use jQuery, Less or your code doesn't have tests?
I agree that tool and framework don't matter if you are building a good application in whatever framework you want, but I think still tests are important. Otherwise, the developer will have to spend time manually checking for everything after changes.
Isn't that what testers are for? Or should I say, your end users? 😛
In small teams(startup) you are everything ☹️
My app crashing in hands of end-user sounds scary. Even though there will always be bugs and crashes they can be limited with proper testing. But, I do confess that I haven't written tests as an Intern.
Haha, sorry. I think you misinterpreted my jovialness. Of course testing is a net positive. Covering every single line written is probably overkill. Focus on the important bits, and as Kent says. Write tests, not too many, focus on integration! 🤓
Yeah, I think so 😅
Hey David, I'm not against learning new things and getting inspired, life would be a boring place if nothing changed. I'm saying that just because something is new and popular doesn't mean it's right for you and you need to use it right away. Being an early adopter is usually a painful experience, Take AngularJS, there are still countless companies using this now outdated tech because they jumped in too soon. See my post on why you should make your own decisions here...
Cargo Cult Programming!
Chris Bertrand ・ Jan 15 '19 ・ 6 min read
... few paragraphs later...
TBH, jQuery is even worse than React. jQuery 2.1.3 minified is 84 kB. Preact is a lightweight alternative to React at only 3 kB. Sure, you create simple interactions with vanilla JS (or complex if feeling masochistic), but what do you need jQuery for in 2020? It's just a whole lot of bloat we needed because it gave some degree of compatibility with IE 6.
At end of the day, just use what works for you.
jQuery might be 84kb but how big is the bundle with all the dependencies in the complete React app? Sure Preact is a good alternative, but so is Vanilla JavaScript. I'm not advising people to use jQuery, far from it. At the end of the day, it's all the same code. Use whatever you want, dont pick one because it's cool. It sounds like you're aware of this already. Not everyone is. Thanks for the healthy debate!
The dependency hell is not something forced upon you when use React, it's something that many React users have inflicted on themselves by not being careful what dependencies they introduce to their application. That comes from another hype that everything should be reusable, and the belief that if you copy paste two lines you will lose your limbs or something. 😁
jQuery was also a hype back in 2000's. React is almost a decade old now, and I will no longer call it a hype.
I do understand the use of jQuery for legacy projects, if it aint broke, don't replace it.
But, when I see someone use jQuery to build a new project in 2020, I just see it as a refusal to learn a superior modern technology. There's just no excuse for it. It's the same reason new houses and buildings are built using new practices, while old houses are just maintained.
Everything is new and shiny at one point! 💍🏚️🚀
I don't completely agree with you. On the one hand, you're right in saying that things that are marketed as shiny don't always shine so bright. But on the other hand, we need people to test new things and innovate. Otherwise, tech wouldn't move forward, and we won't have any new breakthroughs.
I don't know about you, but I don't want to believe in a world where there is no longer anything new and all the magic that can be found have already been exhausted.
That's completely fine Adrian, that's the joy of discussion! Tech has come on leaps and bounds, and I most certainly advocate for the use of new tech in development projects. I don't think that you constantly need to change your application to use them though. The problem you are trying to solve is more important than how you solve it. But yes, things would be a little dull if we were still programming in COBOL. 😉
I wholeheartedly agree! There's a tendency to be hell-bent on using new technology since it's "the next big thing". A thorough understanding of what's already being offered is necessary. More often than not, the new technology is overkill of what you are trying to accomplish.
Cheers, Chris!
I agree with you up to a point, but it needs to be clarified whether you talking about individuals or companies. My hunch is that you are talking about companies. If its the case, I think you made a good point.
On the other hand, at the individual level developers should always try out the new things (my very personal opinion). But sometimes we just caught up in the hype & that's okay, life isn't about being perfect.
None of us are perfect. That's why pencils have erasers!
Agreed
Totally agree with author. New technologies that make more effective the result are wonderful things - that is the progress! But thousands of unnecessary solutions which only repeating existing ones, sometimes with minor changes, this is real trash but not an innovation. If you have an instrument that absolutely solves your tasks - use it, or at least you can make it better (But be sure that there are already people who responsible for it :)) People often make product to prove their value, but not to make "something new". It is just wasting of employer`s money or their own time. If things are like that it means that people cannot propose something new but only imitating. Sorry for seditious comment.
That's right Vladimir, progress is a wonderous thing, and people can and should test out these tools and learn from them. Just don't think they'll solve all your problems!
"Rather than looking at problems, we memorize frameworks, syntax and convoluted ways to complete simple tasks."
This is so true for a lot of people, and I've seen people around me with this mindset.
Often enough, I think people overthinking these problems have just not done a needs assessment to figure out what they need to solve.
Also, a strong agree on content. It's such an important rule: Content. Is. King.
Awesome post!!
Thanks Troy, that mindset is a hard one to get out of, especially as we're fed all these new shiny things all the time! But yes, Content. Is. King! 🙌
There's always going to be something new, and most of it will fade into day old history.
But sometimes there's going to be that one thing just blows everything out of the water. It just so happens that most of the big things tend to be dominated by the big players who integrate it into their platforms for all their users.
Yes, and those big players have reason and justfication for creating and using them. I'm a big fan of what Blazor brings to the table, would I consider using it for a full fledged system right now. Debatable. Will it grow into something incredible. No doubt. Just take TypeScript as an example. Released in 2012, how easy to use do you think it was back then? How much tooling was built around it? How much has it progressed into what is a incredible product right now.
"Sure, some big businesses can afford to live the dream, but those are far and few between."
This is not a well understood point in our industry. I often listen to / read devs who work for one of the wealthy big players and think we live in entirely different universes. 😂
100% The notion that you can spend 6 months working on a POC with the latest tech and find out it isn't for you, scenario isn't too prevalent for most! 🤳
Being an early adaptor of a technology is synonymous to buying stocks. If the technology or tool becomes popular, you are one of the very first experts of it. If it doesn't, then some of your time is wasted (although not totally as you can still apply some concepts you have learned in other tools).
For me, I don't use shiny tools for my personal and work projects, but wait for them to be stable first, probably even when the second major version is released.
I still try out the shiny tools just to play around with it, but not to create a real project. I keep my eye on it and stay updated until I can finally decide it's ready to be used in real projects.
Totally. Try it, have a play, see what is offered and make your own decision. That's what I'm advocating. It's the buzz around certain technologies that can blindside people. You know... Hype. 🙈
Using vanilla JS is starting to become the new hype these days. You have something to brag about if you used no framework to build your blog. It's actually the reverse now, in which I would advice using a library instead of using vanilla JS just to show off.