Haku

Funktionaalisten ja olio-imperatiivisten ohjelmistokomponenttien yhdistäminen

QR-koodi

Funktionaalisten ja olio-imperatiivisten ohjelmistokomponenttien yhdistäminen

Combining functional and object-imperative software components

One of the first tasks when starting the implementation of a new program is to choose a programming language. Studies show that software life cycle cost can be influenced by choosing an appropriate programming language. Therefore the selection of the language should be based on rational reasoning. The most popular programming languages today are object-imperative. Therefore there exist plenty of ready-made software components implemented in those languages. Even when implementing a completely new program, it is not usually appropriate to implement all its features from scratch. Therefore, ready-made components are used. When, for example, a functional programming language is chosen as the implementation language, the program must be prepared to be integrated to components implemented in some other language. In these cases integrating different languages and different paradigms may raise problems. This master’s thesis describes how software components implemented with C# and F# can be integrated, and how the problems caused by the different programming paradigms can be solved. Also the usability of C# and F# is studied by interviewing software developers who have used the languages in practice. The study also tried to find out what are the benefits of using F# compared to C# and if the benefits overcome the extra work that is required to integrate components implemented in another programming paradigm. This master’s thesis is made for Atostek Oy, where C# and F# programming languages are used in software projects. C# is a widely used object-imperative language, and F# is its functional counterpart. Both languages are executed in the Microsoft’s .NET framework. In the case of C# and F#, the runtime environment solves most of the problems of integrating software components implemented in different programming languages. However, the problems caused by different paradigms must still be solved. Results of the interviews show what are the software developers’ thoughts on using both languages in practice. The results were consistent and provide a comprehensive view to the practical use of F#.

Tallennettuna: