BlackJack hat geschrieben:@NoPy: Was wäre denn „Glücklich wäre ich, wenn ich eine Tasse Kaffee bekommen könnte!“ für ein Programmierparadigma? Und wie entspräche eine Funktion die Kaffeepulver und Wasser übergeben bekommt und heissen Kaffee zurück gibt nicht dem ”gewöhnlichen Leben”?
Du bist nicht gezwungen, jeden Witzversuch meinerseits auf die Goldwaage zu legen. Sollte hahnebüchen imperative und funktionale Programmierung gegenüberstellen, lohnt aber wirklich nicht der Diskussion.
BlackJack hat geschrieben:Das bauen einer Oberfläche mit Python ist für *Dich* nicht intuitiv. In Delphi ist es das aber auch nicht. Auch da muss man es lernen. Es ist halt ein anderer Ansatz und nicht der mit dem Du angefangen hast. Zusätzlich gibt es in Python nicht ”den” Ansatz, denn eine Tk-GUI in Code zu entwerfen ist etwas anderes als eine im Qt-Designer zu entwerfen, ist etwas anderes als eine mit CSS, HTML, und JavaScript zu entwerfen. Wobei ich mich dann schon frage wo der grosse Unterschied rein bei der GUI ist wenn man Delphi und den Qt-Designer vergleicht. Man muss beim Qt-Designer später die GUI und den Code manuell verbinden, was man bei Delphi integrierter hat, aber vom Konzept ist dass doch das gleiche.
Natürlich ist es vom Konzept zumindest sehr ähnlich bis das Gleiche. Das hat auch kein Mensch bestritten. Intuitiv ist es für MICH daher, weil ich mit einem Knopfdruck die IDE starte und alles, was ich benötige, in einer Oberfläche behandeln kann. Und alles, was zu sehen ist, sehe ich (zumindest schematisch) und alle Eigenschaften, mit denen ich arbeiten kann, kann ich bearbeiten. Alle Ereignisse, die ich benutzen kann, sehe ich auch. Das ist in Delphi auch (noch) "besser" gelöst, als in Lazarus, weil ich dort einfach Fremd- oder eigene Komponenten importieren kann und diese sich in die IDE einschmiegen, ohne wie bei Lazarus alles noch einmal compilieren zu müssen.
Wenn ich es mit dem Qt- Designer machen muss, brauche ich einen Qt- Designer. Und ich muss mich um die Verknüpfung kümmern. Alles machbar, aber mit etwas größeren Einstiegshürden verbunden. Komme ich mit TK aus, sehe ich nicht, was ich tue, sondern muss alles coden. Auch nicht so intuitiv FÜR MICH.
Um das mal in einem Bild wiederzugeben: Mit Delphi/Lazarus/VC ... kaufe ich ein Auto. Das hat schon alle Schalter und Knöpfe, ich kann auf Straßen fahren, die ich sehe und in den Kofferraum packen, was ich möchte. Und wenn ich WILL, dann kann ich mich auch noch ein Autoradio einbauen.
Mit Python habe ich einen Bausatz. Da sind schon alle Schalter dabei und wenn ich das richtige Handbuch nehme, habe ich es in Windeseile zusammengesetzt und kann sogar selbst darüber bestimmen, in welcher Weise mein Katalysator funktioniert. Einzig der Blick auf die Straße ist mir erschwert, weil ich dazu noch "Frontscheibe" installieren muss, sonst sehe ich nichts. Oder ich puzzle die Frontscheibe zusammen aus den vielen kleinen durchsichtigen Chips, die auch mit im Koffer liegen. Dafür kann diese dann jede Form haben, die ich will.
Und um zu wissen ob ein Werkzeug passt, muss ich es immer erst auf die Schraube halten, denn es kann mit mehreren Schrauben funktionieren, deswegen steht es nicht dran. Wenn es nicht zur Schraube passt, bekomme ich das durch einen sanften Elektroschock mitgeteilt. Und der Werkzeugkasten ist immer TOP aufgeräumt, wäre es anders, würde nicht nur der Werkzeugkasten, sondern das ganze Auto nicht funktionieren.
BlackJack hat geschrieben:Mit ”dynamische” GUI meinte ich genau so etwas was Du beschrieben hast. Ich sehe da jetzt keine Polemik. Man braucht also Datenstrukturen die dann auf diese GUI-Elemente abgebildet werden, während der OP so wie's aussieht noch mit einem Variabennamen pro Manschafft rechnet. Wie da jetzt die Fenstergrösse ins Spiel kommt ist mir ein Rätsel.
Es ist für mich nicht wirklich dynamisch, wenn Bestandteile eines Fensters bei Größenänderung des Fensters ihre eigenen Eigenschaften daran anpassen. Dynamisch ist für mich, wenn je nach internem Modell GUI- Komponenten erschaffen werden, die sich dann irgendwo einpassen. 5 Mannschaften - 5 Knöpfe, 6 Mannschaften - 6 Knöpfe. So etwas ist mit Lazarus/Delphi möglich, aber umständlich. Wenn Du Deine GUI sowieso codest, ist das egal, weil im Grunde nur das Ende der Schleife verändert wird. Auch dynamisch ist, wenn die Strukturen eines Fensters "gebrochen" werden müssen, um alles darzustellen. In meinem Beispiel müsste man evtl. die Elemte eines Tabs herauslösen und danebenstellen oder so, da die Verzerrung schon sehr groß wäre. Ginge auch, wäre auch wieder aufwändiger. Ist aber auch alles nicht der Rede wert.
BlackJack hat geschrieben:Den Sinn der Trennung GUI/Geschäftslogik wird man hoffentlich einsehen ohne das man Komponenten austauscht, nämlich schon dann wenn man die Geschäftslogik automatisiert testet, oder auch wenn man das manuell machen möchte ohne sich dauernd durch eine GUI klicken zu müssen.
Ich weiß nicht, wie lange es her ist, dass Du Deine erste Programmiersprache gelernt oder gelehrt hast. Auf dem Level, wenn man lernt, was Schleifen sind, wozu man Variablen benötigt und was deren Typen bedeuten, spielen weder Testklassen noch Trennung in eine 3 oder 4- Schichten- Architektur eine Rolle. Das kommt später. Und es hat sich bei mir nie bewährt, jemandem erst alle Möglichkeiten zu zeigen und alle Paradigmen beizubringen, ehe er das erste wirklich anwenden kann. Menschen sind in der Regel visuell und wenn ich ein visuelles Problem habe, dann will ich das auch sehen und die Veränderungen daran wahrnehmen können. Und noch einmal: Mit Standard- Python sind diese Einstiegshürden höher.
BlackJack hat geschrieben:Ich habe die Erfahrung gemacht das unterschiedliche Leute sehr unterschiedlich schnell lernen, also ist so ein Wettbewerb nur aussagekräftig wenn man das mit vielen Leuten macht. Ausserdem ist die Frage was dabei am Ende heraus kommt. Jemandem Programmieren beizubringen oder wie man schnell und dreckig etwas zusammenstoppelt sind zwei unterschiedliche paar Schuhe.
Natürlich. Während meines Studiums habe ich Heerscharen von Studenten anderer Fachrichtungen Programmieren beibringen müssen, weil deren Profs das nicht so vermittelt haben, dass sie es verstanden. Und ich behaupte weiterhin, dass ich einem 08/15- Studenten in 20 Stunden beibringen kann, wie er mit Lazarus eine Software schreibt, die oben genannte Funktionen erfüllt.
BlackJack hat geschrieben:Was das installieren angeht: Wenn man bei Tk für die GUI bleiben kann, dann reicht wahrscheinlich eine Python-Standardinstallation.
Das Programm ist ja nicht wirklich angegeben. Das ist nur eine sehr vage Beschreibung.
Aber diese vage Beschreibung entspricht doch sehr einem Kundengespräch, oder? Der Kunde kommt, nennt sein Problem, nennt u.U. tausend Details, die zwar umgesetzt werden müssen, aber das Problem nicht verschärfen (Und der Rand soll rot sein, die Schriftart HupsBlaBla). Bei diesem Beispiel kann man doch ein "Lastenheft" für einen Prototypen mühelos erstellen. Außerdem sahen zu meiner Zeit auch Informatik- Aufgaben an Studenten so oder so ähnlich aus. Ich habe mal einen 5- Mann Beleg umgesetzt, in welchem im Grunde grob stand, dass unter Angabe des Quadratmeterpreises und der Beschreibung der Flächen die Gesamtkosten für den Fußbodenbelag auszurechnen war. Da ich diesen Text erst zum Schluss bekam und mir meine Pappenheimer nur gesagt haben, was sie wie umsetzen wollen, habe ich denen damals im Grunde eine Art CAD- System geschrieben. Als ich dann die Bewertung und damit die Aufgabenstellung sah, habe ich mir in den Hintern gebissen.