The Register - Če ste morebiti zamudili, v sredo je izšel Python 3.0, katerega nova verzija ni več popolnoma združljiva z družino 2.x. Guido van Rossum, oče projekta, je dejal, da je jezik večinoma enak, so pa spremenili vrsto detajlov, popravili nekaj nadležnosti in pobrisali nekaj zastarele kode ter reorganizirali standardno knjižnico. Priznava, da verzija 3.0 teče deset odstotkov počasneje od predhodne in pravi, da se bodo tej težavi posvetili pozneje. Seznam vseh novosti je na voljo na uradni spletni strani.
Glede na priljubljenost jezika bi pričakoval, da bo - od predhodne verzije - boljši tako v funkcionalnostih, stabilnosti in hitrosti... ampak, nevermind, naj bolj kredibilno mnenje dajo tisti, ki ga bodo dejansko uporabljali.
"Indentacije nej se znebijo, če že. " => a ni to najbolj ql pri Pythonu? Enostavno te prisili pisat lepšo kodo...
Počasnejši je zaradi podpore Unicode. Bodo zrihtali. Evo isto, kar so naredili Python razvijalci, bi morali narediti PHP, s 6tico. Ne pa de se izmišljajo nebuloze, kot je \ za namespace delimiter. Za nameček ne znajo spisati pravilnega regexa, ki bi pravilno popravil dokumentacijo. Aja govorim o tem... Bfoo(); // calls function "foo" from namespace "B" Right... kar bi moralo biti B\foo();..
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
[edit - odstranjen del, ki se nanaša na brisan post]
"Indentacije nej se znebijo, če že. " => a ni to najbolj ql pri Pythonu? Enostavno te prisili pisat lepšo kodo...
To je neumnost. Kompajler se ne bi smel pritoževat nad kodo, magari če je napisana v eni sami vrstici. Ločenje odspredja/oduzadja, ja?
Drugače pa kaj ti preprečuje indentacijo v drugih jezikih? 99% programerjev jo uporablja, tako, da tukaj res ni kakšnih težav ...
Nič mi je ne preprečuje, ker je prostovoljna; python jo po drugi strani zapoveduje, kar botruje nepreglednosti. En odmik preveč/premalo, hopla!, pa je del kode takoj izven funkcije/zanke/younameit.
En odmik preveč/premalo, hopla!, pa je del kode takoj izven funkcije/zanke/younameit.
Če ne zamikaš ravno po en presledek, to ni problem - dobiš napako pri prevajanju ... Koda je pa v večini primerov veliko bolj berljiva brez oklepajev ali "begin-end" delimiterjev in podpičij. Kdaj pa tlačiš več stavkov v eno vrsto? Kvečjemu pri kakšnih kratkih inicializacijah (x=0;y=0;maxx=0;maxy=0;) - vse to pa v Pythonu tako ali tako narediš v enem stavku ...
Ne programiram v pythonu, ampak ko sem slisal za standardno indentacijo mi je bila ideja takoj vsec. Po svoje bi mi pasalo, da bi bilo cimvec strukture zapovedane. Ker, ce ne pazis (se posebaj pri kakem perlu) mas kaj hitro 'write only' software. Ce pa se malo vec ukvarjas s programiranjem vecjih aplikacij, itak hitro ugotovis, da za branje kode zapravis vsaj toliko casa kot ga za pisanje.
Če pythonu vzameš vstran identacijo potem to enostavno več ni python. Identacija je stvar okusa - nekaterim je všeč drugim ne. Ni ne bedarija in ne najboljša stvar pod soncem. Pregledno kodo lahko pišeš tudi na "klasičen" način. Po drugi strani pa je po moje dobra za začetnike, ki jih sili v pisanje lepo strukturirane kode in pa tudi vsa python koda, ki sem jo bral se mi je zdela enaka ravno zaradi identacije.
Quikee: lepo povedano. Dodal bi še, da je v primerih, ko je sintaksa restriktivna, običajno manj problemov in navajanja na kodo drugih, če delaš v skupini. Če bi vsak od desetih programerjev v skupini pisal na svoj način in ne bi v skupini veljala določena pravila pri pisanju kode, si ne predstavljam, kako bi lahko vse skupaj vzdrževali.
Hja kolikor poznam python (user experience) so mainline in bittornado v pythonu ne? Ogabno počasni in požrešni, ram in cpu. :) Glede indentacije ko je težka debata - nimam nič proti, malo manj pisanja oklepajev, bog ne daj begin/end ...
Sicer pa je nekdo omenil php, php resno rabi prevetritev. Po par mesecih dela sem odkril že kar nekaj reči, ki mi gredo grozno na živce :)
Če je samo en stavek ne vidim zakaj bi pisal {} ...
Zato, ker ti bo enkrat nekdo vrinil enter med tisti if in pogojni stavek. Ali pa zato, ker bos enkrat poleg Do_Something() zelel, da se izvede se Do_Something_Completely_Different() in bos pozabil na oklepaje....
Pisanje {} prihrani mnogo tezav in naredi kodo lepso in bolj pregledno. :)
Temu nisem nikdar posvečal pretirane pozornosti, niti se s pythonom nisem pretirano ukvarjal. Načeloma lahko tudi python skripte pred-compilaš, da tega ni potrebno početi interpreterju ter s tem pospešiš izvajanje skripte/programa, ne?
Vprašanje, kak oni test poganja. Razen tega je še večje vprašanje, ali program na "prvo žogo" ali skrbno optimiran na roke. (C verzije so recimo krepko stunane)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
black ice> Načeloma lahko tudi python skripte pred-compilaš, da tega ni potrebno početi interpreterju ter s tem pospešiš izvajanje skripte/programa, ne?
Ne.
Ključna beseda je interpreter, ne pa prevajanje. Tudi prevedeno kodo še vedno interpretira interpreter, samo malo manj dela ima.
ne vem, kako enim pade na pamet in za indentation uporabljajo space-e, omg
Zato ker tapametni vedo, da je TAB nekaj kar ni enotno na vseh sistemih, urejevalnikih in platformah in potem koda zgleda na vsakem racunalniku drugace.
Tab uporabljas ce programiras na pisalnem stroju. :>
Python sem odložil takoj, ko sem ugotovil, da tabov in presledkov ne gre mešati. Sam se sicer držim pravila, da uporabljam samo tabe ali presledke, vendar nastane problem, ko urejaš kodo nekoga drugega ali pa copy&pastaš daljše snippete...
Snippete, ce jih ze uporabljas jih preprisujes, zato, da ves kaj tlacis v svojo kodo. Ce pa urejas kodo od nekoga drugega potem se pa itak mora drzat tvojega coding standarda oziroma ti njegovega. :)