Full stack development and the mess of syntaxes

This story originally appeared on my blog. Follow me for more insights into product development.

I am a full-stack developer. Following are some of the tools I deal with

  • Java / PHP / Python for server side scripting
  • jQuery / Polymer : for frontend development
  • Shell scripts / Config files for crons, server management and all
  • Android (Java / XML)
  • Windows Phone (C# / XAML)

Image Courtesy: Stocksnap.io

Although, I love working with all these languages and technologies there is something I don’t like being a full stack developer. You might have guessed it from the title i.e. remembering all the different syntaxes specific to different languages.

There are certain areas which might be trivial for a developer dealing with one or two languages for his entire life but for me those are the most painful ones.

String conversions

Every language I deal with, has its own way of converting and outputting strings. Some languages take the entity to be converted into string as arguments while others provide a separate library functions for string conversions and some languages have .tostring() methods which you can call on your entity.

Dates handling

Dates is one of the most dreaded area I have to deal with on a day to day basis. I collect data from a HTML form using input field. Now in PHP / Java / Python I have to take that string date and convert it into language specific date object. That is okay. But all hell breaks loose when I have to store that in MySQL and then again convert that date back into timezone aware local datetime for displaying on users' machines (those ‘X minutes ago’ thing). You can only imagine the nightmare if you’ve been there. It looks so trivial on papers as every single language has built-in library functions to deal with dates but you don’t know how incompatible they are with other layers.

Array representation

Every language has its own syntax for array representation. Many a times I write

var x = { g => ‘hi' };

to create an object in JavaScript. Yes yes! I know it’s not a valid syntax. It’s the result of the mess in my mind while I am doing a lot of back and forth between a PHP backend and a JS script.


Thankfully, in most of the languages you have ‘//’ for single line comments and ‘/**/’ for multi line comments. But there are config files, cron files where none of them works. ‘#’ is what works there and I don’t even know how to comment out a whole block of code without putting a ‘#’ in front of every line of the code block. Then there is PHP all three ‘//’, ‘/**/’, ‘#’ work.


Again, every language has a different set of taking inputs from a user and producing outputs. If I have to read a file in Java, I know I have to use FileReader/FileStreamReader, I know how it works but if you want to me write the correct syntax at this very moment, no can’t do Sir.

So, If you are going to interview me and ask me to write a trivial string conversion in Java or PHP, I may trip up. I need the access to the documentations of the languages in order to be sure that I am using the correct syntax.

Also, I won’t mind if you think I’m an imposter and I don’t know the languages while you were interviewing me or discussing with me. That’s is expected. If I were to deal with Java or PHP or JS only for 5 years straight, I might be having a good command over the syntaxes but unfortunately that’s not the case and I really love working on all layers of a product development.