All programming languages can be classified into several categories:
Compiled and Interpreted Languages
Compiled languages require first converting code written in a programming language into a sequence of machine instructions. This process is called compilation. The resulting binary files can be run directly on a machine running the operating system. For programs written in interpreted languages, compilation is not used, and the source code is essentially translated into machine instructions directly while the application is running using a helper program called an interpreter. In general, the performance of applications written in interpreted languages is lower than in compiled ones.
Compiled: C, C++, C#, Java, Go.
Interpteted: JavaScript, PowerShell, Python, PHP.
Classification of Programming Languages by Abstraction Level
Low-level languages include assembly language and, with some allowances, CIL. Writing a program in assembly language essentially involves using machine instructions. Machine code can be directly translated to assembly code and vice versa. CIL, on the other hand, can be considered an assembly language analogue for .NET languages, providing low-level instructions for the .NET platform’s JIT compiler.
High-Level Languages are used for writing 99.9% of all programs. They offer a high level of abstraction, allowing complex actions to be executed with just a few lines of code. This frees programmers from dealing with low-level details and allows them to focus on the application logic while maintaining flexibility. Some high-level languages even support assembly code inclusion.
High-level languages provide the syntax and basic capabilities of a language, on top of which additional libraries, platforms, plug-in components, and technologies are built. These libraries can be commercial or open-source, developed by communities of enthusiastic programmers or funded by commercial companies. The more popular the language, the more third-party libraries are available to facilitate and speed up application development.
No Code platforms enable application design using pre-built components, with blocks arranged in sequence and their parameters configured using a visual editor. This approach doesn't require knowledge of programming languages. No Code platforms are gaining popularity but are limited by the available modules and their capabilities. Typically, each platform specializes in a particular type of application, such as website creation, online stores, chatbots, or simple mobile apps.
Low Code platforms also offer the ability to create additional modules using their own language or a high-level language with the platform’s SDK. This adds flexibility for creating custom functionalities that the platform doesn’t support by default. While Low Code platforms require programming knowledge, they allow for quicker development for standard tasks by using ready-made components and focusing on custom functions. However, their flexibility is still limited by the platform’s implementationУНИВЕРСАЛЬНЫЕ И СПЕЦИАЛИЗИРОВАННЫЕ.
Universal ones allow you to solve a wide range of problems, unlike specialized ones, for example:
Database languages, which, in turn, can also be divided into subtypes:
Relational: SQL, T-SQL, PL/SQL.
Time Series: InfluxQL.
NoSQL: MQL.
Mathematical Languages: Fortran, LISP, F#. Used for mathematical computations and data processing. LISP was initially developed for AI research, but specialized dialects exist for AutoCAD and Audacity.
Machine Learning: Python, R. Despite the fact that Python is in fact a universal language, the simplicity of its syntax and a huge number of libraries with ready-made algorithms for preparing and processing data, creating and training neural networks and an extensive mathematical apparatus have led to its unprecedented popularity in the field of Data Analysis and Machine Learning . In fact, it has become a standard for ML development. For C++ and C#, for example, there are also ML libraries, but the higher learning threshold of the languages themselves limits their popularity for solving such problems.
Web Development languages: JavaScript, TypeScript, PHP, HTML, CSS.
Object-Oriented and Procedural Languages
Procedural languages describe actions in the form of procedures and the sequence of their calls, which can also be combined into subroutines. Object-oriented ones introduce the concept of classes of objects containing not only data, but also operations that change the state of an object of this class. All object-oriented languages implement four basic principles: abstraction, encapsulation, inheritance, and polymorphism. Based on OOP principles, design patterns were developed - standard recommended approaches used for developing the architecture of an application or individual components, as well as the development principles themselves - SOLID (single responsiveness, open-closed, Liskov substitution, interface segregation and dependency inversion).
Cross-Platform Languages
Most modern high-level languages are cross-platform, meaning their programs can run on various operating systems. Some, like C/C++, achieve this through compiler-level cross-platform capabilities, requiring specific compilers for each platform. Languages like C# built on .NET Core are cross-platform at runtime due to the use of a low-level intermediate language CIL, allowing the same code to run on Linux, macOS, and Windows
Expertise of 2K-SOFTWARE specialists, certified by Microsoft and Brainbench, have significant experience in the following languages:
General-Purpose: C, C++, Go, C#
Web development (frontend): HTML, JavaScript, TypeScript, CSS
Machine Learning: Python
IT Infrastructure Automation: Powershell
Database Languages: SQL, T-SQL, PL/SQL, InfluxQL, MQL