Language fighting in my company

Pengson Wang
3 min readJan 7, 2020

--

Long long ago before I actual joined a company as a software engineer, people discussed what programming language was the best all over the world. It changed to be a series of fighting at lots of sites and ended to a result that most people believed in ‘PHP is the world best language’.

At the beginning of my career, Java and C are the two languages I know because they were two major courses in my university. I was good at C since it’s easy for me to master the basic concepts like the cursor, the memory which had been the hardest part for most of my classmates. But I liked Java the most since it looked like it’s much easier. Garbage collection, Eclipse, JDK docs, stuffs that Java had at that moment attracted me and made me think ‘Java is the best’.

In the first project in HP, I learned PHP by myself since all the services were written in PHP. That’s the first time I wrote backend code using other languages than Java. It really shook me a lot since I never need to wait for executing before the code had been compiled finished. I still believed Java was great but I started to know that the program languages were a forest, there might be other options for what you were current programing. That’s one of the reasons I learned Nodejs later, I opened my heart to any possible better choices.

There are two kinds of languages, in my opinion. One is focusing on super performance, people have to learn a lot of skills to teach the machine to execute the code effectively. Another is focusing on the super effectiveness of development, the engine of the language handles the difficult part of programing like garbage collection, cursor, thread, io, and programmer only needs to handle business parts.

To me, the two categories never confused me a lot. If people do know what the exact problem it supposes to resolve, they will not confuse at all while choosing technologies. For example, if you are going to create software that requires the feature of resolving graph problems, then C++ might be your answer since there are tones of libraries available over there that are good at the graph. But, if you are going to make a super simple web service that handles user’s input and saves it anywhere, a dynamic language will better suites your expectation of development speed.

But, the unfortunate truth is, the man in control of many software teams have poor knowledge of programming, and never believe the comments come from the engineers. So they only make choices according to some popular articles of technologies, like a list of rank. Our manager asked us to use GO in all the web services because he thought it is the next trend of software, and the rank of GO was increasing super fast. But in fact, while we were programming, we usually never got benefits from its good parts like its speed, but always spent too much time on constructing Module which was super easy in type dynamic languages such as Nodejs.

This is a very funny topic. Engineers love their working languages and want to introduce them to others. But nature is, in a lot of software teams/companies, this guy whose words are the key to decide the right language they should follow often has a different idea with the engineers.

So the language fighting which is happening in a company usually doesn’t occur between engineers but in the managers and engineers. And, it might be no fighting happens since the managers will decide without listening to the idea of engineers. Like what happened in my company, as engineers, we were allowed to discuss, comment to the language ‘recommended’ by the manager, but have to use it in the real project without hesitation.

--

--

Pengson Wang
Pengson Wang

Written by Pengson Wang

0 Followers

A software engineer who wants help more people on resolving problems.

No responses yet