Picking Your Next Coding Language
When starting a project, picking a new coding language can be challenging. Your choice can determine the implementation time, flexibility and portability of your new piece of code – whether it’s a desktop application, a small module, or a web application. In some situations, the choice can seem obvious – while in others, the merits of one language over another may be difficult to determine.
C++ originated in the 1970s – and while it’s old, it is still used widely. Due to its computationally intensive nature, its ease of transferability and it’s wide-range use in the industry for embedded systems, C++ is still quite popular. The main advantage that C++ has over other languages is a faster runtime. It is more efficient, and often, when a large amount of computation is required, it outstrips other languages as far as speed is concerned. A powerful language, a lot of systems and software were developed in C++, and therefore their functionality was extended using it over time.
However, while C++ has a lot of positives, it is also difficult to learn and error-prone to implement. In cases where runtime may not be a deciding factor – e.g. in cases where a module isn’t computationally intensive enough that the performance time between languages is a factor – looking for an alternative coding language may be a better option. C/C++ are losing popularity quite quickly in multiple industries, and one of the main reasons it isn’t nearing extinction is because of technologies such as Virtual Reality (VR) which are so computationally intensive that C/C++ still easily outperform any of its competitors. In the data analytics industry, however, the use of C++ will drop considerably over time. Since the C/C++ languages have such a large legacy of existing code, however, transferring all of it to a newer language may not be advisable, and it is more likely that newer languages such as Python will create the ability to use C/C++ code in an easier way, by encapsulating it in easier to understand modules or classes – which is already the case for some commonly used C/C++ applications, or by extending a language with the ability to run C++ code.
R is a language created for statistical analysis. It has grown significantly in recent years, especially with the advent of the data science industry. While extremely useful, R was built to serve a specific purpose, and therefore can only be used for specific use cases. Therefore, it has a much smaller population of users as compared to other languages. This often leads to the caveat that while the language may be great for creating graphs and analyzing different data points, it does not offer enough flexibility where it can be easily modified to serve multiple purposes. For example, a common issue many users find with R, is that the larger your program gets, the harder it is to maintain. Additionally, it is not the most memory efficient, and is therefore quite slow as compared to Python – one of its biggest competitors today.
Across the tech industry, Python is one of the fastest growing languages. Many of the big tech companies such as Google are already transitioning to the use of Python for a lot of their development work. This is because Python is a clean, easy to read language, which is built to be modular. As opposed to C++, it is readable and consecutively less error prone. This not only makes it a great language for beginners but is also easy for developers with a background in other languages to pick up.
Additionally, Python is the increasingly popular choice for machine learning, artificial intelligence, Big data and cloud computing. Even in data science circles, Python is second only to R in popularity – something which may change sooner rather than later. As the complexity of the problem we want to solve increases, migrating to the use of a cleaner, easier to maintain, more readable language makes sense. While it may have a greater computation time than C/C++, in many cases, it makes up for this deficit by greatly improving the implementation time required by developers to build different functionalities in its environment. The plethora of well written, well documented support classes and libraries also makes development in this language much easier, as “reinventing the wheel” by having to write your own implementation of relatively common use cases is greatly decreased.
Overall, your needs for any project will define what language you need to use. However, as an industry, I think we are more likely to gravitate towards Python due to its accessibility and the fast pace at which it is growing.
Get more on RiskSpan’s Data Management
Interested in learning more about what RiskSpan’s team of data scientists
, and quants
could do for you? Get in touch now.