Forum: Mikrocontroller und Digitale Elektronik welche Programmiersprache für PC ??


von Michael (Gast)


Lesenswert?

Hallo liebe Leute,

bis jetzt hab ich nur in meiner µC- Welt "gelebt" (Assembler) . Doch
jetzt möchte ich diverse Zustände und Schalthandlung übern PC abwickeln
z.B. über die Serielle. Nur meine Prog. Kenntnisse für PC Software sind
bescheiden. (Turbo Pascal vor 15 Jahren).
Welche Software soll ich nehmen: sie muß mir auf jedenfall eine gute
"Hardwareanbindung" (wegen serieller) ermöglichen.
Evtl. kann man ja so eine Steuerungssoftware auf einer
Datenbankstruktur aufsetzten ??.

wer hat einen Tipp für mich und wichtig - sollte natürlich gratis sein,
da das ganze rein im Hobbybereich stattfindet.

Danke für Rückmeldungen
Michael

von Michael (Gast)


Lesenswert?

Am schnellsten geht das mit einer Scriptsprache. Die Auswahl ist
Geschmackssache. Ich nehme Python für so etwas. Die serielle ist
kinderleicht anzusprechen. Geht aber auch in Perl und Ähnlichem.

Die Skriptsprachen gibt es auch für Windows.
Windows ist aber nicht gratis, deshalb hast Du sicherlich schon Linux.

von Steffen (Gast)


Lesenswert?

Wenn vom Turbo-Pascâl noch etwas hängengeblieben ist, dann schau dir mal
Delphi an.

Steffen

von Matthias (Gast)


Lesenswert?

Hi

auch wenn jetzt wieder die große Geschwindigkeitkeule kommt:

Schau dir mal Java an. Die serielle Schnittstelle kann man auch damit
ansprechen (COMAPI bzw. RXTX). Die JavaAPI bietet eigentlich für jede
nötige Funktion bereits etwas an (von Datenbank über TCP/IP bis hin zu
GUI). Um Speicherverwaltung braucht man sich (wie in einer
Skriptsprache) ebenfalls keine Gedanken machen. Weiterhin gibt es gute,
kostenlose IDE's. Ich bevorzuge Netbeans.

Für kleiner Tools verwende ich eigentlich nur noch Java.

Matthias

von Lucian (Gast)


Lesenswert?

Python

- kostenlos
- einfach Scripting
- graphische Oberfläche (Boa Constructor)
- über Console kann direkt mit dem MSP kommuniziert werden
- "komplette" Installationspakete vorhanden (enthought inc)
- einfache Erweiterungsmöglichkeit (z.B. gleichzeitiger Zugriff über
GPIB)

Andreas

von taur (Gast)


Lesenswert?

Auf einem PC ist wohl C++ das Beste. Damit kann man nahezu ALLES machen
(außer Bootsektoren). Außerdem kann man in OOP programmieren, was die
Lesbarkeit und Wiederverwendbarkeit vom Code erhöht. C++ ist auch
schneller als jede Scriptspache (wie Phyton) oder Interpretersprache
(wie Java). Von Delphi würde ich auch die Finger lassen, da es ist sehr
unportabeler, uneffizienter und unleserlicher Code ist.
Als Compiler empfehle ich G++. als IDE empfehle ich EMACS.#

von Blubb (Gast)


Lesenswert?

Labview wäre dafür prima. Einarbeitung minimal, schnelle Ergebnisse,
tolle Oberfläche selbst gestalten, etc...

von Jens (Gast)


Lesenswert?

> Von Delphi würde ich auch die Finger lassen, da es ist sehr
> unportabeler, uneffizienter und unleserlicher Code ist.

Warum uneffizient? Delphi-Programme sind schneller als C++-Programme.
Und für das Unleserliche ist ja wohl nur der Programmierer
verantwortlich. Delphi ist einfach spitze!

Jens

von m@u (Gast)


Lesenswert?

Ich würde dir spontan auch C++ empfehlen, weil du das Erlernte auch auf
dem Mikrocontroller anwenden kannst. Dort hat C++ nämlich mehrere
Vorteile:

- Syntaktische Ähnlichkeit mit C; wenn du schon Pascal programmiert
hast, bist du dich gewohnt strukturiert zu Programmieren, das kannst du
mit C sehr gut anwenden, musst dabei nur eineinhalb Sprachen statt 2
lernen, wenn du dich mit C/C++ beschäftigst
- Du kannst Assembler einbinden
- Wenn du dich mit uC beschäftigst, kommst du um C/C++ längerfristig so
oder so nicht herum.

Die anderen Vorteile von C++ sind ja bekannt...

von bruzzler (Gast)


Lesenswert?

Ich würde c/c++ empfehlen. Ist zwar sicher nicht die leichteste Sprache,
hat aber ein paar entscheidende Vorteile:
- es gibt für JEDE Plattform einen c/c++ Compiler
- bestens dokumentiert, jede Menge Bücher, Internetseiten, Tutorials
...
- man kann damit alles machen bis hin zu Bitoperationen

von Mark de Jong (Gast)


Lesenswert?

Hallo Michael,

Ich benutzte Realbasic, www.realbasic.com.

Geht ganz einfach, und es gibt auch ein gutes forum www.realbasic.de

Realbasic ist fur windows, linux und Mac os verfügbar.

Grüße Mark,

von Peter Kasi (Gast)


Lesenswert?

Und ich würde dir spontan auch Delphi empfehlen, da
- rudimentäre Pascalkenntnisse vorhanden sind
- sehr viele freie Komponenten für alles Mögliche erhältlich sind
- die personal Edition kostenlos erhältlich ist
- man relativ einfach Windowsanwendungen erstellen kann
- portabilität für die meisten privatanwender eh kein Thema ist
- ....

Gruß
Peter

von Matthias (Gast)


Lesenswert?

Hi

C++ ist zwar für ernsthafte Anwendungsentwicklung kaum zu umgehen. Für
ein kleines Tool würde ich aber die Finger davon lassen. Das Ding ist
einfach zu komplex.

Das Delphi schneller als C++ ist halte ich für ein Gerücht. Beides sind
Compilersprachen und beide kann der Programmierer ausbremsen. Für C++
existieren aber die besseren Compiler.

Matthias

von m@u (Gast)


Lesenswert?

Ich denke, dass das mit der Geschwindigkeit eine Anspielung auf das
Object-Handling war. Dazu gibt es tatsächlich Benchmarks, die beweisen,
dass Delphi in dieser Disziplin schneller ist (Ich glaube war mal in der
iX). Aber eben... Lüge ist ein Adjektiv mit 7 Steigerungsstufen ;) :

Notlüge
kleine Lüge
Lüge
grosse Lüge
Lüge, die deine Nase ins unermessliche wachsen lässt
Lüge, die die Balken biegen lässt
Benchmark

Auch ein Matthias (m@u aka Mätthu)

von Peter Kasi (Gast)


Lesenswert?

>C++ ist zwar für ernsthafte Anwendungsentwicklung kaum zu umgehen. >Für
ein kleines Tool würde ich aber die Finger davon lassen. Das >Ding ist
einfach zu komplex.

was hoffentlich nicht heißen soll, mit Delphi kann man keine ernsthafte
Projekte realisieren ;)

von Matthias (Gast)


Lesenswert?

Hi

@Peter Kasi
keine Ahnung. Dazu kenne ich Delphi zu wenig. Nur macht man sich bei
Delphi WIMRE relativ abhängig von einem Hersteller.

Matthias

von Peter Kasi (Gast)


Lesenswert?

@Matthias
aber macht man sich das nicht immer ein wenig. Java -> Sun, .NET ->
Microsoft (auch wenn manche das Gegenteil behaupten), Abhängigkeiten
hast du aber fast immer wenn du die breite Masse (Bill's Welt) ohne
Interpreter bedienen willst.
Aber du hast recht, der lange Zeit ungewisse Kurs von Borland ist einer
der Gründe für die "geringe" Verbreitung von Delphi.

PS: Delphi findet auch durchaus in großen Projekten Anwendung, z.B. CAS
Map&Guide

von Matthias (Gast)


Lesenswert?

Hi

Die Politik von SUN ist mit Java eine andere als die von Borland mit
Delphi. Sowohl JRE als auch JDK sind kostenlos erhältlich. Es gibt
diverse, gute und kostenlose IDE's.

Für aktuelle Delphi-Versionen muß man AFAIK Geld hinlegen.

Was M$ mit .NET macht weiß ich nicht. Hat mich bisher auch nicht
wirklich interessiert.

Mir gefällt Java einfach. Wenn auch die dicken Java-Brocken (Eclipse
und Co) lange brauchen bis sie laufen. Wenn sie aber mal laufen ist die
Arbeitsgeschwindigkeit dank JIT Compiler aber garnicht so schlecht wie
immer wieder behauptet wird.

Das einzige was ich wirklich vermisse ist das überladen von Operatoren.
Das ist manchmal einfach zu praktisch und erspart eine Menge
Schreibarbeit. Allerdings kann man sich damit auch gewaltig ins Knie
schießen.

Matthias

von Philipp Sªsse (Gast)


Lesenswert?

Ich habe mal relativ viel PC über IO-Karte mit Hardware agieren lassen
und habe dabei FPC lieben gelernt. Ist interaktiv, speziell auf das
Ansprechen der Hardware zugeschnitten und auch locker schnell genug, um
kompliziertere Sachen damit zu machen.

Bei mir ging es darum, im Rahmen einer Fehlersuche Teile eines Chips zu
isolieren und den Rest im PC nachzubilden. Dabei mußte ich ständig etwas
ändern und hätte entweder dauernd neu compilieren müssen oder einen
Riesenaufwand mit einer flexiblen Konfigurierbarkeit (Menü,
Konfig-File) treiben müssen. Mit FPC war das geschenkt.

von Peter Kasi (Gast)


Lesenswert?

Hast schon recht, es ist doch ein ganz anderes Abhängigkeitsverhältnis
in das man sich mit Delphi begibt. Die freie Personal-Edition kommt für
gewöhnlich 1/4 Jahr später, ist stark abgespeckt und auch nur für den
persönlichen Gebrauch. Es dürfen keine Applikationen für kommerzielle
Zwecke damit erstellt werden.
Ich selbst verwende zb Eclipse zusammen mit dem NC30
(selbstgeschriebener Errorparser) und schwöre darauf :)(aber auch erst
seit ich 750MB RAM hab)

PS: Operatorenüberladung ist in Delphi möglich ;)
PPS: noch was zum trollen, jede Sprache hat ihre Berechtigung, solange
es kein Basic ist :)

von Steffen (Gast)


Lesenswert?

@Michael

Wie Du siehst, ist mal wieder der übliche Streit ausgebrochen, welche
Programmiersprache nun die Beste ist. Für dich musst Du das selbst
entscheiden. Für Java findest Du hier
http://www.fernando-heitor.de/pic/tutorials/java-tutorial/index.htm
eine recht gute Einführung.

Steffen

von Matthias (Gast)


Lesenswert?

Hi

also das was wir hier machen ist noch lange kein Streit. Die Diskussion
ist doch bis jetzt ganz sachlich.

Matthias

von Steffen (Gast)


Lesenswert?

@Matthias

von deiner Seite auf jeden Fall aber wenn ich mir so ein paar andere
posts ansehe.

Steffen

von Thorsten (Gast)


Lesenswert?

Möchte auch mal meine Meinung sagen. Ich empfehle Delphi, weil

* man sehr schnell rein kommt
* sehr schnell ein brauchbares Ergebnis rauskommt
* man sich auf das wesentliche konzentrieren kann
* es massenhaft freihe Komponenten gibt
* eine sehr gute IDE vorhanden ist
* der erzeugte Code sehr schnell ist
* eine Personal Edition kostenlos erhältlich ist
* etc.

Ich programmiere seit der Version 1.0 damit und es war bisher alles
realisierbar. Nur Treiber lassen sich mit Delphi nicht erstellen.
Allerdings bereue ich es jetzt ein wenig, daß ich mich nicht schon
früher in C bzw. C++ (MS Visual C++) eingearbeitet habe. Wenn man
Treiber für Windows entwickeln will, kommt man da nicht drumherum.
Übrigens lassen sich in Delphi auch Assembler-Routinen einbinden und
man kann genauso die Windows API Funktionen benutzen, wenn man die
Borland VCL nicht benutzen möchte. Von daher ist Delphi schon sehr
flexibel und ich habe festgestellt, daß es in Elektronik Industrie
durchaus weit verbreitet ist.

Thorsten

von Matthias Friedrich (Gast)


Lesenswert?

@Matthias
"C++ ist zwar für ernsthafte Anwendungsentwicklung kaum zu umgehen.
Für ein kleines Tool würde ich aber die Finger davon lassen. Das Ding
ist einfach zu komplex."

Das würde ich inzwischen so nicht mehr unterschreiben. SAP entwickelt
ihr neues System inzwischen in Java, und eine ernsthaftere Anwendung
kann ich mir kaum vorstellen.

Ich komme aus der C/++-Welt, deshalb fiel mir der Einstieg in Java
einfach. Ich denke der Umstieg von Java auf C ist deutlich schwieriger.

Am Anfang war ich auch gegen Java, aber wenn man vorurteilsfrei an die
Sache rangeht, was leider die wenigsten machen, muss man erkennen, dass
Java viele Vorteile bietet. Inzwischen benutzte ich C nur noch da wo es
unbedingt notwendig ist.
Gerade in Punkto Geschwindigkeit hat sich viel getan, sogar die GUIs
kann man inzwischen so hinbekommen, dass sie genauso reagieren wie
native Win-GUIs. Und mit Java 5 soll sich das nochmal verbessert
haben.


Gruß,
noch ein Matthias

von Michael (Gast)


Lesenswert?

.. ist eine sehr interressante Disskussion bis jetzt, vielen Dank für
Teilnahme. wegen C/C++ gibts da ältere Versionen gratis oder was kosten
die - hat da jemand eine Ahnung ich brauch weder das Neueste noch das
Beste.?

Michael

von OldBug (Gast)


Lesenswert?

@Michael:

MinGW/CygWin ist frei...

von Rufus T. Firefly (Gast)


Lesenswert?

Ältere Borland-C-Compiler sind auch frei verfügbar.
(Borland-Community, da im "Museum" nachsehen)

OpenWatcom.org ist die OpenSource-Variante des Watcom-C-Compilers.

Ohne IDE, dafür aber aktuell, ist das Compiler-Backend des aktuellen
Visual C++ auch frei zu bekommen.
http://msdn.microsoft.com/visualc/vctoolkit2003/

Diese Compilerversion ist in einem Standardkonformitätsvergleich und
Geschwindigkeitsvergleich in einer diesjährigen DDJ-Ausgabe übrigens
sehr gut weggekommen - MS lernt offensichtlich dazu.

Hier gibts noch ein paar Links auf frei verfügbare Compiler
http://www.thefreecountry.com/compilers/cpp.shtml

Jeder bessere Editor kann für so etwas als IDE verwendet werden.

Hier kann ich übrigens - ein Hieb in Richtung plattformunabhängige
Programmierung - DialogBlocks empfehlen. Das ist ein GUI-Builder für
die plattformunabhängige Klassenbibliothek wxWidgets, der mittlerweile
auch den kompletten Build-Zyklus unterstützt.
Allerdings kostet DialogBlocks Geld, wenn auch nicht viel.

http://www.anthemion.co.uk/dialogblocks/
und
http://www.wxwidgets.org

von thomas_p. (Gast)


Lesenswert?

Im Info-Unterricht benutzen wir:
http://www.bloodshed.net/devcpp.html
was du auch komplett kostenlos bekommst und alles beinhaltet was du
fuer den Anfang brauchst
( Was ich unter Linux benutze interessiert dich vermutlich nicht ;-)

von Markus (Gast)


Lesenswert?

Ich bin erstaunt das ich nicht der einzige Python Fan bin :)
Ich finde Python genial einfach und einfach genial. Aber mal ne Frage:
ich würde gern also Oberfläche QT verwenden. Unter Linux ist das auch
kein Problem, aber für Windows hab ich noch keine Lösung gefunden.
Leider ist QT für Windows nicht frei. Gibt es da vielleicht irgend eine
freie Runtime oder sowas? Also ohne die ganzen Libraries und
Entwicklungstools.
Gibt es vielleicht eine andere grafische Oberfläche die unter Win und
Linux läuft? Ich kenn noch GTK, TK und ähnliche bekannte sachen, aber
die kommen an QT einfach nicht ran.

btw: ich hab mal gelesen das QT eigentlich für C geschrieben wurde, die
Einbindung in Python aber wesentlich einfach und komfortabler ist :)


Was die Wahl der Programmiersprache angeht: Ich bin der Meinung das ist
abhängig von der Anwendung, vom Geldbeutel und vom persönlichen
Geschmack.
Wenn die Anwendung nicht gerade jedes Prozent an Performance aus einem
Rechner rauskitzeln muß reichen im Normalfall Sprachen wie Python oder
Java. Vorteil ist das es sie kostenlos und für viele Systeme gibt.
Compiler wie Delphi und Visual Studio sind Buyware. Es gibt zwar von
beiden kolstenlos erhältliche Versionen, aber die sind normal relativ
veraltet und von der Funktion eingeschrängt. Dann gibt es noch die weit
verbreiteten Gnu Compiler, aber das ist das wirklich nur der nakte
Compiler, bestenfalls mit einem mehr oder weniger brauchbaren Editor.
Grafische Oberflächen damit zu erstellen ist kein echter Spaß.

C hat natürlich den großen Vorteil das man für praktisch jedes System
einen Compiler bekommen, aber die große Portierbarkeit die immer so
hoch gelobt wird hab ich da auch noch nicht gesehen es sei denn man
bewegt sich ganz am unteren Ende von C/C++. Außerdem muß man bei C
viele Sachen erstmal selber erstellen oder mühsam aus dem Internet
zusammensuchen und in seine Applikation integrieren die zb Delphi von
Haus aus kann.
Es ist sicher nicht verkehrt wenn man C/C++ kann, aber wenn es sich
vermeiden läßt würde ich Delphi/Pascal oder Python vorziehen

So, das war mein Teil zur 14350233 Ausgabe des Glaubenskrieges um die
Programmiersprachen ;)

Gruß
Markus

von Matthias (Gast)


Lesenswert?

Hi

wie wird Python eigentlich "vertrieben"? Gibt es da ein
Zwischenformat für den Interpreter (Bytecode) oder muß ich den
Quellcode weitergeben?

Matthias

von Markus (Gast)


Lesenswert?

@ Matthias
Das ist ähnlich wie bei Java. Man kann einen Bytecode vorcompilieren.

Und ich hab noch einen entscheidenden Vorteil von Python gegenüber den
meisten anderen Programmiersprachen vergessen: mit Python kann man
nicht nur Desktop Applikationen erstellen sondern man kann es wie PHP
auch zur dynamischen Erstellung von Webseiten verwenden. Eines der
mächtigsten Web Application Tools ist in Python programmiert (Zope).
Und nochwas (weil das irgendwo weiter oben mal gefallen ist): Python
ist zu 100% objektorientiert. Man kommt eigentlich gar nicht darum
herum weil alles Objekte sind, sogar jede Variable (mit Ausnahmen)

Markus

von Rufus T. Firefly (Gast)


Lesenswert?

Betr. Python und freie GUI:
http://www.wxpython.org/

von Weihnachtsmann (Gast)


Lesenswert?

Hallo zusammen

Also ich kann Delphi C++ und Visual Basic.

Klar ist C++ die Profiprogrammiersprache. Aber ich finde es für
Gelegenheitsprogrammierer wie die meisten Elektroniker sind viel zu
schwierig.

Visualbasic geht ist aber langsam und vom der Struktur nicht sehr
sinnvoll. Man einget sich viel schlechtes an.

Klar kann man auch eine Exotische Programmiersprache verwenden nur
findet man nicht immer so schnell Hilfe im Internet

Ich Empfehle auch Delphi da es eine ausgewachsene Programmierprache ist
die relativ einfach und auch sehr schnell ist.
Auch gibt es viele Foren. Ich finde Delphi ist die Programmiersprache
mit den besten Kompromissen.
Wenn man Delphi kann dann lernt man auch schnell C++ oder Java.



Gruss

Es kommt bald der Weihnachtsmann

von Philipp Sªsse (Gast)


Lesenswert?

Ja, wenn es einen Weihnachtsmann gibt, ist auch C++ die
Profiprogrammiersprache.

Oje!

C++ ist ein schauriger Kompromiß, der nur deshalb so verbreitet ist,
weil "alle" C können und man diese Massen so am leichtesten zu einer
wenigstens halbwegs effektiven Programmierung bringen kann.

Natürlich wären die Leute mehrfach so effektiv, wenn sie stattdessen
Smalltalk lernen würden, aber das tun sie ja nicht. Wenn also der
Prophet nicht zum Berg geht, muß der Berg zum Propheten kommen.

Java ist wieder ein Schritt in die richtige Richtung (die meisten
Fehler unter C++ sind unter Java nicht möglich), aber halt auch wieder
ein Kompromiß an die Massen von C++-Programmierern, die nicht umlernen
wollen/können.

"Profi". Ja gut, ein gewaltiger Anteil an professioneller Software
wird damit geschrieben. Aber so wie Du es schreibst, klingt es, als sei
die Sprache irgendwie professionell. Und das ist sie bestimmt nicht.

Bitte nicht falsch verstehen: ich programmiere selbst mit c++, aber man
sollte nicht der Legende huldigen, als sei das eine gelungene Sprache.
Selbst andere Ansätze, C und Objektorientiertheit zu paaren, sind
meisterlich dagegen (Objectiv-C etwa).

von Dominik (Gast)


Lesenswert?

Ich programmiere seit ich 13 bin mit Delphi, vorher ein Jahr QBasic.
Jetzt im Studium lerne ich C/C++.
Aus meiner Sicht ist Delphi prima für den Hobbyanweder, da es endlos
viele Komponenten und sehr viele Websites gibt.
Mit Delphi-Projekten habe ich schon mit eigenen µC-Schaltungen über
USB, RS232 und dem Parallelport kommuniziert. Das ist wegen der vielen
kostenlosen Komponenten sehr einfach.

Gruß, Dominik

von m@u (Gast)


Lesenswert?

Vielleicht meint er mit Profi, dass sie profisorisch ist (achtung
Wortspiel...) , bis man endlich eine richtige Programmiersprache wie
z.B. OpCode(tm) oder intelHex(muha) lernt... duck *run*

Nein im Ernst, es ist zwar schön, wenn man sagen kann, dass man in der
einzig wahren Profiprogrammiersprache entwickelt, aber man sollte die
Realität nicht aus den Augen verlieren. Die Vorteile von C/C++ sind
sicher, die grosse Verbreitung und die gute Portierbarkeit von Code
(von den vielen andern Vorteilen will ich jetzt nicht sprechen). C und
C++ haben aber sicherheitstechnisch grosse Nachteile (der Programmierer
darf einfach viel zu viel...), die man z.B. mit Pascal nicht hat (schon
mal von einem wilden Pointer gebissen worden?).

Java ist sicher ein Schritt in die richtige Richtung. Er wird aber noch
etwas dauern, weil im Moment Prozessorzeit noch wertvoller ist als die
Nerven der Programmierer.

von Tobi (Gast)


Lesenswert?

auch in pascal kann dich ein wilder pointer beissen
für hardwarenahe sachen muss man viel dürfen, genau das bietet c,
deshalb sind so viel os'e ja damit geschrieben

von Matthias Friedrich (Gast)


Lesenswert?

"Java ist sicher ein Schritt in die richtige Richtung. Er wird aber
noch etwas dauern, weil im Moment Prozessorzeit noch wertvoller ist als
die Nerven der Programmierer."

Immer wieder die gleichen Vorurteile....
Das ist schon seit längerem nicht mehr so. Erstens ist Java viel
schneller geworden, und zudem ist die Prozessorzeit in den meisten
Anwendungen doch uninteressant.

Kleines Gedankenspiel: Wenn TollCollect irgendwann folgende Option
gehabt hätte: Verdeopple die Rechenleistung, benutzte Java und spare
dafür ein halbes Jahr.
Für was hätten sie sich wohl entschieden?

von Matthias (Gast)


Lesenswert?

Hi

Jetzt ist er wieder ausgebrochen, der Glaubenskrieg :-) Mußt ja so
kommen.

Nur soviel:

@Philipp Sªsse
C hat mit C++ etwa soviel zu tun wie Windows Batchskripte mit
(Bash)-Shellskriten.
Wer C sicher beherscht hat von C++ fast keine Ahnung. C++ ist beinahe
eine eierlegende Wollmilchsau. Man kann damit sehr viel, sehr elegant
erledigen. Man kann sich aber auch mit jeder Zeile Code gewaltig in
Schwierigkeiten bringen. In den richtigen Händen ist C++ aber eine sehr
mächtige Programmiersprache.


Matthias

von Markus (Gast)


Lesenswert?

Klar wird aus sowas ein Glaubenskrieg, aber es macht immer wieder Spaß
;)

Ich frag mich nur immer womit die C/C++ und Delphi Fans programmieren?
Mit der Delphi Personal Edition? Mit Visual Studio Autoren Version?
Oder gar mit Gnu C? Oder gibt es da noch was dazwischen das was kann
aber nix kostet und legal ist!!! ?

Die ersten beiden sind doch nur eingeschrängte "Demo" Versionen. Also
ich hab schon mit der Personal und mit der Enterprise Edition von Delphi
gearbeitet und muß sagen das es da doch deutliche Unterschiede gibt. Bei
Visual Studio wird es nicht viel anders sein.

Es ist mal völlig egal welche Sprache man verwendet solange man damit
die gewünschte Applikation erstellen kann. Und das trifft mittlerweile
auf fast jede moderne Sprache zu

von c++'ler (Gast)


Lesenswert?

C++ ist eine echt geniale Sprache. Das Beste an der Sprache ist imho der
?-Operator. Er kann viele if-else-Konstrukte ersetzen:

if (foo > 2) bar = 100;
else bar = 200
// --->
bar = foo > 2 ? 100 : 200;

Auch die Sache mit den templates kann echt viieel Tipparbeit sparen.

In Sachen "portable GUI" kann ich nur gtkmm empfehlen. wxWidgets ist
zwar umfangreicher, hat aber wegen den vielen MAKROS imho einen
unschönen Stil.

von Philipp Sªsse (Gast)


Lesenswert?

Die Bash und die DOS-Box haben eine total andere Syntax, die
unterscheiden sich eben nicht nur in ihrer Mächtigkeit.

Aber C++ hat einfach die Sprache C um OO-Konzepte erweitert.
Syntaktisch bleibt es eine C-Sprache und das ist mit zweierlei
Problemen verbunden. Erstens wurde diese Syntax ursprünglich nicht für
OO geschaffen und das bedeutet natürlich einen Kompromiß.

Zweitens -- und das ist das größere Problem, auch wenn es eigentlich
kein Fehler der Sprache, sondern ihrer Benutzer ist -- kann man in C++
schnödes C schreiben. Positiv ausgedrückt ist die Sprache
abwärtskompatibel. Aber in der Praxis werden OO und klassische
Strukturen immer wieder gemixt, ganz einfach weil es geht. Ich habe
einen Haufen C++-Code "geerbt", der sich zugegebenermaßen auf einem
C-Compiler nicht übersetzen lassen würde, aber C++ ist das nicht. Und
das ist sicherlich keine Ausnahme, weil die Sprache ihre Programmierer
nicht zu konsequentem Stil zwingt.

von Markus (Gast)


Lesenswert?

Nochmal zum Thema GUI: ich hab mir schon verschiedene angeschaut, aber
es gibt eigentlich keine schönere als QT. Unter Linux gibt es sogar ein
visuelles Tool mit dem man wie bei Deplhi Oberflächen erstellen kann.
Ich vermisse wie gesagt nur eine freie "Runtime" für Windows. Gibts
sowas echt nicht

von OldBug (Gast)


Lesenswert?

>C++ ist eine echt geniale Sprache. Das Beste an der Sprache ist imho
>der ?-Operator. Er kann viele if-else-Konstrukte ersetzen

Super "C++-Feature", wenn man jetzt noch wüsste, daß dieser Operator
"Tenärer Operator" oder "ternary operator" genannt wird, dann
könnte man sogar feststellen, daß es sich bei diesem nicht um eine
Erweiterung von C++ handelt, sondern daß dieser schon in C (und auch
vielen anderen Sprachen) zur Verfügung steht.

Das war jetzt ein schönes Beispiel für "C++ Code für C-Compiler" :-)

von Peter Kasi (Gast)


Lesenswert?

@Markus,
also ich arbeite mit der (gekauften) Professional Edition, wie auch die
meisten die ich kenne. Architekt ist mir doch etwas zu teuer, zumal die
Professional Edition für das meiste ausreicht.

@Philipp Sªsse
kann dir nur recht geben, wenn du einen der vielen C++ Programmierer
fragst was den der größte Unterschied zweischen C und C++ ist wird er
wahrscheinlich antworten, daß man anstelle von printf jetzt cout
verwendet.

Die perfekte Sprache gibt es eh (noch) nicht, es sind alles krücken.
Die perfekte Sprache sollte IMHO keine Programmierkenntnisse verlangen,
sondern es ermölichen eine Lösung auf dem Niveau des Problems
einzugeben, ohne es in computerverständliche Happen aufbrechen zu
müssen.

von Rufus T. Firefly (Gast)


Lesenswert?

@Markus: Es gibt eine veraltete QT-Runtime-Version für Windows
(ftp://ftp.trolltech.com/qt/non-commercial/QtWin230-NonCommercial.exe).

Desweiteren gibt es ein Projekt, die GPL-Sourcen (QT/X11) auf Win32 zu
portieren (irgendwo auf Sourceforge), habe aber keine Ahnung, wie weit
das gediehen ist.

QT scheidet IMHO nach wie vor aus, so elegant das auch erscheinen mag.


Wie ich bereits erwähnte, ist DialogBlocks ein durchaus ebenbürtiger
GUI-Builder für wxWidgets - und den gibt es als binary für Windows,
Linux, Solaris und Mac OS.
Gut, DialogBlocks ist nicht kostenlos, aber mit 60 EUR liegt das noch
im verträglichen Rahmen.
Die aktuelle Version 1.81 übrigens erzeugt vollständige Projekte mit
makefiles für verschiedene Compiler; sie kann auch den Buildprozess
starten.
Dank eines integrierten Sourceeditors (mit Syntax Highlighting etc.)
kann das Teil im Grunde genommen als vollständige IDE verwendet werden
- auch wenn einige Details noch recht rudimentär sind (kein "goto
error" im Ausgabefenster, kein MDI-Betrieb im Editor, und vor allem:
kein integrierter Debugger).

Ein Vorteil, den wxWidgets gegenüber QT hat, ist der, daß die
plattformspezifischen Oberflächenelemente nativ verwendet und nicht
nachgebildet werden. Damit wird nicht für jede Plattform das Rad neu
erfunden (Windows kann seine Knöpfe selber malen, das muss man nicht
nachmachen), was auch in Sachen Fehlerverhalten sicherlich seine
Vorzüge hat.
Auch die Performance dürfte unter der Verwendung nativer Bedienelemente
eher nicht leiden.

Dafür ist zwar der Aufwand der Portierung von wxWidgets auf eine andere
Plattform vermutlich etwas höher als der Aufwand, der bei QT anfällt -
aber das kann einem im Grunde genommen Wurscht sein, da für die
wesentlichen Systeme diese Portierungen bereits vorliegen.

von Markus (Gast)


Lesenswert?

@ Rufus: danke für die ausführliche Ausführung. Ich hatte mir wxWidgets
schonmal angeschaut, war aber nicht ganz so überzeugt davon. Ich werde
es mir aber nochmal vornehmen. Ein visuelles Tool ist zwar nicht
unbedingt nötig, verkürzt aber die Designzeit IMHO massiv. Außerdem
fand ich die Anbindung von QT an Python ziemlich gut gelungen. Ob man
jetzt wert auf ein einheitliches Aussehen auf unterschiedlichen
Plattformen legt oder ob einem das plattformeigene Aussehen wichtiger
ist bleibt denk ich jedem selbst überlassen.
Naja, wenn das mit der non profit version von qt klappt bin ich ja
eigentlich schon glücklich

von Christian (Gast)


Lesenswert?

Sers,


so jetzt "Senfe" ich auch mal ...

Ich Programmiere seit 15 Jahren, Basic  QB  VB den Umstieg auf C++
habe ich vor 5 Jahren gemacht, inswischen auch ein wenig Assembler für
meine Hobbyprojekte ...

Jede Sprache hat seine Vor- und Nachteile.

Der o.g. Aspekt, das C++ / C weit verbreitet ist war für mich Grund
genug, dem Rest abzuschwören.

Ich kann über fast JEDE Sprache mindestens ein Grund finden, warum xyz
besser ist, doch für einen Umsteiger oder Anfänger befinde ich C / C++
besser -  denn was DELPHI und VB im Anfang versauen, ist hinterher nur
schwer wieder abzugewöhnen ...

Bloodshed ist eine gute Alternative, wenn man nix bezahlen will und
seine GUI via CreatWindow basteln will, Borland macht einen wieder
Abhängig und der code ist m.W. nicht von Borland nach xyz ohne weiters
portierbar...

Eine Schülerversion von MS DevStudio 2K3 gibts für wenig Geld und für
kleine Projekte ausreichend ...


Lg Christian

von Christoph Peters (Gast)


Lesenswert?

nimm delphi!
+ du hast pascal kenntnisse, dann ist der umstieg vielleicht einfacher
+ super online hilfe (finde ich)
+ komponenten für Serielle Schnittstelle kann ich dir e-mailen, sind
kostenlos und wirklich super einfach
+ das gleiche gilt für mysql-komponenten so wie tcp/ip komponenten, mit
denen der zugriff auf email-server, ftp, http, etc. ein kinderspiel
sind.

achja, ich verwende immernoch delphi 4 professional (deutsch-wegen der
online hilfe), das reicht von terminalprogramm bis zur
datenbankanwendung mit messwertanalyse

gruß christoph

von Tobi (Gast)


Lesenswert?

"+ du hast pascal kenntnisse, dann ist der umstieg vielleicht
einfacher"

ich hatte die gleiche situation und habs schneller hinbekommen c zu
lernen als delphi (trotz guter pascal kenntnisse)
imo ist delphi, wenn man aus der pascal ecke kommt extrem überladen (vc
auch..)

von Markus (Gast)


Lesenswert?

Hm, bei mir war's genau umgekehrt. Ich hab früher hauptsächlich mit
Borland C++ 3.1 gearbeitet, kam aber später zu Windows Zeiten nicht
mehr damit klar. In Delphi (4) kam ich extrem schnell rein. Ich glaub
das ist von Mensch zu Mensch völlig unterschiedlich

von Peter Kasi (Gast)


Lesenswert?

@Christian, in wie weit versaut einen Delphi am Anfang? Würde einfach
gerne mal ein paar Argumente hören.

von Markus (Gast)


Lesenswert?

Naja, das ist so ähnlich wie wenn man mal Merzedes fährt. Da will man
auch nicht mehr in einen Trabant steigen ;)

von Peter Kasi (Gast)


Lesenswert?

Ok ;) in die Richtung hatte ich garnicht gedacht

von Markus (Gast)


Lesenswert?

Aber mal ehrlich. Mit einer halbwegs modernen Programmiersprache kann
man sich kaum noch was versauen. Das schlimmste was man machen kann ist
wenn man mit einer sequenziellen Sprache anfängt, also eine die keine
Prozeduren/Funktionen kennt wie das klassische Basic.
C++, Delphi, Python, Java, die sind alle objektorinetiert. Sicher gibt
es viele Unterschiede die beim Wechsel von einer Sprache zur anderen
Probleme bereiten können, aber grundsätzlich sind sich die Sprachen
sehr ähnlich und wer ein einigermaßen fähiger Programmierer ist darf
keine Probleme damit haben sich innerhalb von ein paar Tagen auf eine
andere Sprache einzustellen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.