Programming Languages

Scientific programming or the most used and demanded languages.

featured.jpg

#There are hundreds of programming languages ​​in the world today. Each of them has strengths and weaknesses. Let’s talk about the most famous and sought after.

##bash Unix shell scripting, created by Ken Thompson in the early 1970s, is closely related to the C programming language. Bash, an updated Unix shell, was first released in the late 80s and is still under active development. Bash is usually scripted for server configuration, so it is a good choice for working in modern cloud environments with containerized storage and microservices. Shell scripts are used quite often, so knowledge of this language is useful.

Also worth noting is zsh, which is currently the default shell on macOS.

Applications: Server administration, CLI tools, DevOps, virtualization.

##COBOL One of the oldest languages ​​still in use today was created by Grace Hopper in the late 1950s and was intended to standardize the development of large-scale business applications on computers. A brilliant concept that is still used today in cross-platform SDKs. An incredible 95% of ATM transactions go through COBOL systems, with many of these devices operating 24 hours a day, 365 days a year. Device vendors such as IBM develop more powerful COBOL machines but continue to maintain and upgrade existing systems due to the cost and risk of replacing them. COBOL isn’t going anywhere anytime soon. This is a good choice for those who want to work with clients from the financial sector.

Applications: banking/finance, international corporations, governments.

##C/C++ These languages ​​often occupy the top of various ratings - they are valued for their power and speed. C was created in the early 1970s by Dennis Ritchie, C++ was developed by Bjorn Stroustrup in 1985. Today, these two languages ​​underpin everything from operating systems and games to modern scientific computing and machine learning. C and C++ are well suited for demanding applications that value low-level hardware access and performance. Learning these languages ​​takes time and effort.

Scope: OS / SDK development, embedded devices, game engines, science.

Read also: Which programming language to choose to learn and how to learn it quickly? Popular, in demand, affordable: how to choose a programming language Five programming languages ​​for beginners

##C# C#, released by Microsoft in 2000, was developed by Anders Hejlsberg as a cross-platform object-oriented programming language. It is now often used to develop business applications, APIs, games, and more. Due to its wide feature set, this language is suitable for graphics and other asynchronous programming tasks.

Applications: corporate applications, software and user interface development, games, graphics.

##Dart A modern language developed by Google for building mobile, desktop, web and server applications. Its creator Lars Bak also came up with the JavaSript Engine V8. Dart resembles other modern object-oriented programming languages—C#, TypeScript, and Java—and provides a rich set of features suitable for defining complex interactions, asynchronous operations, animation, and other tasks.

Applications: cross-platform applications, cloud services / enterprise systems, games, graphics.

##Fortran Fortran, developed at IBM in the 1950s by John Backus, is a general-purpose language that was created for scientific and engineering work. It is still widely used for these purposes, including benchmark testing of the world’s fastest supercomputers. It has also been applied in space and physics research and weather modeling.

Applications: aerospace/defense, scientific computing, numerical analysis.

##java Java is a general-purpose OOP language developed in the 1990s by James Gosling at Sun (now owned by Oracle) and designed to be compiled into bytecode to run on the Java virtual machine. By 2020, this includes almost every kind of device, from TVs and game consoles to servers, phones and even kitchen appliances. The language is widely used in corporations and universities, which has made it popular among both novice programmers and experienced developers.

Applications: enterprise applications, embedded systems, web services, games.

##JavaScript JavaScript was developed by Brandon Eich in the 1990s to add scripting to websites. Today it is a universal web interface language with powerful, standardized features that are supported by all major browsers. JavaScript conforms to the EcmaScript standard, which is updated every few years with new language specifications. In addition, JavaScript is often used to develop back-end services and APIs, mobile applications, games, and other software. This is an excellent choice for learning and further improvement.

Applications: full-stack development, cloud services / container storage, games, utilities.

##Julia A modern high-level language designed for high-performance numerical processing and statistical analysis. Julia was developed in 2009 by Jeff Besanson, Stefan Karpinski, Viral B. Shah and Alan Edelman. It is one of four languages ​​that can achieve petaflops of supercomputing performance (along with C, C++, and Fortran). Popular with universities, governments and financial institutions.

Applications: financial analysis, mathematical research, scientific computing.

##kotlin Designed to interact with Java, Kotlin is packed with functional programming and OOP features, including lambda expressions, operator overloading, and so on. In 2019, Google named Kotlin as the language of choice for Android development, so it’s definitely worth learning for those who plan to build Android apps and plugins for popular SDKs.

Applications: Android applications, server-side development, and all areas where Java is used.

##lisp Lisp is a group of languages ​​related to the historical implementation of LISP, which was developed at MIT in the 1950s to describe programs in a mathematical way. The syntax in Lisp is based on s-expressions, which distinguishes it from most other languages, many of which are related to or influenced by C. Lisp was popular in early AI research and was widely used as a scripting language for CAD and other engineering applications because it treats code as data and allows language customization through macros, which distinguishes it from more static languages. Notable applications based on it include AutoLisp (a script for AutoCad) and Roomba. One of the languages ​​in the family, Clojure, is especially useful for building large scale business and web applications.

Applications: artificial intelligence, robotics, scripting, language extensions, research, development.

##lua Lua was developed in 1993 by Roberto Jeruzalimski for embedding in other applications. It is now widely used as a scripting language for adding new features to programs. For example, it can be used to supplement the description of game logic in the development of video games or to expand the set of user functions in graphic applications.

Applications: Software extensions, game logic, automation, electronics/Internet of things.

##PowerShell PowerShell was developed by Microsoft in 2006 to provide Unix-like command-line interface functionality on Windows. It was later released as open source and ported to macOS, CentOS and Ubuntu. PowerShell is widely used on systems that use Windows Server and other Microsoft technologies to make administration easier and reduce maintenance costs.

Applications: Windows system administration, command line interface, scripts, maintenance.

##Python Python, introduced in 1991 by Guido van Rossum, was conceived as a highly readable language with OOP features, using functional paradigms to build clean and well-organized programs. Python is supported by major platforms and is used in a wide variety of fields, including science, data mining, artificial intelligence development, computer graphics for feature films, cloud computing, game development, and many others. Python is well established and will remain one of the most requested tools for a long time to come.

Applications: artificial intelligence / machine learning, data mining, cloud services / web, media, scripts.

##R R was released in 1995 for statistical calculations and other complex mathematical operations related to data analysis and graphics. The Fortune 500 often uses R to perform complex risk analysis, customer trends, and other computationally intensive tasks. R is different from many statistics languages, and its s-expression-based syntax is reminiscent of Lisp. Although rarely used for other purposes, R is considered the standard in data analytics, especially for market forecasting or user trend analysis.

Applications: data mining, predictive analytics, graphics.

##Ruby Ruby was developed by Yukihiro Matsumoto in 1995 as an object-oriented scripting language to make up for the lack of OOP features in other scripting programming languages ​​of the time. Features such as dynamic typing, inheritance, reflection, and operator overloading make it ideal for creating complex scripts and web server applications.

Applications: complex scripts, package management, utilities, web servers.

##rust Rust is a multi-paradigm language designed to build large-scale parallel systems with high performance and reliability. Since 2016, Rust has been voted the most popular programming language in a StackOverflow poll every year. Being a system-level language similar to C++ and not requiring long processing times or having a virtual machine, Rust provides low-level access to hardware. This makes it ideal for developing operating systems, programs for microcontrollers and other software where hardware performance is critical.

Applications: OS development, embedded applications, servers, tools, games.

##SQL SQL is a general purpose programming language, but it is a powerful domain-specific language for managing relational databases. Its applications, from Fortune 500 data warehouses to embedded SQLite, are widely used in desktop and mobile applications. Many positions in IT and development require at least a basic knowledge of SQL. Advanced skills allow the developer to create extremely secure and robust domain rules that are independent of the programming language or SDK used. High profile implementations include Microsoft SQL Server, Oracle Database, and PostgreSQL. Each of them has a unique extension of the SQL language and offers new features that go beyond the core SQL specification. Learning SQL does not take much time and will come in handy in many areas from analytics and data processing to IT management and software development.

Applications: working with relational data, embedding data in applications.

##Swift Swift was released by Apple in 2014 as a replacement for Objective-C in their products (similar to how Kotlin replaced Java for Android). Swift retains some of the Objective-C features (such as dynamic dispatch) used in Apple product software, but features increased security and a modified syntax closer to C# or Java.

Applications: creating applications for macOS, iOS, watchOS and so on.

##typescript TypeScript is an open source language from Microsoft designed to add OOP functionality to JavaScript and improve the usability of complex applications. TypeScript, introduced in 2012, is commonly used to build robust, scalable web apps, frameworks, and other programs, such as the popular VS Code editor.

Applications: web interface, API development, games, scaling any JavaScript software.

Conclusion

For a successful career in IT, you need to know at least several languages from this list. Each of them has its own strengths and weaknesses: it is best to take advantage of a particular environment and look for other tools for those areas where the system does not perform as well. If a language is not suitable for a particular task, find one that is more useful. There are many programming styles and dozens of design patterns for each of these languages.

Dmitry Danko
Dmitry Danko
Professor of Artificial Intelligence

My research interests include distributed robotics, mobile computing and programmable matter.