Aussage eines Entwicklers: "Frameworks sind für Amateure."

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Atalanttore
User
Beiträge: 407
Registriert: Freitag 6. August 2010, 17:03

Hallo

auf Quora hat jemand geschrieben, dass Frameworks für Amateure sind. Dieser Entwickler hat offensichtlich weit mehr Erfahrung beim Programmieren als ich. Deshalb würde mich gerne interessieren, wie andere erfahrene Programmierer zu dieser Aussage stehen und ob ihr Frameworks benutzt?

Gruß
Atalanttore
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Außer einer Polemik ist das wenig substantielles. Der Herr hat offensichtlich viel Meinung und ist auch sehr überzeugt von sich. 3MB Quellcode? Die Erlang-Runtime ist AFAIK ein bisschen größer. Und deren fortgeschrittenen Abstraktionen nutzt er auch. Wo da der Unterschied zur Nutzung eines Frameworks ist, soll er mir mal erklären.

Natürlich berührt er valide Punkte - Feature Creep, Programmierer die nicht verstehen, was sie tun, und nur Rezepte aus SO abschreiben. Aber das ist eine Einstellungssache - ich habe mich nie davor gescheut Frameworks zu debuggen. So versteht man sie, und kann ggf contributen.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Der Entwickler hat völlig Recht. Wer "Programmieren" mit "anderer Leute Code zusammenkleben" verwechselt, der wird eher früher als später ein Problem bekommen.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

Der Schreiber hat nicht verstanden, was ein Framework ist. Die Antwort auf die Frage ist, „natürlich nicht, wer keine Frameworks benutzt, sollte weniger Geld für seine Arbeit bekommen.” Code zusammenkleben kann man mit und ohne Framework machen. Ein Framework bietet einfach Lösungen für komplexe Standardprobleme. Wer kein Framework benutzt, muß das Rad immer wieder selbst erfinden und macht immer wieder die selben Fehler. Was jQuery früher leistete, war, die unterscheidlichen Browser zu vereinheitlichen. Wer das selber machen wollte, war mit Testen auf etliche Versionen und Browservarianten beschäftigt. Wer die vielen fehlerhaften Socket-Implementierungen sieht, wird sicher nicht den Sinn eines HTTP-Serverframeworks bezweifeln.
Natürlich gibt es auch schlechte Frameworks, und wer die einsetzt ist auch nicht besser als jemand, der schlecht etwas nachprogrammiert, für das es schon ein gutes Framework gibt.
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Sirius3 hat geschrieben: Samstag 15. Dezember 2018, 20:56 Ein Framework bietet einfach Lösungen für komplexe Standardprobleme
Die meisten Frameworks bieten zu einem Großteil Funktionen, die man einfach gerade nicht braucht - und damit Overhead (und potenzielle Sicherheitslücken).
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@grum.py: schön, dass man mit so pauschalen Totschlagargumenten einfach alles widerlegen kann. Was glaubst Du enthält mehr Fehler, ein von vielen Tausend Programmierern getestetes Framework, oder ein Programm, das von einem geschrieben wurde?
grum.py
User
Beiträge: 137
Registriert: Montag 11. Mai 2015, 15:27

Ein von vielen tausend Programmierern getestetes Framework ist nur dann als vergleichsweise sicher anzusehen, wenn sich nicht jede Woche der halbe Code ändert.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@grum.py: Ein getestetes Framework ist dann als sicher anzusehen, wenn die Tests auch durchgeführt werden und nur im Rahmen der Tests fehlerfreie Releases erfolgen. Sicherlich ist es nicht empfehlenswert dahingeschusterten Code anderer unbesehen einzusetzen. Andererseits wird niemand den Nutzen guter Frameworks wie z.B. CherryPy, Django oder SQLAlchemy (um nur einige wenige zu nennen) infrage stellen – auch wenn bei den meisten Projekten nur wenige Features dieser Frameworks verwendet werden. Den Beitrag auf Quora halte ich für reichlich überheblich und vom "not invented here" Syndrom geprägt.
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn man sich mal das github Repo des Herren Flaming aus dem Quora-Posting anschaut, dann bemerkt man, dass er hauptsaechlich im Web-Umfeld unterwegs ist. Und ich glaube in dem Zusammenhang ist das auch zu sehen. Frameworks zB fuer CSS etc.

Und da er selbst bootstrap, irgendwelche REST-Frameworks, elastic-search, Mongo-DB etc verwendet, ist in meinen Augen das alles-selber-machen ein bisschen weit hergeholt. Auf den Schultern von Giganten stehend mal schoen rumbruellen, man waere ja von ganz alleine da oben angekommen... 🤪
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Sein Punkt ist nach meinem Verständnis gar nicht mal so sehr, dass man niemals ein Framework nutzen dürfe. Er hat wohl bloß ein Problem mit Alleskönner-Frameworks. Das ist ja ganz ähnlich wie die Entscheidung für Webseiten-Programmierer im Python-Bereich ob es immer gleich Django sein muss oder ob ein Micro-Framework wie Bottle oder Flask nicht genau so reicht, ggf mit 1-2 benötigten Plugins.

Dass der Autor immer alles selber machen würde, lese ich da nicht heraus. Sein Beispiel mit dem Projekt, das auf eine Diskette passt (die 3,2 MB dann wohl gepackt), ist halt etwas verwirrend. Ich denke, es geht ihm nur darum, die Dinge nicht unnötig mit Abhängigkeiten aufzublähen, wenn es sich sinnvoll vermeiden lässt.

Ich würde jetzt auch nicht auf Python verzichten wollen, nur weil ich nicht 100% von dessen Fähigkeiten brauche. Dafür hat es einfach zu viele Vorteile, um es zu verschmähen. Trotzdem sollte man auch für leichtgewichtigere Alternativen offen sein, wenn die einem ausreichen - egal ob nun Sprache oder Framework.

Und manchmal lässt sich ein Teilkonzept aus einer relativ großen Abhängigkeit auch einfach nachbauen, sofern man sich es zutraut und nichts anderes daraus benötigt. So wie der Autor schon schrieb:
Die Regel ist einfach: Wenn du es selbst machen kannst, ohne davon begraben zu werden, musst du.
...wobei ich das wohl nicht als ein Muss formulieren würde, aber im Kern sehe ich das genau so. Wichtig ist dabei den Nebensatz ohne davon begraben zu werden. Wenn das Nachbauen einen riesigen Aufwand bedeuten würde, dann ist das "aufgeblähte" Framework am Ende wahrscheinlich doch die bessere Alternative. Ist halt Abwägungssache.
Benutzeravatar
__blackjack__
User
Beiträge: 12984
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@snafu: Witzig: Der Zusatz „ohne davon begraben zu werden“ stand da heute Mittag noch nicht. Der Troll scheint zurück zu rudern. :-)

Der heisst „Flaming“ und hat auch schon die schöne Zeile „Erwin Flaming, provoziere gerne, um Leute zum Nachdenken anzustiften“ als ”Signatur” verwendet, oder wie immer diese Zeile bei Quora heisst.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
nezzcarth
User
Beiträge: 1631
Registriert: Samstag 16. April 2011, 12:47

Aus meiner Sicht geht es bei derartigen Aussagen wie in dem verlinkten Quora-Post vor allem um Abgrenzung und Eitelkeit. Gerade im Bereich Webentwickelung, der ja von ständig neu erscheinenden Frameworks und Libraries übersättigt ist und in dem es viele Leute gibt, die eben keine studierten Informatiker sind. Es mag ja durchaus auch einige Gründe geben, auf Frameworks zu verzichten (snafu hat ja ein paar Argumente gebracht), aber ich habe das Gefühl, dass es in vielen Fällen da eigentlich nicht vordergründig drum geht.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Hatten wir diese Framework vs. Selbstprommieren-Diskussion nicht schonmal?

Seit der Mensch Kulturevolution betreibt, ist er arbeitsteilig am Werk. Keiner kommt auf die Idee, selbst Eisenerz zu schürfen, verhütten, schmieden um nach 30 Jahren die letzte Schraube in das fast fertige selbstgebastelte Auto zu schrauben. Fast fertig. 20 Jahre später - fast fertig. Upps der Motor läuft nicht, hab ja noch gar kein Brennstoff dafür. Viel Spaß beim Erdölbohren, oder moderner - Lithiumverhütten. Am Ende wirds dann doch nur der kleine hölzerne Karren zum Selberziehen.

Mit Selbstbastellösung kommt man nie soweit, wie mit Bibliotheken/Frameworks. Man ist gezwungen Komplexität/Funktionalität zu reduzieren, hätten alle unsere Vorfahren so gedacht, würden wir noch Stöcke schwingen und Beeren sammeln. Alles ohne Fellrock, weil Jagen schon eine arbeitsteilige Gruppenleistung ist.
Benutzeravatar
noisefloor
User
Beiträge: 3829
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
und ob ihr Frameworks benutzt?
Natürlich nutze ich Frameworks. In der Webentwicklung Django oder Bottle, je nach dem. Wer will den bitte den ganze WSGI-Kram selber programmieren? So viel Zeit kann eigentlich niemand haben ;-)

Gruß, noisefloor
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

WSGI? Echte Web Entwickler fangen natürlich beim Userspace Netzwerk Stack an, also nachdem sie sich ihre Ethernet Karte von Hand zusammen gelötet haben.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

DasIch hat geschrieben: Freitag 21. Dezember 2018, 20:56 WSGI? Echte Web Entwickler fangen natürlich beim Userspace Netzwerk Stack an, also nachdem sie sich ihre Ethernet Karte von Hand zusammen gelötet haben.
Habe ich getan. Das Teil hieß allerdings ZX81 (Bausatz). Und vom (gegenwärtigen) Web noch keine Spur ... :)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Echte Entwickler lesen ihre Dateien noch händisch per Software-Interrupt in Assembler. Den Schnickschnack drum herum braucht doch kein Mensch! :roll:
Benutzeravatar
__blackjack__
User
Beiträge: 12984
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@kbr: Wie bringt man den denn ans (Inter)Netz? Gibt's da Hardware für?

@snafu: Dateien? Daten gibt man über Kippschalter für die einzelnen Bits ein. :-D
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Das weiß ich nicht. Das Teil ist in den ewigen Jagdgründen. Vermutlich wäre ein einfacher Akustikkoppler das höchste der Gefühle gewesen, insofern das verfügbare RAM (1k) dies überhaupt ermöglich hätte.
Benutzeravatar
pillmuncher
User
Beiträge: 1482
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Echte Programmierer sparen sich Kabel und Schalter und dergleichen und verwenden zur Datenübertragung dieses Protokoll: RFC1149 - A Standard for the Transmission of IP Datagrams on Avian Carriers.
In specifications, Murphy's Law supersedes Ohm's.
Antworten