Cytat(Jabol @ 6.05.2007, 10:12:33 )

W pythonie wszystko jest obiektem. Nawet klasy są instancjami typu klasa. Można to jednak zmienić, klasy mogą być instancjami innych typów, np. typu Interfejs. Oczywiście nie ma takiego typu wbudowanego w Pythona, można go jednak stworzyć. Po przykład zapraszam tutaj:
http://wiki.zope.org/zope3/ZopeGuideInterfaceshttp://svn.zope.org/Zope3/branches/3.3/src...amp;view=markupWiem, że trzeba troszkę wyczucia w Pythonie, żeby zrozumieć to co tutaj napisałem (
dla ludzi piszących w PHP z jego łopatologicznym podejściem do typów
taka abstrakcja może być przytłaczająca, ale po pewnym czasie staje się naturalna - jeżeli piszecie w C, to troszkę tak jak pointer do pointera, który można przecież przechowywać w int, jak i na odwrót...).
Nie wysnuwaj tak rażących, daleko idących wniosków na podstawie języka. Taka
bo ja równie dobrze mogę powiedzieć, że zrozumienie idei separacji implementacji od definicji struktury jest tak dalekie programistom Pythona jak ich językowi do NORMALNEJ implementacji.
Cytat(Jabol @ 6.05.2007, 10:12:33 )

(...)- ok, w Zope implementacja nie jest na podstawie metaklas (widać w kodzie źródłowym), ale jak widać da się to zrobić elegancko.
- na pewno dałoby się to zrobić za pomocą metaklas, jak i zresztą o wiele więcej.
Równie "eleganckie" rozwiązanie możemy mieć użyciem Prototype w Java Script.
Idąc Twoim tokiem myślenia, można udowodnić, że PHP ma obsługę przestrzeni nazw i Aspektów czy też adnotacji, ponieważ dzięki Zend API można je bez problemu dodać. Fakt jest jeden -
PHP nie miało i nie ma do tej pory wsparcia dla przestrzeni nazw, aspektów oraz adnotacji. Z tym, że programiści PHP nie twierdzą, że to jest zbyteczne, a przyznają się do braków języka.
Cytat(Jabol @ 6.05.2007, 10:12:33 )

Tutaj wychodzi też kolejna cecha Pythona, którą odziedziczył z Lispa. Koncept Down-Up - budujemy aplikacje, ale również środowisko programowania, od dołu do góry.
Panowie, nie róbmy z tego od razu nie wiadomo jakiej koncepcji. Java Script jest podobnie jak Smalltalk językiem bazującym na prototypach i możemy z nich korzystać by dodawać nowe metody do predefiniowanych klas, ale nikt tego nie nazywa Down-Up a tym bardziej nie eksponuje jako wielkiej zalety.
Cytat(Jabol @ 6.05.2007, 15:10:09 )

W Javie i C++ i (tym bardziej) w PHP też nie ma abstrakcyjnych klas ani interfejsów! W C++ wszystko sprowadza się do asemblera i jak już masz skompilowany kod to wszystko działa bez uwzględniania stylu programowania (bo asembler jest językiem imperatywnym, i nieważne z jakiego został kompilowany). W PHP całe te Twoje abstrakcje itp. też kończą najpierw jako struktury danych z języków imperatywnych a potem wszystko przekłada się na asembler. W Javie jest podobnie, ale się nie wypowiadam bo nie znam się na szczegółach implementacji. (przepraszam za ironie)
Sprowadzasz języki tak jak liczby do jednej kategorii - zawsze niepodzielnych przez zero nie zwracając uwagi na to w jakich okolicznościach stosuje się dane liczby. Pójdźmy o krok dalej, każdy język to i tak ciąg zer i jedynek, impulsów elektrycznych. Po co pisać w Javie, C++ czy też Pythonie i korzystać z ich mechanizmów, piszmy od razu w Assamblerze, wszak każdy z oferowanych mechanizmów sprowadza się do tych samych instrukcji.
Cieszy mnie Twoje zafascynowanie wykładami na temat teorii języków programowania, ale wierz mi nie musisz nim tutaj emanować by udowodniać swoje tezy. Nie tędy droga.