DEV Community

loading...
Cover image for Do not be this kind of developer

Do not be this kind of developer

Vini Brasil
I am a software engineer working with Elixir, theology student, and musician based in beautiful Curitiba.
・2 min read

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.

Discussion (24)

Collapse
gazzonyx profile image
Scott Lovenberg

To be fair, JavaScript is objectively terrible. ;)

Collapse
cullophid profile image
Andreas Møller

It absolutely is. Yet so often it managed to be the best tool for the job.

Collapse
gabek profile image
Gabe Kangas

For the browser, Javascript is the only tool for the job. That's the difference :)

Thread Thread
cullophid profile image
Andreas Møller

I have used typeScript, elm, purescript, coffeescript, livescript,ocaml and reasonML.

Collapse
gabek profile image
Gabe Kangas

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.

Collapse
vinibrsl profile image
Vini Brasil Author • Edited

Yes, you’re right.

But for a business, choosing widely adopted tools makes it easier to hire employees.

Collapse
andreapavoni profile image
Andrea Pavoni

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.

Collapse
cullophid profile image
Andreas Møller

Yet react native is very popular, and for good reason

Collapse
theredspy15 profile image
Hunter Drum

Honestly, I kinda like being this type of developer, to a point.

I mean by that: is, it's like having a favorite muscle car (i.e the hatred between the camaro & the mustang). One car can maneuver better, and the other has a higher top speed (depending on the model, not that it matters)

I often brag about the awesomeness of the GT500 (2019 hopefully!), but it really doesn't matter. Because they each have their pros & cons (although, the mustang is way better!).

Collapse
gdibass profile image
Matt Johnson • Edited

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.

Collapse
nimmo profile image
Nimmo • Edited

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. :-)

Thread Thread
gdibass profile image
Matt Johnson

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.

Thread Thread
nimmo profile image
Nimmo

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.

Collapse
vinibrsl profile image
Vini Brasil Author • Edited

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.

Collapse
robertcoopercode profile image
Robert Cooper

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 👍🏼

Collapse
bgadrian profile image
Adrian B.G. • Edited

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:

  1. 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

  2. want to start a company/team: they have to choose the technology that will fill up the empty seats. Here are 2 reasoning:

    • they will look for one of the most common languages that the local workforce is used to. For example here in Bucharest there are many PHP and Java developers, python and ruby very exotic. To hire 10 Ruby devs you will wait probably 2 years, or forever.
    • you will choose what other devs with specific business logic know, as a result, what other competitors uses. For example, web gaming industry, CMS and ecommerce are mostly PHP Driven. Enterprise solutions Java. If you want good devs with experience in PHP most likely you will want PHP.

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.

I learned on the hard way to separate the programming as a professional to the programming as a hobby.

PS: JS is terrible

Collapse
torharrington_5 profile image
Tor Harrington

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

Collapse
munizart profile image
Artur Muniz

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.

Collapse
lysofdev profile image
Esteban Hernández

A great developer doesn't fear any tool.

Collapse
vinibrsl profile image
Vini Brasil Author

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.

Collapse
ilyosjon09 profile image
Ilyosjon Kamoldinov

With such kind of mentality I wasted my 5 year just by learning just how to write "Hello world" programs 😑. Thanks for sharing this!

Collapse
revskill10 profile image
Truong Hoang Dung

It reminds me of: when a haskell programmer's trying to debug their typings, i already implemented three ReactJS components for my application.