» »

Izšel Python 3.0

Izšel Python 3.0

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.

60 komentarjev

«
1
2

PNG ::

Uuu, tole bo pa treba preizkusit. V pythonu sem vedno najraje programiral, jezik mi je enostavno domač :)

mp218 ::

"Priznava, da verzija 3.0 teče deset odstotkov počasneje od predhodne in pravi, da se bodo tej težavi posvetili pozneje."

A ne zveni to mal neresno?

Drugače pa je jezik res ql. Samo škoda, da se mu ne posvečam več velik.

Quikee ::

"Priznava, da verzija 3.0 teče deset odstotkov počasneje od predhodne in pravi, da se bodo tej težavi posvetili pozneje."
A ne zveni to mal neresno?.


Neresno? Kaj pa se naj prvo posvetijo da bo delala hitreje in kasneje stabilnosti?

PaX_MaN ::

Indentacije nej se znebijo, če že.

mp218 ::

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...

techfreak :) ::

Indentacija je dobra stvar, vendar vseeno me moti to, da ni zavitih oklepajev.


V bistvu pa mi tudi ostale stvari niso všeč. Nekako mi je najboljši C/C++ način. Ker pri Pythonu se mi zdi ravno to težava.

Drugače pa kaj ti preprečuje indentacijo v drugih jezikih? 99% programerjev jo uporablja, tako, da tukaj res ni kakšnih težav ...

Sploh pa 10% počasneje? A ni bistvu izboljšav v tem, da poteka vse skupaj hitreje?

krho ::

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

BigWhale ::

Drugače pa kaj ti preprečuje indentacijo v drugih jezikih? 99% programerjev jo uporablja, tako, da tukaj res ni kakšnih težav ...


Problem je v tem, ker jih potem 99% indentacijo narobe in drugace uporablja... :>

techfreak :) ::

Problem je v tem, ker jih potem 99% indentacijo narobe in drugace uporablja... :>

Kako jo pa lahko narobe uporabljaš?:))

PaX_MaN ::

[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.

Zgodovina sprememb…

  • spremenilo: gzibret ()

upirna ::

Ima prednosti in slabosti. Drugače pa python že tako ali tako ni ravno uren, tako da teh 10% res ni ravno pohvalnih.
[to sporočilo bo spremenil upirna, kadar bo to njemu pasalo]

BigWhale ::

Problem je v tem, ker jih potem 99% indentacijo narobe in drugace uporablja... :>

Kako jo pa lahko narobe uporabljaš?:))


Ti zgleda se nisi videl kako zgleda ena zanikrna koda...

Matevžk ::

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 ...
lp, Matevžk

infiniteLoop ::

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.
None of us is as dumb as all of us.

Quikee ::

Č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.

mte ::

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.

lp

jlpktnst ::

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 :)

aks_! ::

James Bennett, eden izmed razvijalcev Djangota, je napisal kul text, zakaj je dobro, da je prišlo do sprememb v Pythonu: Let's talk about Python 3.0.

Edit: napačen link.

Zgodovina sprememb…

  • spremenil: aks_! ()

MrStein ::

PaX MaN:
En odmik preveč/premalo, hopla!, pa je del kode takoj izven funkcije/zanke/younameit.

V C-ju je isto (oziroma "nasprotno"):
if(pogoj)
   NaredTo();
   NarediOno();


Programer se zatipka -> program ne dela. Nič ni kompaljler kriv.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

jype ::

PaX_MaN> Indentacije nej se znebijo, če že.

>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance

krho ::

PaX MaN:
En odmik preveč/premalo, hopla!, pa je del kode takoj izven funkcije/zanke/younameit.

V C-ju je isto (oziroma "nasprotno"):
if(pogoj)
   NaredTo();
   NarediOno();


Programer se zatipka -> program ne dela. Nič ni kompaljler kriv.


Jaz dobim pike, ko vidim zgornjo kodo.
if(pogoj) { NaredTo(); }

NarediOno();

//oz najbolje
if(pogoj) { 
  NaredTo();
}
NarediOno();
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

techfreak :) ::

{} sta pri samo enem stavku nepotrebna.

Najboljše je:

if(pogoj)
presledek presledek presledek presledek NarediTo();
NarediOno();

Zgodovina sprememb…

squngy ::

Osebno mi je veliko bolj pregledno, da če ima pogoj samo en stavek, da napišem kar v isti vsrtici.

recimo: if(pogoj) { NaredTo(); }

še rajš pa: if(pogoj) NaredTo();
Itaq tako v trenutku vidiš kam spada stavek.

Čim jih ima več pa:

if(pogoj) {
tab NaredTo(); //tab = zamik s tabulatorjem
tab NarediOno();
}

Zgodovina sprememb…

  • spremenil: squngy ()

BigWhale ::

Dejan, as nor?! :>

Najboljs je tkole:

if (something)
{
  Do_Stuff;
}
else {
{
  Do_OtherStuff;
}

squngy ::

ni če hočeš da se Do_OtherStuff; izede v vsakem primeru...

BigWhale ::

Ja, to ze vem. Ampak Pisanje takih if stavkov brez oklepajev je blasphemy.

jype ::

Ne, ni.

Samo python potrebuješ.

techfreak :) ::

Če je samo en stavek ne vidim zakaj bi pisal {} ...

BigWhale ::

Ne, ni.

Samo python potrebuješ.


Smartass :P

BigWhale ::

Č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. :)

techfreak :) ::

Če imam:
if(pogoj) Do_Something();
in mi nekdo vrine enter med if in pogojem dobim:
if(
pogoj) Do Something();
in mi bo še vedno delovalo.

Sploh pa še nikoli nisem pozabil {} in ni nikakor bolj pregledno.

krho ::

@Dejan še 1x poglej kaj je napisal MrStein, in kaj BigWhale pa ti bo vse jasno.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

BigWhale ::

Dejan, med pogojni stavek. Ne med pogoj. ;)

In ja z oklepaji je BOLJ pregledno. O tem se ne bomo kregali. :P

Gandalfar ::

Gandalfar je premaknil sporočila v py3k tutoriali.

black ice ::

BigWhale je izjavil:


In ja z oklepaji je BOLJ pregledno. O tem se ne bomo kregali. :P

I second it.
Sodeč po temlinku je Python 3.0 skoraj 50x počasnejši od Fortrana. Test je bil izveden na Intel Q6600, na enem jedru.

Zanimivo, nisem si predstavljal, da je takšna razlika.

Fave ::

Zadnji link v novici je napačen. Pravilen je: http://docs.python.org/release/3.0/what...
My mind's a hyper tool that fixes everything.

Lion29 ::

BigWhale je izjavil:

Dejan, as nor?! :>

Najboljs je tkole:


if (something)
{
Do_Stuff;
}
else {
{
Do_OtherStuff;
}



lol, a ti bi kar dva zavita oklepaja pr else? :D

meni je najbolj vsec oblika short, pr enih stavkih in seveda zaviti oklepaji v isti vrstici kot pogoj, torej:

if (something) Do_Stuff;
else Do_OtherStuff;


ali v najslabsem primeru

if (something){
tab Do_Stuff;
}else{
tab Do_OtherStuff;
}


ne vem, kako enim pade na pamet in za indentation uporabljajo space-e, omg
Founder and CTO @ Article-Factory.ai

sherman ::

Kako lepo bi bilo, ce bi bil edini problem Pythona konkretna sintaksa. Ni kaj, Wadler je dobro opazil.

ZaphodBB ::

A ni zanimivo kako imate največ kritik prek Python tisti, ki še niste nič konkretnega spisali v njem?

MrStein ::

black ice je izjavil:


Sodeč po temlinku je Python 3.0 skoraj 50x počasnejši od Fortrana. Test je bil izveden na Intel Q6600, na enem jedru.

Zanimivo, nisem si predstavljal, da je takšna razlika.

Interpretiran program proti prevedenemu?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

black ice ::

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?

MrStein ::

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!

jype ::

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.

Zgodovina sprememb…

  • spremenilo: jype ()

black ice ::

Očitno sem narobe razumel post na SO.
Hvala za razlago.

BigWhale ::

Lion29 je izjavil:


lol, a ti bi kar dva zavita oklepaja pr else? :D


Tisto je bil stiri leta star zatipk.

Lion29 je izjavil:


meni je najbolj vsec oblika short, pr enih stavkih in seveda zaviti oklepaji v isti vrstici kot pogoj, torej:

if (something) Do_Stuff;
else Do_OtherStuff;



Ja, to smo ze povedali, da je narobe.

Lion29 je izjavil:


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. :>

Mipe ::

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...

jype ::

BigWhale> Tab uporabljas ce programiras na pisalnem stroju. :>

Al pa če maš editor, ki ni bukov.

Gandalfar ::

Mipe: kaksen editor pa mas, ki nima auto-detection space/tab styla?

BigWhale ::

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. :)
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Severnokorejski državni operacijski sistem od blizu (strani: 1 2 )

Oddelek: Novice / NWO
5338954 (33269) Nummy
»

Odkrita ranljivost v SSL 3.0

Oddelek: Novice / Varnost
157306 (5893) Looooooka
»

Prenovljen standard USB 3.0 z 10 Gb/s predstavljen

Oddelek: Novice / Ostale najave
318594 (6655) cegu
»

Firefox 3: Download Day 2008! (strani: 1 2 3 4 5 6 )

Oddelek: Novice / Kiberpipa
28342475 (18469) MrStein
»

ATI ne bo sledil nVidii

Oddelek: Novice / Grafične kartice
193922 (3164) BaRtMaN

Več podobnih tem