written by owen on 2015-Jan-01.
I have been seeing design patterns come and go but there are a few that have stuck around in recent times like rodents. I never really sat down and wrote an article on the mindset behind these patterns. In this article I will try to outline the thought process of people who continue to promote and encourage other programmers to follow them down a rabbit hole. I will assume that you are a moderate to experienced programmer who has used several languages and paradigms. Anyway go;
Web programming, use this pattern
So uhm, yeah. Web programmers will most likely encourage other people to learn to code Bootstrap websites instead of learning to program more agnostic things like tables, CSS, and UL tags. And when you are up against a wall this pattern gives you plugins that you can download and lots of documentation, stackoverflow, etc.
Enterprise / Open source, use this pattern
Some people think that the more people that learn to use github and post pull/push requests, the more help they will get in pointless, verbose, open source projects written by one guy for 2 years. 1 million lines of scaffolding. New programmers should set up a repo before every project they start so they get a leg up on the competition when the internet of things arrives.
Sharing code is good, so use this pattern
These people believe that if every programmer on the planet starts using a particular pattern that somehow they will write better code with zero bugs that they can share with the world. I wrote something on this topic sometime ago, the sharing-maintainable code meme is nonsensical.
Want a job, use this pattern
Some think that by using a specific set of patterns it increases the job opportunities for the programmers because they are all writing the same consistent code, assembly line, future proof etc that successful software companies are using.
Mobile is the future, so use this pattern
There is a belief that flooding the market with Android will somehow result in more jobs for Android and mobile developers. This has something to do with design patterns...I am sure.
To avoid this edge case, use this pattern
Some people just like to promote buzz words. I had to write an entire article on the subject but have yet to even scratch the surface. Basically cloud computing is the future and if you learn a cloud language, now, you too will be a shoe-in for all the future cloud computing work that is coming in the cloud-economy future on the horizon.
Use this pattern because google/apple/microsoft
Some people will promote anything from the big three just because. Promoting something like silverlight because flash is dead and HTML5 over native people want mobile responsive websites because normal websites are so 1995, government websites that disabled people cannot read because all the content is under mouse popups.
Help Build out my favorite ecosystem, so use this pattern
Everybody has a thing that they are loyal to. Some people are paid to promote various patterns, products and services while others are just cheerleaders. In either case they promote these patterns in the hope that other people will help them become more popular and genuinely believe that these patterns will make people more productive.
Programming should be simple, so use this pattern
This is the everybody can code, radically simple, RAD development crew of people who believe that if programming was somehow made simpler and more structured, "prototype in a day or two, and a real production app in a few weeks.". They think that if that there was some way to simplify code then more people will be able to code and that they will not never need to touch the complicated areas of programming. With enough people on board the project may become some sort of standard in the future and then you will be able to say you said it first.
You want Portability, use this pattern
Everything should be OOP, use this OOP pattern
Usually these are people think that more people need to get into OOP or game development. And they think that C is holding people back, so they build a framework usually in C++ with a few basic examples and release it to the world hoping to solve the problem people are having with memory, arrays and structs.
I don't like this popular pattern, use this new pattern
Some people are just against anything that is popular or simple want to attack well established memes in order to gain market share in the business of making todo lists.
I am sure that there are good intentions under each of the mentioned items and some hot projects have emerged from millions of people writing plugins for wordpress. If something is useless, making it popular will not make it anymore useful to anybody. It will get popular on its own if it actually is useful. Lets build plugins, internet of things. Lets send people into online programming courses so that they can learn to program the "right" way. All I can say is good luck with your todo list.