Komentáře k článku

Python 3 může oživit Python. Ale nemyslí si to všichni.

Od vydání Pythonu 3 na konci roku 2008 uběhlo už hodně času, přesto je to s jeho popularitou poněkud vlažné. V poslední době se dokonce začínají objevovat nové články o tom, že by se mělo pokračovat s vývojem Pythonu 2, protože Python 3 nepřináší nic převratného a přechod na něj je zbytečně náročný (ať už časově či finančně). To však může vést k roztříštění komunity a není to nejlepší vizitkou pro jazyk jako takový.

Zpět na článek

21 komentářů k článku Python 3 může oživit Python. Ale nemyslí si to všichni.:

  1. Ondřej

    Důvod
    Pokud naleznu nějakou knihovnu / nástroj (třeba statický analyzátor kódu atp.), mám větší šanci, že bude pro Py2 nebo pro Py3? Pokud pro Py2, tak pak nevidím důvod pro použití Py3. Vychytávky v Py3 jsou určitě hezké, ale jsou to v podstatě minoritní syntaktické detaily, na kterých až tak nezáleží — alespoň ne ve srovnání s tím, že v Py3 přijdou o nějakou důležitou knihovnu/nástroj. A pokud pro Py3, tak pak nevidím důvod pro použití Py2.

    Takhle to vidím já :-)

    1. Viktor StískalaAutor příspěvku

      Například na http://python3wos.appspot.com/ je cca 80% knihoven s podporou pro Python 3, nemluvě o tom, že vznikají i nové, které jsou psány primárně pro Python 3 a podpora pro Python 2 je tam jakoby navíc. Každopádně z těch zbývajících ≈20% tam jsou i standalone nástroje, které se stejně spouští odděleně, případně běží jako daemon, takže uživatele už moc nemusí zajímat ani v jakém jsou psané jazyce, natož pak v jaké jeho verzi.

      To že někteří lidé preferují Python 2 je podle mě jenom otázka zvyku, protože Python komunita (narozdíl např. od Ruby a obzvláště Ruby on Rails) nikdy nebyla zvyklá na větší, zpětně nekompatibilní změny.

      1. Ondřej

        Re:
        …a já doufám, že si ani zvykat nebudou muset a že přechod na nějaký Py4 už proběhne ve větším klidu :-).

        Já právě začal kdysi Py3 používat, tehdy snad ve verzi 3.2 a to prostě bylo peklo, najít bezproblémovou knihovnu pro Py3 byl téměř nadlidský úkol, takže po dopsání jedné rozepsané aplikace jsem rychle přešel zpátky na Py2 a od té doby jsem tam zůstal a na problém nenarazil. A pokud pořád není více knihoven pro Py3, tak přechod k němu pro mě nemá význam. Ale já zase Python používám jen na takové to domácí programování…

        1. Bruce

          Re:
          Ak robim novy webovy projekt, pouzivam uz Python 3 a az na niektore vynimky je to uz dnes bez problemov. S prichodom Djanga s podporou Python 3 mi pride, ze sa vela balikov rozhybalo a tiez pridali podporu, pretoze to uzivatelia vyzadovali a posielali pull requesty.

          V dvojkovej verzii som casto narazal na unicode problemy, v trojke je to konecne poriesene a to by som urcite za detail nepovazoval.

  2. sachy

    Překvapuje mě, že někdo doporučuje psát v jazyku, který je po updatu specifikace zpětně nekompatibilní sám se sebou :)

    1. Bruce

      Re:
      Vacsina jazykov sa raz dostane do bodu, kedy musi spravit spatne nekompatibilne rozhodnutie, tak to uz totiz chodi. Svet nie je dokonaly. Pisat sa v nom pise vyborne, nevidim dovod ho nedoporucovat.

      1. Miloslav Ponkrác

        Re:
        Nedostane. Seriózní jazyk tohle po delší době existence prostě neudělá nikdy. Proto se dodnes používá Fortran, C, C++ a řada dalších jazyků, které neblnou jako Python.

        Mimochodem právě krok Rossuma, který začal vážně uvažovat o nekompatibilní změně základních věcí v jazyce (tedy v době, když ještě Python 3 neexistoval) mě přinutil okamžitě stopnout jakékoli další pokračování projektů v Pythonu. A to jsem do té doby používal jen a pouze Python. Dodnes tohoto rozhodnutí nelituji, považuji ho za správné a nejlepší možné.

        Programovací jazyk, který nedává záruku ochrany práce programátorů, by se měl používat jen na skriptování, kterým potřebujete udělat momentální úkol a pak ho zahodit. Raději budu trávit čas s rodinou, přáteli či zlepšováním projektů, než s jazykem, který nekompatibilně zasahuje do základních konstrukcí svého jazyka.

        Stejně jako Python blbnul Perl, kdysi velmi používaný jazyk, a dnes je z něho okrajový, mnohem méně známý jazyk. Právem.

        Život je krásný příliš na to, aby ho člověk trávil s programovacími jazyky neshcopnými udržet základní zpětnou kompatibilitu.

        Ing. Miloslav Ponkrác

  3. kotekl

    Python 2.7
    On v tom celém sehrál trochu paradoxní úlohu Python 2.7, nejenom, že přinesl mnoho vlastností ze trojky, aby usnadnil budoucí přechod, ale zároveň omezil důvody, proč na trojku vůbec přecházet. (Teď mě nechápejte špatně, s vyzněním článku v zásadě souhlasím.)

  4. pb

    Unicode :-(
    Bohužel, ty věci, na které Mitsuhiko v poslední době přichází jsou takový maso, že je snad dobře, že se ten Python3 zatím neujal. Mě se to vyčištění samo o sobě líbí, ale ohledně toho unicode mám dojem, že autoři si nějak mysleli, že se na sebe budeme všichni hodně hezky usmívat, a budeme na sebe navzájem strašně hodní. Jenže tak to ve skutečnosti nebude.

  5. rbt

    Zbytecny prechod
    Jelikoz to pisu znovu, protoze tu nemate osetrenou situaci prohlizec bez jvascriptu a bez varovani jsem tak o pripsevek prisel, budu ted hodne strucny.

    Python 3 prinasi jen castecne odstraneni chyb v navrhu a historickych reliktu. S backportovanymi vlastnostmi do 2.7 se atraktivita pro prechod jeste dal snizuje. Ani implementace referencniho CPythonu neprinesla nic zasadniho. GIL zustal tak na skutecne vicevlaknove aplikace muzeme zapomenot (ne vsude lze nasadit Jython). Virtualni stroj je zhruba stejne pomaly jako u 2.x, aspon podle vsech dostupnych benchmarku. Garbage collector taky zustal s neefektivnim pocitanim referenci, pritom i takove Ruby se pochlapilo a v posledni verzi maji vlastni verzi generacniho GC a na vykonu to je sakra znat.

    Cekal jsem neco zasadnejsiho, jako zbaveni se vestavenych fci a jako len(), any(), all(), raw_input() a nemuset neobjektove zjistovat delku kolekece jako len(obj) nebo chlupateho obj.len() ale logickeho obj.len(). Zkriplena verze lambdy taky zustala a porad nelze pouzit nic nez jeden vyraz (bez prikazu) a nefunkcni uzavery.
    Ocekaval bych i zavedeni viditelnosti metod trid, zachovani reduce() a nemuset obchazet for cyklem nebo zacleneni uzitecnych a notoricky vyuzivanych funkci z modulu itertools do tridy generatoru/seznamu. To jsou ale veci diskutabilni, na rozdil od predchoziho odstavce.

    Tak snad az Python 4.x K Py3 me prinuti jen nekompatibilita klicovych knihoven s radou 2.x.

      1. Miloslav Ponkrác

        Re: Zbytecny prechod
        Protože toto jsou operátory a ty se obvykle nevolají jako metoda objektu v zápise zdrojového kódu.

        Stejně jako příšete a + b, a ne a.add(b), tak se některé věci berou jako operátory a volají se „neobjektově“.

        1. rbt

          Re: Zbytecny prechod
          Protože toto jsou operátory a ty se obvykle nevolají jako metoda objektu v zápise zdrojového kódu.

          Tak to se ale sakra mylite. len, any, all a spousta dalsich fci z *__builtins__* nejsou zadne operatory, ale cistokrevne globalni funkce, ktere se historicky tahnou z predchozich verzi pythonu.

    1. Viktor StískalaAutor příspěvku

      Re: Zbytecny prechod
      Děkuji za věcný komentář. S tím, že došlo jenom k částečnému odstranění chyb v návrhu samozřejmě souhlasím, nicméně vidím budoucnost v dalším rozvoji nové verze a ne ve vylepšování řady 2.x. Tento článek totiž vyšel také na popud blogpostů typu Python 3 is killing Python (The Python community should fork Python 2), proto bylo cílem ukázat alespoň část toho, co je na nové verzi fajn a ne shazovat vlastnosti, které jsou pro obě verze jazyka stejné.

      Osobně si myslím, že spíše než odstranění GIL bude věnováno větší úsilí vylepšování asynchronních funkcí typu asyncio.

      S některými názory v posledním odstavci se neztotožňuji, ale skutečně jde o věci diskutabilní, takže tady se zdržím komentáře.

  6. Tester2

    Novacik
    Ja som v pythone novacik a nevidim dovod ucit sa starsiu verziu ked je k dispozicii nova. Dost ma frustruje aj to, ze na webe je mnoho roznych prikladov kodu, ktore su ale pre verziu 2.x, nefunguju teda vo verzii 3.x, a kym to zistim, lebo casto to tam nie je uvedene, tak sa s tym dost natrapim a je to velke minus pri rozhodovani ci v tom pokracovat, ale zas velkym plus je univerzalnost pythonu s ohladom na operacne systemy a jeho moznosti.
    Podla mna bolo velkou chybou, ze sa s verziou 2.x neskoncilo tam kde povodne bola a dorabali sa do nej veci, ktore su vo verziach 3.x. Takto nie su motivovani stari harcovnici aby presli na novu verziu a nas novacikov to dost matie a zneistuje v prvych krokoch.

    1. Miloslav Ponkrác

      Re: Novacik
      Největší chyba bylo, že Rossum, autor Pythonu, udělal ten velmi nerozumný krok, a vůbec zavedl zpětnou nekompatibilitu v programovacím jazyce po 17 letech. Větší chyba v Pythonu nikdy udělána nebyla.

      Navíc si myslím, že ta změna mezi 2 a 3 nemá takové benefity, aby to ospravedlňovalo rušení zpětné kompatibility.

  7. snajpa

    Python...
    Donutte distributory vyhodit python 2.7 z linuxovych distribuci a je vyhrano. To potom budou vsichni nuceni kod portovat, protoze to nebude kde pustit. Ale to nejdriv musi poumirat enterprise distra, ktere maji tak stary python. Normalni kolobeh zivota v opensource, staci videt souvislosti :)

    1. Miloslav Ponkrác

      Re: Python...
      A nebo se většina lidí na Python vykašle namísto portace, což je daleko reálnější scénář.

      Jedna věc jsou bastlíři-hračičkové, kteří mohou mít názory typu „normální koloběh v open source“, protože nikdy nic pořádně neudělali, a především to neudržovali po delší dobu. Druhá věc je seriózní enteprise prostředí, kde každá změna může být velmi drahá. Natož aby si ty změny ještě vyráběli uměle a zaváděli paniku a poplachu s potenciálními škodami v astronomických částkách jen pro choutky nějakého Rossuma či snajpa. Tak to v enterprise nefunguje.

      Ono se hned pozná, kdo kdy něco užitečného vytvořil už podle lehkovážných názorů na destrukci a zavařování těm, co něco užitečného dělají.

  8. Petr

    Já ve vzniku P3 nevidím problém. Spíš mě mrzí, že se to nevzalo pořádně od podlahy a nebyl třeba odstraněn GIL.
    Ztráta zpětné kompatibility je mrzutá, ale ne katastrofická, jak ji Ponkrác už roky nenávistně hejtuje. Programátoři tím nejsou biti, protože P2 se stále udržuje a staré projekty mohou být stále provozovány dál. Není to buď a nebo. Jen by ta ztráta kompatibility měla být vyvážena nějakým pořádným přínosem, měla by za tu mrzutost stát. Za sebemohu říct, že mi P3 nic významného nepřináší (orientuji se převážně na tvorbu podnikových desktopových aplikací) a tak stále spokojeně používám P2. Ale P3 fandím a stále čekám, kdy pro mě začne být přínosnější než P2.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=12302