Translate

Monday, May 12, 2014

Web 3.0 And Standards

I'm sure that most of us remember the marketing storm that was Web 2.0, and I think that just about everyone can agree that we have reached the point in time where some sites take user input and output it as content in some way or another, and some sites just don't. And that is fine. Not every site needs 'Web 2.0'. So after hearing the term Web 3.0 tossed around here and there, I was prompted to look into what exactly it even means.

Web 3.0 isn't here yet, but it has been loosely defined as the point in time which the web has become so semantic that humans and computers can both read the same code and make quick and complete sense of it. This would include the wide-spread acceptance and usage of a solid standard. Although we have web standards bodies such as the W3C, and communities such as GitHub who get together and work in a similar standard way, we still haven't quite reached the point at which everyone is operating in the same basic way.

By this definition, marketing companies will weep, because Web 3.0 will not be the marketing phenomenon that Web 2.0 was. There are several people and articles which suggest different things about what Web 3.0 is, but I feel as though this definition is concise, and doesn't hinge on first having a definition of Web 2.0, which is good because many people still cannot agree upon what Web 2.0 even is. So after hearing the term Web 3.0 tossed around here and there, I was prompted to look into what exactly it even means.

I personally think it would be wonderful if we could reach this point. Education on topics would be much easier to obtain without the arguments about whether element X belongs above or below element Y, and why employing method Z makes you [insert insulting name here]. There is a wide array of arguments like this, and it seems as though any sort of tutorial or video about 'cutting-edge' topics (and I use that term lightly, because what is cutting-edge anyway?) has the potential to turn into an abstract standards debate at the drop of a hat. And to be quite honest, I kind of enjoy these debates, because it is an opportunity to hear opposing points of view, and to truly understand what other folks are thinking about these topics. But at the same time, I feel like debates like this can be compared to debates about support for Internet Explorer. We can stay at the point where we are not quite sure what we are going to do about it for a while, but eventually we are just going to have to make a decision about the TRUE right way to do things, or nothing will ever get done. If the right way is to put that element X below element Y, and everyone can get behind that, then that is the way it will be done.

And that is my understanding of what Web 3.0 will be. I think that we are slowly making our way towards that point, but there are just so many standards out there. Progressive enhancement, mobile first, offline first, open-source only, responsive; And those are just the ones that I can think of in less than 15 seconds. Granted, the majority of those play well together. For example, you can have a mobile-first web application which employs progressive enhancement. That is just the way it all works. But there is a certain point where people don't quite agree on the 'right' way, and that is where we are at this point in time.

With so many standards, which ones will it boil down to? Who will be the last standard standing, so to speak? Maybe it doesn't have to be just one. The important thing is that there ARE standards. That we aren't just jumping head-first into something, with every individual developer writing code completely different at a fundamental level. By no means do I discourage people from jumping into a new programming language, library, framework, and so on. I just want to express the importance of accepting some sort of standard before getting too far into these things. Of course you don't need to sit down and study these standards for a week or two, and them employ them militantly (although I'm sure some people would love it if this was a requirement), but at least be familiar with the common standards, and be prepared to change your ways if a job requires it.

When it all comes down to it, we as developers, are a community. At some point someone will likely have to read your code. We go to English classes (or Spanish, or Italian, or...) to learn the current standards for communication in our language. That doesn't mean that everyone has to speak in the same exact manner, and read through hundreds of pages of language constructs in order to have a conversation. We all take it and adapt it a little bit differently than each other, and that is beautiful. That is the way programming should be. Everyone knows the basic idea and the basic standards, and can make tiny tweaks to it in order to make it work better for them, but fundamentally changing the way the code it written does nothing but make other developers unhappy.

This isn't meant to sound preachy, because I myself am quite guilty of misusing language constructs, or making up my own "awesome" way to write some language. But when it all comes down to it, it is just confusing, and you will either leave a big mess for someone else, or end up having to rewrite or heavily comment your code. To bring a little bit of anecdotal evidence into this, I decided it would be really cool if I did a bunch of complex Ajax calls and pulled data from different locations, and used functions in PHP which match functions in JavaScript in order to make a class page for one of my JavaScript programming classes a little bit 'better'. This is all fine and dandy, until my Professor approached me after class one evening and explained to me that he had no idea what I was doing with my site, because it was so non-standard and uncommented that it is just a slew of needlessly complex JavaScript. Thankfully my Professor was a very nice fellow, and told me that if I comment it well, and he can make sense of it, he would still grade it. So by no means am I exempt from this, and I feel as though a lot of us go through this stage of their early development years where they think it would be really cool if their code was completely different from everyone else's.

All I have to say is this: Standards are standard for a reason.

I would love to hear comments or stories from anyone who might be reading this! I know it go a little bit long-winded and off-topic, and if anyone actually read through all of this -- kudos to you! I hope it didn't sound 'preachy' at any point.

No comments:

Post a Comment