On Feature Protection in C++, Java and Eiffel
The protection facilities (access levels) of Eiffel, C++ and Java are briefly explained and compared. Several problems are pointed out and remedies to them suggested. A few possible enhancements are also proposed.
I am a professor emeritus at the University of Jyväskylä (Finland) since 2011. Before returning to the university in 1985 I had worked several years in software development in the industry. My main research area since 1987 has been object-oriented programming languages, in particular inheritance; but I have also studied object-oriented databases, UML and software testing. I am probably still best known for the paper “On the darker side of C++”, presented at ECOOP 1988. I still believe that multiple inheritance (MI) can be done right, but no language (known to me) so far has succeeded in it. MI is certainly flawed in those two languages supporting it that I have studied most: significantly in Eiffel and fatally in C++.
I have been a PC member of several ECOOPs, an OC member of ECOOP 1996, and the organising chair of ECOOP 1997. I organised the Workshop on Multiple Inheritance and Multiple Subtyping at ECOOP 1992, and co-organised the Inheritance Workshop at ECOOP 2002 as well as MASPEGHI 2004, 2010 and 2013. I also co-organised the 1st Workshop on Testing Object-Oriented Systems at ECOOP 2010. As a member of AITO since 1998, I moderated the “ecoop-info” mailing list for many years. I was a member of the first Dahl-Nygaard Prize Committee (for 2005) and the chair of the committee for 2015.