Forget Everything you knew about Web Development
by Mike Harvey
Mon Jul 6, 2015
It's all new but does it all matter? If you're a web/application developer or designer, the landscape is ever-changing. What was cutting-edge this morning, is old news this afternoon. And we're not just talking new libraries or design trends here. Technologies such as Real-time Messaging, AngularJS and Web Components will forever change the way we think about applications. And the pace at which it's changing is a big challenge if you want to remain competitive. The million dollar question for many developers is "What technologies do I avoid, what do I dabble in, and what to go full hog with?"
The Magic of Open Source
No one needs a history lesson or a bullet list of the technologies and standards that changed the internet and the web into the primary vehicle for the Information Boom that has made the world a smaller place. The basic fact is that just about every one came from an open sourced, non-profit entity, or at least a company whose origins are firmly rooted in open-source. Some will disagree, but the facts are overwhelming. That is perhaps the single biggest differentiating factor that makes the culture unique in all of human history. People at their core want to contribute to a cause they can believe in. Open-source intitiatives have always attracted the cream of the crop, some of the truly brillant minds of our time. Why? Well the ones I know do it simply because they know their efforts and contributions will benefit everyone, not just some shareholders somewhere.
How do I Choose?
The basic question here is, "What technologies should I as a web developer invest my time in mastering?" As a truly non-biased user/developer, I tend to be pessimistic when it comes to new technology. This is especially true when I believe the real motivation behind the technology is to leverage a specific vendor's services or framework and designed with the "crack dealer" mentality to lock users into dependencies on pay for services. Remember, I'm religeous about my web. Why? Because the core technology underpinnings should be free for all. That's what attracted us to the web in the first place, right?. I'm always leary of the catch; for the company trying to "corner the market". That's not to say the Game Changers don't want to make money. They need to keep their doors open too. Making money itself is a good thing.
In my experience the motivation behind the technology has a direct relationship to it's long term viability and impact. When I personally choose what to invest my time in learning I will always prioritize with this in mind. Adoption in the real world is the key to whether something stays or something fades into the perverbial history books. Based on this premise, when I have the choice (which I don't always have), I always tend to shy away from investing significant effort in anything with a vendor specific application or "hook". I personally always look to open sourced solutions, languages and frameworks first. Looking back I guess I always have.
What to Avoid
I always try to avoid technology that forces me to use a specific vendor solution. That's the primary reason I was never motivated to learn C# or ActionScript for example. Sure I know enough as I have had to learn some of it in my career, but I am far from an expert. Why? Simply because to use it you really do need to employ products which are almost never free. It's really that simple for me. My rule of thumb is if I need to buy the authoring tools just to develop a solution, it's a good bet the motivation behind the technology has hooks in it too.
What to Watch
Beware of the "trendy". Trendy technologies come and go. They are technologies that you should be leary of investing too much time and effort in mastering. Trends always change which makes the future of "trendy" a questionable investment of your time. Technologies such as Data Driven Personalization are hot now, but the security implications have not yet been addressed making these risky propositions long term.
- Cloud "Specific" Technologies - Accessing cloud services should be standardized in order for them to be viable in the long run. Investing too much time here in learning everything these is to know about [insert cloud vendor here] is risky as the vendor may not be around in three years. Sure understanding the API is key to leveraging any service, but investing in mastering technolgies specific to a cloud vendor limit your utility. The key here is to master how to consume the services offered. nIf it takes too much effort, it's probably not worth it, escpecially if you have to pay to use the service.
- Social Media Frameworks - I'm grouping all Social Media into the same bucket as they suffer from the same disease. They need users on their site - period. If there is any single phenomenon in the last 10 years that has brought more people to the web it has been social media. Social media certainly is "trendy". However, the pure volume of data generated and the practice of farming of personal information for marketing purposes points to troubling times ahead. As users become more savvy about protecting their information, the harder it will be for Social Media to sustain it's momentum. Here I take a wait and see approach, and recommend not investing too much energy in development against Social Media APIs. Absolutely, integrate their content, but do not bet the ranch.
Some Good Bets
All of the following suggestions are open sourced technologies that in my experience will are already changing the game. This isn't all of them, but it's a good place to start.
- Google - Need I say anymore? OK I will. No one contributes more than Google. It is at the core of the companies belief system to give back. Their philanthopy and social responsibility are not just words on their website, they are fundamental to the core of the company. And insomuch their contributions technically are nothing short of astounding. What Google stuff should you be learning? Well there's Dart, and AngularJS for starters. And there's also Polymer which is Googles attempt at making web components easier to use. Also there's NodeJs which isn't a Google initiative but based on the Chrome engine. Not everything Google puts out is a game changer. But these few certainly are and have already begun to change the very core of the web. Oh yeah! And they do not require you to use Google anything and that is pretty awesome. As a result, forget everything you knew about web design and development. If you are a serious professional, you need to know this stuff, period.
- Big Data - As I mentioned in a previous post What ABout My Big Data?, big data is only going to get bigger. We are enetering a new frontier in terms of the amount of data our solutions must expose, manage, and analyze. Unstructured data is not going away. First on my list here would be MongoDB. Learn how to use it and analyze it. It is open-source and there are plenty of free resources to get you started.
- Push/Long Polling - Since the introduction of HTML5, push and long polling have come to the mainstream, and are incredibly important technologies for current as well as future web/application development. These massaging technologies enable realtime data exchange between clients and other clients ( like chat and web-based gaming) as well as bewteen server and client for realtime delivery of information (like stock quotes, weather notifications, etc.) and are widely used in mobile applications. You could theoritically provide this integration on your own servers using websockets and the backend platform of your choice. Personally, for the cost I opt for cloud based providers. Some notable players here are PubNub and Realtime Frameworks. They both provide similar cloud-based messaging services.
I hope I provided some insight as to where to best spend your time as you navigate the ever-changing landscape of web technologes. It truly is an exciting and daunting time just like when I got started 20 years ago. Hey I'm an old guy. If I can do it, you can too. Drop me a line and let me know what you think.