View previous topic :: View next topic |
Author |
Message |
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Tue Oct 24, 2006 6:36 pm Post subject: Programmieren für Wiedereinsteiger. |
|
|
Ich habe in früheren Tagen mal auf Atari mit TurboC unter Gem programiert. Und danach noch etwas XView auf einer alten SUN 3/60. Ist nun aber schon bestimmt über 15 Jahre her. Hab dann auch etwas C++ versucht, aber damit bin ich nicht so warm geworden.
Dann kam ein PC (486er) und Windows. Angeschaut, gegruselt und das was dann. Nun möchte ich mir da wieder etwas antun. Eigentlich nur so als Fingerübung. Was könnt ihr mir da empfehlen? Sollte vielleicht doch kein C++ sein, lieber erst mal C. Oder bringt da Mono Vorteile? Es gibt dafür ja Monodevelop. Oder Anjuta? Weil ich ja auch Gnome nutze. Gibt es da irgendwo empfehlenswerte Dokus im Netz zur Programmierung von Gtk oder Mono? Bücher über C und C++ habe ich noch. |
|
Back to top |
|
|
Vortex375 Veteran
Joined: 03 Mar 2005 Posts: 1739 Location: Deutschland
|
Posted: Tue Oct 24, 2006 7:39 pm Post subject: |
|
|
Also von mono halte ich wenig, aber wie wärs mit python?
Fand ich _sehr_ einfach zu lernen und verstehen. Wenn du schon etwas mit den Grundlagen des Programmierens allgemein auskennnst, dann wirst du wohl keinerlei Verständnisprobleme haben (wenn nicht, dann klappts trotzdem. Du tust dir unter Umständen am Anfang halt etwas schwerer). Außerdem gibt es bei python speziell für Anfänger einige sehr gute Tutorials, schau am besten einfach mal auf [url]python.org[/url] vorbei.
python ist prinzipiell etwas langsamer als C oder C++, weil es halt eine Interpretersprache ist. Wenn du aber GUIs erstellen willst (schließe ich mal aus deinem Interesse für gtk), dann wird sich das nicht sonderlich bemerkbar machen, da die meiste Arbeit in diesem Falle ja von gtk ausgeführt wird und das ist in (hmm, keine Ahnung schätze mal C oder C++ ) geschrieben.
Damit du gtk mit python nutzen kannst musst du zunächst die python-Bindings dafür installieren (das gilt auch für alle anderen Biblitoheken, sofern python nicht nativ eine Unterstützung dafür mitbringt).
Somit bist du theoretisch auf die Benutzung von Bibliotheken beschränkt, für die python-Bindings verfügbar sind. Ob das in der Praxis etwas ausmacht wird wohl von deinen Einsatzzweck abhängen.
Du musst zum GUI-Entwickeln mit python übrigens nicht zwingend gtk benutzen, es gibt auch Bindings für Qt4 (cool), wxWidgets oder Tkinter (eher primitiv).
Ich hoffe das hat dir in irgendeiner Form weitergeholfen. |
|
Back to top |
|
|
Earthwings Bodhisattva
Joined: 14 Apr 2003 Posts: 7753 Location: Germany
|
Posted: Tue Oct 24, 2006 7:51 pm Post subject: |
|
|
Ja, Python ist sicherlich ein schöner Einstieg, kann mich dem nur anschließen. C/C++ läuft nicht weg. _________________ KDE |
|
Back to top |
|
|
mrsteven Veteran
Joined: 04 Jul 2003 Posts: 1938
|
Posted: Tue Oct 24, 2006 8:03 pm Post subject: |
|
|
Na ja, wenn du schon ein wenig C kannst und du das ein wenig auffrischen willst, dann tu das doch... Aber Python ist in der Tat auch nicht schlecht... _________________ Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong." |
|
Back to top |
|
|
moe Veteran
Joined: 28 Mar 2003 Posts: 1289 Location: Potsdam / Germany
|
Posted: Tue Oct 24, 2006 8:49 pm Post subject: |
|
|
Ich finde perl als Einstiegssprache gut, aber python oder ruby dürften eigentlich genauso leicht lernbar sein. An perl find ich nur besser, dass es überall schon vorhanden ist. Gut, Python wirds auf jedem Gentoo-System geben, aber ich hab letztens gehört es soll auch noch andere unixoide Systeme ausser Gentoo geben.. |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Tue Oct 24, 2006 9:01 pm Post subject: |
|
|
Also C kann ich schon so weit, das ist kein Problem für mich. Bringt mir da der Umstieg auf Python Vorteile? Mono scheint ja niemanden vom Hocker zu hauen. Und wie sieht es aus mit der GUI-Programmierung? Vorteile für wen? Und wo finde ich dazu ne Doku?
Ansonsten ist die Syntax ja ziemlich ähnlich. Da ich ja nicht komplett neu Einsteige, tendiere ich da erst mal zu C. Es hätte mich nur interessiert, ob da Mono/C# Vorteile bringen.
Last edited by Klaus Meier on Tue Oct 24, 2006 9:03 pm; edited 1 time in total |
|
Back to top |
|
|
Knieper l33t
Joined: 10 Nov 2005 Posts: 846
|
Posted: Tue Oct 24, 2006 9:02 pm Post subject: |
|
|
Auf anderen unixoiden Systemen hatte ich eher Python als Perl. Die Frage ist ja, was er programmieren moechte und wie er programmiert. Abstrahiert er gerne -> Ocaml, will er einen Allzweckproblemloeser -> Python, will er systemnah Bytes zaehlen -> C, will er BWL-Programmierer werden -> Java... |
|
Back to top |
|
|
Necoro Veteran
Joined: 18 Dec 2005 Posts: 1912 Location: Germany
|
Posted: Tue Oct 24, 2006 9:58 pm Post subject: |
|
|
Also ich würde dir auch Python empfehlen. Es mag zwar langsamer sein als C - aber ich denke das ist in einem Grade, der bei den heutigen Rechnern nur sehr bedingt auffällt. Außerdem lässt sich C auch in Python miteinbinden (Stichwort: C-Module). Wegen den Bindings würde ich mir gar nicht so Sorgen machen - in der Regel gibt es Bindings für ziemlich alles ... mache einfach mal "eix py" und lasse dich erschlagen. Ich meine sogar mal irgendwas mit Mono für Python gesehen/gelesen zu haben - finde das aber nicht wieder auf die Schnelle. Ich habe auch mit C angefangen und irgendwann aus Langeweile mit Python angefangen. Und seit dem ich das verstanden hab, tue ich mich schwer mit C . Es bietet dir oft die selbe oder sogar mehr Komfort als Java ohne den Overhead mitzubringen .
Noch kurz zu den GUIs: Ich habe (wie bestimmt schon einige mitbekommen haben ) mit pyGTK gearbeitet. Das Tutorial auf pygtk.org ist brauchbar - nichts desto trotz artet es nachher in Gefrickel aus. Das scheint aber glaube ich prinzipiell ein Wesenheit der GUI-Programmierung zu sein ^^. Als Alternative könnte man denn dort Glade einsetzen, welches die GUI als XML speichert und quasi erst zu Runtime daraus Python-Code bastelt. (Porthole verwendet es zB)
Stichwort Perl: Ich habe letzten Do angefangen Perl zu lernen und auch mit zu arbeiten - und es ist absolut nicht mein Geschmack (abgesehen von den genialen RegExps). Aber das mag jeder für sich entscheiden
Stichwort Mono: Das habe ich mir nie angeschaut ... aber bei mir setzt da der Reflex "(fast)alles wo M$ seine Finger drin hat, ist böse" ein ^^. Das ist zwar keine objektive Betrachtung, aber bis jetzt hat es mir noch nicht geschadet.
Das gibt nur meine ganz persönliche Meinung wieder - im Endeffekt ist viel Geschmackssache (ich kenne ja sogar leute, die ObjectRexx jeder anderen Sprache vorziehen ^^) _________________ Inter Deum Et Diabolum Semper Musica Est. |
|
Back to top |
|
|
return13 Guru
Joined: 02 Feb 2004 Posts: 513 Location: Hamburg - Germany
|
Posted: Tue Oct 24, 2006 10:58 pm Post subject: |
|
|
Necoro_dM wrote: |
(ich kenne ja sogar leute, die ObjectRexx jeder anderen Sprache vorziehen ^^) |
Man könnte natürlich sich auch mit Brainfuck begnügen... *rofl*
Zumindest theoretisch sollte es ja die am leichtesten zu erlernende Sprache sein, da es nur 8 Befehle gibt... _________________ Wer Recht erkennen will, muß zuvor in richtiger Weise gezweifelt haben.
Aristoteles (384-322), griech. Philosoph, Begründer d. abendländ. Philosophie |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 8:00 am Post subject: |
|
|
So, hab jetzt mal etwas rumgesucht. Also die Dokus, die man bei Python, pyGTK und GTK zum runterladen bekommt, sind schon ganz brauchbar.
Ich möchte mal so sagen, Python scheint etwas intuitiver zu sein als C. Da schreibt man einfach, was man machen will. Bei C muß man da immer alles mögliche berücksichtigen. Also im Vergleich print zu printf.
Aber so per Zufall (eigentlich gar nicht geplant), bin ich dann mal auf QT gestoßen. Und da sah mir der Code zur GUI-Programmierung am selbstverständlichsten aus. Hat mich jedenfalls erst mal total begeistert.
Werde jetzt erst mal Kdevelop antesten. Und auch C++. Und was ich da machen werde? Kann mich entsinnen, daß hier jemand ist, der für ein GTK-Programm gerne eine KDE-Oberfläche hätte. Aber bitte nicht schlagen, wenn es nichts wird. |
|
Back to top |
|
|
Dr. Arbeitslos Apprentice
Joined: 13 Aug 2005 Posts: 152
|
Posted: Wed Oct 25, 2006 8:44 am Post subject: |
|
|
jetzt bringt den mann doch nicht von c(++) ab, schliesslich gibt es vielviel mehr projekte die darin implementiert sind als in python...in denen er dann mitcoden könnte
übrigens: tu dir doch nicht c an, c++ ist an so vielen stellen besser, selbst wenn du weiterhin funktional programmieren möchtest. für c auf c++ umsteiger empfiehlt sich das standardwerk "thinking in c++ 2nd edition" ISBN 0-13-917709-4, quasi _die_ c++-referenz. letztens hab ich im bus übrigens ein gespräch mitgehört in dem einer meinte, er hätte eine elektronische version davon im inet gefunden |
|
Back to top |
|
|
psyqil Advocate
Joined: 26 May 2003 Posts: 2767
|
Posted: Wed Oct 25, 2006 9:02 am Post subject: |
|
|
Dr. Arbeitslos wrote: | letztens hab ich im bus übrigens ein gespräch mitgehört in dem einer meinte, er hätte eine elektronische version davon im inet gefunden |
Na klar: http://mindview.net/Books/DownloadSites |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 9:12 am Post subject: |
|
|
Zu der Erkenntnis bin ich auch gekommen. Python bringt mir erst mal nichts. C++ kann man ja auch erst mal im C-Stil schreiben und muß nicht gleich alles überladen. Mal sehen, ob ich die Leute finde, die du im Bus belauscht hast....
Hab mal nachgeschaut, hab hier noch den Stroustrup rumstehen, von 1992. Das Buch ist vielleicht eine Referrenz für die Sprache, aber kein Lehrbuch. Verstehe jetzt auch, warum ich damals keine Lust mehr auf C++ hatte. Solange ist es her.... |
|
Back to top |
|
|
Dr. Arbeitslos Apprentice
Joined: 13 Aug 2005 Posts: 152
|
Posted: Wed Oct 25, 2006 9:46 am Post subject: |
|
|
Klaus Meier wrote: | Verstehe jetzt auch, warum ich damals keine Lust mehr auf C++ hatte. | hrhr also das verstehe ich dafür sehr gut. meinetwegen könnten alle unhardwarenahen und geschwindigkeitsunkritischen projekte direkt nach python oä migrieren. C(++) ist dagenen ein...schrecklich...zusammengewuselter...undruchdringlicher...erm haufen zeug oder so |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 10:11 am Post subject: |
|
|
Dr. Arbeitslos wrote: | hrhr also das verstehe ich dafür sehr gut. meinetwegen könnten alle unhardwarenahen und geschwindigkeitsunkritischen projekte direkt nach python oä migrieren. C(++) ist dagenen ein...schrecklich...zusammengewuselter...undruchdringlicher...erm haufen zeug oder so | Also solche Sprüche bringen doch echt nichts. Ich hab hier was gefragt, habe gute Antworten bekommen, andere Antworten haben mir nicht so viel gebracht, waren aus Sicht der Poster aber gut gemeint. Und das man Python nicht für geschwindigkeitskritische Applikationen verwenden soll, daß haben doch die Pythonfans auch selber geschrieben. |
|
Back to top |
|
|
Dr. Arbeitslos Apprentice
Joined: 13 Aug 2005 Posts: 152
|
Posted: Wed Oct 25, 2006 11:12 am Post subject: |
|
|
bist du smileyresistent oder sollte dir der nicht 100% ernst gemeinte wink in meinem post tatsächlich entgangen sein? |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 11:24 am Post subject: |
|
|
Dr. Arbeitslos wrote: | bist du smileyresistent oder sollte dir der nicht 100% ernst gemeinte wink in meinem post tatsächlich entgangen sein? | Habs schon verstanden. Nur lustig fand ich es trotzdem nicht. |
|
Back to top |
|
|
Dr. Arbeitslos Apprentice
Joined: 13 Aug 2005 Posts: 152
|
Posted: Wed Oct 25, 2006 11:38 am Post subject: |
|
|
macht nichts, die aufteilung lautet auch in etwa 90% ernst und nur 10% lustig (sage ich mal als c++-betroffener) |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 11:42 am Post subject: |
|
|
Also den Bruce Eckel hatte ich ganz früher mal. Kommt mir alles irgendwie bekannt vor. Nene, das ist ja Wahnsinn für einen Neuling.
Mir ist da jetzt ganz profan Markt und Technik, jetzt lerne ich C++ untergekommen, genau richtig für mich.
Und Kdevelop hat mir auch auch schon ein Hello World im Fenster auf den Bildschirm gezaubert, es kann losgehen. |
|
Back to top |
|
|
franzf Advocate
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Wed Oct 25, 2006 11:47 am Post subject: |
|
|
Ich weiß nicht ob man in Python Operatoren überladen kann. In Java gehts definitiv nicht!
Und das liebe ich an C++. Oder Zeiger auf Funktionen.
Und hier ein link (falls du dich für C++ entscheiden willst) fürs schnelle Nachschlagen:
http://www.cppreference.com
Kurz und bündig, wenn du weißt was du machen willst
Grüße
Franz
P.S.:
Das von dir erwähnte Projekt war geneticone, und das ist in Python (PyGTK) verfasst, und es wird eine GUI für PyQt gesucht
// Edit:
Und als Buch fand ich absolut genial:
C++ - Lernen und professionell anwenden; Peter Prinz, Ulla Kirch-Prinz; mip-Verlag; ISBN 3-8266-0824-0
@amazon
(Nur wenns dich interessiert ) |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 12:52 pm Post subject: |
|
|
Das mit geneticone war mir schon klar, weil der Author von geneticone ja etwas weiter oben ja selber gepostet hat, deshalb habe ich es so formuliert. Na mal sehen, ob ich da was einbringen kann. |
|
Back to top |
|
|
oscarwild l33t
Joined: 15 Jul 2003 Posts: 857 Location: Memmingen, Germany, Old Europe, Earth
|
Posted: Wed Oct 25, 2006 3:03 pm Post subject: |
|
|
Dr. Arbeitslos wrote: | hrhr also das verstehe ich dafür sehr gut. meinetwegen könnten alle unhardwarenahen und geschwindigkeitsunkritischen projekte direkt nach python oä migrieren. C(++) ist dagenen ein...schrecklich...zusammengewuselter...undruchdringlicher...erm haufen zeug oder so |
Richtig ist, dass C++ (leider) auf C aufsetzt, und damit manche Hässlichkeiten von C erbt. Eine Undurchdringlichkeit begründet sich ggf. aber eher durch Defizite, die sich vor der Tastatur befinden
@Klaus Meier: "programmieren" lernen is an sich nicht sehr spannen - es ist relativ egal, ob Du Dir den Syntax von C/C++, Java oder Python reinziehst, der ist in jedem Fall recht leich erlernbar. Naja gut, vielleicht mit Ausnahme von Brainfuck .
Es hängt davon ab, was Du genau machen möchtest - wenn Du Applikationsentwicklung auf PC-Basis betreiben möchtest, dann würde ich auf jeden Fall eine objektorientierte Sprache wählen. Möchtest Du eher auf Microcontrollern entwickeln, nimm C.
In Sachen Objektorientierung empfehle ich das hier als sprachunabhängige Grundlage, als objektorientierte Sprache durchaus C++, oder, wenn Du auf die historische "Resthässlichkeit" von C++ verzichten möchtest, die - in meinen Augen sehr vielversprechende - Programmiersprache D.
Es ist übrigens ein vollkommener Trugschluss, dass es für jemanden mit C-Kenntnissen einfach ist, auf C++ umzusteigen - der C-Syntax geht zwar in C++ mit wenigen Abweichungen in C++ auf, die grundlegenden Konzepte gehen dagegen vollkommen auseinander. Ganz ehrlich - einen C++ Compiler mit C zu füttern ist Perlen vor die Säue (bevor Fragen aufkommen: natürlich ist hier der C-Code sie Sau, nicht der C++ Compiler *g*). Und es gibt Stimmen, die besagen, dass jemand, der erst mal eine Weile prozedural entwickelt hat, für alle Zeit verseucht und verdorben ist, und nie wieder objektorinetiertes Programmieren erlernen wird _________________ http://blog.selbsthilfenetzwerk-cannabis-medizin.de |
|
Back to top |
|
|
Klaus Meier Advocate
Joined: 18 Apr 2005 Posts: 2908 Location: Bozen
|
Posted: Wed Oct 25, 2006 3:51 pm Post subject: |
|
|
Hallo Oscarwild, möchte Applikationsentwicklung auf PC-Basis machen.
Naja, den Punkt, daß Leute, die mit C angefangen haben, für C++ verdorben sind, das habe ich schon öfters gehört. Aber als ich angefangen habe, da gab es noch kein C++. Da gab es Fortran und Basic. Und da liefen noch Leute mit Lochkarten rum. Ich zum Glück nicht.
Meine Frage ging ja am Anfang eigentlich dahin, ob eventuell so etwas wie Mono/C# was bringt. Es muß ja nicht schlecht sein, nur weil es von Microsoft kommt. Das war ja leider die Standardantwort hier. Microsoft, Scheiße, weg damit, ohne es zu kennen.
Und was ich mir jetzt so angesehen habe, habe ich mich etwas in QT verliebt. Sieht von der Struktur her wesentlich geradliniger und problemorientierter aus als GTK. Also jetzt nur so beim Anschauen des grafischen Hello World. Na und da führt ja kein Weg an C++ vorbei. |
|
Back to top |
|
|
Knieper l33t
Joined: 10 Nov 2005 Posts: 846
|
Posted: Wed Oct 25, 2006 4:00 pm Post subject: |
|
|
oscarwild wrote: | Und es gibt Stimmen, die besagen, dass jemand, der erst mal eine Weile prozedural entwickelt hat, für alle Zeit verseucht und verdorben ist, und nie wieder objektorinetiertes Programmieren erlernen wird |
Nunja, wenn man einmal verstanden hat, was OO ist und was bei OO im Hintergrund ablaeuft und sieht, wie gross die Differenzen bei Codegroesse und Ressourcenverbrauch werden koennen, der hat meistens keine Lust ueberall mit dem OO-Presslufthammer auf Problemstiftnaegel zu hauen. |
|
Back to top |
|
|
oscarwild l33t
Joined: 15 Jul 2003 Posts: 857 Location: Memmingen, Germany, Old Europe, Earth
|
Posted: Wed Oct 25, 2006 4:04 pm Post subject: |
|
|
Klaus Meier wrote: | Naja, den Punkt, daß Leute, die mit C angefangen haben, für C++ verdorben sind, das habe ich schon öfters gehört. Aber als ich angefangen habe, da gab es noch kein C++. Da gab es Fortran und Basic. Und da liefen noch Leute mit Lochkarten rum. Ich zum Glück nicht. |
War auch nicht ganz ernst gemeint *g*. Ich bin mit BASIC aufgewachsen, habe später C gelernt und setzte trotzdem OO so oft wie möglich ein!
Klaus Meier wrote: | Und was ich mir jetzt so angesehen habe, habe ich mich etwas in QT verliebt. Sieht von der Struktur her wesentlich geradliniger und problemorientierter aus als GTK. Also jetzt nur so beim Anschauen des grafischen Hello World. Na und da führt ja kein Weg an C++ vorbei. |
Absoluter Treffer. Qt ist mit Abstand das beste Framework, das ich kenne. Es gibt zwar auch Bindings für andere Sprachen, aber mit C++ macht es am meisten Spaß - allerdings kommst Du dann umm OO keinesfalls herum! _________________ http://blog.selbsthilfenetzwerk-cannabis-medizin.de |
|
Back to top |
|
|
|