We, humans, use language since ancient times to express ourselves and to communicate with each other. The same thing happens with programming languages. It is a tool made so humans can communicate with machines. Just as spoken languages, there are a lot of programming languages with different dialects, applicabilities, and contexts. Some are even called dead languages because no nation officially speaks it.
Spoken languages are close to programming languages in its core: communication. Both are great tools to communicate. And that’s how you want to see programming languages: as a tool.
With the ascension of Agile methodologies and evolving IT market, it is becoming common to handle programming languages as a tool to deliver business value. It doesn’t matter if it’s Ruby, Python, JavaScript or Go, it depends mainly on the applicability and the business value you’re delivering.
Software developers, over the years, are even more involved with the business. They’re no more hired to write a bunch of code, but to understand the business problem and code based on it, otherwise it doesn’t matter because it doesn’t offer value preposition.
The hater
The biggest problem is: there are people that live complaining about programming languages.
Python is slow, Java is clunky and I hate JavaScript.
This is a phrase that I hear or read almost every day. And that bothers me because some developers just don't want to see programming languages as business tools, instead, they see as a weapon to harm other programmers.
Python has its applicabilities in web development, web scraping, data science and so on. Java works so well as an enterprise language. And JavaScript conquers the web.
Every programming language has its applicabilities, its pros and cons. If you think that language you love is the best, maybe you’re wrong. It can be the best for the project you’re working, but it might not be helpful for every kind of problem.
Being this kind of developer can harm a whole workplace, because of their negativity. Sorry, but it isn’t because someone hates JavaScript that the whole web is going to give up on it. So, instead of complaining, let’s deal with it and start studying.
Top comments (22)
Just because a specific language has become widely adopted doesn't mean that there aren't better options. If a language is the correct tool for the job, then that's one thing, but "dealing with it" when the wrong tool is evangelized for a solution leaves valid room for complaints.
You wouldn't build a house with a needle and thread, and you shouldn't use Javascript to build a mobile app, for example.
If I told you people should write in Brainfuck, you should tell me I'm wrong.
Yes, you’re right.
But for a business, choosing widely adopted tools makes it easier to hire employees.
Maybe is a lot harder to hire a good PHP dev than an Erlang one. Guess why ;-)
Hint: search for “The Python paradox” on google to find why.
Yet react native is very popular, and for good reason
To be fair, JavaScript is objectively terrible. ;)
It absolutely is. Yet so often it managed to be the best tool for the job.
For the browser, Javascript is the only tool for the job. That's the difference :)
I have used typeScript, elm, purescript, coffeescript, livescript,ocaml and reasonML.
I own a 2016 GT PP and I don't hate Camaro or Challenger owners. In fact I rev at them and try to get them to rev back. It's a fellow muscle car enthusiast as far as I'm concerned, and I love to hear a V8 purr, regardless of what company built it.
But you're right... I wouldn't go racing a Hellcat around a track, and I wouldn't expect to beat a Hellcat in a drag race.
I also write in PHP , which gets more than it's fair share of hate (Python, too... although the data analytics portion of my job(s) is usually less involved)... but it's a great tool and has made me a good living.
Edit: and FWIW the latest rumors are that the newest GT500 won't be a flat plane. I'm really bummed about that... Guess I'll have to strive after a GT350 for now.
I love the car enthusiast analogy here. We don't really have easy access to American muscle here in the UK (certainly not with manual transmissions, and I couldn't bring myself to drive an automatic personally), so I prefer turbocharged Japanese cars from the 90s.
The reasons I like these cars, and the reason that I own two of them right now despite not "needing" to, mostly start with personal taste, but it would be easy for me to come up with a list of reasons why I now "need" to have them, and what I like about them over other types of cars.
I appreciate any car enthusiast no matter where their preferences lie, and although I may extoll the virtues of my favourite cars in conversation with them, I wouldn't tell them that their cars "suck" for not being the things that I like.
I think this matches up with programming languages very well in general. There's more to consider when you're talking about choosing languages at work, where other people are also directly impacted and need to be considered too, but certainly in multi-discipline communities I think this is a really good analogy. Great stuff. :-)
Same, and IMO the Supra is a beautiful car...
The analogy also works when talking non sports cars... I also own a Honda Civic (daily commute) and a Subaru Crosstrek (winter / snow trips). I wouldn't race either of them, but I'm glad I have them both.
Yep, and plenty of people love their modern electric cars for different reasons again. There's plenty of room for all sorts of things, and there's definitely not a single "best" option for everyone.
I find many programmers to be very opinionated and that usually also comes with complaints about tools they do not favour. It's important to look at tech with a non biased view in order to properly evaluate the best tool for the job 👍🏼
Do not get me wrong, but I want to be the devils advocate here. As a senior developer I would like to write in the language I love and does a good job: Go. As a Business man / team lead / consultant I would probably advice against it for most projects.
Most developers do not understand the business part of the problems they are hired to solve.
Most of the times technologies are not chosen because they are the best tool for the problem or other technical reason. There are 2 main ways that companies uses to choose their main stack:
startup with a dev involved early on: they will choose what he knows best, or what he wants to learn. Objective selection. Ofc there are side effects, see how FB, Twitter, Instagram had many scaling problems because they used interpreted languages and mySQL
want to start a company/team: they have to choose the technology that will fill up the empty seats. Here are 2 reasoning:
Now you can understand why popular languages are getting even more used every day, and Hyped technologies more traction.
It is a circle, business want a safe technology, they will hire for a common stack, and developers learn the technology that is the most found on the job boards to have a good chance of finding a job.
PS: JS is terrible
Do not be this kind of developer that turns everything into business.
Solving problems is the core of a dev job, being sure that the right problems are being solved is a responsibility for the whole team. Otherwise it's just "act like the owner, be paid like not a owner" cheap talk.
Complaining is bad? Yes, as you say it do harm the team. But using the wrong tool just because it will make easier to hire won't cause damage as well?
Requiring devs to be concern about business problems like hireability or to just "deal with" the wrong tool being chosen is counterproductive and unfair with theirs knowledge, asking them to have a CEO mindset is also very disrespectful as they won't be paid like one.
You’re right! The thing is: there are developers that can only see the technical details, and not the problem they’re dealing with.
The thing with programming languages is they it’s just a tool to solve a problem.
In todays world things are pretty stable, its more what you are doing and how writing it. Right tools right job etc. I might one language cause its quick to prototype something else cause of responsiveness etc. The real thing is how the team response to change for example I know many people who are pro Microsoft anti Linux they won't touch it I don't think because bad or good but rather it's outside comfort zone if have you good tram people who are open minded and trying things doesn't matter what language. That's main thing is the attitude not the tech
A great developer doesn't fear any tool.
Why would you write machine learning models with Smalltalk? No!
Programming languages are just a tool. You pick one depending on the problem you’ve got.
With such kind of mentality I wasted my 5 year just by learning just how to write "Hello world" programs 😑. Thanks for sharing this!