Earlier this year I wrote a blog post about JavaScript and why I thought it was doomed; I also wrote a blog post about responsive design and why I thought it was a waste of time.
To be fair, I didn’t completely bash either technology, but I also didn’t have very many kind words to say about JavaScript or responsive design either.
It turns out that shortly after writing those articles, I found myself, ironically, working much more with JavaScript and having to use websites from my mobile device that were not created with responsive design techniques.
I consider myself to be pretty open-minded, especially when it comes to technology, but in both of these cases, I was being a bit narrow-minded and I think it is important to be willing to admit when you are wrong.
First let’s talk about JavaScript
Dear JavaScript, I’m sorry I said that you were ugly and that you would die soon. I realize that you might not be the most attractive programming language ever created, but like troll dolls or the furby, you have a special kind of beauty that I’ve since learned to appreciate. And, as for predicting your death, well, it does seem that you are still in the prime of your life, and while everything eventually dies, even programming languages, it isn’t nice to remind people of their mortality. So, for both of those offenses, I am truly sorry.
On a more serious note, it seems that pretty soon after writing up that article I ended up creating several Pluralsight courses in which I was doing quite a bit of JavaScript development.
By doing this, I actually discovered that the ubiquity of JavaScript was actually very valuable and that it wasn’t as hard as I imagined to create fairly complex JavaScript based applications.
Let me explain a bit further.
After having created several applications using several different platforms and technologies with JavaScript, it became clear to me that the language itself was very flexible and JavaScript’s ability to easily treat data like code, through the use of JSON, was very useful.
At first, when I was just creating web applications with JavaScript, using it as a scripting language to do UI automation, this flexibility seemed to get in the way and make things more complicated than I liked. I still think that JavaScript can be quite messy in a traditional web application that posts back to the server.
But, when I started using JavaScript to create Chrome plugins, and develop Single Page Applications, this flexibility became extremely useful, because I could basically create exactly what I wanted without a bunch of ceremony around it. I started to see JavaScript as something I could use to build a more specific API that was specific to the problem domain I was solving. I also saw that in many cases, for example Meteor, someone else was already doing this for me and I could just follow the conventions they laid out.
I still think there are some things about JavaScript that need to be improved. But, overall, I have learned to stick to the good parts as much as possible. More importantly, I have learned that knowing the core concepts of JavaScript and programming with JavaScript has allowed me to build a good base which I can bring to many different platforms and environments. Even though different programming environments may define their own conventions for using JavaScript to create an application or extend one, it is relatively easy to adapt to those conventions once you are familiar with some of the core parts of JavaScript that carryover everywhere.
I also have grown to like the prototypical nature of JavaScript and other prototypical languages like Lua. I’ve always been a big fan of statically typed languages, and I still am, but I can also now appreciate some of the patterns that only a prototypical language allows which can really allow you to do quite a bit with just a little code.
Onto responsive design
I actually had a very enlightening conversation with a gentleman on Twitter, who really helped me take a second look at responsive design and why it was more useful than I thought.
One of the biggest ways that he shifted my thinking about responsive design was by helping me to realize that it isn’t just PC, mobile phone, tablet, but that there were all kinds of forms factors and kinds of devices that a web page should look good and function well on today.
It also seems that right after I had written that article that I ended up having to use my phone for doing web based things much more than I had before then. I quickly became frustrated with websites that did not implement some kind of responsive design and found myself smiling when I happened upon a website that was mobile friendly and altered the UI to make it much easier to use on a phone.
When I thought about it more, it turned out that I was responding instinctively to the fad of responsive design, but not realizing the actual value that was there. I probably have a tendency to backlash hard against technology trends that seem to be fads or trendy. Sometimes, I do get a bit overzealous in doing so and don’t realize that even though many people are ignorantly worshipping some new technology or trend, there are many others who are wearing the latest techno-fashion, because it really is good and useful.
By the way, I found this book, to be a good resource for learning about responsive web design, if you are looking to get a bit more understanding of it.
I still don’t think it is healthy or smart to jump all into responsive design without a good reason for doing so or having a good understanding of the value it will bring. (Responsive design is not for everyone.) But, I do think responsive design is a good solution and should be implemented in many more cases than what I had originally thought. I can see a large amount of value in making an existing site responsive, because it can attract more business and make it easier for existing customers to give you money or use your product.
I even find myself wishing that my website was more responsive. This blog has a default mobile theme, but I am wondering how much mobile traffic I am losing out on, or how many opportunities to convert that traffic to customers to one of my products I am also missing out on, because I am not presenting the information on this blog in the best way I can for a smaller device.
A good lesson
It turns out being wrong about these two technologies was a good lesson for me, because it helped me realize that even though I like to think that I have eliminated most of my technology biases, there are still plenty that exist.
One of the key things that I’ve always said about this blog is that I am not going to stop from saying something because I am not 100% sure of what I am saying. What I mean by this is that I will give my view to the best of my knowledge, but that view is subject to revision. There really is no need to hold onto a viewpoint that is wrong, once you realize it is wrong and it is ok to be wrong sometimes. We all have to be willing to grow and learn along our journey. If we want to be able to improve, we have to be willing to allow ourselves to be wrong and to be ok with that.
There are so many posts that I have written for this blog that I wouldn’t agree with 100% today and that is because my knowledge and experience is changing. I really wouldn’t want it any other way. If I agree 100% with what I wrote about last year or the year before, I would be 100% the same person I was back then, so I wouldn’t be growing and improving. I’d rather be wrong sometimes and grow than think I am right all the time and stagnate.