# Programmieren für Wiedereinsteiger.

## Klaus Meier

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.

----------

## Vortex375

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++  :Embarassed:  ) 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.  :Wink: 

----------

## Earthwings

Ja, Python ist sicherlich ein schöner Einstieg, kann mich dem nur anschließen. C/C++ läuft nicht weg.

----------

## mrsteven

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...  :Wink: 

----------

## moe

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..

----------

## Klaus Meier

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

----------

## Knieper

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...

----------

## Necoro

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  :Smile: . Es bietet dir oft die selbe oder sogar mehr Komfort als Java ohne den Overhead mitzubringen  :Smile: .

Noch kurz zu den GUIs: Ich habe (wie bestimmt schon einige mitbekommen haben  :Wink: ) 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  :Smile: 

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  :Smile:  - im Endeffekt ist viel Geschmackssache (ich kenne ja sogar leute, die ObjectRexx jeder anderen Sprache vorziehen ^^)

----------

## return13

 *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...   :Laughing:  *rofl*

Zumindest theoretisch sollte es ja die am leichtesten zu erlernende Sprache sein, da es nur 8 Befehle gibt...

----------

## Klaus Meier

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.

----------

## Dr. Arbeitslos

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  :Wink: 

ü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   :Shocked: 

----------

## psyqil

 *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

----------

## Klaus Meier

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....

----------

## Dr. Arbeitslos

 *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  :Wink: 

----------

## Klaus Meier

 *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.

----------

## Dr. Arbeitslos

bist du smileyresistent oder sollte dir der nicht 100% ernst gemeinte wink in meinem post tatsächlich entgangen sein?

----------

## Klaus Meier

 *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.

----------

## Dr. Arbeitslos

macht nichts, die aufteilung lautet auch in etwa 90% ernst und nur 10% lustig (sage ich mal als c++-betroffener)

----------

## Klaus Meier

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.

----------

## franzf

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  :Smile: 

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  :Wink: 

// 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  :Wink: )

----------

## Klaus Meier

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.

----------

## oscarwild

 *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  :Wink: 

@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  :Razz: .

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  :Wink: 

----------

## Klaus Meier

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.

----------

## Knieper

 *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.   :Smile: 

----------

## oscarwild

 *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!

----------

## Dr. Arbeitslos

 *oscarwild wrote:*   

> 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 

 Wenn der Bediener deiner Tastatur etwas weniger defizitär wäre wüßtest du dafür vielleicht, dass die Freiheitsgrade oder eben auch die "Hässlichkeit" einer Sprache die Schwere der semantischen Fehler der erstellten Programme eher negativ beeinflussen. Ganz genau so, wie ein durschnittlicher Deutschsprachler mehr Fehler im Italienischen als im Englischen produzieren wird. 

Als Entwickler möchte ich mich auf meine Algorithmen konzentrieren und nicht darauf, ob ich zb einer lib-Funktion bedenkenlos vertrauen kann, oder ob ich lieber einen Wrapper zum Parametercheck darüber setze. Zumal man eben die Freiheitsgrade von  beispielsweise C++ im Großteil der existierenden PC-Programme gar nicht braucht   :Wink: 

----------

## Necoro

 *franzf wrote:*   

> 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.

 

Also da Operatoren in der Regel nur Funktionen wie zB "__add__" aufrufen, kann man sie theoretisch überschreiben. Würde ich aber nur bedingt machen  :Smile:  ...

Und Zeiger auf Funktionen gibt es schon daher, dass auch Funktionen/Methoden nur Klassen sind  :Wink:  ... eine Sache, die ich in Java schon schmerzlich vermisst habe...

Übrigens: Dein Angebot zur evtl. Mithilfe ist dankend notiert  :Wink:  - auch wenn ich in dem Fall auf Python als Sprache bestehen muss, will man sich nicht den Overhead erlauben, alles als C++-Klassen zu schreiben und mit Py-Wrappern zu versehen  :Smile: 

----------

## Klaus Meier

 *Necoro_dM wrote:*   

> Übrigens: Dein Angebot zur evtl. Mithilfe ist dankend notiert  - auch wenn ich in dem Fall auf Python als Sprache bestehen muss, will man sich nicht den Overhead erlauben, alles als C++-Klassen zu schreiben und mit Py-Wrappern zu versehen 

 Gibt doch auch pyQT oder wie das gerade heißt. So weit sind C und Python ja nicht auseinander. Wenn ich da erst mal was mit QT hinbekomme, dann werde ich mich da mal dranmachen.

----------

## Necoro

Fein fein *freu* ... und wie das mit pyQT aussieht (das es natürlich gibt  :Wink:  ), weiß ich nicht - aber in der Regel sind die Aufrufe und Klassennamen identisch  :Smile: 

----------

## oscarwild

 *Dr. Arbeitslos wrote:*   

> Wenn der Bediener deiner Tastatur etwas weniger defizitär wäre wüßtest du dafür vielleicht, dass die Freiheitsgrade oder eben auch die "Hässlichkeit" einer Sprache die Schwere der semantischen Fehler der erstellten Programme eher negativ beeinflussen.

 

Eigentlich sollte mein Kommentar keinen Angriff gegen Dich sein. Der Bediener meiner Tastatur hat übrigens bereits 25 Jahre Praxiserfahrung mit diversen Sprachen und Software-QS, ist zwar nicht promoviert, aber aus gutem Grund alles andere als Arbeitslos  :Wink: 

Und natürlich ist es sehr bequem, wenn man sich als Entwickler auf die Unzulänglichkeiten bzw. Freiheitsgrade einer Sprache berufen kann, wenn man was verbockt hat.

----------

## hoschi

Ich lerne C/C++ und merke gerade, wie man einiges davon auch in Java umsetzten kann, aehnliches gilt auch fuer C#. System und Libs werden wohl auch in einigen Jahren immer noch in C/C++ programmiert werden, weil es schnell ist, abstrakt und doch hardwarenah und bei C++ objektorientiert. Ausserdem setzen alle neuen Sprache irgendwo auf C auf.

Von da aus kann man immer gut weiter lernen, z.B. Python

Falsch kann man nichts machen, aber sich ewig um die C-Sprachen zu druecken hilft wohl kaum.

Fuer C (komplette 1000 Seiten Buch): http://www.pronix.de/pronix-4.html

Von Galiloe-Press gibt es auch noch "Einstieg in C++", ebenfalls sehr zum empfehlen, gibt aber nicht online (ich wuerde immer das Buch kaufen, aber wenn man mal unterwegs ist kann man einfach im Internet mal schnell was nachgucken).

----------

## Dr. Arbeitslos

 *oscarwild wrote:*   

> Der Bediener meiner Tastatur hat übrigens bereits 25 Jahre Praxiserfahrung mit diversen Sprachen und Software-QS, ist zwar nicht promoviert, aber aus gutem Grund alles andere als Arbeitslos 
> 
> Und natürlich ist es sehr bequem, wenn man sich als Entwickler auf die Unzulänglichkeiten bzw. Freiheitsgrade einer Sprache berufen kann, wenn man was verbockt hat.

 war mein nickname neben der hervorhebung deiner einmaligen fähigkeiten wirklich dein einziger strohhalm  :Sad:   ein, zwei argumente hätten die diskussion imo weiter gebracht

----------

## oscarwild

 *Dr. Arbeitslos wrote:*   

> war mein nickname neben der hervorhebung deiner einmaligen fähigkeiten wirklich dein einziger strohhalm   ein, zwei argumente hätten die diskussion imo weiter gebracht

 

Das klären wir dann doch besser per PN  :Rolling Eyes: 

----------

## ixo

@Klaus Meier

Ich bin früher auch mal mit Commodore Basic, Assember (6502) und Fortran (und noch ein paar anderen Sprachen) angefangen. Bin dann auf C (strukturierte Programmierung) umgestiegen. Später dann auf C++, das war auch so die Zeit von Sun 3. Ich habe dann auch an einer Uni Vorlesungen über C und C++ gehalten, C++ war damals noch sehr exotisch.

Wenn Du wirklich C++ bez. objektorientiert Programmierung lernen willst, dann musst Du Deine funktionale Denkweise sehr deutlich umstellen. Das dauert einige Zeit, man sieht dann jedoch Möglichkeiten, die man vorher absolut nicht hatte.

Insbesondere solltest Du Dir darüber im Klaren sein, dass in vielen Büchern eigentlich keine objektorientierte Programmierung erklärt wird, sondern nur die Syntax der Programmiersprache.

Mir hat es viel gebracht, am Anfang kleine Beispiele *ausschließlich* objektorientiert zu lösen (bzw. das zu versuchen) und auf neckische Dinge wie z.B. Templates und stdlib zu verzichten.

Aber das kann natürlich jeder anders sehen   :Wink: 

----------

## mrsteven

Hmm, ich war früher selbst ein ziemlicher C/C++-Fanboy, aber inzwischen hat sich meine Begeisterung für diese Sprachen doch etwas gelegt. Es gibt einfach - gerade im Bezug auf Speicherverwaltung, Arrays und Pointer - zu viele Stolperfallen. Wenn ich jetzt daran denke, dass die meisten Sicherheitslücken irgendwelche überlaufenden Puffer sind, dann sehe ich C++ und vor allem C in einem ganz anderen Licht. Da kann man noch so gut aufpassen, jeder macht mal Fehler. Klar kann man argumentieren dies sei nicht das Problem der Programmiersprache sondern eher das Problem des Programmierers, aber sollte eine Programmiersprache (durch Bereichsprüfung oder eine vernünftige Handhabung der Objekte) solche Leichtsinnsfehler nicht auch ein Stück weit verhindern?

C und C++ haben ihre Berechtigung, wenn es um Geschwindigkeit geht, aber für die normale Anwendungsentwicklung...na ja...  :Confused: 

----------

## Dr. Arbeitslos

jahrhunderttalente wie oscar machen schon keine fehler, kann man doch täglich im it-newsticker seiner wahl nachlesen  :Wink: 

bzgl OO wäre es imo noch sinnvoller sich vorerst mit der OO-analyse und -entwurf zu beschäftigen. daraus ergibt sich dann die OO-programmierung intuitiv fast von selbst und man benötigt wirklich nur noch den syntax der sprache.

einfach "mal eben" klassen und methoden hacken, die einem gerade in den sinn kommen, geht ab einer gewissen projektgröße höchstwahrscheinlich schief

----------

## slick

 *Dr. Arbeitslos wrote:*   

>  *oscarwild wrote:*   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  Wenn der Bediener deiner Tastatur etwas weniger defizitär wäre wüßtest du dafür vielleicht, dass die Freiheitsgrade oder eben auch die "Hässlichkeit" einer Sprache die Schwere der semantischen Fehler der erstellten Programme eher negativ beeinflussen ...

 

 *oscarwild wrote:*   

>  *Dr. Arbeitslos wrote:*   Wenn der Bediener deiner Tastatur etwas weniger defizitär wäre wüßtest du dafür vielleicht, dass die Freiheitsgrade oder eben auch die "Hässlichkeit" einer Sprache die Schwere der semantischen Fehler der erstellten Programme eher negativ beeinflussen. 
> 
> Eigentlich sollte mein Kommentar keinen Angriff gegen Dich sein. Der Bediener meiner Tastatur hat übrigens bereits 25 Jahre Praxiserfahrung mit diversen Sprachen und Software-QS, ist zwar nicht promoviert, aber aus gutem Grund alles andere als Arbeitslos 
> 
> Und natürlich ist es sehr bequem, wenn man sich als Entwickler auf die Unzulänglichkeiten bzw. Freiheitsgrade einer Sprache berufen kann, wenn man was verbockt hat.

 

 *Dr. Arbeitslos wrote:*   

>  *oscarwild wrote:*   Der Bediener meiner Tastatur hat übrigens bereits 25 Jahre Praxiserfahrung mit diversen Sprachen und Software-QS, ist zwar nicht promoviert, aber aus gutem Grund alles andere als Arbeitslos 
> 
> Und natürlich ist es sehr bequem, wenn man sich als Entwickler auf die Unzulänglichkeiten bzw. Freiheitsgrade einer Sprache berufen kann, wenn man was verbockt hat. war mein nickname neben der hervorhebung deiner einmaligen fähigkeiten wirklich dein einziger strohhalm   ein, zwei argumente hätten die diskussion imo weiter gebracht

 

 *Dr. Arbeitslos wrote:*   

> jahrhunderttalente wie oscar machen schon keine fehler, kann man doch täglich im it-newsticker seiner wahl nachlesen 

 

Also Mädels... jetzt kriegt euch mal bitte wieder ein. Sicherlich war der ein oder andere Kommentar mit einem großen Smile dazu zu verstehen, also durchaus als nicht ganz so ernsthaft einzustufen, wenn auch mit jeweils gewissem Wahrheitsgehalt. 

Da hier im Forum die Kommunitation auf rein verbaler Art stattfindet sind damit Fehlerinterpretation und Mißverständnisse nicht auszuschliessen. Dies ist aber kein Grund in einen persönlichen Flamewar auszubrechen und die Qualität des Thead zu schmählern. 

Also entweder bitte solche (privaten) Meinungsverschiedenheiten auf den dafür geeigneten Wegen klären oder aber einfach mal etwas das persönliche Ego zurückschrauben und auf rein sachlicher/fachlicher Ebene diskutieren. Wird sind ja hier schliesslich nicht im Kinderkarten. Und persönliche Angriffe aufgrund des Nicknames gehören sicher nicht hierher.

So, sollte jetzt so viel heissen wie: Hört auf euch anzugiften, sonst sehen wir uns als Mods gezwungen dafür zu sorgen das dies für euch hier im Forum technisch nicht mehr möglich ist.

----------

## Vortex375

 *Quote:*   

> 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

 

Ich finde Qt auch absolut spitze, nutze es aber in python. Ich hab vor einiger Zeit mit dem Programmieren angefangen und weil ich unbedingt Grafische Oberflächen programmieren wollte hab ich zunächst mal mit gtk angefangen, bin aber nun auf PyQt4 umgestiegen.

Die Python-Bindings für Qt funktionieren einwandfrei, nur leider ist die python-referenz noch sehr lückenhaft. Es gibt z.B. Funktionen zu denen jegliche Beschreibung oder Beschreibungen dort wo sie gar nicht hingehören. Ist aber alles in allem gar nicht so schlimm - zur not schaut mal halt in der C-Refrenz auf doc.trolltech.com nach. Die C-Beispiele lassen sich, wenn man den Dreh mal raus hat, meist ganz leicht in python "übersetzen".

Also ich kann nur nochmal sagen, ich bin trotz der teilweise schlechten (python) Dokumentation von Qt absolut begeistert. Ich denke nicht, dass ich nochmal zu gtk zurückkehren werde, zumal ich eigentlich sowieso kde-Fan bin.  :Smile: Last edited by Vortex375 on Fri Oct 27, 2006 9:37 pm; edited 1 time in total

----------

## musv

Slick: Deine Rechtschreibung ist Sch...  :Smile: 

Vortex375: Dein Umlaute sind kaputt.

Zum eigentlichen Thema:

Mit Python hab ich bisher nur mal kurz rumexperimentiert, allerdings nicht in der GUI-Programmierung. War aber vom ersten Eindruck eine schöne Sache. 

An GTK2.0 mit C hab ich mich vor ein paar Wochen versucht. Ich bin kläglich gescheitert. Das liegt zum einen daran, daß meine Kenntnisse in C nicht wirklich gut (=erbärmlich) sind. Zum anderen war mir auch die Doku an eingigen Stellen etwas zu unverständlich. Insgesamt bin ich aber wieder ganz schnell weggekommen von dieser Kombination. Bin vielleicht auf einfach zu blöd dafür.

QT mit KDevelop ist mein derzeitiger Versuch. C++ find ich schon mal ein ganzes Stück anschaulicher als C. Dazu macht QT auch wirklich einen guten Eindruck, und das, obwohl ich mich bisher noch gegen KDE auf meinem Rechner gesträubt hab. Allerdings hab ich hier das Problem, daß sich KDevelop nach allen Regeln der Kunst wehrt, für meine abgetippten HelloWorld-Programme auch nur ein einziges Makefile zu erstellen. Ich will QT3 programmieren. KDevelop will die QT4 einbinden, obwohl ich das nach ewig langem Suchen in der Pfadangabe anders angegeben hab. Wenn ich KDevelop irgendwann und irgendwie mal dazu prügeln kann, mir tatsächlich ein QT3-Programm zu bauen, werd ich mir auf alle Fälle da noch einen tieferen Einblick verschaffen.

Aber am schönsten läßt sich meiner Meinung nach SWT in Java unter Eclipse programmieren. Ok, das wurde weiter oben schon mal als "BWL-Programmierer" abgestempelt. Bisher komm ich damit allerdings am besten klar. Azureus wurde z.B. mit SWT programmiert.

----------

## Klaus Meier

 *musv wrote:*   

> QT mit KDevelop ist mein derzeitiger Versuch. C++ find ich schon mal ein ganzes Stück anschaulicher als C. Dazu macht QT auch wirklich einen guten Eindruck, und das, obwohl ich mich bisher noch gegen KDE auf meinem Rechner gesträubt hab. Allerdings hab ich hier das Problem, daß sich KDevelop nach allen Regeln der Kunst wehrt, für meine abgetippten HelloWorld-Programme auch nur ein einziges Makefile zu erstellen. Ich will QT3 programmieren. KDevelop will die QT4 einbinden, obwohl ich das nach ewig langem Suchen in der Pfadangabe anders angegeben hab. Wenn ich KDevelop irgendwann und irgendwie mal dazu prügeln kann, mir tatsächlich ein QT3-Programm zu bauen, werd ich mir auf alle Fälle da noch einen tieferen Einblick verschaffen.

 

Irgendwie scheinen das mit QT/GTK die meisten so zu sehen. Genau, und deswegen hab ich mir auch gerade KDE auf meinen Rechner getan. Nur jetzt kommt der Hammer: Am Dienstag hat mir KDevelop noch Makefiles erzeugt, am Donnerstag ging es nicht mehr. Und ich dachte, es liegt daran, weil ich Gnome runtergeschmissen habe. Also mit KDevelop ohne KDE unter Gnome ging es. Setze gerade ein neues System auf, weil ich dachte, da ist jetzt die Konfiguration etwas vermurkst.

----------

## Necoro

 *musv wrote:*   

> Aber am schönsten läßt sich meiner Meinung nach SWT in Java unter Eclipse programmieren.

 

*zustimm* ... SWT ist was ganz feines  :Smile: 

----------

## franzf

 *Klaus Meier wrote:*   

> Irgendwie scheinen das mit QT/GTK die meisten so zu sehen. Genau, und deswegen hab ich mir auch gerade KDE auf meinen Rechner getan. Nur jetzt kommt der Hammer: Am Dienstag hat mir KDevelop noch Makefiles erzeugt, am Donnerstag ging es nicht mehr. Und ich dachte, es liegt daran, weil ich Gnome runtergeschmissen habe. Also mit KDevelop ohne KDE unter Gnome ging es. Setze gerade ein neues System auf, weil ich dachte, da ist jetzt die Konfiguration etwas vermurkst.

 

ALSO  :Wink: 

1) Brauchst du kein kdevelop um QT zu Programmieren

2) Brauchst du kein kde um QT zu programmieren

Und obwohl ich kdevelop verwende (auch erst seit kurzem, vorher ganz simpel mit kate...) werden meine Makefiles nicht von selbigem generiert, sondern von cmake. -> http://www.cmake.org

Schau dir einfach mal paar Projekte an (-> strigi, initng) welche das verwenden. Cmake ist simpel aber mächtig.

Für den Anfang find ich im Übrigen so eine fette, umfangreiche IDE nicht optimal. Zu viele Spielereien und damit unübersichtlich.

Schöne Grüße

Franz

----------

## Klaus Meier

[quote="franzf"] *Klaus Meier wrote:*   

> ALSO 
> 
> 1) Brauchst du kein kdevelop um QT zu Programmieren
> 
> 2) Brauchst du kein kde um QT zu programmieren
> ...

 

Das ist mir schon alles klar. Aber Kdevelop hat sehr schöne Vorlagen. Wenn du alles gelesen hast, hab ich mir da ja erst mal ein paar Beispiele angesehen. Und die fand ich halt ansprechender als die Beispiele von GTK. Und es geht mir nur auf den Senkel, daß das mit den Makefiles an Dienstag noch ging und Donnerstag nicht mehr. Und ich will jetzt wissen, warum.

----------

## Vortex375

 *Quote:*   

> Vortex375: Dein Umlaute sind kaputt. 

 

Habs verbessert. Wer mir sagen kann, warum mein firefox manchmal einfach so das encoding wechselt kriegt nen Keks.

Sorry wegen offtopic.  :Wink: 

----------

