www.mikrocontroller.net

Forum: PC-Programmierung Welche Programmiersprache empfehlt ihr mir? (Windowsprogrammierung)

Autor: Paul Hamacher (powl)
Datum: 30.06.2008 23:00

Hi!

Um mit meinen µCs auf eine elegante Art und Weise zu kommunizieren
möchte ich nun auch in die Windowsprogrammierung einsteigen.

Meien Vorhaben sind zunächstmal vergleichsweise einfach. Ich möchte ein
bisschen mit graphischer Oberfläche Arbeiten und dann meine µCgeräte per
RS232 oder USB steuern können.

D.h. verschiedene Steueranwendungen wie z.b. Farbauswahl für RGB
beleuchtungen, Lightshows usw.. Anwendungen die ich aus der Trayleiste
über ein kleines Icon und Kontextmenü steuern kann (z.B. einfach so eine
einblendende, fensterlose Fläche wo verschiedene Schieberegler drauf
sind usw..). Verschiedene Grafikfunktionen sollten auch möglich sein um
sowas wie ein Oszilloskopprogramm oder einen logic Analyzer realisieren
zu können.

Mehr möchte ich zunächst nicht machen, ich denke, dass ich niemals
großartig über solche Steuerungsanwendungen hinauskommen werde. Die
Grafische Oberfläche soll hübsch werden, jedoch reicht es, wenn ich nur
standardmäßige Windowskomponenten benutze. Also keine Programme mit
selbstentworfenem GUI, höchtens sowas wie eine Bildergallery um
verschiedene Programmabläufe schnell auswählen zu können oder sowas,
sollte drin sein.

Ich bin inzwischen schon in die C-Programmierung eingestiegen, bei µCs
und habe auch ein allgemeines C-Buch für PCs, ist ja kaum ein
Unterschied.

Empfehlt ihr mir, auf meiner vorhandenen Programmiererfahrung mit C
aufzubauen oder soll ich für solche Zwecke lieber eine geeignetere
Programmiersprache nehmen, mit besserer Programmierumgebung, die mir es
ermöglicht, leichter und schnelle solche entsprechenden Programme zu
entwickeln?

lg PoWl
Autor: madler (Gast)
Datum: 30.06.2008 23:25

Für Einsteiger ist es recht schwer in C/C++ Programme mit
Benutzeroberfläche zu erstellen (man denke da an MFC, Qt, GTK oder gar
nur Win32 per Hand). Der C++ Builder von Borland ist ja auch fast
ausgestorben, sonst aber schon ganz gut.

Ich würde Dir daher Delphi oder C# empfehlen. Das "Umlernen" ist nicht
sehr schwierig und es gibt gute Bücher.

Und bevor jetzt die Leute kommen mit Qt ist einfach oder MFC ist
einfach... aus Erfahrung kann ich sagen, für den durchschnittlichen
Einsteiger ist es das definitiv nicht.
Autor: Maik F. (sabuty)
Datum: 30.06.2008 23:28

Wenns Windows ist, kann man C# empfehlen.

Sehr an C angelehnt, schnelle Entwicklung, kostenlose, gute IDE. Und
mittlerweile gibt's seit .NET 2.0 auch eine Komponente/Klasse, mit der
man schön einfach und gekapselt auf die serielle Schnittstelle zugreifen
kann.

GUI's machen geht auch kaum noch leichter.

Die IDE gibt's hier:
http://www.microsoft.com/germany/Express/product/v...

Tutorials usw. sollte Google ausspucken, empfehlenswert sind hier
Anlaufstellen wie codeproject.
Autor: Paul Hamacher (powl)
Datum: 30.06.2008 23:29

Ich hab da im Moment keinen Überblick, was bedeutet "schwierig"?
Schwierig zu verstehen, man muss vieles beachten und nachdenken, wie man
programmiert. Oder einfach nur aufwändig da man für jede anklickbare
Schaltfläche 5-10 Zeilen Code braucht?

Am liebsten wär mir übrigens die Kommunikation via USB, damit ich nicht
für jeden Mist einen Comport brauche. Bis ich aber in USBprogrammierung
fit bin und auch den AVR damit zum kommunizieren gebracht habe, reichen
ja USB -> RS232 converter. Man kann doch theoretisch zur automatischen
Erkennung alle Comports durchscannen und gucken an welchem das
entsprechende Gerät hängt indem man eine bestimmte Codesequenz sendet?

lg PoWl
Autor: Gerard Choinka (gerardchoinka)
Datum: 30.06.2008 23:40

C ist dafür ungeeigned, die Lib ist auch sehr beschränkt.
Die Investition eine passende Sprache zu lernen macht sich schnell
bezahlbar.
meistens ist es sowieso nur eine etwas andere syntax,

ich würde dir zu python mit pyqt (+qtdesinger), mit python kanns du auch
einfach guis mit tkinter machen.

eclipse und java würden sich auch noch anbieten, es wird aber etwas
länger dauern bis man damit produktiv ist

c++ mit qt ist auch eine brauchbare kombination

ich würde einen bogen machen um .NET (C++.NET, C# usw) machen, obwohl
microsoft mit visual studio eine sehr gute (auch kostenlose)
entwicklungs umgebung hat (ich glaube man kann das visual studio aber
auch für normales c++ und qt nutzen)
Autor: A. N. (netbandit)
Datum: 01.07.2008 00:06

Ich empfehle C++. Es stehen kostenlose IDEs/Compiler zur Verfügung und
nach etwas Einarbeitungszeit hat man unbegrenzte Möglichkeiten. Im
Gegensatz zu .NET kann man jederzeit auf einem anderen Rechnersystem
programmieren (es gibt ja auch schon C++ für den AVR) und dank einiger
Tools können Benutzeroberflächen mit C+ auch problemlos
"zusammengeklickt" werden. Darüber hinaus erzeugt der C++ Compiler
echten Maschinencode der Unabhängig von Interpretern (wie bei Java oder
.Net) ausgeführt werden kann.
Autor: Paul Hamacher (powl)
Datum: 01.07.2008 00:31

Also ich muss sagen, es wäre schon nicht schlecht wenn ich in der
Entwicklungsumgebung mein GUI designen könnte ohne alles per Hand zu
programmieren.

Mit Delphi habe ich die schlechte Erfahrung gemacht, dass ich hinterher
keine Ahnung.. 10 Dateien hatte und überhaupt keinen Überblick hatte wo
nun was drin stehen soll, keinen Code gesehen der die Erstellung dieser
Fenster darstellt. Ist das bei C/C#/C++ auch so schlimm?

Im Moment fällt mein Augenmerk auf diese drei Programmiersprachen. Auf
das NET Framework wollte ich allerdings möglichst auch verzichten. C
oder C++, ihr werdet mir wohl zu C++ raten. Gibts dafür
Entwicklungsumgebungen die das Designen für GUIs unterstützen?

lg PoWl
Autor: Ernst Bachmann (ernst)
Datum: 01.07.2008 00:40

Wenn du C++ lernen willst, schau dir QT (http://www.trolltech.com/) an.
Gibts unter der GPL, Graphischer Oberflächen-Designer ist dabei, und man
kann mit sehr wenig Code viel erreichen.
Und als (für dich vielleicht nicht so interresanter) Bonus kannst du
denselben Quelltext auch gleich für MacOS und Linux verwenden.

Allerdings braucht man da schon solide C++ - Kentnisse, da gehts gleich
mit Mehrfachvererbung, Templates usw. zur Sache.
Autor: Simon S. (herrbert)
Datum: 01.07.2008 00:44

Wenn du Ahnung von objektorientierter Programmierung in C++ hast kann
ich nur qt empfehlen. Da brauchste auch für ein par slider keinen gui
builder (obwohl es den auch gibt) denn so ein Programm ist vll. mal 20
zeilen lang.

EDIT: Ich lese gerade kein C++. Wenns dich interessiert lern es aber
BEVOR du dich an qt setzt alles andere frustet nur.
Autor: Martin (Gast)
Datum: 01.07.2008 00:53

Keine Ahnung was ihr macht .. aber ich lerne Haskell :)
Autor: Maik F. (sabuty)
Datum: 01.07.2008 01:27

Martin wrote:
> Keine Ahnung was ihr macht .. aber ich lerne Haskell :)

Aber sicher nicht für die GUI-Windows-Programmierung :D
Autor: Andreas W. (Gast)
Datum: 01.07.2008 07:41

in den .net Zeug gibt es noch C++/CLI. Das ist deutlich näher an C/C++
es ist leichter damit C bibleotheken einzubinden. Und es gibt eine
kostenlose Visual-Studio version.
Hab gelesen das du einen Bogen um das .net Zeug machen wolltest. war nur
als Ergänzung gedacht.
Autor: A. N. (netbandit)
Datum: 01.07.2008 10:57

Also ich würde dir raten, dass du dir erst einmal
Code::Blocks holst (kostenlose IDE + GNU C++ Compiler)
(www.codeblocks.org) und dann arbeitest du dich erst einmal durch das
Buch
C++ in 21 Tagen (http://www.informit.de/books/c++21/data/start.htm).

Danach solltest du die Grundlagen von C++ und OOP drauf und kannst dich
dann mit der GUI Programmierung beschäftigen... Ja nach GUI Paket ist
dann eventuell eine andere IDE besser geeignet ( Visual Studio bietet
sich halt bei einer MS GUI an, Code::Blocks unterstützt recht gut
wxWidgets oder eben was anderes, je nachdem, was dir dann lieber ist).

Viel Erfolg!
Autor: Stefan "stefb" B. (stefan) Benutzerseite
Datum: 01.07.2008 11:33

Ich würde (werde demnächst) mit dem Erlernen einer weiteren
Programmiersprache anfangen.

Und zwar eine Skriptsprache (interpretierte Sprache), auf die man
einfach ein halbwegs passable Grafikoberfläche aufsetzen kann.

Ich sehe den Vorteil einer Skriptsprache darin, dass man quasi
interaktiv sein Programm entwickeln kann. die Performanceeinbußen
gegenüber kompilierten Sprachen ist IMHO  bei einfachen Steuerprogrammen
und/oder den modernen PCs erträglich.

http://de.wikipedia.org/wiki/Liste_von_Hallo-Welt-Programmen gibt eine
nette Übersicht, was nötig ist, um ein einfaches "hello world" auf den
Bildschirm zu bringen. Da gibt es je nach Sprache mehr oder weniger
komplexe Quellcodes. Schick finde ich Python oder Ruby oder BASIC oder
Tcl oder Lua oder Javascript oder Perl oder PHP oder R oder REXX oder
...

Welche genau, würde (werde) ich davon abhängig machen, ob sie auf
mehreren Plattformen läuft und ob es Grafikanbindungen gibt. Im Moment
bin ich Python am ehesten zugeneigt. Ein Buch dazu kommt in den
Urlaubskoffer ;-)
Autor: Ernst Bachmann (ernst)
Datum: 01.07.2008 11:39

Stefan "stefb" B. wrote:

> Welche genau, würde (werde) ich davon abhängig machen, ob sie auf
> mehreren Plattformen läuft und ob es Grafikanbindungen gibt. Im Moment
> bin ich Python am ehesten zugeneigt. Ein Buch dazu kommt in den
> Urlaubskoffer ;-)

Dann schau dir mal PyQT (besser gleich PyQT4) an.
z.B. hier ein Tutorial: http://zetcode.com/tutorials/pyqt4/
Autor: Stefan "stefb" B. (stefan) Benutzerseite
Datum: 01.07.2008 11:41

Danke!
Autor: Jürgen Schuhmacher (Gast)
Datum: 01.07.2008 11:46

www.wxwidgets.org. Das ist das einfachst und umfangreichste, was ich
kenne.

Was ich gerade bei CodeBlocks gesehen habe :
"The GCC toolchain for the Texas Instruments MSP430 MCUs"

Hat das jemand im Gebrauch ?
Autor: Stefan "stefb" B. (stefan) Benutzerseite
Datum: 01.07.2008 12:06

Python + GUI, kann ich mir immer besser vorstellen.

Welche GUI ist nebensächlich, denn es gibt Wrapper für die gängigsten
z.B. Twilight GUI (http://students.ceid.upatras.gr/~sxanth/twgui/) als
"SuperWrapper" für PyGTK (GTK), PyQT (QT), wxPython (wxWidgets) und
Tkinter (Tcl/Tk)
Autor: Simon K. (simon) Benutzerseite
Datum: 01.07.2008 12:17

Dir wird hier nun jeder etwas anderes erzählen :-) Mein Tipp: Nimm erst
einmal eines von den genannten Sachen und arbeite dich da hinein.
Nach einiger Zeit wirst du schon merken ob du damit gut klar kommst oder
nicht.

Ich z.B. habe (musste) mit MFC angefangen (anfangen), bin aber
mittlerweile bei wxWidgets & C++ (für GUI) gelandet, bzw. C# wenns mal
ganz quick and dirty gehen muss. C++ benutze ich auch mal gerne für
kleine Konsolenprogrämmchen. Als GUI benutze ich für alle 3 Sachen
Visual Studio Express von Microsoft.

PS: Aber in einem werden mir wohl alle zustimmen: MFC ist einfach nur
alt. Zumindest mit der Version, mit der ich gearbeitet habe (Ich habe
gehört es gibt da wohl schon aktuelle Versionen wieder, mitgeliefert
beim Visual Studio Professional oder so).
Und mit Hinblick darauf, dass Qt oder wxWidgets und wie sie alle heißen
open-source sind, sind diese eindeutig mehr zu empfehlen als MFC.
Autor: Johnny (Gast)
Datum: 01.07.2008 13:04

Falls Du evtl. auch im Berufsleben mal in der Softwareentwicklung
arbeiten möchtest, würde ich auf jeden Fall etwas nehmen, das verbreitet
ist. Z.B. Visual Studio. Die Programmiersprache ist dabei weniger
entscheidend, aber ich denke C# oder Visual Basic wären sicher nicht
schlecht.
Selber verwende ich Privat das kostenlose Visual Studio .NET C# Express
Edition. Da ist alles dabei was man so braucht und kommt schnell zum
Ziel.

Die Syntax von C# ist zudem sehr ähnlich wie C, so kann man auch gut mal
in sich geschlossene C Codeblöcke vom Microcontroller in ein C# Projekt
kopieren um sie dort elegant testen und debuggen zu können.
Autor: Matthias (Gast)
Datum: 01.07.2008 14:58

XPROFAN http://www.profan.de
wäre auch eine Überlegung wert.

Einfache, leistungstarke Befehle, keine speziellen Windows-Kenntnisse
nötig, keine Objektorientierung und Recourcenverwaltung erforderlich.
Benutze diese Software auch zur µC Kommunikation. Bis Version 6.6
kostenlos.
Autor: Sven Pauli (haku) Benutzerseite
Datum: 01.07.2008 15:07

Ganz persönliche Erfahrung: Spring ins kalte Wasser und versuchs einfach
mal mit nacktem C -- ohne Windoof, ohne Fenster und ohne Klickibunti.
Das was dich bei Delphi verwirrt hat, wird dich auch bei
Borland-C++-Builder verwirren, der arbeitet identisch.

Schreib erstmal Programme für die Konsole, das ist einfach und du
lernst, wodraufs ankommt (nämlich nicht auf bunte Klickerei, sondern
auf praktikable Funktion). Hast du dich dann mal mit der
Standardbibliothek, Dateien und all so nem Zeugs vertraut gemacht,
stehen dir alle Wege offen.

Natürlich kannst du dir jeden Knopf von Hand programmieren, kein Ding.
Aber du kannst auch einen "Designer" benutzen. Wie in Delphi oder QT. Da
malst du dir deine Fenster quasi mit Drag'n'Drop und der Designer
erstellt dir dann (je nach dem) den passenden Quelltext (QT) oder eine
spezielle Resourcendatei (Delphi, BC++B) oder sowas und du füllst das
nur noch mit deinen Funktionen auf.

Und ganz ehrlich: Boote mit Linux (Knoppix) und fang damit an. Im
Gegensatz zu Windows brauchts da so gut wie keine Spezialfunktionen, um
z.B. auf Schnittstellen (seriell, Drucker...) zuzugreifen.
C ist puristisch, dadran wirste bestimmt Gefallen finden. Und wie
gesagt: hastus mal gerafft, ists auch egal ob du nu "{ ... }" schreibst
oder "begin ... end".

Viel Spaß und viel Erfolg ;-)
Autor: Simon K. (simon) Benutzerseite
Datum: 01.07.2008 16:11

Matthias wrote:
> keine Objektorientierung [...] erforderlich.

Und ich dachte immer Objektorientierung wäre ein Konzept, was dem
Programmier entgegenkommt ;)
Autor: Markus (Gast)
Datum: 01.07.2008 16:37

> ...Und ich dachte immer Objektorientierung wäre ein Konzept, was dem
> Programmier entgegenkommt ;)...

Ist auch so. Wenn man verstanden hat, um was es dabei geht... ;-)

Markus
Autor: Ja mann (Gast)
Datum: 01.07.2008 16:54

Kurz und bündig kann ich empfehlen:

-Delphi (müsste es auch eine freie Personal- oder Expressversion geben)
-Visual Studio 2008 (Express)
-wxwidgets am besten zusammen mit Bloodshed DevC++

>Mit Delphi habe ich die schlechte Erfahrung gemacht, dass ich hinterher
>keine Ahnung.. 10 Dateien hatte und überhaupt keinen Überblick hatte wo
>nun was drin stehen soll, keinen Code gesehen der die Erstellung dieser
>Fenster darstellt. Ist das bei C/C#/C++ auch so schlimm?

Hm, drück mal F12, dann siehst du Deine Fensterklasse. Wenn du wissen
willst wie ein Fenster (also z.B: die Form-Klasse) intern aussieht,
öffne einfach die Unit Forms.pas. In welcher Datei was drinstehen soll
kann Dir eigentlich erstmal egal sein, dafür hast du die IDE, im
Gegensatz zu nackten Toolchains, wo man sich um jeden Furz selber
kümmern muss (bevor das jetzt wieder so ein beleidigter Korintenkacker
in den falschen Hals bekommt: Ich arbeite auch genauso oft und gerne mit
solchen Toolschains, hat aber miteinander einfach nichts zu tun).
Delphi ist ein RAD (rapid application development) System. Das Konzept
geht davon aus dass Dir zunächst mal kackegal ist, wie die internen
Klassen die Windows-API überreden ein Fenster auf den Schirm zu pinseln,
vielmehr willst du möglichst schnell Deine Aufgabe (z.B. "Hallo Welt" in
einer Messagebox ausgeben) bewerkstelligen.
Autor: I_ H. (i_h)
Datum: 01.07.2008 16:59

Objektorientierung war vor einigen Jahren das Lieblingsthema der
Akademiker. Wie die Praxis gezeigt hat ist das zwar ganz nett und
erleichtert viele Sachen, aber es ist keine eierlegende Wollmilchsau,
und fehlenden Grips/Erfahrung beim Programmierer kann's auch nicht
wettmachen.

C ist zum Einstieg sicherlich schwieriger als Java oder das ganze andere
Geraffel, und wenn man nur ein bisschen nebenher programmieren will gibt
es sicher besseres (zB. die ganzen Skriptsprachen, oder von miraus auch
Java).
Wenn man aber wirklich richtig programmieren will ist C/C++ nach wie vor
die beste Lösung. Sieht man auch daran, dass die meisten Programme in
C++ geschrieben werden.

@Threadersteller

Deine Probleme haben aber nix mit Delphi als Sprache zu tun, sondern mit
der IDE von Borland. Die macht viel und zeigt dir davon garnix. Fang mit
C auf der Konsole an, oder mit Java auf der Konsole.
Autor: Johnny (Gast)
Datum: 01.07.2008 17:15

Eine GUI Anwendung macht doch für den Einstieg viel mehr Spass als eine
Konsolenanwendung. Und mit Visual Studio oder Delphi kommt man sehr
schnell zu was lauffähigem. Mit genügend Motivation kommt dann der Rest
von alleine...
Autor: I_ H. (i_h)
Datum: 01.07.2008 17:23

> Mit genügend Motivation kommt dann der Rest von alleine...

Oder auch nicht, und er macht irgendwelche Sachen ohne zu verstehen
wieso das funktioniert. Das ist zwar ganz nett wenn man mal was sehen
will, aber wenn man später wirklich selber neue Sachen machen will,
nutzt es garnix.
Autor: tom (Gast)
Datum: 01.07.2008 17:35

Also ich kann Dir auch nur C/C++ empfehlen, alternativ noch Java oder
dann als Nachfolger von beiden die Programmiersprache D. Java hat halt
den Vorteil, dass es Plattformunabhängig ist aber auch den Nachteil,
dass immer ein Interpreter benötigt wird.
Autor: Ernst Bachmann (ernst)
Datum: 01.07.2008 17:41

tom wrote:
> Java hat halt
> den Vorteil, dass es Plattformunabhängig ist aber auch den Nachteil,
> dass immer ein Interpreter benötigt wird.

Naja, da gibt es z.B. den "GCJ", Gnu Java Compiler.
Der propft ein Java-Frontend auf das normale GCC-Backend auf, d.H.
übersetzt Java-Sourcecode (Mit Einschränkungen, IIRC geht Swing nicht)
direkt in nativen Maschinencode, der dann ohne JRE läuft.

Hat halt dann den Nachteil, dass es nicht mehr Platformunabhängig ist,
und den Vorteil dass kein Interpreter/VM mehr gebraucht wird...
Autor: Paul Hamacher (powl)
Datum: 01.07.2008 23:19

Mit Java wollte ich jetzt nicht unbedingt anfangen. Um die Serielle
Schnittstelle zu nutzen muss ich sowieso Plattformabhängig
programmieren. Windoof XP wird ja noch eine Weile durchhalten. Die
Programme sind vorerst sowieso nur mal für mich.

Ehrlich gesagt ist es wirklich Tatsache, dass ich recht wenig Freizeit
hab (zum Programmieren) und eher eine Sprache erlenen möchte, mit der
ich schnell zu einem Ansehlichen Ergebnis komme. Schön wäre es, wenn mir
diese Sprache es trotzdem ermöglichen könnte, gescheite Programme damit
zu schreiben die auch schnell laufen (also keine Scripts?).

Ich muss übrigens sagen dass mir die C-Syntax recht gut gefällt.

lg PoWl
Autor: A. N. (netbandit)
Datum: 01.07.2008 23:45

Ja wie gesagt, da du eh aus der C Welt kommst ist der Umstieg auf C++
nicht mehr schwer. Klar es steckt eben ein anderes Denken dahinter, aber
dich zwingt ja keiner OO zu programmieren. Im Grunde ist nahezu jedes C
Programm auch ein gültiges C++ Programm. Daher kannst du mit deiner C
Erfahrung sehr schnell in C++ einsteigen und dann Stück für Stück das
obejektorientierte Design kennen und schätzen lernen. Ich finde das Buch
C++ in 21 Tagen eben ganz gut für Umsteiger, da hier völlig losgelöst
von irgendwelchen Bibliotheken das Wesen von C++ vermittelt wird. Viele
Kapitel wirst du mit deinen Kenntnissen dann leicht überspringen können
und dich eben auf die OOP konzentrieren können. Sobald du dann
problemlos Klassen anlegen, vererben und Operatoren überladen kannst,
dann guckst du weiter hinten im Buch nach Template und der Einführung in
die STL und mit ein paar HowTos aus dem Netz hast du auch ganz schnell
deine erste Benutzeroberfläche realisiert.

Ich glaube wenn man schon gut C kann, dann ist der Umstieg auf C++ sehr
leicht. Man muss ja keine neue Sprache erlernen sondern nur eine neue
Denkweise. Die paar syntaktischen Neuerungen hat man auch schnell
verinnerlicht.
Autor: Paul Hamacher (powl)
Datum: 01.07.2008 23:51

ja, nunja was heißt "gut C". Ich programmiere damit mittlerweile relativ
erfolgreich µCs, hab das Prinzip von Structs, Zeigern,.. usw. ganz
passabel verstanden (an der Umsetzung haperts vll teilweise noch etwas).
Viel am PC mit C programmieren konnte ich nicht, da ich mir angenehmeres
Vorstellen kann als Warenverwaltungsprogramme vor mich hinzutexten, die
so gut wie nix machen können. Das bringt zwar routine und übung, aber da
lern ich lieber noch etwas dazu und probiere dann ein wenig rum. Dabei
kommt dann auch ein Programm raus, das die ersten Hebel in Bewegung
setzen und mehr als nur Text ausgeben kann :-)
Autor: madler (Gast)
Datum: 02.07.2008 00:13

War schon klar, dass da jetzt viele mit Ihrer "Lieblings-"Sprache /
Entwicklungsumgebung kommen.
Darum gehts aber  nicht , sondern um was  Einsteiger-freundliches .
Und das ist, ich kanns nur wiederholen, MFC, Qt, Win32 nativ, wxWidgets
nicht.
Ich persönlich mag Qt auch sehr und genauso MFC.
Hab aber genauso viele Einsteiger mit halbwegs-guten C-Kenntnissen an
Qt-Vererbung und MFC-Klassen-Müll verzweifeln sehen. Und da das hier ein
Hobby ist, dh Spass machen soll, bietet sich ein zusammen-klick
GUI-Ersteller an.
Wenns ein bischen wie C sein soll, nimm C#, auch wenns nicht GPL ist
oder Delphi, auch wenns viele Sachen zunächst vor dem Programmierer
verbirgt. Macht aber trotzdem/gerade deswegen mehr Spass für den
Einstieg.
Autor: I_ H. (i_h)
Datum: 02.07.2008 00:13

Ganz interessant können Simulationen von irgendwelchen Sachen sein. Bei
der heute üblichen Rechenpower kann man viele Probleme ganz banal
umsetzen, und es kommt trotzdem in brauchbarer Zeit ein gutes Ergebnis
raus.
Zb. Spielereien mit neuronalen Netzen, Wärmeausbreitung in irgendwelchen
Sachen simulieren, der eintausendunderste Sonnensystemsimulator, der
jede einzelne Sekunde simuliert (ok, da braucht's schon etwas Grips,
aber jede Minute ist gut machbar), Fraktale, (um mal auf das Thema
Elektronik zurückzukommen) nichtideales Verhalten von C und L, und
lauter solche Sachen.

Übrigens läuft nicht jedes C Programm durch einen C++ Compiler. Zum
einen gibt's oft Probleme bei Zeigern ("int*
a=malloc(sizeof(int)*1234);" funktioniert unter C++ so NICHT), und zum
anderen kennt C seit ISOC99 Sachen, die C++ nicht kennt (zB. "int
a[variable];"); ähm .
Autor: Paul Hamacher (powl)
Datum: 02.07.2008 00:18

In Delphi hab ich mal reingeschnuppert, aber da.. nunja, bitte nicht
schlagen, da gefällt mir die Syntax einfach nicht :-D Notfalls lass ich
aber gerne mit mir Verhandeln. Ich bin denke ich nicht in der Position
große Ansprüche zu stellen.

Aber C# werde ich mir mal anschauen.
Autor: Daniel (Gast)
Datum: 02.07.2008 01:11

@Stefan
python ist eine weise Entscheidung
nach Jahren von C++ staunt man wie einfach sich
manche Dinge auch schreiben lassen.
Besonders stringmanipulationen, re, listen, maps
herausfiltern aus listen und und und.
Das liest sich alles wie pseudocode vom feinsten.

Ich lerne Haskell im Moment weil ich mich mit
Rekusion(beweisen) an sich beschäftige,
currying verstehen will und einfach meine Denkweise
etwas erweitern will.

grüsse
Autor: spess53 (Gast)
Datum: 02.07.2008 01:32

Hi

Ich bevorzuge Delphi. Eine gestandene Entwicklungsumgebung. Nichts für
Leute, die mehr auf 'Modesprachen' fliegen. Und wird mit Sicherheit eine
ganze Reihe der 'Eintagsfliegen'-Programmiersprachen überleben.

MfG Spess
Autor: Icke (Gast)
Datum: 02.07.2008 08:02

Ich mag ganz normales c.
Das hat aber sicher damit zu tun, daß ich keine ganz riesigen
Softwareprojekte mache, sondern immer mal ne Insellösung. Der
Resourceneditor vom develop studio reicht mir da für normale guis.
Vorteil von c mit win32 ist für mich - ich kann die Sprache, die win32
lernt man immer besser kennen und so habe ich die Möglichkeit den einen
oder anderen Algorithmus schon mal in c auszuprogrammieren. Dazu kommt
daß ich c++ nicht so wirklich gut kann (den oop Aspekt, der sich dann
natürlich durch quasi alle Sprachen zieht und jede objektorienterte
Sprache mehr Mittel zum Zweck werden lässt.

Bei wirklich schwerer Windows Kost und größeren Projekten ist c aber
sicher tot.
Autor: Paul Hamacher (powl)
Datum: 02.07.2008 22:22

Ich hab auch ein wenig das Gefühl, dass jeder seine Lieblingssprache hat
und sie mir natürlich auch empfehlen möchte. Die einen sagen, es wäre
sinnvoll gleich mit größeren Geschützen anzufahren, die anderen sagen,
ich soll erstmal eine einfacherere Sprache nehmen um schneller ans Ziel
zu kommen. Ich denke C++ wäre für die Anwendung Overkill.

C#, Delphi scheinen ja praktisch das gleiche zu sein. Brauchen die noch
einen Interpreter oder sind die Programme überall lauffähig?

Sich das GUI fürs Programm in der Entwicklungsumgebung zusammenzuklicken
und dann mit Funktionen zu bestücken find ich ganz gut. Sieht zu mindest
nach schnellem Erfolg aus.

Welche Programmiersprachen eignen sich für sowas?

lg PoWl
Autor: I_ H. (i_h)
Datum: 02.07.2008 22:49

GUI zusammenklicken hat nix mit der Programmiersprache zu tun. Mit Glade
oder QTDesigner bekommst du sowas auch für C++ und GTK bzw. Qt, und
eigentlich gibt es da für jede halbwegs sinnvolle Sprache was.
Autor: Paul Hamacher (powl)
Datum: 02.07.2008 23:02

OK in diesem Falle hole ich mir jetzt einfach gerne noch ein paar
Meinungen ein und entscheide mich dann endlich für etwas:

Ist es besser in C++ einzusteigen?
Oder eher C#, Delphi zu nehmen?

Nochmal meine Anwendungsgebiete:
- Steuer- und Regelanwendungen (d.h. der Umgang mit Dateien und generell
mit Strings soll nicht allzu schwierig sein (ich denke da an C, bei dem
es gar keine echten "Strings" gibt, oder ist das wo anders auch so?))
- Verschiedene Formen von Fenstern
- Tray-Icon Progrämmchen
- Kommunikation mit der seriellen Schnittstelle
- diverse Grafikfunktionen (Oszilloskop, Logicanalyzer,
multifunktionelle Bildergallery)

lg PoWl
Autor: Christian R. (supachris)
Datum: 02.07.2008 23:29

Wenn du eh unter Windows bleiben willst, kann ich C# mit .NET empfehlen.
Erleichtert im Vergleich zu C++ mit MFC vieles wesentlich. Serielle
Schnittstelle ist gleich dabei, die grafischen Oberflächen sind nett und
lassen sich zur Laufzeit total einfach anpassen usw.

Oszi und Logic-Analyser sind schon recht aufwendige Sachen. Da gibts
aber PlotLab. Tray-Icon geht eigentlich immer...egal ob C++ oder C#
Autor: A. N. (netbandit)
Datum: 02.07.2008 23:39

Nun wie gesagt. Alle drei Sprachen erfüllen Deine Anforderungen. Aber
bedanke, dass zumindest bei C# und C++ der Syntax deinem bekannten C
schon recht ähnlich ist. Delphi hingegen baut auf Pascal auf, also
andere Syntax, andere Befehle als C => mehr lernen. Aber grundsätzlich
ist Delphi schon ne ganz nette Sprache.

C# ist eben eine reine Microsoft Geschichte und soweit ich weiß
vollständig an .net gebunden. Daher muss wohl im Hintergrund ein
Interpreter laufen. Ich persönlich lehne solch ein Konzept bei einer
Programmiersprache grundsätzlich ab.
Ein weitere Nachteil ist halt, dass du damit auch nur auf Microsoft
Betriebssystemen programmieren kannst.
Ich glaube auch nicht, dass der Einstieg schneller ist als bei C++, denn
in beiden Fällen musst du erst einmal Umdenken können (bei Delphi halt
auch).
C ist eine prozeduale Programmiersprache, Delphi, C++, C# sind eben
objektorientiert. Man kann sicher darin programmieren ohne dieses
Konzept verstanden zu haben, aber ob man dann weit kommt?

Daher: Egal für welche Sprache du dich entscheidest. Auch für ein bloßes
Hobby sollte man genügend Zeit aufbringen das Konzept dahinter zu
verstehen. Also noch einmal klein anfangen ohne bunte Fenster, sondern
nur auf der Kommandozeile. Lerne das objektorientierte Konzept und der
Einstieg in die verschiedenen Bibliotheken für GUIs wird dann mit
Sicherheit schneller gehen und mehr Spaß machen, weil du dann eben auch
verstanden hast, was sich hinter einem Befehl, einem Operator oder einer
Klasse so alles verbirgt.
Diese Hürde musst du bei allen drei Programmiersprachen nehmen um damit
was ordentliches auf die Beine zu stellen, der Unterschied ist nur, dass
es dir die eine Programmiersprache eben etwas leichter macht ohne solch
ein Hintergrundwissen ein Fenster anzuzeigen und Buttons zu definieren.
Des ist wie mit C für µCs: Man kann sicher problemlso für µCs ein paar
Programme zusammenschreiben ohne sich mit der Architektur der Controller
auszukennen. Kennt man diese, dann geht aber vieles viel leichter und
man erspart sich ne Menge arbeit, Zeit und Nerven um Fehler zu suchen
oder Lösungevorschläge zu ergooglen.
Autor: spess53 (Gast)
Datum: 03.07.2008 00:13

Hi

Da ich mich eh schon als Delphi-Fan geoutet habe kann ich auch
weitermachen.
Delphi ist das Produkt einer jahrzehntelanger Entwicklung (Turbo
Pascal(Dos) -Turbo Pascal für Windows-Delphi). Auch wenn der Syntax
manchen etwas komisch vorkommt (Pascal) ist er eigentlich weniger
kryptisch als C... Die freie Version von Turbo Delphi beinhaltet eine
ausgereifte IDE, ein komfortables GUI, Komponenten für Datenbank-
Net-,Internet-, ActiveX-Unterstützung und ...
Für mich persönlich mehr als ich brauche.

MfG Spess
Autor: Thomas W. (thomas_v2)
Datum: 03.07.2008 00:22

Ich habe es zwar selber nicht getestet, aber C#-Programme sollen auch
unter Linux lauffähig sein. Stichwort "Mono".
Dabei ist aber wohl nicht gewährleistet dass alle neuesten .Net
Funktionen kurzfristig in Mono umgesetzt werden.

Ich habe die letzten Tage das erste mal (zwangsweise) etwas mit Visual
Studio 2005 in C# programmiert.
Der IDE ist wirklich Klasse, und das MSDN lässt eigentlich selten Fragen
unbeantwortet. Die Sprache an sich ist eigentlich auch nicht verkehrt,
aber wenn man in C++ viel mit Zeigern gearbeitet hat muss die alten
Vorgehensweisen doch etwas umstellen.
An die automatische Speicherverwaltung muss man sich auch erst gewöhnen.
In C++ habe ich viele Sachen im Destruktor einer Klasse erledigt, der
bei C# aber nicht aufgerufen wird (erst wenn der GC das Objekt wirklich
löscht).
Autor: I_ H. (i_h)
Datum: 03.07.2008 00:55

OO ist ein netter Zusatz, aber keine grundlegend neue
Programmierphilosophie. Verstanden haben sollte man es früher oder
später aber schon.

@powl

Wenn du nur mal ein kleines bisschen Zeugs zusammenprogrammieren willst,
ist C++ sicher nicht die beste Wahl. Da würde ich an deiner Stelle eher
zu Java gehen, keinesfalls C#. Je mehr Leute diesen Mist benutzen, desto
länger müssen wird damit leben.
Für Java gibt es auch nette IDEs wie zB. Eclipse, es ist etabliert und
unter praktisch allen OS lauffähig. Das JRE ist etwas nervig, aber was
entsprechendes hast du unter .net auch. Und GUI in Java ist auch kein
Problem.

Wenn du später mal richtig mit Programmieren anfangen willst, führt
eigentlich (früher oder später) kein Weg an C++ vorbei. C++ ist viel
mächtiger als Java, und viel mächtiger als C# (mal abgesehen davon, dass
es in den richtigen Händen auch deutlich schneller ist).
Allerdings ist die Sprache schon deutlich komplizierter, und
wahrscheinlich haben Anfänger gerade desswegen Probleme mit C++, weil es
dir keinen Weg aufzwingt (mal abgesehen davon, dass es auch einiges an
Disziplin verlangt, weil es auch Sachen erlaubt die unsauber sein
können). Java, C# usw. lassen dir bei der Implementierung dagegen recht
wenig Spielraum.

Und auch wenn du ein paar Jahre C++ programmiert hast, wirst du bei
weitem nicht die ganze Sprache können. Es ist eine Sache ein Programm
irgendwie in C++ realisieren zu können, eine andere ist es ein
Programm wirklich schön und elegant in C++ realisieren zu können, unter
Ausnutzung aller sinnvollen Sprachmittel.
Um seinen Horizont zu erweitern ist C++ in jedem Fall deutlich besser
als Java oder c#.
Autor: Paul Hamacher (powl)
Datum: 03.07.2008 10:57

Das Optimum scheint es für mich leider wirklich nicht zu geben.

C# sieht verlockend aus, aber davon wird mir teilweise mehrfach
abgeraten.

Die Syntax von Delphi gefällt mir leider überhaupt nicht.

C scheint nicht gerade komfortabel für Windowsprogrammierung und C++
scheint zu kompliziert für mein Vorhaben zu sein.

Java braucht ebenso einen Interpreter und die Vorteile der
Platformunabhängigkeit mache ich mir damit zunichte, dass ich die
Windowsoberfläche nutzen möchte.

Sicher bring ich euch mit meiner Unschlüssigkeit hier zum verzweifeln
aber ich komm grad wirklich nicht zu einem Entschluss, alles hat seine
Vor- und Nachteile.

lg PoWl
Autor: Ralf (Gast)
Datum: 03.07.2008 11:11

> C# sieht verlockend aus, aber davon wird mir teilweise mehrfach abgeraten.

Also, ich verwende mittlerweile C# und bin sehr zufrieden damit.
Oberfläche ist schnell erstellt, gute Foren gibts auch (wie für alle
Sprachen), IDE ist gut, und es macht richtig Spass.
Ich find es halt gut, weil ich meine µC-Programme in C schreibe, also
nicht viel umdenken. Wenn man das generelle Vorgehen in C# mal
verstanden hat, läufts echt super. Sicher gibts am Anfang wie bei jeder
Sprache auch mal Stolperstellen, aber jeder beginnt so :)

Ich habe einige Behauptungen gelesen, dass bei C# ein Interpreter im
Hintergrund läuft, dass ist soweit ich weiss nicht ganz richtig. Zwar
ist die MSIL (Microsoft Intermediate Language) tatsächlich eine
Zwischensprache, aber das Programm wird nur einmal in Maschinencode
übersetzt. Zu .NET ist zu sagen, dass aufgrund der MSIL erstmal eine
einheitliche Struktur in den Datentypen usw. ALLER .NET-Sprachen gegeben
ist, d.h. ein INT in VB ist genauso groß wie in C#. Solche Sachen
empfinde ich halt als einen Vorteil, zumal es viele weiteren Sachen
gibt, die aufgrund dieser Kompatiblität der .NET-Sprachen einfach besser
flutschen.

Also kurz gesagt: Ich kann C# empfehlen.

Ralf
Autor: Paul Hamacher (powl)
Datum: 03.07.2008 11:15

Ich denke ich werde mich wohl nun auch mal mit C# befassen. Scheint ja
wirklich vielversprechend.

Wenn ich ein Programm in C# schreibe, ist es so ohne weiteres auf
anderen Windowsrechnern lauffähig oder müssen die sich dann erst das
.NET runtime environment framework bla blub runterladen?

lg PoWl
Autor: Johnny (Gast)
Datum: 03.07.2008 11:33

Im jetzigen Moment ist es eine weise Entscheidung, C# mit .NET für Dein
Vorhaben zu nehmen, zumal Du bereits C Kenntnisse hast.
Das .NET Framework ist normalerweise (ab windows XP) bereits auf dem PC
installiert. Falls nicht, kann man es sich sehr einfach per normalem
Windows Update besorgen.
Wie bereits gesagt gibt es keinen Interpreter, denn wenn Du die EXE das
erste mal startest, dann wird es per "just in time compiler" optimal für
Deine Platform kompiliert und läuft dann rel. schnell.
Der ehemalige Chefentwickler von Delphi wurde ja von Microsoft
übernommen und seit da hat sich das Visual Studio sehr gemausert! Vor
dem .NET Zeitalter fand ich das Visual Studio zum kotzen, aber nun ist
es super.


Ich denke, installier doch mal die kostenlose Express Version und mach
mal die ersten Schritte. Falls es Deine Bedürfnisse nicht befriedigt,
kannst Du es wieder deinstallieren und was anderes versuchen.
Autor: Arc Net (arc)
Datum: 03.07.2008 13:18

> C# ist eben eine reine Microsoft Geschichte und soweit ich weiß
> vollständig an .net gebunden. Daher muss wohl im Hintergrund ein
> Interpreter laufen. Ich persönlich lehne solch ein Konzept bei einer
> Programmiersprache grundsätzlich ab.

Weder C#, noch Java, genauer gesagt, jede ernst zunehmende
Implementation, benutzt einen Interpreter.
Alle benutzen entweder JIT und/oder AOT (bei .Net wären die Stichworte
GAC und ngen, wenn man die Applikation z.B. während der Installation in
nativen Code übersetzen lassen will).
Das Konzept an sich, ist das einzig vernünftige, um den
"Durchschnittsprogrammierer" zu halbwegs brauchbaren

> Auch beim .NET-Framework soll einen deutlich besseren Toolkit als die MFC
> dabei sein, aber da kenne ich mich nicht aus. Ich kann deswegen nicht
> sagen, welche Programmiersprachen unterstützt werden, aber wahrschein-
> lich sind es nur die spziellen .NET-Sprachen C#, VisualBasic und evtl.
> dieser neue C++-ähnliche Verschnitt.

Das gesamte Framework ist wesentlich besser. Angefangen z.B. mit dem
älteren WinForms, über WPF, WCF, WF etc.
Plattformunabhängig ist das ganze mittlerweile auch. Zumindest wenn man
sich auf .NET 2.0 beschränkt.

Unterstützte Sprachen: Z.B.
F# für OCaml/ML Liebhaber,
Python, Ruby (als IronRuby bzw. IronPython),
div. Haskell, Lisp, Scheme oder Smalltalk-Implementationen
oder auch ADA (GNAT Pro) etc.
Wenns Eiffel - mit Mehrfachvererbung (im Gegensatz zu C++/CLI) - sein
darf: EiffelEnvision

> OO ist ein netter Zusatz, aber keine grundlegend neue
> Programmierphilosophie.

Dann hat man's nicht verstanden.

> Da würde ich an deiner Stelle eher zu Java gehen, keinesfalls C#. Je
> mehr Leute diesen Mist benutzen, desto länger müssen wird damit leben.

Argumente?

> Für Java gibt es auch nette IDEs wie zB. Eclipse, es ist etabliert und
> unter praktisch allen OS lauffähig. Das JRE ist etwas nervig, aber was
> entsprechendes hast du unter .net auch. Und GUI in Java ist auch kein
> Problem.

Kein Problem, wenn's auf jeder Plattform eindeutig als Java-App zu
erkennen sein soll, umständlich zu erweitern u.a. sein soll.

> Wenn du später mal richtig mit Programmieren anfangen willst, führt
> eigentlich (früher oder später) kein Weg an C++ vorbei. C++ ist viel
> mächtiger als Java, und viel mächtiger als C# (mal abgesehen davon, dass
> es in den richtigen Händen auch deutlich schneller ist).

Mächtiger als Turing-vollständig?
Mehrfachvererbung: Ist nur in einer einzigen statisch getypten Sprachen
brauchbar umgesetzt (Eiffel), alle anderen Sprachen brauchen dieses
"Feature" schlicht und ergreifend nicht.
Operatorüberladung: Gibt's z.B. in C# auch
Templates / Generics: auch
Dynamische Codegenerierung (zur Laufzeit kein Template-Metagefrickel zur
Compile-Zeit): In C++ genauso wenig möglich wie:
Dynamische Typen/Klassen, Lambda-Ausdrücke/Closures, Linq, DLR,
Reflection/Introspection etc.

> Um seinen Horizont zu erweitern ist C++ in jedem Fall deutlich besser
> als Java oder c#.

Wenn's nur um den Horizont geht, sind Smalltalk, Eiffel, Haskell oder
Scheme die richtigen Kandidaten.
"I invented the term Object-Oriented, and I can tell you I did not have
C++ in mind." Alan Kay
Autor: Rufus t. Firefly (rufus) (Moderator)
Datum: 03.07.2008 13:35

Windows-Programmierung geht übrigens auch mit Basic.

RealBasic beispielsweise erlaubt sogar plattformübergreifende
Programmierung für MacOS X und Linux. Ein anderer Kandidat ist TrueBasic
und, so man dem .Net-Geraffel doch nicht entgehen möchte, Visual
Basic.Net. Letzteres ist in einer kostenfreien Version als Visual Basic
Express verfügbar.

Ist zwar alles nicht mein Ding, ich arbeite seit über zehn Jahren mit
der MFC, aber das mache ich auch praktisch täglich. Für Einsteiger oder
Gelegenheitsprogrammierer ist das definitiv nicht zu empfehlen.

Gerade RealBasic wird von einigen bekannten Entwicklern aber durchaus
geschätzt, da damit schnell lauffähige Programme erstellt werden können,
die vor allem ohne Runtime-DLLs und der damit verbundenen "DLL Hell"
auskommen. Die Cross-Platform-Aspekte sind sicherlich noch ein nettes
Schmankerl.
Autor: I_ H. (i_h)
Datum: 03.07.2008 13:44

Arc Net wrote:
>> OO ist ein netter Zusatz, aber keine grundlegend neue
>> Programmierphilosophie.
>
> Dann hat man's nicht verstanden.

Nein, du hast es nicht verstanden (ok, das ist 'ner sachlichen
Diskussion nicht gerade dienlich).
Ich nehme mal an du kommst aus der C# / Java Ecke. Da ist es üblich,
sich durch endlos verschachtelte Klassenbäume zu arbeiten, weil dir
eigentlich garnix anderes übrig bleibt.
Früher dachten die Akademiker mal das wäre das tollste überhaupt,
inzwischen ist da aber ernüchterung eingekehrt.

Es gibt aber auch die Möglichkeit OO etwas zurückhaltender einzusetzen.
C++ bietet dir zB. namespaces, die mit OO direkt erstmal nix zu tun
haben.
Und auch wenn du massiv OO benutzt - es bleibt in der Praxis ein
ähnliches programmieren. Du kannst dem Kind einen neuen Namen geben,
aber im Endeffekt setzt du dich trotzdem hin und schreibst Zeile für
Zeile Code, benutzt Schleifen, rufst Funktionen in anderen Klassen auf,
etc. pp.

Ein bisschen Automatisierung kommt dazu, ja. Aber ich kann dir das
komplette OO Konzept auch in C umsetzen. OO ist eine Denkweise,
unabhängig von der Programmiersprache.


>> Da würde ich an deiner Stelle eher zu Java gehen, keinesfalls C#. Je
>> mehr Leute diesen Mist benutzen, desto länger müssen wird damit leben.
>
> Argumente?

Es ist propritär. Das reicht als Argument völlig aus. Und es kommt von
einem Anbieter, der zurecht auf >1Mrd wegen Monopolmissbrauch verklagt
wurde - was kein Problem wär, wenn's nicht propritär wäre.


>> Für Java gibt es auch nette IDEs wie zB. Eclipse, es ist etabliert und
>> unter praktisch allen OS lauffähig. Das JRE ist etwas nervig, aber was
>> entsprechendes hast du unter .net auch. Und GUI in Java ist auch kein
>> Problem.
>
> Kein Problem, wenn's auf jeder Plattform eindeutig als Java-App zu
> erkennen sein soll, umständlich zu erweitern u.a. sein soll.

Das "umständlich zu erweitern" liegt ja wohl nicht an der Sprache,
sondern am Programmierer. Wenn du unfähig bist ein erweiterbares Konzept
auf die Beine zu stellen...

Du scheinst dich mit Java auch nicht besonders auszukennen - SWT benutzt
die nativen Widgets.

>> Wenn du später mal richtig mit Programmieren anfangen willst, führt
>> eigentlich (früher oder später) kein Weg an C++ vorbei. C++ ist viel
>> mächtiger als Java, und viel mächtiger als C# (mal abgesehen davon, dass
>> es in den richtigen Händen auch deutlich schneller ist).
>
> Mächtiger als Turing-vollständig?

Lass mich raten: Akademiker? Das sind die einzigen, die mit dem
"Argument" ankommen. C++ ist neben Java die am weitesten verbreitete
Sprache überhaupt. Damit ist das Thema ob du C++ brauchst oder nicht
erledigt.

> Mehrfachvererbung: Ist nur in einer einzigen statisch getypten Sprachen
> brauchbar umgesetzt (Eiffel), alle anderen Sprachen brauchen dieses
> "Feature" schlicht und ergreifend nicht.

Weil du es nicht einsetzen kannst?

> Operatorüberladung: Gibt's z.B. in C# auch
> Templates / Generics: auch

Und nun rate mal, was das Potenzial zu höherer Performance bei
gleichzeitig sauberem Code liefert. C# sicher nicht. An Vista siehst du
doch ganz deutlich, wohin "Perfomance ist mir sch***egal!" führt.

> Dynamische Codegenerierung (zur Laufzeit kein Template-Metagefrickel zur
> Compile-Zeit): In C++ genauso wenig möglich wie:
> Dynamische Typen/Klassen, Lambda-Ausdrücke/Closures, Linq, DLR,
> Reflection/Introspection etc.

Vieles davon lässt sich in C++ viel eleganter und schneller als in C#
mit Templates erschlagen. Die Dinger richtig einzusetzen ist ein Kapitel
für sich.
Nur mal so als Denkanstoß: Wann immer du einen vector<int> benutzt, wird
neuer Code generiert.

>> Um seinen Horizont zu erweitern ist C++ in jedem Fall deutlich besser
>> als Java oder c#.
>
> Wenn's nur um den Horizont geht, sind Smalltalk, Eiffel, Haskell oder
> Scheme die richtigen Kandidaten.
> "I invented the term Object-Oriented, and I can tell you I did not have
> C++ in mind." Alan Kay

Im Gegensatz zu Smalltalk, Eiffel und Kaskell hat C++ aber auch einen
echten praktischen Wert ;).

Ich bleibe dabei: C++ ist zwar deutlich schwieriger als Java oder C#
(und min. 50% der Leute die meinen C++ zu können können es nicht
wirklich), aber es bietet sehr viel Mehrwert.
Autor: Johnny (Gast)
Datum: 03.07.2008 13:59

Der Paul will doch nur mit seinem uC kommunizieren können und per GUI
ein paar Daten herumschicken und visualisieren können. Er will ja nicht
PC Programmierer werden, wenigstens soweit ich das verstanden habe.
Von da her kommt doch erst mal was in Frage, was dem C - das er schon
kennt - relativ naher kommt und ihm noch erlaubt, rel. schnell ein GUI
zu machen.
Mit C# und dem .NET Framework ist doch dies recht gut abgedeckt. Für die
serielle Schnittstelle gibts eine fixfertige Komponente, die einfach per
drag & drop ins Projekt reingenommen werden kann. Im Visual Studio kann
er sein GUI zusammenklicken und danach den Code dazu ausprogrammieren.
Mit F5 builden und starten. Der in die Entwick