link

December 12, Wednesday
12:00 – 14:00

Dynamic OOP and Meta-Classes in Python
Bio-Informatics seminar
Lecturer : Mr. Guy Wiener
Lecturer homepage : http://www.cs.bgu.ac.il/~gwiener
Affiliation : CS, BGU
Location : 202/37
Host : Student Seminar
The most popular object-oriented programming (OOP) languages nowadays - Java, C++, C# - are statically-typed and based on a static model. They do not allow to manipulate their classes at run-time. As a result, many programmers view OOP as a methodology with limited flexibility and expressiveness. OOP languages do not have to be static. Several new scripting languages break this rule by implementing a highly dynamic and flexible version of OOP. These are dynamically-typed languages that allow to manipulate objects and classes at run-time. This ability gives a lot of flexibility to the programmer, and those languages are gaining much popularity.

One of the more impressive and useful usages of this approach is the implementation of a meta-classes system in Python. Meta-classes are classes that create other classes as their instances. Using meta-classes lets programmers implement design patterns and aspect-oriented programming by using the programming language itself, giving a higher level of expressiveness and code re-use. In this talk I will give a short introduction to those new approaches in OOP, and present meta-OOP programming in Python, with its powers and problems.