I have been seeing a lot of the lately trend for the two groups of programmers to throw mud at each other using silly arguments like:
By The “Hipsters”
- “Old School” programmers are old, out of fashion, and can not provide for the business standards of today (such as a good HTML5 design, Newest trends like Ruby on Rails or Node . JS Web Applications)
- “Old School” programmers are inefficient and disorganized because the technology they are using is irrelevant to the current standards (nobody writes websites anymore in ColdFusion or ASP.Net 3, do they? oh yeah they do, sorry people.)
- “Old School Programmers” are fossils
And then we have our cute old guys throwing mud back at the newest ones because of a human’s general pleasure in feeling superior to others. We are always trying to top up our counterparts for some reason (fragile egos maybe?). Here are their so called reasons:
- The new programmers do not know anything about work ethics. All they do is copy paste code and provide nothing original (I encourage anyone try their best to learn and apply code re-usage, it is one of the biggest friends in your production flow. This argument is invalid because code re-use helps you produce much more provided you are knowing what you are doing instead of sticking together code you do not know anything about)
- They are using buggy and not so maintainable code (which is clearly not true, check out the code base for Node.JS or Ruby on Rails, they have reached a very good amount of stability, as well as performance.)
- The new programmers do not know anything about software paradigms (I realize here that having much more experience and being there when the foundations of Web Development were stabilized, gives you a great deal of experience, but this claim is untrue because the good new programmers will always check out documentation and information on Web Technologies. You can read the HTTP Specification a hour and the latest CMS info in another. A good programmer will learn from both world whether old or new.)
I have not started this article to stabilize the arguments, but rather to encourage people to watch the arguments from both parts, and stabilize some new arguments and definitions to clarify the whole point. I want to make a detail comparation of both of the worlds, both the old programmers among us and the new ones that come.
The web has changed, and there is the Darwin’s saying that applies very much to this topic, which is “The species that is unable to adapt, is unable to survive either.”. Having old and valuable knowledge is good, but becoming irrelevant is bad. Actually let’s choose the bad and good here clearly:
Good:
- Staying relevant to the current trends and hypes in Web Development (Node.JS, Ruby on Rails, Twitter Bootstrap, Angular.JS)
- Learning about the foundations of the Web (HTTP Specification, How old servers served pages, concurrency, DNS Resolution, Sockets (Not WebSockets, but BSD Sockets))
- Sharing information and learning with your fellow programmers , that leads to your growth
- Respecting the knowledge of the experienced, and the youth and curiosity of the new programmers
Bad:
- Not staying up and relevant with the current trends and hypes, technology, and methodologies (There still might be clients that want their website done in ASP 3 or something like that, but that will affect your pockets a too big of a deal)
- Ignoring the old but still used methodologies, and technologies (such as not using UNIX Sockets where WebSockets fail, such as heavy load, your Apache 2 server will still handle with much more power than your WebSocket application)
- Not showing respect to someone who can provide you with very important information (such as cool syntax tricks, methods to approach problems such as filling an array with more arrays, etc). Concisely, not getting advice from someone who has been there and solved that problem using his mind, so you can perform without beating your head around, cutting down production time.
- Not working your curiosity, your mind, and your concentration, the desire to discover new things, and venture in unknown worlds for old programmers, and not paying attention to simple things, lacking dedication, or energy just because you have some snippets or able to copy code from other parts.
My dream here, is to have the old and the new programmers combine their powers, teach each other the things they know (whether personal values such as hard working, dedication, pride in their work, and taking honor in being productive) and also technical skills (new technologies, old methologies that are still used, software patterns, application design, and business models). It would be beautiful have the both parts leave their guards and ego down and realize something that will amaze the whole world. Until that time, we will have flame wars and noses turned up by one group to another in a continuous loop.
And the business owners are even worse in the fact that they wish to go with a single thing (i.e newest technology all the way or the oldest all the way), they don’t realize that these two can be combined to form an even greater mix (imagine a stable, productive web application, that follows the newest standards, but still has stable parts wrote by the old programmer as a safety net on the volatile parts). An experienced programmer will know what might be expected from a web application that has overheads, and how to protect the website. And the new guy, with his newest technology, can build a truly beautiful presentation component of the page, making people remain with their mouths open.
Our final goal is to mix stability, security, and reliability with the newest technologies, looking forward to the future and being able to tell the difference between something unstable and something reliable but not up to date.
Make friends, not enemies! Continue on the next article by me to have some more of fun!