Pendulum swings happen all around us from time to time. It's when a response to one extreme is the opposite extreme. Examples of industries where pendulum swings are prevalent include:
- Politics - left/right dichotomy
- Fashion - jeans, hair
- Design - open office vs. cubicles
Basically, any industry that is flush with trends and opinions is susceptible to extreme swings and it often feels like we are repeating history.
"…there is no single correct answer, just a lot of subjective decisions to make." — Kat Lynch, Why Software Developers Need Creativity
Software Development and Technology Trends
Our industry is no exception. It goes without saying that we are surrounded by opinions that we often adopt blindly, sometimes to the detriment of our own unique needs. Here is a list of some current trends and swings.
Monorepo
Theoretical Reasons for Trend
- Multiple repositories are difficult to maintain.
- Reduce dependency management.
Prior Trend
Multiple repositories - Separate our concerns. Teams can work independently. Easier to maintain.
Server-Side Rendering (SSR)
Theoretical Reasons for Trend
- Client-side rendering is slow.
- Poor to no SEO support.
Prior Trend
Client-side rendering - Browsers are fast now, server-side rendering is slow.
Prior PRIOR Trend
Render content from the Server-Side - PHP, Ruby, Java, Python, etc.
Functional Programming
Theoretical Reasons for Trend
- Write less code.
- Object-Oriented code is hard to read.
- Inheritance and class extension is bad.
Prior Trend
Object-Oriented Programming - Separation of concerns. Everything is an object. Inheritance is good. Easier to read.
Web Components
Theoretical Reasons for Trend
- (More) Reusable code.
- Combine HTML, CSS, and JS. Everything is right in front of my face in one file.
Prior Trend
Separation of concerns - Separate HTML, CSS, JS from each other.
Desktop Apps
Theoretical Reasons for Trend
- Users still like desktop apps for their convenience.
- "Always on."
Prior Trend
Web apps - The future of apps will be purely web-based. No need for desktop apps anymore.
Prior PRIOR Trend
Desktop apps - Download and install everything on your computer.
j/k... Web(Assembly) Apps
Theoretical Reasons for Trend
- Write using your favorite language - JavaScript, C#, Rust, etc.
- The future of apps will be purely web-based.
Prior Trend
Web apps AND Desktop apps - Every useful web app has a companion Desktop app.
On-Premise
Theoretical Reasons for Trend
- Any application that my company adopts must be installed internally in our private data centers for maximum security.
- I don't care about added maintenance. Security is top priority.
Prior Trend
The Cloud - Less capital costs. Low maintenance of hardware and software upgrades and network management.
Microservices
Theoretical Reasons for Trend
- Fix bugs and deploy features with minimal impact.
- Tech stack flexibility and choice due to loose coupling.
Prior Trend
Monolith - Common language and tech stack that the entire team understands. Predictability.
GraphQL
Theoretical Reasons for Trend
- Give me the data that I want and in the way that I want it.
- Less noise and calls, more data.
- Compatible with Microservices architecture.
Prior Trend
REST, RPC - Predictable endpoints. Great control and restriction.
...and last but not least, my favorite trend...
Virtual Reality (VR)
Prior Trend - VIRTUAL REALITY!
Prior PRIOR Trend - The real world.
Conclusion
Our industry changes fast and often. It's easy to fall into the shiny object trap. The purpose of this article is five-fold:
- Make you aware of current trends
- Explain why they exist
- Understand the basic history that led up to the trends
- Realize that there will be more pendulum swings in the future, and last but not least,
- Help you outlast trends and to think for yourself.
Follow me on Twitter @eddieaich
Top comments (2)
Enlightening 🤓 bravo!
interesting