It depends on what you want to achieve. Each has its advantages for a particular area.
Source: http://Flickr.com/ Creative Commons License
ASPNET - Small and Medium Enterprise Solutions
If you want to build reliable and secure enterprise web applications, then ASPNET is the right place to start with.
Here some advantages of ASPNET:
- Quick: You can build applications fast. There are many development tools out there, which allow you to develop faster.
- Secure: ASPNET was built with the requirements of organizations in mind. They usually need secure solutions. So this is very strong with this technology.
- .NET: Already .NET technologies has a strong presence in medium to large organizations. So ASPNET is a good starting point for any web project in those companies. Usually they will already have some solutions based on WPF/Winforms. So extending those to mobile via Xamarin and to web via ASPNET could be a good choice for them, reducing the need for too many interfaces to connect these technologies.
- Scalable: ASPNET solutions are scalable. This is especially important for large companies, who want to expand to those solutions across their organizations, in several countries.
- Departments: It is well suited for department in organizations. Like the sales department, HR department, etc.
Here some disadvantages:
- Licenses needed: For almost all ASPNET components and very good third party tools, licenses are needed. This is especially tough for startups, freelancers or agencies. So they will rather forgoe ASPNET and work with Java or PHP.
- Tough to build very large scale applications: When you build solutions, which should be used by millions and millions of end users, then relying on something like Java, might be the better solution.
- Microsoft: .NET is mostly controlled by Microsoft. This could be a reason to say no to this technology for some developers.
Java - Large Scale Solutions
Almost all large scale solutions, which need to execute very fast and need to be highly secure are built in Java (or C++).
The best examples are banking solutions.
Also large online platforms like Amazon are built in Java.
Here some advantages:
- Large scale: When you need to deploy a solution which will be accessed by thousands and thousands of users at the same time, then Java is definitely a good approach.
- Tried and tested: It is one of the older technologies. In almost all computer science programs around the world it is part of the curriculum.
- Secure: Banks and insurance companies need to secure their data at the highest level. Java helps in making sure everything stays where it belongs.
Here some disadvantages:
- Very good developers needed: To build good solutions, you need developers who are experienced and know what they are doing. Especially when you build large scale solutions, this is needed.
- Not so easy: It is comparatively easier to learn PHP or ASPNET.
- Mainly used in large applications: Smaller applications are usually not built in Java.
Source: http://Flickr.com/ Creative Commons License
PHP - Small and Medium Sized Web Applications
PHP is completely open source and the entry is even easier, because a minimum of knowledge is needed to build the first interesting applications.
It is one of the oldest technologies out there. With newer PHP versions and frameworks it has become popular again. Many different interesting applications are built in PHP nowadays.
Some advantages:
- Easy to learn: Compared to ASPNET and Java, it is pretty straight forward to easily built the first applications.
- Free of cost: PHP is open source and can be used for free. The same goes for its other components which are needed to build web applications, such as MySQL (Database), Linux (Operating system), Apache (Server). This is especially interesting for agencies, freelancers and startups who need to keep their costs low.
- PHP Frameworks: Many interesting PHP frameworks like Zend, Symfony, Laravel are available, which enable a developer to build applications faster and better.
- Content Management: If you want to manage text, pictures and videos, then PHP is one of the best ways to do it. Many Content Management Systems like WordPress, Drupal and TYPO3 are based on PHP.
- Online Shop Systems: Most online shops do not need to be super large scale such as Amazon. In most cases only a few thousand people will visit the site per day. For such sites, a solution based on PHP is sufficient. Also there are specialized Online Shop Systems available such as Magento or Shopware, which are based on PHP.
Some disadvantages:
- Security: Security is a topic which is always mentioned when speaking about PHP. Sometimes it feels as if PHP is not as secure as ASPNET or Java. PHP is trying to get rid of this by introducing interesting Frameworks which close important loopholes.
- Spaghetti code: Especially inexperienced developers tend to write PHP applications, which are not easy to maintain or to scale. This is also called spaghetti code sometimes, because it is not possible for a new developer to understand what the previous developer has created.
Conclusion
It depends what you want to built (large scale versus small applications), for whom you want to built (website client, large organization with departments, or millions of end users).
Today other technologies have also come up, which are in competition with these three technologies.
Here a short overview for whom these three technologies can be interesting:
PHP:
- Web and marketing agencies who built websites, content management systems, online shops and intranets for their clients.
- Freelancers who work for small and medium clients.
- Software product creators who build small to medium sized applications. e.g. an HR tool which is sold to freelancers and smaller companies on subscription basis.
- Online shops which have a few hundred to a few thousand orders per day.
ASPNET:
- IT Departments who want to build strong applications for their other departments in the organization. Where the end user is inside the organization. e.g. the sales people, marketing, human resources, etc.
- IT Service Providers who work for those IT Departments and have the task to build these solutions.
- Software product companies who build medium sized applications/ products for either the IT Departments of large organizations or other institutions.
Java:
- Banks and insurance companies who need large scale and secure applications.
- Large platforms like Google, Amazon, etc. use Java for building their solutions with this technology.
- Large IT Service Providers like IBM, Accenture, etc. use these technologies to implement solutions at their clients which are themselves large organizations.
- Smaller IT product creators. Not only large scale applications are built with Java. In some cases you will find smaller IT product companies who are relying on Java.
Check your requirements first, before deciding for any of these solutions.
I also found Swapnil Sonawane (???????? ??????) to be interesting:
In Simple language,
ASP.NET gives you Security.
PHP gives you Huge Library.
JAVA gives you Reliability.
depends on you what to select. :)
Here some other interesting questions in this regard:
Kindly upvote if you found this answer to be interesting :)
Kind Regards
Sascha Thattil
CEO and Project Manager at Software-Developer-India.com
Disclaimer:
I build ASPNET, JAVA and PHP teams in India for IT Services Companies,
Web and MarketingAgencies and IT Departments mainly from Europe and
Germany.