Monday, May 21, 2018

More Building, Less Flag Waving

When starting a programming project, developers will generally have very strong opinions on what programming stack to use. Many will say that you must use ReactJS or Meteor. If you decide on PHP, they will say it sucks and it is not REAL programming. Same for Java. Ruby is cool they will say. You should learn that one.

This type of thinking is very toxic. As Pieter Levels said, imagine a painter creating a beautiful painting. Would you ask the painter what kind of brush they use? It would be an absurd question. The same is true for a website. Is it beautiful? Is it functional? Do people actually use it? Why does it matter that it was built on PHP. Did you know that the billion dollar company Facebook was built with PHP?

This type of toxic thinking causes a lot of problems for newbies coming into the developer space, wanting to build products. When they ask what programming language they should use they are given a variety of very obstinate views. Even if they do manage to choose a language, maybe someone has convinced them that in order to write code they need to do it "properly" and that requires understanding of all the data structures and algorithms and Object Oriented Programming principles. They get defeated because they feel like they need a CS degree to get started.

As Levels pointed out, its nice to have more corner stores. We can use more indie developers creating useful products. We should be encouraging newbies to get started. And that requires use to be a bit less flag wavy. Instead of arguing which language or framework is better it would make sense to see it as a tool and encourage them to experiment and build something useful.

Whats a sane choice of programming language or framework? For starters, go with the one you know the best. Sure, some languages let you have less boilerplate or beautiful syntax, but at the end of the day all general purpose programming languages will let you build that website or that app. All things being equal, choosing a popular language will tend to have more people asking questions which means more support is available.

Arguing which is the best framework or language might be fun, but it can blind us, and especially newbies, to what is important. We'd be better off shifting the focus to what we are building than to minor differences in tooling.