Kamper, G. (2009). Typsicherheit vs. Flexibilität : Vererbung und Polymorphie in Ruby und C# [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/185666
Die dynamische Programmiersprache Ruby wird immer populärer. Es herrscht aber noch immer viel Unklarheit darüber, wie sie in der Praxis eingesetzt wird und für welche Projekte sie vielleicht besser geeignet ist, als statisch typisierte Sprachen wie Java und C#. In dieser Arbeit wird Ruby genauer untersucht und mit C# verglichen. Dabei beschränke ich mich aber auf die objektorientierten Spracheigenschaften Vererbung und Polymorphie, um mehr in die Tiefe gehen zu können und da es gerade hier interessante Unterschiede gibt. Im ersten Teil der Arbeit werden die theoretischen Unterschiede und Trade-offs der beiden Sprachen bezogen auf Vererbung und Polymorphie analysiert und oft anhand kurzer Code- Beispiele verdeutlicht. Der zweite Teil besteht aus einer Untersuchung von insgesamt 45 Open Source-Projekten, die die Frage beantworten soll, wie die beiden objektorientierten Sprachkonzepte jeweils in der Praxis eingesetzt werden. Das interessanteste Ergebnis der Analyse des Open Source-Codes ist, dass in beiden Sprachen um die 65% der Klassen abgeleitet sind. Dieser hohe Wert überrascht vor allem bei Ruby, da hier keine Vererbungsbeziehungen für Polymorphie benötigt werden. Eine genauere Untersuchung der Projekte kann diesen Umstand allerdings erklären.
de
The dynamic programming language Ruby is becoming more and more popular, but there is still much uncertainty about how Ruby is used in practice and for which kind of projects it may be a better choice than statically typed languages like Java and C#. The intention of this thesis was to inspect Ruby and to compare it to C#. This comparison is constricted to the object- oriented features inheritance and polymorpy to keep it more focused and because this is where some of the most important differences can be found. The first part of the thesis analyzes the theoretic differences and trade-offs between the two languages that are related to inheritance and polymorphism. Small code examples are used to clarify important points. The second part is an analysis of 45 open source projects to find out how the two object-oriented features are used in practice. The analysis shows that about 65% of all classes are inherited in both languages. This high percentage is especially surprising for Ruby, because inheritance isn't needed for polymorphism in this language. However, a more precise analysis of the projects can explain this finding.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in engl. Sprache