killozap
Anmeldungsdatum: 29. September 2005
Beiträge: 232
Wohnort: Wülfrath
|
Hi, ich habe schon ein paar Jahre auf dem Buckel und habe in verschiedensten Programmiersprachen programmiert. Irgendwie hat mich stets der enorme Aufwand abgestoßen (bei Atari ST, bei Windows, auch bei Linux), den man in "C-ähnlichen" Programmiersprachen machen muss, um eine GUI zu erstellen. Bei Windows bin ich dann irgendwann Ende der 90er Jahre bei Visual Basic und auch Eclipse mit Java gelandet, bei Linux mache ich derzeit mit Gambas herum, denn da kann man eine GUI innerhalb von Sekunden auf den Bildschirm zaubern. Die Programmiersprache Basic selbst,so wie sie derzeit von Gambas oder VB genutzt wird, hat wenig mit dem Basic aus dem Commodore-Zeitalter zu tun, Kritik bzgl. Unstrukturiertheit zieht schon lange nicht mehr. Bei Gambas stört mich im Moment am meisten, dass die Weitergabe von Programmen doch arg eingeschränkt ist. Ich kann die Eierlegende Wollmilchsau schreiben, die tausende Menschen ansprechen könnte, aber den Weg zu ihnen würde ich nicht finden können, da sie kein Gambas-Programm installieren können oder wollen. Nun suche ich nach einer Programmierumgebung, die mir die Entwicklung von grafischen Programmen ermöglicht, dabei einen gewissen Komfort bei der Erstellung von Resourcen für Programmoberflächen bietet und deren Programmstruktur für die Benutzung solcher Oberflächen nicht hunderte von Seiten groß ist, so dass man schnell ans Programmieren kommen kann und auch nach z.B. ein paar Monaten Programmier-Pause wieder ohne Probleme reinfinden kann. Was wäre da zu empfehlen? Danke für Eure Tipps...
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
In Scala kannst Du Dein Java-Wissen nutzen, und gleichzeitig mit deutlich weniger Code arbeiten, weil es sehr wie eine dynamische Sprache aussieht, während es doch compilierter Bytecode ist, selbst wenn man in einer shellartigen REPL arbeitet:
|
import javax.swing._
val jf = new JFrame
jf.setSize (200, 200)
jf.setTitle ("foo")
jf.setVisible (true)
|
|
diesch
Anmeldungsdatum: 18. Februar 2009
Beiträge: 5072
Wohnort: Brandenburg an der Havel
|
Python ist weit verbreitet und benötigt weniger ausufernden Code als C oder Java. Für GUIs kannst du die Anbindungen an z.B. Qt oder GTK benutzen, und die GUIs selbst mit QtDesigner bzw. Glade "malen". Eine inzwischen etwas veraltete Doku zu Python und GTK/Glade findest du hier.
|
killozap
(Themenstarter)
Anmeldungsdatum: 29. September 2005
Beiträge: 232
Wohnort: Wülfrath
|
Python kenne ich von Blender her und finde es, was die Strukturierung angeht, einen Schritt in die falsche Richtung. Ich würde jedenfalls eine Sprache, die druckbare Strukturierungszeichen (wie z.B. { } oder End usw. ) benutzt, vorziehen. Ich hab mir mal ne Java-IDE installiert, muss ich mir mal anschauen. Java ist zwar auch nicht mein Lieblingskandidat, da meine Erfahrung damit schon ca. 10 jahre zurückliegen.
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 912
|
Delphi, ist zwar bei vielen Programmierern verschrien (zu unrecht), aber wer es einmal lieben gelernt hat kommt nicht mehr los. Unter Ubuntu wäre das Lazarus mit Free Pascal. http://lazarus.freepascal.org/ killozap schrieb: ...
Nun suche ich nach einer Programmierumgebung, die mir die Entwicklung von grafischen Programmen ermöglicht, dabei einen gewissen Komfort bei der Erstellung von Resourcen für Programmoberflächen bietet und deren Programmstruktur für die Benutzung solcher Oberflächen nicht hunderte von Seiten groß ist, so dass man schnell ans Programmieren kommen kann und auch nach z.B. ein paar Monaten Programmier-Pause wieder ohne Probleme reinfinden kann.
...
Und genau das kann man mit Delphi/Lazarus "Quick and Dirty" (Das ist nicht abwertend gemeint, man kann auch anders und eben das ist ein großer Vorteil).
|
killozap
(Themenstarter)
Anmeldungsdatum: 29. September 2005
Beiträge: 232
Wohnort: Wülfrath
|
So etwas ist auf alle Fälle einen Blick wert. meine Pascal-Programmiererfahrungen sind zwar über 30 Jahre her, und das mit dem := hab ich ja so was von gehasst, hatte dann auch mal Modula2 ganz kurz auf dem Atari angeschaut, Delphi bislang noch nicht. Es geht halt darum, ohne großartige Lernkurve, die steil wieder nach der programmierarbeit abfällt, ein Programm zu erstellen, welches sich auch in Paketen verpacken und vertreiben ließe...
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 912
|
killozap schrieb: ... ein Programm zu erstellen, welches sich auch in Paketen verpacken und vertreiben ließe...
Das habe ich unter Linux noch nicht gemacht aber laut Dokumentation sollte das "ohne" Probleme gehen. http://wiki.freepascal.org/Deploying_Your_Application
|
killozap
(Themenstarter)
Anmeldungsdatum: 29. September 2005
Beiträge: 232
Wohnort: Wülfrath
|
Ich hab die IDE und FP installiert, das löpt auch so weit ... Jetzt heißt es erst einmal, wieder die Syntax erlernen. Wie wurden noch mal Variablen deklariert? Wie hießen die Datentypen? Da war doch was mit Semikolon und kein Semikolon bei Pascal? Records? Nen Button und ein Textfeld, OK, krieg ich hin. Aber mein (derzeit noch) Gambas-Programm hat im Hauptmenü eine Fileselect-Box, da hab ich noch nichts entsprechendes gefunden, nur eine Fileselect-Dialog-Klamotte, wo ich noch nicht weiß, wie das geht. Ich muss mir wohl ein paar Beispiele anschauen.
|
rennradler
Anmeldungsdatum: 27. Februar 2010
Beiträge: 1833
|
Du solltest auch bedenken, wie lebendig eine Sprache ist. An Python stört mich auch einiges, z.B. daß die Formatierung des Source-Codes Teil der Syntacs ist. Sowas bescheuertes gab es doch nur Lochkarten-bedingt im Steinzeit-Fortran. Aber noch viel schlimmer finde ich die implizite Vereinbarung von Variablen und die dynamischen Typen. Basic-Freunden wird das gefallen. Ansonsten ist Python recht nett, es gibt auch gute IDEs, Libraries und viele Leute arbeiten an und mit Python. Der Interpreter und die Libraries machen auf mich einen sehr stabilen und robusten Eindruck. Toll ist pylab & Co, wenn man mit Datenvisualisierung zu tun hat. Das geht genauso einfach wie in MATLAB, aber mit dem Unterschied, daß Python eine anständige Programmiersprache ist, was man vom MATLAB nicht behaupten kann. http://wiki.scipy.org/SciPy
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
rennradler schrieb: An Python stört mich auch einiges, z.B. daß die Formatierung des Source-Codes Teil der Syntacs ist.
*Wieso* genau stört Dich das? Die "Freiheit" Quellcode nach eigenem Dünken zu formatieren ist auch in anderen Sprachen eher eine theoretische. Quellcode sollte immer nach einem Standard formatiert sein! Das wird im übrigen bei allen moderneren Sprachen, die ich kenne, so gehandhabt. Solche Formatierungs-Wildwüchse wie in Co der noch schlimmer in C++ will heutzutage niemand mehr sehen... Denk da mal drüber nach! Aber noch viel schlimmer finde ich die implizite Vereinbarung von Variablen und die dynamischen Typen. Basic-Freunden wird das gefallen.
Was ist denn eine "implizite Vereinbarung"? Und das Thema statisch vs dynamisch wird doch schon immer kontrovers diskutiert. Imho kommt es dabei weniger auf das "Mögen" an, sondern auf das *Verständnis*, welche Konsequenzen die jeweilige Designentscheidung mit sich bringt. Meiner Erfahrung nach ist diese bei den meisten "Meckerern" gar nicht vorhanden 😉
|
rennradler
Anmeldungsdatum: 27. Februar 2010
Beiträge: 1833
|
Lysander schrieb: *Wieso* genau stört Dich das? Die "Freiheit" Quellcode nach eigenem Dünken zu formatieren ist auch in anderen Sprachen eher eine theoretische. Quellcode sollte immer nach einem Standard formatiert sein!
Schlechte Lesbarkeit des Source-Codes bei tiefen Verschachtelungen und große Fehleranfälligkeit. Wenn ein C++-Programmierer seinen Source-Code nicht so formatiert, daß die logische Struktur dadurch verdeutlicht wird, ist er ein schlechter Programmierer.
Aber noch viel schlimmer finde ich die implizite Vereinbarung von Variablen und die dynamischen Typen. Basic-Freunden wird das gefallen.
Was ist denn eine "implizite Vereinbarung"?
Wikipedia hilft: http://de.wikipedia.org/wiki/Deklaration_%28Programmierung%29
Und das Thema statisch vs dynamisch wird doch schon immer kontrovers diskutiert. Imho kommt es dabei weniger auf das "Mögen" an, sondern auf das *Verständnis*, welche Konsequenzen die jeweilige Designentscheidung mit sich bringt. Meiner Erfahrung nach ist diese bei den meisten "Meckerern" gar nicht vorhanden 😉
Ja, klar, aber bei Dir.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
rennradler schrieb: Schlechte Lesbarkeit des Source-Codes bei tiefen Verschachtelungen und große Fehleranfälligkeit.
Tiefe Verschachtelungen sind ein Ausdruck davon, dass der Entwickler etwas falsch gemacht hat - im übrigen lesen sich solche in Java oder C# auch nicht besser; beides C-esque Sprachen von der Syntax her, also mit geschweiften Klammern für Blöcke. Was Du mit Fehleranfälligkeit meinst, verstehe ich nicht.
Wenn ein C++-Programmierer seinen Source-Code nicht so formatiert, daß die logische Struktur dadurch verdeutlicht wird, ist er ein schlechter Programmierer.
Siehst Du. In Python hat der Programmierer viel weniger Möglichkeiten, die logische Struktur durch hässliche Formatierung zu verschleiern. Wieso ist das also ein Nachteil einer Sprache? Bei vielen technischen Systemen freut sich der Anwender auch über "Assistenzsysteme" ☺
Im übrigen ist der Standard PEP8 hier eine große Hilfe. Innerhalb der Python-Welt hält sich de facto jeder daran und somit fällt es viel leichter fremden Code zu lesen, da das Auge auf genau diesen Stil geprägt ist. Das gilt aber eben auch für viele andere Sprachen, die anders strukturieren (wie eben Java oder C#). Speziell in der C oder C++ Welt gibt es *leider* viele konkurrierende Stile; das ist doof! ☺
Wikipedia hilft: http://de.wikipedia.org/wiki/Deklaration_%28Programmierung%29
Zum einen habe ich das Wort "Vereinbarung" noch nicht in diesem Zusammehang gehört (Deklaration ist doch kein Synonym dafür, oder‽), zum anderen hat Python *keine* Deklaration, ergo auch keine implizite.
Ja, klar, aber bei Dir.
Bei vielen Aspekten ja, durchaus. Ich nenne mal exemplarisch "Duck Typing" vs "Design by Contract" als einen wichtigen Aspekt. (Hier taucht das Wort "Vereinbarung" übrigens wirklich mal auf) Sich über die Vor- und Nachteile von dynamisch und statisch typisierten Sprachen zu streiten bringt wirklich nichts; aber imho sollte sich jeder mit dem Thema auseinander setzen, um das "nicht mögen" irgend wie für sich auch abzusichern - zumal, wenn man sich zu so einem Thema öffentlich äußert ☺
|
rennradler
Anmeldungsdatum: 27. Februar 2010
Beiträge: 1833
|
Anstelle einen Streit über die Design- und Philosophieentscheidungen von Python auszutragen, sollten wir beim Thema bleiben. @killozap sucht nach einer geeigneten Programmiersprache. Da sind solche Diskussionen nicht hilfreich. Ich habe ihm Python empfohlen, weil es eine sehr interessante Programmiersprache ist, weit verbreitet ist und es daher viel Unterstützung im Netz gibt. Daß es Dinge an Python gibt, die mir nicht gefallen, hindert mich nicht an einer Empfehlung. @Lysander hör auf, den Thread mit Phrasendrescherei zuzuspammen.
|
killozap
(Themenstarter)
Anmeldungsdatum: 29. September 2005
Beiträge: 232
Wohnort: Wülfrath
|
Die Pascal-Umgebung ist erst mal wieder runtergeflogen, hat sich irgendwie mit der Paketverwaltung von Ubuntu 13.10 gebissen. Im Moment schreib ich an meinem Projekt erst mal in Gambas weiter, hab noch einige Ideen, die ich da reinpacken muss, dann schau ich mal bzgl. der Programmierumgebung weiter. Am liebsten wäre mir ja ne C-Programmierumgebung, in der der Aufbau von grafischen Oberflächen trotzdem einfach wäre und in der es zahlreiche fertige Sachen schon geben würde, ähnlich wie in Gambas, also nen Color Chooser, ne File-Select-Box und so ...
|
microft
Anmeldungsdatum: 6. August 2009
Beiträge: 454
Wohnort: Norddeutschland
|
Wenn du ST Erfahrungen hast kannst du dich eventuell noch an das Resource Constuktion Set erinnern und wie Einfach es damit war GUIs zu erstellen. Bei GTK heißt das äquivalente Programm "Glade" und hat die gleiche Wirkung. cu
|