.Net vs PHP vs Ruby – Recent developments shift the future of business software development
The choice of which software stack (the web, application and database software used to power an application) to use when developing SMB and enterprise level software has traditionally come down to only a few factors:
- The Total Cost of Ownership (TCO) of the entire stack.
- The compatibility of the stack with existing legacy systems.
- The skillset of the technical personnel that will be building and maintaining the new system.
These three factors determined not only which software providers would be used, but also which development companies or consulting firms would be brought in to create and implement the chosen system. The two 800-pound gorillas in the software stack arena can be represented by the server-side languages that are used to program the logic for the applications. There is, of course, some interoperability within the various tiers of the different stacks, but the real-world usage of such hybrid systems is the exception rather than the norm. There is also an up and coming language and platform combination, Ruby on Rails, that is gaining popularity among web developers.
The oldest of the two platforms is PHP (PHP: Hypertext Preprocessor; the name is what is referred to as a recursive backronym). From Wikipedia:
PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. As of January 2013, PHP was installed on more than 240 million websites (39% of those sampled) and 2.1 million web servers. Originally created by Rasmus Lerdorf in 1994, the reference implementation of PHP (powered by the Zend Engine) is now produced by The PHP Group. While PHP originally stood for Personal Home Page, it now stands for PHP: Hypertext Preprocessor, which is a recursive backronym.
PHP is lightweight, easy to learn and runs on a wide variety of hardware and operating systems. Perhaps the most beloved aspect of PHP is that it is free and open source. Free means that anyone can freely download the executables or binaries for PHP and install them on a web server. Open source means that with some, but few, limitations anyone can download and modify1 the full source code.
PHP is an interpreted language, as indicated by the existence of Preprocessor in it’s name. When a user calls up a PHP page in their web browser, the server parses through the text of the file and processes any code present, and then renders an HTML page based on that processing. This is one reason PHP has a reputation for being a fast server-side option. It is VERY efficient at parsing code files and returning a response to the browser.
PHP has a vast developer network, meaning there are a large number of developers independently writing external PHP libraries to compliment the official core functionality of the framework. This is a great thing, and in most cases this external development opens up many opportunities for developers to extend the normal range of functionality that would be available to them in creating an application. On the downside, there is no governing body or standards organization that publishes programming standards for these third party components. Also, many times these components become ‘abandonwear’ – meaning the original developer declines to continue active development and the source code languishes, while users are left to deal with the bugs that will remain forever unresolved.
Ruby & Ruby on Rails
Ruby on Rails, or simply Rails, is an open source web application framework written in Ruby. Rails is a full-stack framework that emphasizes the use of well-known software engineering patterns and paradigms, including convention over configuration (CoC), don’t repeat yourself (DRY), the active record pattern, and model–view–controller(MVC). – Wikipedia
Ruby, the programming language, was created in Japan in 1995. Rails is a web platform, written in Ruby and initially released in 2005, that utilizes the Model-View-Controller (MVC) architectural pattern. It has steadily gained popularity over the last decade as a language and platform that provides a modern, pattern-based alternative to PHP web development. Ruby is open source and runs on almost every platform available (Unix, Linux, MacOS X and Windows). Rails is licensed under the MIT License2, while the Ruby language, like PHP, utilizes it’s own license3.
One of the aspects of Ruby on Rails development that developers appreciate is the convention over configuration concept. Again from Wikipedia:
Convention over configuration (also known as coding by convention) is a software design paradigm which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility.
Back in the late 1990s and early part of the new millennia, the phrase Rapid Application Development or RAD was the name of a widely popular concept among enterprise application developers and the companies they serviced. The idea was to spend less time coding and more time testing. To get some version of the product into the hands of the end-user as quickly as possible. Ruby on Rails falls into the category of a RAD platform. Make less decisions on how to program certain low-level aspects of an application and more decisions on how the software serves the business requirements of the end-user. Ruby on Rails does this very well and it is for this reason that it continues to gain popularity among both programmers, and their counterparts in the business world.
Initially released in March of 2009, ASP.NET MVC has become a power player in the web application space. It’s definition, from Wikipedia, is as simple as it is accurate:
Wait, what? Open source? That’s right. In 2014 Microsoft announced that, effective immediately, ASP.NET (including MVC and a host of other components) would be relicensed as an open source product. Furthermore, Microsoft would soon make binaries and installers available that would allow ASP.NET to be installed on the same wide variety of platforms that PHP and Ruby on Rails enjoyed. ASP.NET on Unix, Linux, Mac OS X and Windows; this was a complete shift from the staunch licensing and platform restrictions the Microsoft of the 1990s and 2000s enforced. Under pressure from competing platforms and the development community, Microsoft recognized that the power of the .NET framework and ASP.NET platform was in the vast depth and breadth of it’s capabilities and not in the exclusivity of it’s target delivery platform and operating system.
Often times for small and medium businesses, utilizing the professional support and vast developer network that Microsoft and ASP.NET offer makes the the most fiscal sense. Small business owners are often leery of paying what some refer to as the “Microsoft tax”, meaning having to pay for the developer tools, Windows OS and a SQL database traditionally required to run the .NET stack. But that is the old Microsoft; one that was focused more on license sales and enforcement and less about developer and user acceptance. Under the leadership of a new and forward looking CEO, Satya Nadella, the company is making strides towards a more open development ecosystem. For established businesses with existing revenue models, the ASP.NET MVC stack is an intelligent choice that will provide scalability and support well into the future.
Which web framework is right for your business? The only correct answer is that none of them are always the wrong choice. Each has their strengths and weaknesses that must be considered. Refer to the Total Cost of Ownership breakdown above. Do you have legacy apps written in PHP, but you would like to use Ruby on Rails for your new application? If so there will be considerations to make. The best thing to do is to pick up the phone or send an email to a software development company that is experienced in client software development. One that has worked with businesses of all sizes and technology backgrounds. These professionals have helped other companies navigate the world of custom software development and can help your business avoid costly mistakes when choosing the platform for your next enterprise application.
To speak to a professional today, call Agilx at 402-817-4313 or email firstname.lastname@example.org.
1 – The source code can be modified under the provisions and restrictions of The PHP License available at http://http://php.net/license/3_01.txt