@InProceedings{beyakova:oop-generics:sblp:2016, author="Belyakova, Julia", editor="Castor, Fernando and Liu, Yu David", title="Language Support for Generic Programming in Object-Oriented Languages: Peculiarities, Drawbacks, Ways of Improvement", booktitle="Programming Languages", year="2016", publisher="Springer International Publishing", address="Cham", pages="1--15", abstract="Earlier comparative studies of language support for generic programming (GP) have shown that mainstream object-oriented (OO) languages such as C{\#} and Java provide weaker support for GP as compared with functional languages such as Haskell or SML. But many new object-oriented languages have appeared in recent years. Have they improved the support for generic programming? And if not, is there a reason why OO languages yield to functional ones in this respect? In this paper we analyse language constructs for GP in seven modern object-oriented languages. We demonstrate that all of these languages follow the same approach to constraining type parameters, which has a number of inevitable problems. However, those problems are successfully lifted with the use of the another approach. Several language extensions that adopt this approach and allow to improve GP in OO languages are considered. We analyse the dependencies between different language features, discuss the features' support using both approaches, and propose which approach is more expressive.", isbn="978-3-319-45279-1" }