Choosing which programming language or software platform to develop for is one of the most pressing concerns facing developers today. The widespread use of mobile devices has overturned the traditional computer market, leading many industry observers to announce the death of the PC. Even if these claims may be premature, there's no denying that there are a number of suitable contenders for PC's throne, with smartphones and tablets displaying comparable levels of processing power and performance. According to a recent Gartner report, worldwide PC sales in the fourth quarter of 2013 fell 6.9 percent compared with the same period in the previous year. Until the dust settles, developers will have to make some tough choices regarding which projects they choose to tackle and how they mete out programming resources. Landing on a particular computer language to develop around is critical to this decision-making process.
Windows, iOS and Android all present their fair share of quirks that developers need to be aware of in order to create high-quality software. Furthermore, team members may need to be comfortable writing code for various programming languages and frameworks including Java and .NET. Accounting for all of these different permutations is no easy task and may overwhelm those developers who choose to take on this Herculean endeavor on their own.
Can Python save the day?
Writing on his blog, University of Texas at Austin research associate Tal Yarkoni offered a simple – although possibly misguided – solution to this problem: stick to one language. Yarkoni argued that in his experience, Python has been able to meet the vast majority of his needs. As Python has evolved and added new features, Yarkoni has increasingly leaned on it for his various research demands, reducing his use of other platforms in the process. However, he conceded that Python would not be able to fully accommodate all users, depending on what they needed to accomplish with a given project.
"Mind you, I don't mean to imply that Python can now do everything anyone could ever do in other languages," Yarkoni wrote. "That's obviously not true. … [F]or people who need serious performance and work with very, very large datasets, there's often still no substitute for writing highly optimized code in a low-level compiled language. So, clearly, what I'm saying here won't apply to everyone."
Every programming language, OS and software platform has its of strengths and weaknesses. Moreover, focusing in on a single solution may prevent software developers from reaching the largest audience possible. From a programmer standpoint, knowing how to code in a variety of languages and create programs that can run on different OSes can substantially boost one's value within an organization and improve job prospects down the line. Learning how to develop for a variety of platforms will allow programmers to contribute more substantially to a wide range of projects.
Obtaining the necessary skills may seem daunting at first, but development teams can always enlist the assistance of an outside consultant to bring personnel up to speed on different subsets of coding, including Java programming and mobile development. A quality firm will even assist new projects, placing a steady hand on the wheel as internal team members get comfortable with these new platforms.