Python2.6 oder Python3

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Goldhamster
User
Beiträge: 2
Registriert: Montag 26. April 2010, 09:17

Hallo Forum,
ich habe mich nun endlich dazu entschlossen meine geringe Freizeit als Hartz IV Empfänger sinnvoll zu nutzen und eine Programmiersprache zu lernen.
Meine Wahl fiel nach langem Googlen und nachfragen bei meinen Freunden von Kubuntu-de auf Python.
Nun zu meiner Frage, durch lesen hier im Forum und div. Wikis musste ich feststellen es gibt ja schon Python3.
Ich habe 2 Bücher, je eins von Galileo-Press + Addison-Wesley, einmal Python 2.6 und einmal Python3.
Macht es nu überhaupt Sinn mit Python 2.6 anzufangen und wenn 3 ist Eric5 schon für einen Neuling geeignet oder hat er noch Macken?

Gruss Goldhamster
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Prinzipiell solltest du mit Python3 anfangen. Du solltest allerdings berücksichtigen, daß einige externe Bibliotheken (einige GUI-Toolkits, SQLAlchemy (?) ) den Wechsel von 2.6 auf 3 noch nicht vollzogen haben. Das macht in meinen Augen aber nichts, weil du mit den mitgelieferten / bereits für 3.x verfügbaren Bibliotheken schon sehr weit kommen wirst. Du mußt dir auch vor Augen halten, daß man das Programmieren nicht von heute auf morgen erlernen kann und damit ohnehin noch einiges an Zeit vergehen wird, bevor du in die Lage kommst, ernsthaft mit externen Bibliotheken arbeiten zu müssen / zu wollen. Und bis dahin kann die Sachlage schon wieder ganz anders aussehen.

Auf der anderen Seite hat sich zwischen 2.6 und 3.x nicht so viel getan, daß das Gelernte beim späteren Umstieg völlig für die Katz wäre. Es gibt aber ein paar Fallstricke zu beachten. Näheres findest du hier im Forum und auf python.org .

Zu Eric kann ich nicht viel sagen. Habe ihn nur kurz und vor sehr langer Zeit eingesetzt. Gehöre zur vim-Fraktion. Er steht aber in einem guten Ruf. Für den Einstieg sicherlich nicht die schlechteste Wahl. Ansonsten tuts aber auch jeder etwas bessere Text-Editor (z.B. Proton).

Nachtrag: Offensichtlich setzt du ja Linux ein, dann könntest du mal einen Blick auf Kedit und Kate werfen. Die beiden dürften für den Anfang ausreichen.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Eines noch zur Ergänzung: Das Galileo-openbook ist Müll, vergiss das gleich mal wieder. (Über die Forensuche findest du auch Gründe).

Edit: Für den Einstieg in Python 3 ist das offizielle Tutorial eigentlich ganz gut, eine dt. Übersetzung gibt es auch: http://tutorial.pocoo.org/
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Da wohl die meisten Leute noch 2.6 einsetzten werden, würde ich auch mit 2.6 anfangen, da dir dann auch z.B. hier im Forum besser und schneller geholfen werden kann und wird.

Die Unterschiede zu 3.x sind auch nicht so gravierend, als dass du dich dann, wenn du einmal Einblick in die Materie hast, nicht noch umarbeiten kannst.

Auch finde ich die Unterstützung von 3.-Party Bibliotheken schon wichtig, weil man dann (entsprechende Dokumentation vorausgesetzt) schneller zu sichtbaren Ergebnissen kommt, was einen zusätzlich motiviert.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Fang mit 2.x an, da hast du keine Probleme mit fehlenden Abhängigkeiten, vorallem da Sphinx noch 2.x benötigt. Später auf 3.x zu wechseln ist wirklich kein Problem.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

DasIch hat geschrieben:Fang mit 2.x an, da hast du keine Probleme mit fehlenden Abhängigkeiten, vorallem da Sphinx noch 2.x benötigt. Später auf 3.x zu wechseln ist wirklich kein Problem.
Ja, genau, so muss das sein. Erst kommt das `Hallo Welt`-Programm und dann wirds mit Sphinx dokumentiert!
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

@Goldhamster: Es hängt vor allem davon ab, was du zeitnah mit Python programmieren möchtest. Hast du schon irgendwelche Ideen?

Grüße
Gerrit
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

jbs hat geschrieben:
DasIch hat geschrieben:Fang mit 2.x an, da hast du keine Probleme mit fehlenden Abhängigkeiten, vorallem da Sphinx noch 2.x benötigt. Später auf 3.x zu wechseln ist wirklich kein Problem.
Ja, genau, so muss das sein. Erst kommt das `Hallo Welt`-Programm und dann wirds mit Sphinx dokumentiert!
Ich denke auch, Sphinx ist definitiv kein Argument für Programmieranfänger. Selbst wenn man seit Jahren mit Python unterwegs ist, stehen die Chancen nicht schlecht, daß man damit nur passiv in Berührung gekommen ist.

Bei vielem anderen muß man halt gucken. Beispiel SQLAlchemy: Klar ist das eine wunderbare und elegante Art, mit Datenbanken umzugehen. Man sollte aber trotzdem verstehen, was da im Hintergrund abläuft. SQLAlchemy ohne praktische Kenntnisse in SQL kann schnell sehr frustrierend werden. Von daher würde ich sagen, daß man es erst einmal "zu Fuß" probiert, und sich erst später von Toolkits verwirren läßt. Das, was Python von Hause aus mitbringt ist ja schon recht mächtig. Abgesehen davon haben viele den Sprung ja doch schon gemacht oder sind kurz davor. Insofern würde ich sagen, daß Abhängigkeiten und/oder die Verfügbarkeit von Erweiterungsmodulen für einen Programmieranfänger nicht wirklich das Thema ist.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

.robert hat geschrieben:Da wohl die meisten Leute noch 2.6 einsetzten werden, würde ich auch mit 2.6 anfangen, da dir dann auch z.B. hier im Forum besser und schneller geholfen werden kann und wird.
Das möchte ich so als Argument nicht gelten lassen. Wenn es da überhaupt Unterschiede in der Beratungsgeschwindigkeit und -qualität geben sollte, dann dürften die marginal sein und sich allenfalls auf die Geschwindigkeit beziehen, die aber ohnehin hier im Forum ausgesprochen hoch ist.
.robert hat geschrieben:Die Unterschiede zu 3.x sind auch nicht so gravierend, als dass du dich dann, wenn du einmal Einblick in die Materie hast, nicht noch umarbeiten kannst.
Mit dem gleichen Argument kann man auch mit Python 3.x einsteigen und sich dann - sofern es überhaupt nötig ist - auf Python 2.x zurückarbeiten.

Entscheidend für einen wirklich tragfähigen Rat ist doch das, was gkuhl benannt hat: Was will der OP kurz-, mittel-, langfristig mit Python machen?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

jbs hat geschrieben:Ja, genau, so muss das sein. Erst kommt das `Hallo Welt`-Programm und dann wirds mit Sphinx dokumentiert!
Es stellt sich immer noch die Frage, wann es Sinn macht auf Python 3.x zu wechseln. Es gibt durchaus genug Leute die sagen würden der Zeitpunkt kommt nie. Außerdem macht es bei jedem Projekt mit mehr als einem Modul durchaus Sinn Sphinx zu nutzen.
Benutzeravatar
xpilz
User
Beiträge: 76
Registriert: Sonntag 11. April 2010, 12:46
Wohnort: Deutschland
Kontaktdaten:

Nur mal als Nachtrag:
ms4py hat geschrieben:Eines noch zur Ergänzung: Das Galileo-openbook ist Müll, vergiss das gleich mal wieder.
Wirklich so schlimm? weil das mein zweites Tutorial war und ich bin jetzt bei Kapitel 14. Soll ich auf das offizielle Umsteigen oder dieses noch zu Ende lesen?
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

DasIch hat geschrieben:Fang mit 2.x an, ... Später auf 3.x zu wechseln ist wirklich kein Problem.
Ich würde definitiv mit Python 3.1 anfangen. Die theoretischen Kenntnisse, um von 2.x überzuwechseln, sind überschaubar, aber:
  • (1) man bildet sich falsche Angewohnheiten (wie zum Beispiel, die Klammern vom print zu vergessen), die man wochen- oder monatelang nicht loswerden kann,

    (2) wenn du einige selbstprogrammierte Module wiederverwenden willst, musst du sie entweder umschreiben oder beide Sprachvarianten beherrschen, was nervenaufreibend ist.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

xpilz hat geschrieben:Nur mal als Nachtrag:
ms4py hat geschrieben:Eines noch zur Ergänzung: Das Galileo-openbook ist Müll, vergiss das gleich mal wieder.
Wirklich so schlimm? weil das mein zweites Tutorial war und ich bin jetzt bei Kapitel 14. Soll ich auf das offizielle Umsteigen oder dieses noch zu Ende lesen?
Ich würde mal so sagen: Es enthält einige Patzer und ist an einigen Stellen "unpythonisch". Irgendwie hat das dazu geführt, dass man sich hier im Forum darauf eingeschossen hat - das funktioniert quasi wie ein Reflex: Sobald jemand dieses Buch erwähnt, dauert es in der Regel keine 10 min bis jemand "Vorsicht" ruft. Wenn dich Details interessieren, wird die Forumsuche dir einige Threads zu Tage fördern.

Lies das Buch ruhig zu Ende, nimm das offizielle Tutorial dazu und vergleiche es miteinander. So lernst du gleich, wie man es am besten (nicht) macht.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Goswin hat geschrieben:(2) wenn du einige selbstprogrammierte Module wiederverwenden willst, musst du sie entweder umschreiben oder beide Sprachvarianten beherrschen, was nervenaufreibend ist.
Es gibt 2to3 da muss man nichts umschreiben, im schlimmsten Fall schreibt man einen eigenen Fixer. Wenn man von 3 auf 2 will hat man aber ein gewaltiges Problem und wenn man Web Anwendungen machen will kann man 3 sowieso vergessen.
Benutzeravatar
Goswin
User
Beiträge: 363
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen
Kontaktdaten:

DasIch hat geschrieben:Wenn man Web Anwendungen machen will kann man 3 sowieso vergessen.
Interessant. Ich habe noch nie Web-Anwendungen geschrieben; hat das Problem da etwas mit der XHTML-Unterstützung zu tun?
BlackJack

Ähm, die offizielle Python-Homepage empfiehlt 2.6 wenn man sich nicht sicher ist das man wirklich 3.1 haben will.

Und natürlich sind 3rd-Party Module wichtig für Anfänger. Denn irgendwann kann der Anfänger 'Hallo Welt!' ausgeben lassen und kennt die verschiedenen Arten von Schleifen und möchte dann vielleicht eine GUI schreiben, ein kleines Spiel mit Pygame, auf eine Datenbank zugreifen, irgendwas mathematisches mit NumPy anfangen, ein Bild manipulieren, eine Webanwendung schreiben, oder irgend etwas anderes was nicht von der Standardbibliothek abgedeckt wird, und stellt fest das für viele dieser Sachen die "Standardbibliotheken" noch nicht auf 3.x portiert sind. Und alles was er bis dahin geschrieben hat, kann er dann nicht mit neuem Verbinden wenn er auf 2.x umsteigen muss für die neuen Herausforderungen. Das ist IMHO ein unsinniger Umweg.

@Goswin: Das Problem sind die Webrahmenwerke die halt auch noch nicht (alle?) auf 3.x laufen. Also Django soweit ich weiss noch nicht. Fehlende Module für den Datenbankzugriff und die sowieso meist längere Zeit bis aktuelle Versionen bei Webhostern angekommen sind, spielen da auch mit rein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

.robert hat geschrieben:Da wohl die meisten Leute noch 2.6 einsetzten werden, würde ich auch mit 2.6 anfangen, da dir dann auch z.B. hier im Forum besser und schneller geholfen werden kann und wird.
Also die, die die meisten Threads beantworten können Python 2.x genauso wie 3.x von daher macht es nahezu keinerlei unterschied welche Version man benutzt. Schließlich sind die Unterschiede ja echt nicht so groß.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
xpilz
User
Beiträge: 76
Registriert: Sonntag 11. April 2010, 12:46
Wohnort: Deutschland
Kontaktdaten:

Leonidas hat geschrieben:Also die, die die meisten Threads beantworten können Python 2.x genauso wie 3.x von daher macht es nahezu keinerlei unterschied welche Version man benutzt.
Es sind ja sowieso meistens nur Sinnfragen, oder kleine Skript-Schnipsel oder irre ich mich da?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

xpilz hat geschrieben:Es sind ja sowieso meistens nur Sinnfragen, oder kleine Skript-Schnipsel oder irre ich mich da?
Ja, für die Fehlersuche in großen Programmen ist das Forum ja auch nicht da :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Goswin hat geschrieben:Interessant. Ich habe noch nie Web-Anwendungen geschrieben; hat das Problem da etwas mit der XHTML-Unterstützung zu tun?
Ob eine Web Anwendung HTML, XHTML, JSON oder XML ausgibt ist egal, dass Problem liegt beim WSGI. Es deutet sich zwar an dass der mod_wsgi Autor einfach sein Ding durchzieht und die Library Autoren nachziehen werden aber dass wird noch eine Weile dauern.
Antworten