Python-Entwickler sind wahrnehmungsgestört?

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

Sonntag 31. Mai 2009, 17:11

Wobei mir im Moment echt kein Programm einfällt, wo ich mal ``del liste[index]`` gemacht hätte. Und auch keinen der Workarounds dafür. Liegt wahrscheinlich an meiner Wahrnehmungsstörung, dass ich um dieses riesengrosse Problem immer herumprogrammiere. Mein Code wird dadurch sicher viel komplizierter, ich seh's bloss nicht. ;-)
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Sonntag 31. Mai 2009, 19:10

BlackJack hat geschrieben:Wobei mir im Moment echt kein Programm einfällt, wo ich mal ``del liste[index]`` gemacht hätte.
Komisch, das wollte ich auch schreiben oO' Die Daten zu filtern ist in normalen und realistischen Anwendungsfällen wesentlich sinnvoller.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Sonntag 31. Mai 2009, 19:36

Datetime ist ganz nett eigentlich, aber es gibt irgendwas (weiß nicht mehr was genau das war) was man in eine Richtung konvertieren kann (also Primitives Objekt <-> Datetime), aber nicht mehr zurück. Ich glaube genau das meint Zed. Wobei das nachzureichen nun wirklich nicht schwer wäre.
Er redet ja explizit von String zu Time Konvertierungen, die selbst ANSI C definiere. time.h kennt strftime() und ctime(), die das Invers des jeweils anderen zu sein scheinen - zusätzlich gibt es localtime(), time() und ein paar andere. Sowohl das time Modul als auch das datetime Modul definieren aber strftime() und strptime(). Insofern scheint er da nicht ganz auf dem neusten Stand zu sein. Und ansonsten hat er ja noch ganz pauschal behauptet, daß "einfache Aufgaben, die Zeit involvieren" noch immer kompliziert wären.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Sonntag 31. Mai 2009, 23:41

@YOGi: Die Typdeklaration mit ":" finde ich konsequent und passend. Eine Zuweisung wäre falsch. Es wird ja kein Typ zugewiesen. Python 3.0 benutzt übrigens auch den ":" innerhalb von Parameterlisten von Funktionen. Das man mit dem "for" auch das monadische "do" von Haskell hat erschlagen wollen, finde ich auch nicht so doll, aber ansonsten ist "for" ja nur syntaktischer Zucker.

Groovy halte ich für einen Bastard, den eigentlich nur seine Mütter und Väter lieben können. Vielleicht ist die Sprache praktisch, aber stilistisch finde ich sie nicht gelungen. Es ist ein Mischmasch aus Konzepten, die nicht so richtig zusammenpassen wollen.

Ansonsten: In einigen Beiträgen hier passiert nun genau das, was Zed als Teil der Wahrnehmungsstörung beschreibt: Die Konzepte werden so wie sie sind verteidigt. QED :)

Sagen wir doch, wie es ist: Die Funktionsbibliothek von Python ist zum Teil vermurkst. Die Existenz eines "del"-Befehls als Spezialfall ist auch nur durch die Historie zu entschuldigen. Ein anderes Beispiel ist `setdefault`, eine Methode, der man nicht gerade ansieht, dass sie einen Wert liest. Das `at:ifAbsentPut:` von Smalltalk ist da doch wesentlich genauer. Ach, und das die Python-Datumsdinger da keine Zeitzonen beherrschen, das nervt mich jedes Mal immer wieder gewaltig. Und komme mir jetzt keiner mit dem Hinweis, dass man ja eine Thirdparty-Lib einbinden kann... es geht einfach darum, dass so etwas Teil der Standardbibliothek sein muss.

Anders ausgedrückt: Die enthaltenen Batterien sind schon ganz schön rostig...

Stefan
lunar

Montag 1. Juni 2009, 00:04

sma hat geschrieben:Sagen wir doch, wie es ist: Die Funktionsbibliothek von Python ist zum Teil vermurkst.
Das bezweifelt doch niemand. Man kann die Kritik an der Standardbibliothek aber auch konstruktiv und produktiv formulieren. Wenn man einfach nur Frust schieben will, so wie es der Autor des Beitrags getan hat, dann hilft das ihm vielleicht, dem Rest der Welt aber nur bedingt. Insbesondere, wenn man sich dann eben diesem Rest gleich auch noch pauschal eine "Wahrnehmungsstörung" unterstellt ... sowas fördert die Zusammenarbeit im Allgemeinen nicht so sehr.
Ein anderes Beispiel ist `setdefault`, eine Methode, der man nicht gerade ansieht, dass sie einen Wert liest.
Wenn du diese Methode zum Lesen von Werten benutzt, hast du was falsch gemacht ... man nutzt diese Methode, um Standardwerte in Wörterbüchern zu setzen. Welcher Name wäre da passender?
Anders ausgedrückt: Die enthaltenen Batterien sind schon ganz schön rostig...
Da stimmt wohl jeder zumindest teilweise zu ... distutils und setuptools sind ja auch nicht die schönsten Eier der Schlange ;)
BlackJack

Montag 1. Juni 2009, 07:22

@sma: Ja aber man kann doch eine Third-Party-Library benutzen. ;-)

Eine andere wahrnehmungsgestörte Ausrede: Der Änderungszyklus von Zeitzoneninformationen ist deutlich kürzer als der Release-Zyklus von Python. Da müsste man dann einen kleinen Teil der Standardbibliothek öfter aktualisieren als den Rest, und wie macht man das dann an den Versionsnummern der Standardbibliothek fest?

@lunar: Natürlich benutzt man `setdefault()` auch zum Lesen. Ich glaube ich habe das noch nie verwendet und den Rückgabewert dann ignoriert.
lunar

Montag 1. Juni 2009, 10:59

BlackJack hat geschrieben:@lunar: Natürlich benutzt man `setdefault()` auch zum Lesen. Ich glaube ich habe das noch nie verwendet und den Rückgabewert dann ignoriert.
Mag ja sein, aber der Zweck von ".setdefault()" ist doch nicht das Auslesen, sondern das Setzen des Werts. Wenn es nur um das Lesen ginge, dann täte es ".get()" doch auch ...
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Montag 1. Juni 2009, 21:54

lunar hat geschrieben:
BlackJack hat geschrieben:@lunar: Natürlich benutzt man `setdefault()` auch zum Lesen. Ich glaube ich habe das noch nie verwendet und den Rückgabewert dann ignoriert.
Mag ja sein, aber der Zweck von ".setdefault()" ist doch nicht das Auslesen, sondern das Setzen des Werts. Wenn es nur um das Lesen ginge, dann täte es ".get()" doch auch ...
und wenn es nur ums Setzen ginge würde ich kein setdefault verwenden ;)
lunar

Dienstag 2. Juni 2009, 09:06

apollo13 hat geschrieben:
lunar hat geschrieben:
BlackJack hat geschrieben:@lunar: Natürlich benutzt man `setdefault()` auch zum Lesen. Ich glaube ich habe das noch nie verwendet und den Rückgabewert dann ignoriert.
Mag ja sein, aber der Zweck von ".setdefault()" ist doch nicht das Auslesen, sondern das Setzen des Werts. Wenn es nur um das Lesen ginge, dann täte es ".get()" doch auch ...
und wenn es nur ums Setzen ginge würde ich kein setdefault verwenden ;)
Du kannst natürlich auch "if key not in d: d[key] = value" machen ;)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Dienstag 2. Juni 2009, 11:29

Zed kratzt da durchaus an der richtigen Stelle und ich denke wenn man schon mit der (an den meisten Stellen) großartigen Standardlib prahlt, dass man die auch in best möglicher Qualität halten sollte und jeden gleich behandeln sollte, der sich in der Hinsicht anstrengt. Aber ich finde seinen Ton nicht passend, schon gar nicht der Einstieg mit dem Totschlagargument "Wahrnehmungsstörung" und der sonstige Tonfall der eher an einen destruktiven Rant, statt an konstruktive Kritik erinnert.
Da gefällt mir Jesse Nollers Post schon besser und ich finde die Entkopplung der Standardlib könnte auch das andern Problem lösen bzw vereinfachen könnte.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Dienstag 2. Juni 2009, 11:52

Hier regt sich auch jemand auf: http://sayspy.blogspot.com/2009/05/stal ... y-and.html

Ich finde ehrlich gesagt Zeds Ton nicht weiter schlimm. Gegenüber seinem Rails-Rant war das absolut harmlos. Nur so erreicht er überhaupt die Aufmerksamkeit, die das Thema verdient. Meine Schlussfolgerung wäre eher, dass bei so vielen Leuten, die angesäuert reagieren, offenbar ein wunder Punkt getroffen wurde. Und dass sie es nicht wahrhaben wollen, ist ja genau das, womit der Artikel beginnt.

Stefan
lunar

Dienstag 2. Juni 2009, 12:12

sma hat geschrieben:Meine Schlussfolgerung wäre eher, dass bei so vielen Leuten, die angesäuert reagieren, offenbar ein wunder Punkt getroffen wurde. Und dass sie es nicht wahrhaben wollen, ist ja genau das, womit der Artikel beginnt.
Erstes Semester Küchenpsychologie? Ich teile seine Meinung (zumindest in manchen Teilen), und finde sein Posting trotzdem unangemessen, sowohl im Tonfall als auch wegen seiner an manchen Stellen faktisch ziemlich dürftigen Kritik ...
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Dienstag 2. Juni 2009, 19:27

Es ist halt nun mal so, dass rationale, moderat gehaltene Blogeinträge nicht zum Gesprächsstoff werden. Will man also eine Botschaft wirklich unter die Leute bringen -- oder ist man Egomane, ich möchte da jetzt kein Urteil fällen -- empfiehlt es sich, so grobschlächtig und undifferenziert wie möglich dreinzuschlagen :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 2. Juni 2009, 21:47

Es ist halt Zed, so schreibt er eben (nachdem ich den ACL-Talk von ihm gesehen habe versteh ich ihn auch viel besser). Außerdem lautet die Devise eben "ZSFA" :).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Dienstag 2. Juni 2009, 22:01

Leonidas hat geschrieben:Es ist halt Zed, so schreibt er eben (nachdem ich den ACL-Talk von ihm gesehen habe versteh ich ihn auch viel besser).
Der Stil wird ihm wohl kaum mit der Muttermilch gekommen sein...
Außerdem lautet die Devise eben "ZSFA" :).
Nicht "ZSTFU"? :)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten