DEV Community

Cover image for Do not be this kind of developer

Do not be this kind of developer

Vinicius Brasil on October 19, 2018

We, humans, use language since ancient times to express ourselves and to communicate with each other. The same thing happens with programming lang...
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
Vinicius Brasil • Edited

Yes, you’re right.

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

Collapse
 
pavonz 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
 
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
 
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
 
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
 
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
 
vinibrsl profile image
Vinicius Brasil • 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
 
obakesan profile image
Tor

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
 
lysofdev profile image
Esteban Hernández

A great developer doesn't fear any tool.

Collapse
 
vinibrsl profile image
Vinicius Brasil

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.