Forum: PC-Programmierung Entscheidung Programmiersprache/IDE


von Tim (Gast)


Lesenswert?

Hallo.

Habe damals viel Basic und weniger Delphi programmiert.
Zuhause bin ich eher in C womit ich meine Mikrocontroller Projekte auch 
schreibe.
Ab und an nutze ich AutoIT für kleinere Scripte.

Nun bräuchte ich aber ab und an eine GUI am PC für meine Platinen.

Möchte auf jeden Fall Crossplatform sein und habe mich daher von QT und 
Lazarus hin und her reissen lassen.

Leider kenne ich mich aber in C++ nicht aus.

Es sollen keine riesen Programme werden, sondern nur 
Auswertungs-Software und Hardware-Konfiguations-Programme.

Zumeist nutze ich den FTDI-Chip für die PC-Ankopplung, daher habe ich in 
Verbindung mit QT einmal danach gesucht.
Leider war ich etwas über die Ergebnisse geschockt.
Selbst Leute, die mit der Umgebung schon so einiges Angestellt haben, 
kamen da an ihre Grenzen.
Ich habe leider nicht die Zeit mich so extrem in eine Programmiersprache 
einzuarbeiten da andere Projekte Prio haben.

Könnt Ihr hier irgendwie mir einen Tip geben wie ich mich am besten 
endscheiden sollte?

Grüße Tim

von Dr. Sommer (Gast)


Lesenswert?

Plattformunabhängig, einfach, GUI? -> Java

von kopfkratzer (Gast)


Lesenswert?

kopfkratz
Ja also was soll's denn werden ?
In C++ einsteigen dürfte die sinnvollste Entscheidung sein.
JAVA ist wegen dem ORACLE disaster ja nicht mehr uneingeschränkt 
empfehlenswert m(
Und JAVA ist rein objektorientiert :-P
Was Du brauchst ist einfach ein QT widget um Deine einkommenden Daten zu 
visualisieren, da einfach mal in die Doku schaun:
http://qt-project.org/doc/qt-5.0/qtwidgets/qtwidgets-index.html
Ist es eigentlich immer soooo schwierig eine Metasuchmaschine zu nehmen 
und nach den konkreten Anforderungen zu suchen ?
Du brauchst also zwei Klassen, eine die Dir die Daten am PC abnimmt und 
eine die Dir selbige Daten visualisiert.
Und es gibt gute online C++ Tutorials ...

von Tim (Gast)


Lesenswert?

@Dr. Sommer & Team: Java finde ich wegen der Hardwarenahen Geschichten 
nicht so passend. Hatte mir einmal NetBeans angeschaut und war nicht so 
von überzeugt...

@Kopf-Kratzer: Doch doch, Suchen kann ich schon bedienen, nur finden die 
wie gesagt bei QT viele Probleme wenn es um USB-Anbindungen geht.
Ich lasse mich aber gerne eines besseren belehren ;)
Wie ich das mit den Klassen an sich händeln würde habe ich ja im Kopf.
Die Frage war darauf abgezielt, ob es denn Sinn macht ohne nun fünf 
Wochen Einarbeitungsphase auch schon im Vorhinein was brauchbares hin zu 
bekommen.
...oder ob da Lazarus doch evtl. die bessere Entscheidung wäre.

Bin aber ja eigentlich ohnehin eher zu C gerissen; Pascal Dialekte mag 
ich nicht so sehr.

von Tim (Gast)


Lesenswert?


von Dr. Sommer (Gast)


Lesenswert?

Tim schrieb:
> @Dr. Sommer & Team: Java finde ich wegen der Hardwarenahen
> Geschichten
Hä? Wo ist denn die GUI-Entwicklung am PC hardwarenah?
> @Kopf-Kratzer: Doch doch, Suchen kann ich schon bedienen, nur finden die
> wie gesagt bei QT viele Probleme wenn es um USB-Anbindungen geht.
Was hat Qt mit USB zu tun? libusb oder direkt Serialport-Zugriff geht 
davon völlig unabhängig; genau wie in Java...
> Ich lasse mich aber gerne eines besseren belehren ;)
> Wie ich das mit den Klassen an sich händeln würde habe ich ja im Kopf.
> Die Frage war darauf abgezielt, ob es denn Sinn macht ohne nun fünf
> Wochen Einarbeitungsphase auch schon im Vorhinein was brauchbares hin zu
> bekommen.
Fünf Wochen in C++ könnte vielleicht hinkommen. Wenns schneller gehen 
darf würde ich zu was einfacherem wie eben Java raten.
> Bin aber ja eigentlich ohnehin eher zu C gerissen; Pascal Dialekte mag
> ich nicht so sehr.
Kannst ja Gtk+ verwenden, aber GUI's ohne OOP zu programmieren ist 
irgendwie doof.

kopfkratzer schrieb:
> In C++ einsteigen dürfte die sinnvollste Entscheidung sein.
C++ lernen ist auf jeden Fall sinnvoll, aber eben auch nicht so ganz 
einfach...
> JAVA ist wegen dem ORACLE disaster ja nicht mehr uneingeschränkt
> empfehlenswert m(
Java hat 1000 Gründe es nicht zu verwenden (auch ohne Oracle), aber um 
mal eben schnell eine GUI zu bastlen ist es durchaus zu gebrauchen.

von Arc N. (arc)


Lesenswert?

Dr. Sommer schrieb:
>> JAVA ist wegen dem ORACLE disaster ja nicht mehr uneingeschränkt
>> empfehlenswert m(
> Java hat 1000 Gründe es nicht zu verwenden (auch ohne Oracle), aber um
> mal eben schnell eine GUI zu bastlen ist es durchaus zu gebrauchen.

ftp://ftp.heanet.ie/disk1/trolltech/pub/qt/pdf/qt-vs-java-whitepaper.pdf
Die Schlussfolgerung stimmt auch heute noch, selbst wenn Swing durch SWT 
ersetzt wird
"Java/Swing may be appropriate for certain projects, especially those 
without GUIs or with limited GUI functionality. C++/Qt is an overall 
superior solution, particularly for GUI applications."

von Arne Maximilian R. (arnemaximilian_r)


Lesenswert?

Arc Net schrieb:
> Dr. Sommer schrieb:
>>> JAVA ist wegen dem ORACLE disaster ja nicht mehr uneingeschränkt
>>> empfehlenswert m(
>> Java hat 1000 Gründe es nicht zu verwenden (auch ohne Oracle), aber um
>> mal eben schnell eine GUI zu bastlen ist es durchaus zu gebrauchen.
>
> ftp://ftp.heanet.ie/disk1/trolltech/pub/qt/pdf/qt-vs-java-whitepaper.pdf
> Die Schlussfolgerung stimmt auch heute noch, selbst wenn Swing durch SWT
> ersetzt wird
> "Java/Swing may be appropriate for certain projects, especially those
> without GUIs or with limited GUI functionality. C++/Qt is an overall
> superior solution, particularly for GUI applications."

Bitte lies noch einmal das komplette Dokument. Besonders im ersten 
Abschnitt wird hervor gehoben, dass Java erst bei Profis weniger 
effizient ist. Die Frage ist immer noch, dass ein Anfaenger versucht 
leicht eine GUI zu bauen, ohne sich im Detail mit OO zu beschaeftigen!

Zwar zweifel ich Dr. Sommers Aussage an, dass es 1000 Gruende gibt nicht 
Java zu verwenden (ich wuerde fast sagen, dass es 1500 Gruende sind), 
jedoch ist die Aussage mit der schnellen GUI einfach nur richtig. Wenn 
man einfach nur schnell eine funktionierende GUI haben moechte, die 
keinen besonderen Elemente enthaelt, dann erreicht man mit Java einfach 
am schnellsten sein Ziel (oder natuerlich C#).

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn es nur um Oberflächenprogrammierung ginge, könnte man durchaus Java 
verwenden. Da lässt sich schon vieles schickes recht schnell 
zusammenbauen.

Schwierig bis sehr schwierig wird es aber, wenn mit 
betriebssystemspezifischen Dingen zusammengearbeitet werden soll, sei es 
der Aufruf einer Win32-API-Funktion, das Verwenden von DLLs, von (D)COM 
oder gar die Integration von in C bzw. C++ geschriebenem Code.

Wenn mit so etwas wie libusb oder Microsofts WinUSB gearbeitet werden 
soll, wenn die FTDI-eigenen DLLs genutzt werden soll, wird das mit Java 
aufwendiger als in C bzw. C++.

Natürlich ist dann die eingangs gewünschte Portabilität auch nicht mehr 
gegeben - die FTDI-DLLs sind halt windows-spezifisch, und damit unter 
Linux so nicht nutzbar.

Andererseits lassen sich die betriebssystemabhängigen Dinge auch so 
kapseln, daß die GUI unverändert übernommen werden kann, und nur die 
gekapselten Dinge angepasst werden müssen. Hier ist Qt als GUI-Toolkit 
keine schlechte Wahl; wxWidgets wäre ein alternativer Kandidat.

von Borislav B. (boris_b)


Lesenswert?

Ich könnte noch C# mit WinForms ins Rennen werfen.

Das ist recht komfortabel in der Entwicklung, und wirklich 
cross-platform. D.h. das Programm läuft ohne Recompile auf Windows, Mac, 
Linux und sogar ARM (Rasperry Pi etc.).

von Interessant (Gast)


Lesenswert?

Boris B. schrieb:
> Ich könnte noch C# mit WinForms ins Rennen werfen.
>
> Das ist recht komfortabel in der Entwicklung, und wirklich
> cross-platform. D.h. das Programm läuft ohne Recompile auf Windows, Mac,
> Linux und sogar ARM (Rasperry Pi etc.).

Echt jetzt? Ich dachte C# ist nur Windows? Kannst Du mehr schreiben? 
Gibt es eine kostenlose Entwicklungsumgebung um Erfahrungen zu machen?

von Borislav B. (boris_b)


Lesenswert?

Interessant schrieb:
> Boris B. schrieb:
>> Ich könnte noch C# mit WinForms ins Rennen werfen.
>>
>> Das ist recht komfortabel in der Entwicklung, und wirklich
>> cross-platform. D.h. das Programm läuft ohne Recompile auf Windows, Mac,
>> Linux und sogar ARM (Rasperry Pi etc.).
>
> Echt jetzt? Ich dachte C# ist nur Windows? Kannst Du mehr schreiben?
> Gibt es eine kostenlose Entwicklungsumgebung um Erfahrungen zu machen?

Die Sprache an sich ist ja erst mal nicht Platform-spezifisch.
Spannender wird es dann beim Framework:

Unter Windows gibt es das .NET Framework, unter Linux/Mac/Android gibt 
es Mono. Die beiden sind aber so weit kompatibel, dass ein für .NET 
geschriebenes Programm genauso auf Mono läuft und umgekehrt.
Du kannst also die .exe Datei einfach von einem System auf's andere 
kopieren und dort sofort starten.

Als Entwicklungsumgebungen gibt es z.B. Visual Studio Express (Windows), 
Xamarin Studio (Mac) oder MonoDevelop (Linux).

von Interessant (Gast)


Lesenswert?

Danke für die Antwort! Kann ich auch XCode auf Mac verwenden? (Jaja, 
googeln kann ich :-)
Dann wird das doch direkt versucht.

von Interessant (Gast)


Lesenswert?

Ok, XCode ist nicht. Damit kann man aber leben. Nochmals danke für den 
Tipp.

von Borislav B. (boris_b)


Lesenswert?

Interessant schrieb:
> Kann ich auch XCode auf Mac verwenden?

Nicht dass ich wüsste. XCode beherrscht nur C++ und objC.
Ich verwende auf dem Mac Xamarin Studio, das ist ganz brauchbar ;-)

Schau mal auf der Mono-Homepage vorbei, da findest du alles was du 
brauchst (Runtime, IDEs, Sourcen, usw.)

von O. (Gast)


Lesenswert?

Tcl/Tk

von benwilliam (Gast)


Lesenswert?

finde schade das python noch nicht ins rennen geschickt wurde :)
für einfache GUI sachen ist es auch sehr praktisch


ansonsten würde ich mir wohl auch die mühe machen und C# + Mono mal 
genauer anschauen.
C# + .NET ist dem Java Framework schon lange weit davon gelaufen und 
lässt sich kaum noch vergleichen
Mit Mono hab ich leider keine Erfahrungen habe aber bisher fast nur 
gutes gehört.

von Transi-Enten-Tester (Gast)


Lesenswert?

Einfach. Hardwarenah + GUI + gute Verbreitung und Lernmöglichkeiten = 
C++. Für die GUI z.B. Qt (unterstützt die drei relevanten 
Desktop-Systeme). C# ist etwas "narrensicherer" und ich mag es auch, 
aber hier wäre es nicht meine erste Wahl.

von xarm (Gast)


Lesenswert?

Python + QT funktioniert einwandfrei plattformübergreifend. Habe da noch 
nie etwas editieren müssen.
Die Sprache ist übersichtlich und es gibt einen Haufen praktischer 
Module.

Bevor ich mir Java antun würde, würde ich lieber versuchen C++ 
plattformübergreifend zu schreiben.

von Philip K. (philip_k)


Lesenswert?

C++/Qt oder Python/PyQt
Letzeres ist vermutlich leichter zu lernen und viele Dinge, die in C++ 
relativ kompliziert sind, sind mit Python schnell hingehackt.

Soo schlimm ist das mit der FTDI API unter C++ übrigens auch nicht...

von Mehmet K. (mkmk)


Lesenswert?

Tim schrieb:
> Habe damals viel Basic und weniger Delphi programmiert.
> Zuhause bin ich eher in C womit ich meine Mikrocontroller Projekte auch
> schreibe.
> Ab und an nutze ich AutoIT für kleinere Scripte.
>
> Nun bräuchte ich aber ab und an eine GUI am PC für meine Platinen.

Habe es zwar noch nie benutzt, nur etwas herumgeschnuppert: PureBasic 
könnte was für Dich sein.
http://www.purebasic.com

von dsdasdasd (Gast)


Lesenswert?

Mein Tipp:
Lern C++. So schwierig ist es nun auch wieder nicht, vor allem weil du 
nicht alles können musst um damit produktiv zu arbeiten.
Kauf dir ein gutes Buch zu dem Thema (z.B. "Der C++ Programmierer" sowie 
"Effektiv C++ programmieren") und dann wird das schon!

Als Entwicklungsumgebung für reines C++ kann ich dir Codeblocks 
empfehlen.
Dort ist bereits das GUI Toolkit wxWidgets dabei, mit dem man 
plattformunabhängige GUIs basteln kann.
Wenn du mit Qt arbeitest, dann nimm eben Qt Creator.


Von C# kann ich nur abraten: es ist im Prinzip nur für Windows 
verfügbar.
Klar gibt es auch unter Linux die Mono VM, aber erwarte dir davon nicht 
zuviel. Diese ist Jahre hinter der Windows .NET VM hinterher, somit bist 
du damit nicht plattformunabhängig.
Mal abgesehen davon sind hardwarespezifische Details immer 
betriebssystemabhängig.
Nicht zuletzt ist Microsoft unter Linux Freaks nicht sehr beliebt, 
dementsprechend wenig Hilfe wirst du im Internet finden, ganz einfach 
weil damit eben nicht besonders viele Leute Erfahrung haben.
Hingegen kannst du davon ausgehen, dass du mit C oder C++ garantiert 
Hilfe finden wirst im Internet.

von Neues aus der Anstalt (Gast)


Lesenswert?

dsdasdasd (Gast) schrieb:

> Von C# kann ich nur abraten ..

> .. Nicht zuletzt ist Microsoft unter Linux Freaks nicht sehr beliebt,

Na das ist ja mal ein Grund der "Gewicht" hat. Nur weil der 
Mainstream-Foren-Mob das pöse C# nicht mag (weil von MS) soll man die 
Finger davon lassen?

Was für ein ideologischer Hirnkrampf!

> dementsprechend wenig Hilfe wirst du im Internet finden,

Eine glatte Lüge. Es gibt genügend Foren, die sich mit C# beschäftigen, 
ganz ähnlich wie denen, die sich mit Delphi beschäftigen, was ja auch 
nicht sonderlich gepuscht wird auf Linux Plattformen.

von Borislav B. (boris_b)


Lesenswert?

dsdasdasd schrieb:
> on C# kann ich nur abraten: es ist im Prinzip nur für Windows
> verfügbar.
> Klar gibt es auch unter Linux die Mono VM, aber erwarte dir davon nicht
> zuviel. Diese ist Jahre hinter der Windows .NET VM hinterher

Stimmt garnicht. Mono ist momentan auf dem Stand von .NET 4.5. Das 
nennst du "Jahre hinter"???

dsdasdasd schrieb:
> es ist im Prinzip nur für Windows verfügbar.

Kann es sein dass du überhaupt keinen Plan hast und hier nur rumstänkern 
willst?

von baham (Gast)


Lesenswert?

Oh mann wenn hier jetzt C# und Delphi als Alternativen auftauchen...
Plattforumübergreifend und dann zu C# greifen ist so richtig dämlich, 
davon abgesehen ist C# überflüssig wie ein Kropf.
Müll für den ganzen Programmiersprachen-Müllberg.

von Trollmeister (Gast)


Lesenswert?

baham schrieb:
> Müll für den ganzen Programmiersprachen-Müllberg.
Richtig, alles was man braucht ist Maschinencode, damit kann man 
schließlich alles machen. Mehr Programmiersprachen sind überflüssig.

von Neues aus der Anstalt (Gast)


Lesenswert?

baham (Gast) schrieb:

> Oh mann wenn hier jetzt C# und Delphi als Alternativen auftauchen...
> Plattforumübergreifend und dann zu C# greifen ist so richtig dämlich,

Dämlich ist dein Einlass hier. Delphi ist 100% plattforumübergreifend. 
C# hat seine Stärken im enormen Ausbau des Frameworks wird künftig auch 
für Systemprogrammierung eine Rolle spielen.

http://www.heise.de/newsticker/meldung/C-fuer-Systemprogrammierung-2073618.html

von Ein Gast (Gast)


Lesenswert?

Könnt ihr MS-Fans nicht einfach mal ruhig sein? In JEDEM Thread in dem 
es um Programmierung geht, kommt einer daher und will mit irgendeiner 
.NET-"Programmiersprache" nerven.

C# ist eine Windowssprache, man weiß nie wann MS vielleicht gegen Mono 
vor geht (Patente). Wenn MS .NET einstellt, dann wars das mit den 
Programmen die darauf aufbauen. Wird nie passieren? Ich sage nur 
Silverlight, DAS Plugin was Flash in Wochen vom Markt verdrängt... Oder 
für die Entwicklungsumgebung werden Gebühren verlangt, ach Halt das 
passiert ja jetzt auch schon. Wird eben die kostenlose Version 
eingestellt. :)

Man sollte sich bei der Programmierung niemals auf einen einzigen 
Hersteller fixieren. Gerade in Zeiten von Android und Co. ist das 
wichtiger denn je.

von Borislav B. (boris_b)


Lesenswert?

Ein Gast schrieb:
> Könnt ihr MS-Fans nicht einfach mal ruhig sein?

Wieso MS-Fan? Ich hab mit dem Verein garnix am Hut (benutze 
ausschließlich Linux, OSX und Android).

Ein Gast schrieb:
> Man sollte sich bei der Programmierung niemals auf einen einzigen
> Hersteller fixieren. Gerade in Zeiten von Android und Co. ist das
> wichtiger denn je.

C# läuft mit Xamarin ganz hervorragend auf Android :-)

: Bearbeitet durch User
von Seano L. (Gast)


Lesenswert?

Tim schrieb:
> Habe damals viel Basic und weniger Delphi programmiert.
> Zuhause bin ich eher in C womit ich meine Mikrocontroller Projekte auch
> schreibe.
> Ab und an nutze ich AutoIT für kleinere Scripte.
> Nun bräuchte ich aber ab und an eine GUI am PC für meine Platinen.
> Möchte auf jeden Fall Crossplatform sein und habe mich daher von QT und
> Lazarus hin und her reissen lassen.
BASIC:
RealBasic
PureBASIC
Beides Platformübergreifend, allerdings kommerziell.

Oder halt Lazarus wenn du schon Delphi kannst.

> Leider kenne ich mich aber in C++ nicht aus.
Für ein bischen GUI-Geklöppel würde ich eine Scriptsprache verwenden,
Bindings für die üblichen GUIs haben die alle an Bord. Tk reicht 
vermutlich schon, dazu Python oder Perl, mittlerweile sieht es auch 
nicht mehr so altbacken aus sondern wie native Widgets und ist wirklich 
sehr einfach zu scripten, einfacher als die nativen GUIs die angebunden 
sind.

> Es sollen keine riesen Programme werden, sondern nur
> Auswertungs-Software und Hardware-Konfiguations-Programme.
Dafür reicht obiges dicke.

von Neues aus der Anstalt (Gast)


Lesenswert?

Ein Gast schrieb:

> C# ist eine Windowssprache,

C# ist bei ECMA und ISO als Standard registriert.

Java ist übrigens auch keine Orakelsprache.

> man weiß nie wann MS vielleicht gegen Mono
> vor geht (Patente).

Oh, mal wieder ein Verschwörungs-Fanboy.

> Wenn MS .NET einstellt, dann wars das

Und wenn du morgen an der Ampel überrollt wirst, brauchst du auch keine 
Programmiersprach mehr ..

> Oder
> für die Entwicklungsumgebung werden Gebühren verlangt,

Kommerzielle Lizenzen sind Usus in der Softwarewelt (gestern wie heute). 
Auch Qt bietet kommerzielle Lizenzmodelle an oder beispielsweise 
Embarcadero. Viele Softwarefirmen leben davon. Borland hat früher sein 
Turbo C und und Turbo Pascal auch nicht verschenkt.

> Man sollte sich bei der Programmierung niemals auf einen einzigen
> Hersteller fixieren.

Quark. Wenn mich Linux nur peripher tangiert interessiert mich das ewige 
Genöle der Linuxfanboys nicht, die immer Angst haben zu kurz zu kommen, 
aber bei jeder Gelegenheit damit prahlen, jede WindowsApp unter Wine 
starten zu können.

von dsadasdad (Gast)


Lesenswert?

Neues aus der Anstalt schrieb:
>> Von C# kann ich nur abraten ..
>
>> .. Nicht zuletzt ist Microsoft unter Linux Freaks nicht sehr beliebt,
>
> Na das ist ja mal ein Grund der "Gewicht" hat. Nur weil der
> Mainstream-Foren-Mob das pöse C# nicht mag (weil von MS) soll man die
> Finger davon lassen?
>
> Was für ein ideologischer Hirnkrampf!

doch, das hat gewicht.
wenn ich mit einem bash script, einem c oder c++ programm unter linux 
probleme habe, so bekomme ich garantiert hilfe.
bei c# unter linux sieht das nun mal anders aus.

ich habe c# bereits in der arbeit verwendet, für windows ist das echt 
eine tolle programmiersprache. aber auf embedded plattformen oder 
generell auf linux mache ich einen großen bogen herum.

mal abgesehen davon wird c# nie die performance von c oder c++ 
erreichen.
in zeiten, wo es für c++ wirklich tolle frameworks wie Qt gibt, sehe ich 
für c# nicht viel grund.
gerade wo mobile plattformen immer häufiger eingesetzt werden, ist 
"going native" wieder gefragt, und da ist c# nun mal suboptimal.

c# ist für mich die typische sprache, um irgendwelche business software 
zu erstellen. wer technisch anspruchsvolle software erstellen möchte und 
nur c# kennt tut sich wohl etwas schwer am arbeitsmarkt.


also kurz zusammengefasst: c++ ist beim lernen etwas schwieriger, aber 
längerfristig hast du damit weit mehr möglichkeiten.
ich kann jedem nur c++ ans herz legen, damit habt ihr ein schweizer 
taschenmesser in der hand!
c# ist eher wie ein kreuzschraubenzieher, damit kann man gewisse 
aufgaben gut erledigen, aber bei anderen aufgaben hat man damit keine 
chance.
oder schon mal ein OS, einen treiber, o.ä. in c# gesehen?

von Borislav B. (boris_b)


Lesenswert?

dsadasdad schrieb:
> gerade wo mobile plattformen immer häufiger eingesetzt werden, ist
> "going native" wieder gefragt, und da ist c# nun mal suboptimal.

Wie kommst du darauf das C# nicht "nativ" wäre?
Von der Performance her tun sich C++ und C# übrigens nicht besonders 
viel...

: Bearbeitet durch User
von 45redfdf (Gast)


Lesenswert?

Boris B. schrieb:
> dsadasdad schrieb:
>> gerade wo mobile plattformen immer häufiger eingesetzt werden, ist
>> "going native" wieder gefragt, und da ist c# nun mal suboptimal.
>
> Wie kommst du darauf das C# nicht "nativ" wäre?
> Von der Performance her tun sich C++ und C# übrigens nicht besonders
> viel...


ich würde sagen, das kommt drauf an.
wenn du SW schreibst, die "IO bound" (z.B. GUI Anwendung) ist, dann ist 
C# schon ok.
Aber sobald du "CPU bound" SW erstellst, hat C++ die Nase vorn. Und zwar 
teilweise deutlich.

Ich hab mir einige C++ vs. C# Vergleiche im Internet angesehen.
Dabei musste ich aber feststellen, das meist Leute geschrieben haben, 
die wenig Plan von C++ hatten. Wenn man Objekte per value und nicht per 
reference übergibt, und Konzepte wie RAII nicht kennt, bringt es nicht 
viel, einen Performancevergleich anzustellen.

Und mit native meine ich, dass C# nicht in x86 Maschinencode übersetzt 
wird, sondern in einer VM läuft.
C++ hingegen wird direkt ausgeführt. Alleine schon deshalb ist C++ Code 
schneller - wenn man denn weiß wie man damit umgeht.

von Tant-Al (Gast)


Lesenswert?

45redfdf schrieb:
> Und mit native meine ich, dass C# nicht in x86 Maschinencode übersetzt
> wird, sondern in einer VM läuft.

Das ist nicht richtig. Erst wird zwar IL-Code erzeugt, dann aber auf der 
Zielmaschine (durch die CLR) nativer Maschinencode.

von sdadasda (Gast)


Lesenswert?

Tant-Al schrieb:
> Das ist nicht richtig. Erst wird zwar IL-Code erzeugt, dann aber auf der
> Zielmaschine (durch die CLR) nativer Maschinencode.

und in der Zeit ist mein C++ Programm mit der Berechnung schon durch...

von Tant-Al (Gast)


Lesenswert?

sdadasda schrieb:
> und in der Zeit ist mein C++ Programm mit der Berechnung schon durch...

Sinnloses Statement. Ich bevorzuge aus verschiedenen Gründen auch C++ 
(u.a. wegen des mehr oder weniger deterministischen Verhaltens bei der 
Speicherfreigabe), aber der Geschwindigkeitsunterschied ist nur bei sehr 
rechen- und speicherintentiven Anwendungen spürbar.

von ptr (Gast)


Lesenswert?

sdadasda schrieb:
> und in der Zeit ist mein C++ Programm mit der Berechnung schon durch...

Dann ist die Berechnung ja nicht gerade Zeit intensiv und die C# Version 
ist  1ms (Umwandlung zu Maschinencode) danach auch fertig.

Das geile an C# ist doch die enorme Produktivität, man kümmert sich um 
das eigentliche Problem und nicht so sehr um die technische Umsetzung. 
Außerdem reicht die Performance bis auf wenige rechenintensive Dinge 
völlig aus.

C++ ist eine tolle Sprache, aber wer kann von sich behaupten in ihr ein 
Profi zu sein?

von Dr. Sommer (Gast)


Lesenswert?

45redfdf schrieb:
> Wenn man Objekte per value und nicht per reference übergibt
Tja, und wenn man ganz schlau ist übergibt man Objekte dann doch per 
Value, um einen Performance-Gewinn ggü. CLR / JVM zu erhalten: Wenn man 
nämlich z.B. eine Klasse hat die nur einen Integer enthält, ist die 
Übergabe by Value genauso schnell, aber das Anlegen auf dem Heap und die 
Dereferenzierung entfällt. Gut dass man in C++ die Wahl hat...

sdadasda schrieb:
> und in der Zeit ist mein C++ Programm mit der Berechnung schon durch...
Dafür kann die Just-in-Time-Compilation den Code exakt für die Ziel-CPU 
optimieren, im Gegensatz zu C/C++ was bei PC's typischerweise für i386 
"optimiert" wird...

von Brater (Gast)


Lesenswert?

sdadasda schrieb:
> und in der Zeit ist mein C++ Programm mit der Berechnung schon durch...

Ihr habt immer Probleme mit eurer Performance. Man könnte denken, dass 
manche Leute bei ihrer GUI im Hintergrund jeden Pixel einzeln setzen 
oder 2D FFTs in Echtzeit berechnen wollen.

Eine Möglichkeit für simple GUIs ist Processing ( http://processing.org/ 
). Das basiert auf Java. Das wird beispielsweise in Verbindung mit dem 
Arduino eingesetzt (hmpf... jetzt breche ich damit wieder eine 
Grundsatzdiskussion vom Zaun).

Zu C#:
1. mit M$ .net Framework bist du auf Windoofs festgelegt ABER:
2. es gibt Mono, das nahezu genauso benutzbar ist wie der M$-Kram (was 
fehlt sind sehr spzielle Sachen wie Linq, was du am Anfang eh nicht 
brauchst), somit ist auch C# systemunabhängig. Prinzipiell sind in Mono 
jedoch keine GUI-Sachen implementiert ABER:
3. http://www.mono-project.com/Gui_Toolkits da wird sich sicherlich 
etwas passendes finden. Sogar QT Bindings sind verfügbar.

Ich mache seit einigen Jahren C/C++ und ein Jahr lang mal C# gemacht. 
Parallel zur Arbeit mache ich (kleine) Projekte weiterhin lieber in C# 
als in C++, da ein umfangreiches Framework das Programmieren sehr sehr 
vereinfacht. Außerdem lassen (zumindest mit .net unter Windoofs) sich 
die GUIs sehr schnell realisieren, ohne dass viele kryptische Dateien 
generiert werden und das Projekt aufblähen (das Aufblähen geschieht bei 
manchen GUI-Toolkits in Verbindung mit C++).

Um hier mal einige Leute zum Nachdenken anzuregen (und um ein wenig 
rumzutrollen/rumzustänkern): so viele Leute schreien über mangelnde 
Performance, programmieren aber gleichzeitig schlecht durchdachten & 
mangelhaft dokumentierten Spaghetti-Code. Dieser Code wird von ganz 
allein langsam, da bestimmte Fallstricke irgendwann übersehen werden.

Tim schrieb:
> @Dr. Sommer & Team: Java finde ich wegen der Hardwarenahen Geschichten
> nicht so passend. Hatte mir einmal NetBeans angeschaut und war nicht so
> von überzeugt...


Zum Thema hardwarenah: falls du damit beispielsweise die Kommunikation 
zu RS232 meinst: diese Kommunikation kann man auch unabhängig von der 
GUI bzw. einer GUI-Anwendung lösen. Beispielsweise könnte man die 
RS232-Kommunikation auf eine lokale TCP-Verbindung übersetzen und das 
GUI-Programm hängt sich an die TCP-Verbindung (was bei Java kein Problem 
sein sollte).
Zum Thema Netbeans: fande das damals sehr aufgebläht und hat ohne Ende 
Festplattenplatz benötigt... Elipse ftw!

von ein c++ nutzer (Gast)


Lesenswert?

Dr. Sommer schrieb:
>> Wenn man Objekte per value und nicht per reference übergibt
> Tja, und wenn man ganz schlau ist übergibt man Objekte dann doch per
> Value, um einen Performance-Gewinn ggü. CLR / JVM zu erhalten: Wenn man
> nämlich z.B. eine Klasse hat die nur einen Integer enthält, ist die
> Übergabe by Value genauso schnell, aber das Anlegen auf dem Heap und die
> Dereferenzierung entfällt. Gut dass man in C++ die Wahl hat...

Heap braucht man in dem Fall sowieso nicht.
Ich leg die Variable am Stack an, und übergeb an die Funktion einfach 
die Referenz darauf.
Man hat in C++ also folgende Vorteile:
->Übergabe per Referenz, also im Hintergrund per Adresse, ohne das man 
aber auf !=0 abfragen muss
->Kein Heap nötig
->vorhersehbarer Löschzeitpunkt des Objekts, ohne irgendeine GC Magic


void bar(const string& str)
{
 // tu irgendwas mit dem String
}

void foo()
{
 string s("irgendein text..."); // Variable liegt am Stack
 bar(s); // Übergabe per Referenz
} // und hier wird der string wieder automatisch zerstört (~string() 
aufgerufen)

Natürlich bringt es bei einem Integer nicht viel, dort übergeb ich 
einfach per copy.



Wir haben in der Firma mal eine bestehende Java SW in C++ neu 
geschrieben, und man merkte einen deutlichen Performance Boost. Gerade 
bei rechenintensiven Dingen kann man es einfach nicht leugnen, dass C++ 
spitze ist.

Ich versteh nicht ganz, warum das die .NET Fraktion nicht akzeptieren 
kann, dass es eben Sprachen gibt, die eine flottere Programmausführung 
ermöglichen.
Ich behaupte ja auch nicht, dass das .NET Framework schlecht ist, oder 
man mit C# nicht produktiv ist.
Interessanterweise heulen aber alle rum, wenn man sagt, dass guter C++ 
Code schneller ist wie guter C# Code.

von nativ (Gast)


Lesenswert?

ein c++ nutzer schrieb:
> Wir haben in der Firma mal eine bestehende Java SW in C++ neu
> geschrieben, und man merkte einen deutlichen Performance Boost. Gerade
> bei rechenintensiven Dingen kann man es einfach nicht leugnen, dass C++
> spitze ist.
>
> Ich versteh nicht ganz, warum das die .NET Fraktion nicht akzeptieren
> kann, dass es eben Sprachen gibt, die eine flottere Programmausführung
> ermöglichen.
> Ich behaupte ja auch nicht, dass das .NET Framework schlecht ist, oder
> man mit C# nicht produktiv ist.
> Interessanterweise heulen aber alle rum, wenn man sagt, dass guter C++
> Code schneller ist wie guter C# Code.

Ich verstehe nicht ganz, warum Äpfel mit Haselnüssen verglichen werden.

C++ erzeugt überlicherweise native Code. Überführt man Java oder C# in 
native Code, ist die gleiche Perfomance zu erwarten. Eine schnellere 
Abarbeitung hat also nix mit der Sprache zu tun, sondern mit der 
Umsetzung durch den Compiler. Du musst als das Kit vergleichen. Rein 
sprachlich gesehen ist C++ ein Relikt im Vergleich zu Java oder C#.

von Dr. Sommer (Gast)


Lesenswert?

ein c++ nutzer schrieb:
> Dr. Sommer schrieb:
> Heap braucht man in dem Fall sowieso nicht.
Eben - aber in den CLR/JVM Sprachen eben schon.
> Ich leg die Variable am Stack an, und übergeb an die Funktion einfach
> die Referenz darauf.
Ja oder halt direkt per Value.
> Man hat in C++ also folgende Vorteile:
> ->Übergabe per Referenz, also im Hintergrund per Adresse, ohne das man
> aber auf !=0 abfragen muss
> ->Kein Heap nötig
> ->vorhersehbarer Löschzeitpunkt des Objekts, ohne irgendeine GC Magic
Ganz genau...

Bei deinem String-Beispiel könnte man vermutlich sogar effizient 
by-Value übergeben, falls die String-Implementation ein Copy-on-Write 
implementiert...

> Natürlich bringt es bei einem Integer nicht viel, dort übergeb ich
> einfach per copy.
Ja und bei Klassen die nur ein Integer sind eben auch:
1
class MyClass {
2
  public:
3
    inline MyClass (int i) : m_index (i) {}
4
    // 9000 Funktionen
5
  private:
6
    int m_index;
7
};
8
void fun1 (MyClass obj) {
9
}
10
void fun2 () {
11
  MyClass obj (42);
12
  fun1 (obj);
13
}
Hier kann ich eine schöne Klasse mit tollem API und allem drum und dran 
haben (=> Abstraktion), aber dennoch by-Value übergeben was dann so 
effizient ist wie direkt einen Integer zu übergeben. Das geht in CLR/JVM 
gerade eben nicht.

> Wir haben in der Firma mal eine bestehende Java SW in C++ neu
> geschrieben, und man merkte einen deutlichen Performance Boost. Gerade
> bei rechenintensiven Dingen kann man es einfach nicht leugnen, dass C++
> spitze ist.
Auch wenn der rechenintensive Teil nur ein Algorithmus ganz ohne 
Speicherverwaltung ist? Weil einfach nur rechnen lässt sich ja wunderbar 
JIT-compilen.
> Interessanterweise heulen aber alle rum, wenn man sagt, dass guter C++
> Code schneller ist wie guter C# Code.
Sie wollen halt kein C++ lernen :o) ... wobei, wenn man weiß wie man 
CLR/JVM Code gut schreibt, man den auch schon ziemlich schnell kriegen 
kann.

nativ schrieb:
> Eine schnellere
> Abarbeitung hat also nix mit der Sprache zu tun, sondern mit der
> Umsetzung durch den Compiler.
Naja bei normaler Ausführung auf PC's wird ja JIT-compiled, und somit 
nativer Code ausgeführt.

nativ schrieb:
> Rein
> sprachlich gesehen ist C++ ein Relikt im Vergleich zu Java oder C#.
C++ hat zwar alte Wurzeln, wird aber immer noch weiterentwickelt (letzte 
Version von 2011) und kann sprachlich jedenfalls eine ganze Menge mehr 
Dinge als Java (C# weiß ich nicht) - von Relikt würde ich hier nicht 
reden! Und bei Java war man ja auch so schlau die dann doch etwas 
angestaubte Syntax zu übernehmen.

von ein c++ nutzer (Gast)


Lesenswert?

da kommt ja noch einiges dazu:
Index Überprüfungen zur Laufzeit, Objekte werden am Heap angelegt, GC 
läuft im Hintergrund, usw...
Alleine schon deshalb ist C# Code langsamer.
Und dann kommt ja noch die Übersetzung zur Laufzeit dazu.

Jedenfalls bei Java kann ichs sagen, da ist C++ weit voraus, und bei C# 
wirds wohl ähnlich sein.

C++ gibts jetzt in der Version C++11, da hat man alles was man von 
modernen Sprachen erwartet.
Und gewisse Dinge kann C++ bei weitem besser als Java und C#, nämlich 
die generische Programmierung. Templates hab ich sonst noch nirgends so 
mächtig umgesetzt gesehen wie in C++.

von ptr (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Hier kann ich eine schöne Klasse mit tollem API und allem drum und dran
> haben (=> Abstraktion), aber dennoch by-Value übergeben was dann so
> effizient ist wie direkt einen Integer zu übergeben. Das geht in CLR/JVM
> gerade eben nicht.

Bei C# geht sowas schon nur leider nicht mit Klassen, aber mit 
Strukturen. Diese werden auf dem Stack angelegt (also nix mit GC) und 
wird generell als value übergeben (außer man will es nicht dann als 
Referenz).

Das größte Ärgernis von C++ ist, wie ich finde, das absolut veraltete 
Forward-Declaration Headersystem, einfach grauenhaft.

von ein c++ nutzer (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Sie wollen halt kein C++ lernen :o) ... wobei, wenn man weiß wie man
> CLR/JVM Code gut schreibt, man den auch schon ziemlich schnell kriegen
> kann.

das stimmt wohl teilweise ;-)
Ich hab letztens jemanden in der Firma eingeschult, der davor nur C# und 
Java gekannt hat.
Als ich ihm gezeigt habe, wie Smart Pointer in C++ funktionieren, war er 
ganz erstaunt. Was, das geht? Wow... Wie geht denn das?
C++ gilt ja als "anfällig" für Speicherlecks, doch wenn die Leute 
erstmal sehen, wie sauber man das mit Smart Pointer implementieren kann, 
sind sie immer erstaunt. Und das ohne den Overhead eines GC!

von Heino (Gast)


Lesenswert?

> Ich versteh nicht ganz, warum das die .NET Fraktion nicht akzeptieren
> kann, dass es eben Sprachen gibt, die eine flottere Programmausführung
> ermöglichen.

Das Erfinden solcher "Tatsachen" zeugt nicht gerade von 
Diskussionsfähigkeit.

> Interessanterweise heulen aber alle rum, wenn man sagt, dass guter C++
> Code schneller ist wie guter C# Code.

Hast Du das geträumt? Niemand hier hat dem widersprochen; es wurde sogar 
explizit erwähnt, dass es bei rechenintensiven Programmen durchaus eine 
Rolle spielt. Abgesehen davon meinst Du wohl, dass das Endergebnis 
"schneller" ist; das hat nichts mit der Programmiersprache zu tun. 
Theoretisch könnte man aus C#-Code die gleiche Binary wie aus einem 
äquivalenten Stück C++-Code machen.

Jedenfalls sind meine Erfahrungen ganz andere: Ein Teil (ja, es geht 
auch ohne fantasievolle Verallgemeinerung) der C++-Fraktion dreht mit 
Schaum vor dem Mund durch, wenn man sagt, dass die Differenz bei einem 
guten Teil aller Anwendungen völlig egal ist, man aber einiges schneller 
und produktiver in C# implementieren kann. Um mal einen alten Spruch zu 
strapazieren: Wenn man nur einen Hammer zur Verfügung hat, sieht jedes 
Problem aus wie ein Nagel.

BTW: Ich mag und verwende beides.

von ptr (Gast)


Lesenswert?

ein c++ nutzer schrieb:
> Als ich ihm gezeigt habe, wie Smart Pointer in C++ funktionieren, war er
> ganz erstaunt. Was, das geht? Wow... Wie geht denn das?
> C++ gilt ja als "anfällig" für Speicherlecks, doch wenn die Leute
> erstmal sehen, wie sauber man das mit Smart Pointer implementieren kann,
> sind sie immer erstaunt. Und das ohne den Overhead eines GC!

RAII ist schon ziemlich geil und nach meiner Meinung besser als ein GC. 
Aber wie lange hat es nun gedauert bis man in C++ SmartPointer erfunden 
hat? Und wie lange wird es noch dauern bis diese endlich überall genutzt 
werden?

von baham (Gast)


Lesenswert?

Warum zur Hölle wird C# bzw .Net überhaupt genannt, wenn es definitiv um 
plattformübergreifende Programmierung geht?
Es geht mit z.B. QT + C++ oder Python problemlos plattformübergreifend, 
ohne zusätzliche Programme und Gefriemel.
.Net auf Linux zu betreiben macht doch gar keinen Sinn, wenn man sich 
auch einfach eine andere Sprache wählen kann.

von ptr (Gast)


Lesenswert?

baham schrieb:
> Warum zur Hölle wird C# bzw .Net überhaupt genannt, wenn es definitiv um
> plattformübergreifende Programmierung geht?

Weil C# plattformunabhängig (mit Mono) ist? Und weil C# eine tolle 
Sprache ist.

baham schrieb:
> Es geht mit z.B. QT + C++ oder Python problemlos plattformübergreifend,
> ohne zusätzliche Programme und Gefriemel.

Qt Programme können auch nicht ausgeführt werden, wenn auf dem System 
die Qt Bibliotheken fehlen. Python ebenso.

Um Mono zu installieren genügt ein: sudo apt-get install mono. Und du 
kannst das Binary, was auf Windows kompiliert wurde auf Linux ausführen. 
Also nix Gefriemel. Nicht mal ausprobiert, aber seinen Senf dazu geben.

von Borislav B. (boris_b)


Lesenswert?

ptr schrieb:
> Um Mono zu installieren genügt ein: sudo apt-get install mono. Und du
> kannst das Binary, was auf Windows kompiliert wurde auf Linux ausführen.
> Also nix Gefriemel. Nicht mal ausprobiert, aber seinen Senf dazu geben.

So isses. Funktioniert wirklich tadellos. Ich z.B. entwickel ganz 
komfortabel auf einem WIndows-Rechner, und kopiere die .exe dann einfach 
auf meinen Raspberry Pi, wo das Programm dann läuft. Gaanz easy :-)

von Ein Gast (Gast)


Lesenswert?

ptr schrieb:
> Weil C# plattformunabhängig (mit Mono) ist? Und weil C# eine tolle
> Sprache ist.

Nein. Und Nein.
C# ist das PHP der Systemsprachen. Ein paar wenige können damit wirklich 
Programme schreiben, aber der große Rest macht Programme wie (früher) 
die tausend "Mach deinen PC schneller".

von ptr (Gast)


Lesenswert?

Ein Gast schrieb:
> C# ist das PHP der Systemsprachen. Ein paar wenige können damit wirklich
> Programme schreiben, aber der große Rest macht Programme wie (früher)
> die tausend "Mach deinen PC schneller".

Entweder verwechselst du C# mit irgendeiner anderen Sprache oder du bist 
einfach ein echt schlechter Troll.

von Ein Gast (Gast)


Lesenswert?

Auch du ptr, wirst die Wahrheit irgendwann erkennen. Bis dahin, sei 
glücklich in deiner C#-Welt.

von baham (Gast)


Lesenswert?

>Qt Programme können auch nicht ausgeführt werden, wenn auf dem System
>die Qt Bibliotheken fehlen. Python ebenso.

>Um Mono zu installieren genügt ein: sudo apt-get install mono. Und du
>kannst das Binary, was auf Windows kompiliert wurde auf Linux ausführen.
>Also nix Gefriemel. Nicht mal ausprobiert, aber seinen Senf dazu geben.

Dann nimm halt wxWidgets, dann brauchst du nicht mal mehr die 
QT-Biblibothek.
Ich kann nicht nachvollziehen, dass man bei gezielt 
plattformunabhängigen Programmen den Weg über C# geht.
Aber bitte, jedem Tierchen sein Plaisierchen.

Bescheuert ist es weiterhin.

von wxWidgets (Gast)


Lesenswert?

kann wxWidgets auch sehr empfehlen!
eine wirklich sauber durchdachte und einfach verwendende gui.

wer glaubt er muss c# auf linux verwenden, soll es tun, ist halt wie 
wenn man nach deutschland zieht und nur englisch sprechen kann. ja es 
geht, aber viel kann man sich davon nicht erwarten.

von Borislav B. (boris_b)


Lesenswert?

wxWidgets schrieb:
> aber viel kann man sich davon nicht erwarten.

Wieso nicht? Habe bis jetzt keinerlei Einschränkungen finden können.

wxWidgets schrieb:
> ist halt wie
> wenn man nach deutschland zieht und nur englisch sprechen kann

Jetzt unstellst du, dass ich nur eine Programmiersprache "spreche"? 
Keine Angst, es sind deutlich mehr (incl. C und C++). Aber warum sollte 
ich zu C/C++ greifen wenn C# so viel besser funktioniert und die 
gleichen Ergebnisse liefert?

: Bearbeitet durch User
von Fred (Gast)


Lesenswert?

ein c++ nutzer schrieb:
> C++ gibts jetzt in der Version C++11, da hat man alles was man von
> modernen Sprachen erwartet.

Ein Hindley-Milner-artiges Typsystem? eg

von Sebastian (Gast)


Lesenswert?

Ich möchte hier auch nochmal Lazarus in die Waagschale werfen. Wer 
Delphi kennt, muß sich nicht umstellen, plattformübergreifend ist es 
auch, die Programmentwicklung so effizient wie in C#, GUI kein Problem, 
die FTDI-Bibliotheken kann man auch einbinden, oder SynaSer für 
Com-Port-Zugriff benutzen, und der wichtigste Unterschied ist, daß 
monolithische .exe-Dateien entstehen, die kein in Hintergrund 
installiertes Framework benötigen, statisch gelinkt läuft überall. Für 
mich persönlich der entscheidende Grund, Lazarus gegenüber C# den Vorzug 
zu geben.

von xarm (Gast)


Lesenswert?

>Bleibt für mich auch nur QT und Lazarus
>“(Das ist natürlich eine völlig sachliche und professionelle Tatsache
>und keine persönliche Meinung ;-)“

Kein Java zu nutzen ist ja schonmal die richtige Entscheidung ;)

Aber warum eigentlich kein Python?
Imho auch die am einfachsten zu lesende Sprache von allen genannten und 
problemlos (Ohne Gefrickel und irgendwelche "Wir versuchen Microsoft 
Produkte auch unter Linux laufen zu lassen"-Pakete) 
plattformübergreifend.
+ Undendlicher Vorrat an gut funktionierenden Modulen für zig 
Anwendungen.

von Borislav B. (boris_b)


Lesenswert?

xarm schrieb:
> Aber warum eigentlich kein Python?

Das einzige was gegen Python spricht, ist die Performance, da ja 
interpretiert wird. Wenn das nicht stört, ist Python eine super Sache.
(Mal ehrlich, in wie viel prozent aller Fälle kommt es wirklich auf die 
Performance an?)

Was mich persönlich an Python nervt ist höchstens die Einrückungs-Syntax 
;-)

von xarm (Gast)


Lesenswert?

Die Einrückungssyntax ist Gewöhnungssache, ich finde nach einiger Zeit 
erhöht das die Lesbarkeit enorm. (Besser als {} ist sowieso fast alles 
;) )


Klickibunti kann man z.B. mit QT-Creator haben. Da kann man sich eine 
Klickbunti Gui zusammenklicken und die kann man dann wirklich 
komfortabel mit Python nutzen.
Pyside und PyQT funktionieren beide gut und sind auch fast 
Syntax-identisch.
http://qt-project.org/wiki/PySide
http://qt-project.org/wiki/QtCreator_and_PySide
http://zetcode.com/gui/pyqt4/german/ <-- ist ohne klickibunti Gui Aufbau 
aber zeigt schnell die elementare Benutzung.

Für Performancekritische Sachen ist Python natürlich nicht die richtige 
Wahl, aber C++/C Module lassen sich sehr einfach einbinden und nutzen. 
(Swig & Ctypes) Große Berechnungen o.ä. kann man dann auch mit C++ 
erledigen.

Und z.B. die serielle Schnittstelle ansprechen geht in zwei eindeutigen 
Zeilen, einfacher geht es glaub ich nicht.

von ptr (Gast)


Lesenswert?

Möglicherweise spricht gegen Python die dynamische Typisierung, nicht 
jedermanns Sache. Mir gefällt sie jedenfalls nicht.

xarm schrieb:
> Imho auch die am einfachsten zu lesende Sprache von allen genannten und
> problemlos (Ohne Gefrickel und irgendwelche "Wir versuchen Microsoft
> Produkte auch unter Linux laufen zu lassen"-Pakete)
> plattformübergreifend.

Ich mach fast kein C# mehr, sondern eigentlich nur noch C/C++. Ich bin 
kein Fanboy, aber C# ist und bleibt eine Alternative. Es funktioniert 
und macht keine Probleme, da einheitliches und umfangreiches Framework. 
Die Sprache hat ein tolles Design und vereint Erfahrungen aus C, C++, 
Java etc., aber es gibt natürlich auch Dinge die Umstritten sind bzw. 
nicht jedem gefallen, wie z.B. der GC.

Diese fanatische Abneigung in der Linuxwelt gegen C# ist doch zum Teil 
ein Resultat der radikalen Einstellung gegen Microsoft und allen 
nicht-OpenSource/FreeSoftware Unternehmen. Außerdem da gibt es noch eine 
Menge Leute die sich strikt weigern etwas anderes als C und GTK+ zu 
machen.

Versteht mich nicht falsch ich will hier Niemanden C# aufquatschen. Aber 
hier wird der Programmiersprache C# einfach unrecht getan.

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.