It was a bright summer day, warm breeze coming into my office windows making the curtains magically sway in the window, the application I had spent weeks on was running through automated testing.
I was a young developer that learned Visual Basic as it was the easiest thing for my small brain to understand. It also helped that I had done some BASIC on a Commodore 64 in my youth. I loved how it read like a story
IF friday is True THEN goto party
Microsoft .Net was still fairly new and I was migrating from VB6 to VB.net…being a lazy developer taking the path of least resistance I moved to Vb.net because I was too lazy to read the C# book I purchased months ago. It sat there next to the C++ and Python books that also collected dust.
An error message snapped me out of my day dream. This made no sense. The test code ran run in C#, but I really did not know C# — I took what I knew of the language and recreated it in VB.net …the curly brackets scared me to death, I wanted my beloved VB syntax.
After a lot of reading, I found that Microsoft has lied to me. They marketed that VB.net and C# would have identical functionality — C# was new and a direct competitor for Java. But as I dug deeper into the Microsoft docs it clearly stated you have to use C#, and then inter-opt with C++ to actually do what my little program was attempting.
Fast forward in life, I am a C# developer, have not touched VB in years. Cleaning out an old hard drive I find the VB.net code from years ago and open it up. Visual Studio complains about deprecated functions and fails to parse one of the files. The Visual Basic Syntax code looked so foreign to me, so ugly, like an ex girlfriend who had betrayed me. C# looked so elegant, less wordy, easier to read. I loved C#.
But I noticed a trend, every job out there, every freelance request, everything in my inbox was asking for “cross-platform”. Back then in the Bill Gates era of Microsoft, there was no ambition to run on anything other than windows.
Surely there HAS to be something out in the world…cross platform with a GUI, support for databases, does not look like crap, can be compiled so someone else won’t take my code change a few lines and re-brand it at theirs.
I found Mono…but of course no GUI.
Found myself looking at a ton of different languages, frameworks, and IDEs…each one looking more alien to me than the one before. I never owned a Mac and never seen Linux before — after all I was making a great living as a C# developer. Everything I found looked so challenging, so out of place.
Virtualization was still in its infancy but I managed to setup a virtual linux installation on my windows machine. I wanted to see what was out there while still being able to retreat back to the safety of Visual Studio.
The KDE desktop that looked back at me had me confused…where the hell was the start button, how to I run MS Excel?
After a year of playing around in Linux and reading dozens of books on different languages I found myself logging into Linux more than Windows. Eventually I only logged into Windows to play games.
The C++ and Python books that mocked me for years became my best friends. After stepping out of the Microsoft world I felt all powerful.
I had tried almost every language out there. Found that I both loved and hated each one…Java for its frameworks, Python for the easy of use, JS because of its simplicity, C++ because there are no limits — I was in love with development, the language was simply a means to allow me to do it.
I sat in a meeting with fellow developers and a high level manager. The manager was ranting that C# was the one language to rule them all. In his words “C# can do anything, why do these other languages even exist”.
Java guy, Python girl, the JS junkies, and myself all looked at each other in terror.
Then Earl spoke up…
Earl was an old man, someone who probably qualified for retirement a decade ago. But the company kept paying him more and more every time he mentioned retiring. Earl has forgotten more about computers than I have ever even known. He sat at the end of the conference room keeping to himself most days, rarely speaking up in meetings. Content with drinking coffee and mumbling to the compiler when it failed to do his bidding.
He leaned in and said something I will never forget
“Languages, frameworks, IDEs…all of them come and go, they are all just tools, use the right tool for the job. Stop trying to use a screwdriver as a hammer. The best tool you have is in your head.”
This why we loved Earl.
Everything makes sense when you think of it in those terms. From Fortran, to Cobol, C, C++, Delphi, VB, C#, JS, Java, Python and everything else I have failed to mention…they are all just tools.
The manager sat there speechless as Earl stood up and walked out of the room, another cup of coffee was more important to him than the meeting.
Do yourself a favor — listen to Earl. Use the right tool for the job, each language has strengths and weaknesses. Do your homework, get familiar with whats available and stop trying to make everything out of one language.
Taken from: https://www.tiobe.com/tiobe-index/
You can see the world has a lot of problems that need to be solved and a lot of tools to solve them with. Start with the problem, then choose the right tool.
Follow me on: