Companies that are in the market for new software products have a lot to consider when it comes to getting their project off the ground. Does a vendor have the best technologies for the task? Are all of the necessary QA measures in place? For highly-regulated industries like finance and healthcare, will the software comply with federal regulations?
If you are currently doing this research, make sure to add the question “Which programming languages does the vendor use?” That might seem like yet another thing to worry about, but you won’t need an in-depth knowledge of Python, Ruby, or PHP to ask the right questions. Here’s what you need to know about two of the most commonly-used programming languages before speaking with a software development firm about your next project.
From an end-user perspective, neither language is superior to the other.
Whether a vendor uses Ruby or PHP, the result for the end-user will be the same. The difference comes into play for the developers themselves, which in turn can affect pricing and turnaround times for you.
From a junior developer’s perspective, PHP is easier to set up and get things done. Like many things that come more easily, however, it is also more conducive to writing bad code and picking up bad habits. A junior developer may struggle with Ruby in the beginning because most developers use Ruby for its MVC framework, Ruby on Rails. But with practice, he or she can learn good programming practices and will be more likely to write solid, maintainable code.
Given these differences, there is naturally a greater pool of PHP programmers to choose from. If cost-saving is critical for your project, it may be helpful to opt for a PHP developer who will typically charge lower rates than his or her Ruby counterpart.
You can integrate new software into your existing programs – just make sure the language is the same.
The ease of adding new features is comparable for both Ruby and PHP. HOWEVER, it can be difficult and time-consuming to integrate two completely different languages. So it’s important to maintain a homogeneous set of tools to minimize integration and maintenance costs.
Finally, make sure that any software developer you consider can answer these 4 questions.
- How mature is your technology? The programming languages used shouldn’t be brand new (i.e. developed in the last couple of years) because they may still have severe bugs which have not been discovered by the test of time.
- Is it well-documented through community discussion and/or paid support? A software language’s ecosystem is especially important because most developers have no desire to reinvent the wheel. Newer languages often lack thorough documentation, third-party libraries, or tested plug-ins, which makes using them that much riskier and time-consuming. It also means there is no guarantee that they will be around in another 2-5 years.
- How versed are your programmers in the particular language? A high level of experience and expertise is needed to write high-quality code. It will also yield fewer bugs, easier migration to new vendors, faster turnaround for new features, and better maintainability for the future.
- Do you have a process in place for quality control? Static analysis tools are key for automatically checking code against quality metrics such as repetition, naming conventions, complexity, design, and more.
Ashok Shrestha is a software specialist with more than 10 years of experience. He has worked with multinational companies like Google and Bank of America to develop quality software solutions using programming languages that include PHP, JAVA, Perl, and Python.
Photo Credit: marissa anderson via Flickr