RUS  ENG
Full version
JOURNALS // Proceedings of the Institute for System Programming of the RAS // Archive

Proceedings of ISP RAS, 2019 Volume 31, Issue 5, Pages 89–94 (Mi tisp455)

Language design: OOP or not OOP or better OOP

A. E. Nedoria

Huawei Technologies Co., Ltd, Russian Research Institute

Abstract: As part of the process of improving the application development ecosystem for various Huawei devices the company is working on a new programming language. The principal feature of the new language is the support of component-oriented programming (COP), by which we understand the possibility of assembling (an essential part) of the program from ready-made components. One of the steps in the direction of COP is, from our point of view, the right choice of OOP features. In the current work, we do not consider COP directly, focusing on the OO paradigm implementation. Currently, the situation with the OO paradigm is quite confusing. In fact, there is no consensus in the IT community on what OOP is. Suffice it to note that OOP in Go and Rust is fundamentally different from OOP in C++ and Java. Languages with object orientation based on classes and implementation inheritance (CLOP languages, where CLOP – Class-Oriented Porgramming) are criticized for the lack of flexibility and for the problems of developing reusable components. As component’s reusing is important for us, we propose OOP features that are non-CLOP and allows one to implement objects that can be extended (by adding methods) without the need to make changes to the source code of the object and with minimal recompilation of clients.

Keywords: programming language, component-oriented-programming, object-oriented programming, class-oriented programming, software ecosystem.

DOI: 10.15514/ISPRAS-2019-31(5)-6



© Steklov Math. Inst. of RAS, 2024