Életbe lépett a Python 3 szintaxisának fagyasztása

Címkék

Guido van Rossum, a Python megalkotója október végén moratórium bevezetését javasolta a Python nyelv szintaxisával kapcsolatban. A fejlesztő a változtatások néhány évre történő fagyasztására tett javaslatot. Az ok, amiért ezt felvetette: a Python-nal kapcsolatos projektek - pl. Jython, IronPython, PyPy stb.) - implementálói számára "fájdalmas" a nyelv gyakori változtatása, ugyanakkor ezen változtatások gyakorlatilag kis, vagy semmilyen előnnyel sem járnak az átlagos végfelhasználók számára. A Python 3 moratórium életbe lépett. Ez azt jelenti, hogy a szintaxis 2011 júniusáig nem fog változni.

Hozzászólások

De a Python 3 már megjelent hivatalosan egy ideje. Akkor minek bizergálni a szintaxisát?

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

A 2-es sorozatnál az volt a szokás, hogy minden főbb kiadásnál módosítottak a szintaxison (többnyire újabb feature-ök kerültek be).
Kezdett a dolog kaotikus lenni, ezért a 3-as egy nagy ugrás, sok régi/nem használt szintaktikus cukor kikerült/megváltozott.

Ha jól értem azt akarják elkerülni, hogy a 3-as sorozat újabb kiadásai ugyanúgy változtassák a szintaxist mint anno a 2-es kiadások...

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

Jól csinálják. Pont a php ellentéte.

+1. Eddig meg nem talalkoztam python-nal letisztultabb szintaxisu, konnyebben olvashato nyelvvel.

Sokan a kotelezo tab-bal valo indentalast hozzak fel negativ peldakent. Meg hogy osszeakad a space a tab-bal.
Nalunk 5 perc volt meloban megbeszelni, hogy akkor indentalas: 4 tab, space-el emulalava, es tobbet nem volt gond belole.

Ezzel csak az a gond hogy olyan munkara kenyszerited az embereket ami 100%-osan egy gep munkaja.

Nem az a kerdes hogy space vagy tab vagy gumizarojel. Mondjuk a program lehetne absztrakt kod formajaban letarolva, amihez te olyan prezentacios reteget valasztasz ami neked akkor eppen kenyelmes. Grafikusat, UML szerut, tabosat, indentaltat vagy nem, stb.

Maga a prezentacios reteg nem kene hogy befolyasolja a kodot es lehetoleg a nyelvet sem. Puff neked "kenytelen leszel szepen formazott kodot irni". Vihar a biliben.

- a self tenyleg eltunhetne a metodusokbol
- a name mangling a meg mindig eleg szani egy normalis nyelvhez kepest
- az uj szintaxisu print fajlba irasa eleg fogyi, raadasul el kene donteni mar, hogy most akkor oo a nyelv, vagy scriptelek (csak ugy log ott a print)
- len (log a levegoben, a rubyban lenyegesen okosabb)
- a listak sortolasa fogyi (a javas, c#-os lenyegesen egyertelmubb, intelligensebb)
- meno lenne typesafe lista is
- szerintem a java/c#/c++-on kivul keves elterjedt nyelvben vannak tenyleg logikusan az include-ok (miert kell nekem __init__.py?)
- if __name__ == "__main__"
- nonlocal es egyeb oop wtf dolgok
- True, False, None? illeszkedhetnenek a kisbetus szintaxisba

stb.

ezzel egyutt en kedvelem a pythont :)

- A None megszunhetne enkomplette, es lehetne helyette null vagy nil mint minden normalis OOP nyelvben.
- Privat/Protected metodusok, amik telleg nem hivhatok kivulrol (ugy remlik, ezt meg a 3-as se hozta)
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

ROTFL. Ekkora ostobasagot is mar nagyon reg hallottam. Bakker, a ruby-nal miert tudtak megoldani, hogy csak a statikus metodusoknal kell kirakni a self-et (amibol altalaban keves szokott lenni), es akkor sem parameterkent? De egy nyomoronc "static"-szeru kulcsszo bevezetese az egesz problemat orvosolhatna... ez valami fenomenalis idiotasag.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

"az instance valtozok @ prefixszel rendelkeznek."

Nekem senki nem mondja ezek után, hogy a ruby szép... :)

Egyébként valószínűleg a self nemszükséges volta, és a @ prefix összefügg.

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o

+1

Inkább egy stabil szintaktika, az ismert gyengeségeivel, mint havonta új valami jelentéktelen előnnyel járó, állandóan változó. Mert a kettő közül az elsőre lehet építeni, a másodikra nem.

Nemrég vettem észre, hogy mikor feltelepül a .NET fw, az 1.0, 2.0 ... stb verziókat is felrakja, ezek a befagyasztott korábbi verziók pár mb-ot foglalnak és biztosítják a visszafele kompatibilitást. Nagyon szimpatikus. Ezzel szemben, ha le akarok futtani egy 2 évvel (!) ezelőtt PHP vagy Python kódot, lassan már meg sem ismeri a futtatókörnyezet.

--
return 0;