The eternal dilemma of the digital era: which language is the most suitable for software development? Python, JavaScript, or maybe PHP? Young but growing Scala, Go, and Swift seem to be also very promising. So which one is the best for a web application?
This is a question we get asked a lot. But first, answer this one: which language is the best to talk in Europe? Spanish, French, or German? Well, you will speak Spanish in Spain, French in France, and German in Germany. In some countries, you may speak two or more languages, when English can be used everywhere. The same rule applies here: every language suits best for a specific type of projects. And even though there is no “English” among programming languages, major technologies may be used together in large projects such as well-known Google, Instagram, or Facebook. The best one? Doesn’t exist.
So how to define what type your project belongs to and align your needs and features of the technology you choose? Edgica’s team will tell you how to make the right choice based on facts, not subjective judgments.
Disclaimer: The final decision on which technology you will build your project should be made together with competent specialists. The information we provide further is only for general understanding to help you speak the same language with a team of developers.
Factor 1: The Type of a Project
The smaller your project, the simpler is the solution. It’s not surprising: small goals always can be achieved with less effort than big ones. If you are not going to work on the revolutionary product that should change the world, probably it would be better (and easier) to avoid “reinventing the wheel”. This way, all projects may be divided into 3 major groups:
Small: simple web applications, landing pages, corporate websites, small-scale online stores, etc. Here we use ready-made solutions based on CMS (you will read what is CMS in the next paragraph).
Medium: large media portals, complex websites and online stores, advanced level applications, etc. These are usually based on frameworks.
Large: innovative and atypical online products, social networks, extra large media portals, etc. Such complex projects can’t be built without involving one or even several native programming languages.
Also, you should consider your plans. If you provide for the future scale-up, it’s highly likely you will move from one platform to another or use new technologies along with an old one. So it’s important to remember that the technology you choose at the outset is not the cure-all and might not be your final decision.
Factor 2: Language > Framework > CMS. What is the difference?
A native programming language is usually a choice for large-scale projects. Using this technology, you get almost unlimited opportunities to design your product however you want. If you need a highly efficient, agile, 100% responsive, and secure application, whereas the cost is not your first concern — a native language is your option.
So how to know which one?
There are 5 major programming languages which are widely used for various purposes over the past decades: Java, JavaScript, Python, PHP, and C#. A modern but not so popular Ruby is also gaining in popularity when erstwhile widespread C++ has finally yielded positions. Let’s elaborate on each in more detail.
Java along with C# is one of the most complicated languages: it takes a lot of time and effort to build an application using them. They can be a pick if you have specific requirements or are going to develop an app for Android (Java is the native language for Android-based applications). It is still a robust technology with a long-lasting history that won’t let you down. In turn, C# is especially good for game development.
Products based on Java: eBay, Amazon, Alibaba, Android applications. As you can see, Java is the popular option for global trade platforms.
Products based on C#: Stack Overflow, Bank of America. It is typically a choice of fintech organizations.
JavaScript is a general-purpose language which may be suitable for any project. Coming back to our analogy, this language seems to be closest to “English” among programming languages due to its unlimited features. However, many features were added only in recent updates, so it may be hard to find a competent but affordable specialist in the global IT marketplace.
Products based on JavaScript: LinkedIn, PayPal, Uber, Groupon (was moved from Ruby to JS).
Python runs the show in 2018. It grew in popularity by more than 5,000 job postings in 2017 (according to CodingDojo) This is the only language whose graph shot up into the sky on the chart we provided in this article in which we reviewed the impressive growth of Python. Its rise is associated with the rapid development of data science and machine learning, so if your project is related to these fields, consider Python your primary technology.
Products based on Python: Instagram, Pinterest, Foursquare.
PHP is the budget option for web application development. It’s quite easy to find a web developer focused on this language. However, it works best for small and medium projects.
Products based on PHP: Facebook, Yahoo, Wikipedia.
C++ is a nowadays downtrend but still can be useful if you elaborate an IoT solution, a graphics engine or an AAA game.
Products based on C++: Adobe applications such as Photoshop, Illustrator, and Premier, Winamp, Bloomberg RDBMS.
Ruby is a modern language with a large open source community and an excellent framework called Rails which may significantly speed up the process of development. This makes Ruby perfect for small and medium startups.
Products based on Ruby: Shopify, AirBnB, Basecamp.
Read more: How to create a Mobile App: Quick Guide.
A framework is a development environment based on one native programming language which contains a set of ready solutions for standard tasks. Each technology may offer you several frameworks: some of them are multipurpose, the others are tailored for specific tasks. Medium-scale projects comprise the lion share of products written in frameworks.
The language with the largest number of frameworks is PHP, but the best ones among them are Symfony and Laravel. The versatile solution from Python is Django, from JavaScript — Node.js, AngularJS, React, from Java — Spring, from C# — NET.
What is a CMS?
A CMS (content management system) is a ready software solution in which you need only to change settings to create your own website or application. Even people with little-to-no coding skills can develop the simplest project using popular CMS. This makes writing a project in CMS less expensive and time-consuming than developing a complex product in the framework or native language. Still, every CMS has a vivid downside — too many out-of-the-box solutions can’t be changed. This significantly limits your actions and could be a liability if you’re going to build something unconventional.
The vast majority of CMS are based on PHP in the greatest request of which is WordPress. It’s free, simple, and flexible: here you can make up a simple website for any use: news portal, web store, online blog, etc. If you need more powerful solutions but don’t want to deal with frameworks — take a closer look at Drupal, Magento or PrestaShop.
Factor 3: Trends
The demand for some technologies is rising and vice versa. For instance, more and more developers will learn Python, and we can expect lower prices for services associated with this programming language after several years. The overall trend shows that JavaScript and Python will be on the rise, while the rest of technologies (C++, C#, Java, and PHP) are fairly in decline.
If you consider your project a long-term one, pay careful attention to trends. Your task is to predict what technologies will be in demand in the following years. Will you still be riding on a wave of success tomorrow if you choose this language today? That is the primary question to be answered.
Factor 4: Accessibility of Needed Specialists
Developers that specialize in the technology you choose may be rare birds in your area or be extremely expensive. Of course, it ceases to be an issue if you are going to hire an outsourcing specialist — the proposition on a global market is always more diversified.
However, the price will still vary from technology to technology. For instance, the average monthly (June-July 2018) salaries of middle Ukrainian software developers with 2-5 years of experience are (according to DOU.ua):
JavaScript – $1850
PHP – $1500
C# – $1800
Python – $1700
Swift – $1800
Scala – $2350
Scala, Java, Ruby, and C++ are the most expensive technologies in Ukraine, while the cheapest is PHP followed by Python, Swift, and JavaScript. Such relatively low salaries of Python and JS developers may be explained by the specific mentality of Ukrainian developers: they quickly adjust to market changes and tend to gain the required skills in a blink.
The situation on the US market is different: the most expensive are Swift and Python specialists, but PHP developers are still the most affordable.
Even though there is a great temptation to choose a technology your favorite (or similar to yours) product is based on, we don’t recommend you to do this. The reasoning behind such a decision is not always clear and we often witness how large projects are being migrated to other languages (such as Twitter were rewritten from Ruby to Scala). Think not of your own preferences, but of the needs of the end-user of your product.
Of course, it may be difficult to decide on a technology without knowing any coding basics. It’s like moving to another house without even being inside. This article gives you the key to the gate of the property, but you are still standing in front of the entrance door. Would you like to come in?
We have a team of sophisticated guides to walk you through the whole process of your product development. A specialist from Edgica will open up a curtain to the inner sanctum of our profession and explain which technology, why, and when will be the best option to be applied to your idea. Just drop us a message and let’s make the magic happen!