Downloads für Python 3 bei pypi <2%

Gute Links und Tutorials könnt ihr hier posten.
BlackJack

Habe gerade diesen Blogbeitrag zu Python 3 gelesen: http://alexgaynor.net/2013/dec/30/about-python-3/

Ich habe ja manchmal schon gedacht ich kann doch nicht der einzige sein, der aus praktischen Gründen bei Python 2 bleibt, aber das die Downloads für Python 3 aus dem Python Package Index (pypi) unter 2% ausmachen ist ja echt heftig wenig.
Benutzeravatar
Balmung
User
Beiträge: 44
Registriert: Sonntag 17. März 2013, 18:36

2%?
Ich glaub die sind alle von mir.
»Honk Honk«
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Das ist in der Tat nicht viel. Besonders vor dem Hintergrund, dass viele Python-2-Pakete in den Repositories der Betriebssysteme rumliegen und Nutzer von Python 3 daher häufiger auf PyPI zugreifen sollten.
Das Leben ist wie ein Tennisball.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Ich habe ja manchmal schon gedacht ich kann doch nicht der einzige sein, der aus praktischen Gründen bei Python 2 bleibt, aber das die Downloads für Python 3 aus dem Python Package Index (pypi) unter 2% ausmachen ist ja echt heftig wenig.
Ist ja auch nicht verwunderlich, wenn quasi alle inklusive dir zu Python 2.x raten, dass Leute das dann nutzen ;-)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Ich hatte halt den Eindruck das mehr Leute Python 3 trotzdem benutzen, weil es neuer ist, weil die neuen Bücher es benutzen, und dann anscheinend weil die Leute die Python 3 propagieren doch sehr laut und aggressiv sind. Darum hat mich diese Zahl doch sehr überrascht.

Das sich Python 3.x damit seit 5 Jahren quasi ohne Rückkopplung von einer ausgewogenen Benutzerbasis weiterentwickelt, macht mir schon ein bisschen Angst.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:anscheinend weil die Leute die Python 3 propagieren doch sehr laut und aggressiv sind.
Diesen Eindruck habe ich gar nicht, zumindest nicht über Google+ oder Twitter. Auch die python-de-Liste nicht. Das mag vielleicht auf der englischen Python-Liste anders aussehen, aber letztendlich wird Python 3 wohl sterben. Wir haben ein neues Winamp 3-Debakel.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wenn man die Leute dazu bewegen möchte, vermehrt Python 3 zu nutzen, dann sollte man vielleicht den Druck einfach mal erhöhen und festlegen, dass Python 2.7 ab ... sagen wir mal ... 2016 keine Bugfixes und auch keine Security Fixes mehr erhält. Das klingt zwar hart, ist aber IMHO nötig. Ich denke nämlich *nicht*, dass Python 3.x so fürchterlich unbenutzbar (wie etwa WinAmp 3 oder Windows Vista) ist, als dass sich der Großteil der betroffenen Programmierer dann gänzlich von Python abwenden würden. Man muss diesen Schritt halt nur mal wagen und die Community sozusagen in die gewünschte Richtung stupsen.

Oder aber: Man wird sich bewusst, dass die Sache mit den "incompatible changes" eine ziemlich schlechte Idee für eine Programmiersprache ist und macht sich an ein Python 4, welches alle Features von Python 3 enthält und auch nur diese dokumentiert, jedoch DeprecationWarnings ausspuckt für alles aus der Python 2 Ära. So ähnlich machen andere Sprachen das ja auch. Ist zwar hässlich, aber möglicherweise der einzig sinnvolle Kompromiss, um Python auf längere Sicht am Leben zu halten.
BlackJack

@snafu: Ich sehe nicht das sie damit den Druck erhöhen können wenn die Nutzerbasis von Python 3 so klein ist und die von Python 2 so gross. Da besteht dann eher die Gefahr eines Forks, denn bei den 2er Nutzern sind einige dabei, für die es sicher günstiger ist einen Fork zu warten, als ihre gesamte vorhandene Codebasis unter Zeitdruck zu portieren. Wenn die sich dann noch zusammen schliessen und Unterstützung aus der Gemeinschaft bekommen, ist das für Python 3 bestimmt noch schlechter als die momentane Situation.

Ich denke die haben sich einfach bei dem Zeitrahmen mit den 5 Jahren verschätzt. Python 3.0 war nicht benutzbar und Teile der Standardbibliothek waren bis zur aktuellen 3.3 kaputt. Da kamen auch Änderungen wie der u''-Präfix um das portieren von 2.6/2.7 nach 3.3 zu erleichtern. Vielleicht sollte man noch mal für die nächste Version schauen ob man da nicht noch ein paar mehr Brücken einbauen kann (`six` in die Standardbibliothek aufnehmen?) und die 5 Jahre ab 3.4 neu zählen.
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

BlackJack hat geschrieben:Vielleicht sollte man noch mal für die nächste Version schauen ob man da nicht noch ein paar mehr Brücken einbauen kann (`six` in die Standardbibliothek aufnehmen?) und die 5 Jahre ab 3.4 neu zählen.
Wärst du - sozusagen als Paradebeispiel des nicht wechselwilligen Anwenders - denn bereit, den Sprung auf die 3er-Serie zu wagen, wenn Python z.B. ein eingebautes `six`-Modul hätte? Sind es dann nicht doch wieder andere Dinge, die dich an einem Wechsel hindern würden?

Wie gesagt: Möglicherweise ist es am besten, einfach alles, was mit Python 2.7 geht, wieder in einer neuen Version zu unterstützen. Man könnte PY3K als Experiment ansehen, welches einfach eine gewisse Zeit brauchte, um zu reifen. Ich bin hier übrigens kein Verfechter von Python 2.8 mit Backports aus neueren Python-Versionen bzw Brücken für einen späteren Wechsel auf 3.x, wie es gelegentlich vorgeschlagen wird. Ich finde, das sorgt nur für zusätzliche Verwirrung in Bezug auf die Versionswahl - gerade für Anfänger. Vielmehr wäre ich für ein Python 4.0, in der Art wie ich es ja bereits im vorherigen Beitrag beschrieben hatte. Da könnte man bestimmt auch marketingmäßig wieder etwas verlorenen Boden gutmachen und folglich das Ansehen von Python etwas aufpolieren.
BlackJack

@snafu: `six` alleine würde mir nicht reichen. Eine wichtige Linie für mich ist das Python 3 als Standardpython in einer stabilen Debian-Version ankommen muss + vielleicht so 1—3 Jahre. Erst dann sehe ich den Aufwand meinen Code für 2.6/2.7 *und* 3.3 zu entwickeln und zu pflegen als sinnvoll an. Und bis dahin hoffe ich einfach mal ganz ganz fest, dass ich zu dem Zeitpunkt keine Rücksicht mehr auf 2.4 und 2.5 nehmen muss. (BTW ich wünsche Xen und CentOS die Pest an den Hals. :evil:)
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Ich für meinen Teil nutze nur noch Python 3.x. Hab bis jetzt ca. 90% meiner Programme in 2.7 geschrieben, weil eben unglaublich viele Module zur Verfügung stehen und nicht auf 3.x aufgerüstet werden.
Dort liegt aber nicht die Zukunft und später werde ich sicher keine Lust haben alles upzudaten oder 2.7 ständig parallel laufen zu lassen.

Verstehe es aber vollkommen, dass man bei 2.7 bleiben möchte, wenn man über die Jahre hinweg eine große Code-Sammlung programmiert hat, diese ständig nutzt und anbietet. Selber bin ich Anfänger und meine zukünftige Sammlung soll auch 2020 noch kompatibel sein.
BlackJack

@Dami123: Ob in 3.x die Zukunft liegt, scheint ja gar nicht so klar zu sein. Wenn der 3er Zweig tatsächlich sterben sollte, oder zumindest ein Nischendasein fristen würde, hättest Du auf das falsche Pferd, äh auf die falsche Schlange gesetzt.

Bei mir ist es ja nicht so das ich nicht auf 3.x portieren will, sondern das ich auf absehbar längere Zeit noch Code auf 2.6 und 2.7 laufen lassen muss, das heisst ich *muss* dann 2.x und 3.x parallel unterstützen. Und solange nicht mindestens die Hälfte der Systeme 3.x Code laufen lassen *kann*, sehe ich auch nicht wie ich den dadurch entstehenden Zusatzaufwand rechtfertigen kann. Weder vor mir selber, noch vor meinem Chef, oder den Kunden.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Ich denke wohl kaum, dass Python nach dem 3er Zweig ein weiteres Abwärtskompatibilitätsstop einführen wird, dadurch ist Python 3 bereits Teil der Zukunft.
2.7 wird die nächsten Jahre weiterhin stark aktiv bleiben, bis ausreichend Leute wechseln und sich die Mehrheit anschließt. Wobei es immer auf Anfrage/Angebot Zeit/Kosten Faktor ankommt, wie du bereits sagtest. Softwareentwicklung ist ja nicht gerade günstig :D
BlackJack

@Dami123: Bevor ich diese 2% gelesen hatte, hätte ich auch gesagt 3.x ist die Zukunft. Bei *den* Zahlen und wenn zum Beispiel auch Leonidas sagt das Python 3 sterben wird, und Leute wie Christian Tismer (bekannt von Stackles Python und PyPy) laut über Stackless 2.8 nachdenken, also letztendlich einen Python 2.8-Fork, sieht dieses Szenario plötzlich gar nicht mehr so utopisch aus.
Benutzeravatar
Balmung
User
Beiträge: 44
Registriert: Sonntag 17. März 2013, 18:36

Nachdem ich den Artikel nochmals gelesen hab, würde ich doch jetzt gerne wissen, wo der Author die Statistiken her hat.
Auf pypi selbst konnte ich spontan keine Statistiken finden, und selbst nachdem ich in einem alten Stackoverflow post die URL zu https://pypi.python.org/stats/ gefunden habe, bekam ich nur ein enttäuschendes 404.
»Honk Honk«
BlackJack

@Balmung: Die hat er selbst erstellt und zwar mit Zugang zur Datenbank von PyPI wo auch die Downloads erfasst werden. Die relevanten Teile vom Schema und die Abfragen sind in irgendeinem seiner folgendenden Blogeinträge.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Dann bin ich mal gespannt was passieren wird. Die ganzen Änderung mit dem 3er Zweig werden die aber bestimmt nicht einfach so verwerfen.
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wurden bei der Statistik eigentlich nur reine Python 3 Pakete berücksichtigt oder auch Pakete, deren Code unter beiden Zweigen lauffähig ist?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Man sollte Bedenken dass die Downloadzahlen nur sehr eingeschränkte Relevanz haben, da sie hauptsächlich von CI Servern kommen. Projekte die mal eben mit jedem Commit alle Tests unter 2.6, 2.7, PyPy und 3.3 laufen lassen gibt es viele, von 4 Downloads gehen dann 3 auf das Konto von Python 2.

Da fast niemand auf Python 2 Kompatibilität verzichtet, wird demnach jede Statistik die nach Downloadzahlen geht für Python 3 sehr schlecht aussehen. Tatsächlich sieht es für Python 3 schon wesentlich besser aus, wenn man sich anschaut welche der meistbenutzen Pakete auf Python 3 portiert sind, es ist nämlich gar nicht so langer her das wos Wall of Shame hieß.

Abgesehen davon ist Python 2 sicherheitstechnisch eine einzige Katastrophe, so ist es effektiv unmöglich ohne Experte zu sein sichere HTTPS Abfragen zu machen. In Python 3 wurde schon und wird weiterhin recht viel getan um dies zu ändern aber Python 2 wird davon nicht profitieren. Dazu kommt asyncio und in Zukunft weitere Features, die sich nicht nach Python 2 zurück portieren lassen, kommen erst jetzt zu Python 3.
Benutzeravatar
snafu
User
Beiträge: 6744
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Naja, die zur Diskussion gestellte These beachtet ja durchaus, dass die einzelnen Projektbetreuer bestrebt sind, ihre Schätzchen fit für Python 3 zu machen bzw dies bereits erledigt haben. Das "wos"-Argument greift insofern nicht wirklich, da dieser Punkt ja nicht bestritten wurde. Unabhängig davon bin allerdings auch ich recht skeptisch, was den Aussagewert der besagten Statistik angeht. Man sollte daraus IMHO nicht gleich die Schlüsse ziehen, die hier teilweise gezogen wurden. Soll heißen: Die düstere Idee, dass Python 3 keine Zukunft hat, sehe ich durch diese Statistik nicht belegt.
Antworten