A message for all grumpy developers

A message for all grumpy developers

This is not a front-end development tutorial and you will not learn any new coding techniques by reading this.

It is just a simple reminder why we should embrace the current state of front-end development instead of complaining about its complexity.

TL;DR Be happy for what you’ve got, you could be also out of a job like the millions of Flash developers around the globe.

The Past

15 years ago I was an aspiring designer or developer.

I had no idea what I want to do, I just knew that I like to create things for the world wide web.

After a year of working on a few freelance jobs I slowly realised that coding is my thing.

I was excited about being able to turn designs into a working website and make it work in every browser.

By implementing a few Content Management Systems, I have learned how to give the clients the power to change the content on their own.

Then I discovered the cool JavaScript library that let me show and hide elements on a page, add client site validation to forms, or launch modal window when the user clicked on a button.

It enabled me to add some interactivity to my projects and I felt like I can do anything on the web.

I loved that time and was keen to learn more.

Here is a short break down of the good and bad from the past.

The Good

In general:

  • things used to be much more simpler
  • I didn’t have to make many decisions
  • the user expectations was quite low
  • reloading a page on click was completely acceptable
  • website interactivity was pretty limited
  • and animations (non Flash) on the web were pretty much impossible to create

These were the good old times but we were still frustrated because of many things.

The Bad

  • CSS layouts with float and clearfix felt like a hack
  • rounded corners needed crazy overbloated HTML markup
  • SVGs or transparent images were not supported everywhere
  • dealing with evil browser workarounds (looking at you IE6) was on my daily routine
  • DOM manipulation was very heavy for the browsers
  • and complex interactivity would freeze or crash some browsers

The simplicity was great but a poor browser implementation and inconsistencies made it challenging, yet rewarding job.

I was very excited to see how the new technologies move the web forward.

I was dreaming about all the bad things to be implemented properly.

I was dreaming about fast, responsive UI with a lot of data being handled by the browsers without crashing all the time.

The Now

And now? Now we have it. We have it all and much more.

Actually we have so many options today on how to create something awesome that a lot of developers constantly complain about it!

But why?

The tools, libraries and frameworks available now allow us to:

  • create CSS layouts without any hacks
  • use rounded corners, transparency and SVGs
  • choose from thousands of free web fonts
  • build complex interactivity without any issues
  • create animations running buttery smooth at 60fps
  • build data heavy web apps working in all modern browsers
  • request loads of data from external APIs and getting it almost instantly

Today we can build all this and we should embrace how far the web has moved in the recent years.

The web will get better if there is more excited front-end developers out there.

The Solution

To help you get over the complexity try some of the following:

  1. remove all distractions and learn from a simple demos
  2. learn one thing at a time (yes, it is still possible)
  3. embrace the change and learn something new everyday
  4. only learn what you need and nothing you don’t
  5. share this reminder with a grumpy developer (he will be better for it)

The more excited we as a front-end developers are about learning new things, the more and quicker we learn and the better apps we create.

In other words be happy for what you’ve got, you could be also out of a job like the millions of Flash developers around the globe.

The Future

I don’t know what the JavaScript future holds for us, but I am super excited to be able to build more sophisticated, flexible cross-platform apps using “any” of the currently available frameworks and libraries.

I can’t wait to build more responsive and faster UI with the latest CSS specifications, instead of spending time coding workarounds for old browser imperfections.

I am excited to learn the new library or framework, because what it enables me to create is something that I was only dreaming about 10 or 15 years ago.

Conclusion

And what about you? How do you feel about the hundreds of blog posts being published on the topic of depressed tired and grumpy developers?

Or are you in the happy camp, keen to learn new things?

Let me know in the comments below.

6 thoughts on “A message for all grumpy developers

  1. Doug Bell

    I can understand that we’re in a much better place than we were and still lament that terrible things are being lauded as best practices. I remember table layouts and spacer GIFs (pronounced “jiffs”). I remember FrontPage’s Java animations and have used Flash 3 to create navigation animation. I don’t have to agree that React is the One True Solution (it isn’t), that CSS-in-JS gives me any benefits at all (it doesn’t), or that I must absolutely use the latest in ES7 features via incomprehensible transpilers (I don’t).

    We can, through technology, make good things simple. Animation, for example, has been made much simpler through technology: It used to be we needed Java and Flash, then Dynamic HTML ( tags), then JavaScript, but now CSS can make animation easy. Flexbox removes all the need for clearfix hacks. A lot of very easy and wonderfully useful things are being added to CSS.

    But then we have JavaScript, and it’s a mess. It was a mess before, and it’s a mess now. The language is mostly fine, and getting better through TC39’s efforts, but a lot of very bad ideas are being propagated by a lot of well-intentioned developers.

    Things like CSS Modules, which changes one well-known problem into a different, brand-new problem. JSX which, rather than separating concerns, fully integrates them. And a whole set of terrible practices built on otherwise-okay technologies that, for example, require everyone to copy/paste the same code into their project to create a “button” class.

    If I wasn’t grumpy when I couldn’t make easy animation on the web, CSS transitions/animations would never have happened. If I wasn’t grumpy about using bloated, overly-complex frameworks, the new nimble frameworks and libraries would never have happened. If we weren’t all grumpy about the delay in loading the JVM into a browser, we might all still be using Java Applets (and, incidentally, be much happier since that problem has been fixed).

    So, I will continue to be “grumpy” when people are shoving manure in my face expecting me to eat it with a smile. It’s the only way things will continue getting better.

    Reply
    1. Petr Tichy Post author

      Hey Doug, fully respect your opinion. The article was not meant to start a negative conversation.

      Instead I wanted to remind myself and others that things are getting better and the future of front-end development is bright.

      I am trying to be positive and excited about learning new things, that helps me learn quicker.

      Reply
  2. Sant

    Well, it’s called technological evolution, I believe. People will not stop looking for better, productive, easier solutions. Nevermind the grumpy.

    Reply
  3. Harith

    I’m overwhelmed because everyone is trying to create the next big framework or technique instead of letting us iron out existing things and making them work flawlessly.

    Reply
  4. David McDonald

    Petr, I feel the same way. For me, Flexbox and css grid are fundamentally changing the way I build sites.

    I was just telling a friend today how liberating front end development is for me at the moment.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>