V čem je (skutečný) problém absence privátních proměnných? Problém s public proměnýma je, pokud vím, ten, že po klientech třídy rozprskneš přímý přístup do paměti objektu – takže objekt nemá možnost reagovat. Pokud ale existuje možnost „obalení“ do properties, tak tento argument padá. To v pythonu (i v php) jde.
Co se týká kontejnerů, to je věc názoru, mě se míchání obyčejného a asociativního pole v php osobně nelíbí a nezdá se mi to o tolik složitější (ani pro začátečníky, spíš naopak).
Ty deskriptory jsou možná trochu složitější, ale jde to udělat i jinak
Jinak na pythonu oproti php oceňuji mimo jiné menší „psychologickou“
náročnost. Například nedávno jsem napsal něco takovýho:
…array_map(array(‚Sql‘, ‚q‘), $items)…
Jinak pravda, právě s 5.3 několik silných argumentů v neprospěch php
padá. Což je dobře. a říkal jsem si, kolik wtf bude, až to bude někdo
číst. A pak jsem to pro zajímavost zkusil v pythonu:
Je to v podstatě stejné, ale když čtu něco
podobného jako v té php variantě, tak mě to napřed vyleká (ok, jsem
zbabělec). Podobně je to s tím, když se používá jen . (tečka) versus ::
\ → (což je teda opačný případ k tomu array() versus [] {})
map(Sql.q, items)
Jinak, uznávám, právě s php 5.3 několik silných argumentů v neprospěch php padá. Což je dobře.