Forum: PC-Programmierung Welche Sprache zur PC Programmierung


von Suchender (Gast)


Lesenswert?

Hallo,

ich bin ein wenig auf der Suche nach der richtigen Sprache für die 
PC-Programmierung.

Dabei geht es mir hauptsächlich um übersichtliche Anwendungen mit 
grafischer Oberfläche und Ausgabe über diverse PC-Schnittstellen bzw. 
die Schnittstellen von speziellen Peripherie-Geräten wie z.B. Midi.

Schön wäre es, wenn man die geschriebenen Anwendungen später noch gut 
auf andere Betriebssysteme als Windows portieren könnte und allzu 
kompliziert und langwierig sollte sich der Lernprozess auch nicht 
gestalten.

Gute und, wenn möglich, kostenlose Tutorials und eine große Gemeinde 
spielen also auch eine Rolle.

Mal besser und mal schlechter kennenlernen durfte ich schon diverse 
Basic-Varianten (lange ist's her), Scriptsprachen für Webanwendungen, 
selbstverständlich C sowie in jüngerer Vergangenheit etwas Java.

Davon kommt Java der einfachen und dennoch flexiblen Programmierung von 
PC-Anwendungen noch am Nächsten, allerdings gefallen mir Kleinigkeiten 
dann doch nicht. Man hat einfach hier und da das Gefühl, dass manche 
Dinge später eben irgendwie hinzugeflickt wurden. Zudem konnte mich Jave 
in ersten Versuchen zum Thema GUI-Anwendungen nicht ganz überzeugen, das 
muss einfach noch besser gehen.

C++ scheue ich ehrlich gesagt, da man dort am längsten brauchen soll, 
bis man darin wirklich gut programmiert.

Wie ist die allgemeine Meinung und Stimmung um C#, wie gut funktioniert 
das mit der Mono-Geschichte und was für eine Zukunft räumt man dem ein ?

Oder was ganz Anderes ?

von eugler (Gast)


Lesenswert?

Suchender schrieb:
> Schön wäre es, wenn man die geschriebenen Anwendungen später noch gut
> auf andere Betriebssysteme als Windows portieren könnte

Wie groß ist der Druck, dass dies passieren muss bzw. wird? Wenn die 
Zahl klein ist und es nicht nur aus "Prinzip" sein soll, würde ich zu C# 
mit VS 2010 raten. Riesen Gemeinde, super Doku und ein funktionierender 
Debugger, der das Frustrationslevel klein hält.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Wir haben einige Zeit in die Evaluierung verschiedener 
Programmiersprachen und Ausführungsumgebungen gesteckt und uns - trotz 
vorhandener Erfahrungen und einer ausgeprägten Microsoft-Abneigung - 
ausdrücklich gegen Java und zugunsten von C# bzw. .NET entschieden. Dies 
war durchaus eine sehr gute Entscheidung, obwohl Visual Studio 2008 so 
manche Instabilität aufweist.

Hinsichtlich Mono muss man jedoch genau schauen, welches Konzept von 
.NET man einsetzt. Damals (2009) hatten wir auf WPF (Windows 
Presentation Foundation) gesetzt, in der Erwartung, dass solche 
Anwendungen in Kürze auch von Mono unterstützt würden. Leider 
distanziert sich das Mono-Projekt immer stärker von WPF, obwohl es schon 
auf der Roadmap stand. :-/

Hinsichtlich neuer Anwendungen sind die Zeiten von C++ definitiv 
vorbei, da es viel zu fehlerträchtig ist. Es gibt sicherlich gute 
C++-Entwickler, die es auch heute noch einsetzen können, aber ich würde 
keinen Neuling mehr daran lassen, um in erträglicher Zeit ausgereiften 
Programmcode zu schreiben.

Python ist eine sehr schöne Sprache, die wir für einige Zwecke verwenden 
und deren Einsatz wir auch deutlich forcieren werden. Gerade im Bereich 
Testautomation usw. spielt sie ihre Stärken aus. Es gibt zwar Adaptionen 
an etliche GUI-Frameworks (z.B. PyQT, Wxwidgets, usw.), aber leider 
nichts, was wirklich nahtlos mit Python integriert ist.

von tclmen (Gast)


Lesenswert?

nimm Tcl/Tk... diese Interpretersprache ist

*ohne Einschränkungen plattforunabhängig (der installierte Interpreter 
vorausgesetzt)

*gut dokumentiert

*komplexe GUIs ist mit wenigen sind mit wenigen Zeilen realisierbar

*und Schnittstellen sind überhaupt kein Problem

von André M. (pc-fan)


Lesenswert?

Hi Suchender,

auch wenn's jetzt C++ ist werfe ich einfach mal QT in die Runde ;-)
Ich habe damit bis jetzt nur gute Erfahrungen gemacht, für die serielle 
Schnittstelle gibt es da dann z.B.:
http://www.qtwiki.de/wiki/QextSerialPort

Gruß
pc-fan

von K. (Gast)


Lesenswert?

Schon mal über LabVIEW nachgedacht?

von Suchender (Gast)


Lesenswert?

also im Moment sind Portierungen nicht nötig - es handelt sich um rein 
private Projekte und derzeit bin ich eigentlich mit Windows recht 
zufrieden. Jedoch halte ich mir immer im Hinblick auf eine eventuelle 
spätere, komerzielle Verwendung gerne ein paar Hintertürchen offen.

Die Tendenz geht in Richtung C#.
Augerechnet WPF, was ja scheinbar von Mono kaum unterstützt wird ( :/ ), 
gefällt nach erstem Überfliegen schon besser als AWT oder Swing.

@ Andreas Schweigstill
Auf was habt ihr denn gesetzt, nachdem ich euch WPF abgewandt habt ?

Aber ich ziehe auch in Erwägung, mal in TCL reinzuschauen, solange es um 
kleine Anwendungen geht.

von Εrnst B. (ernst)


Lesenswert?

Richtig "Ready for the Future" bist du mit Javascript und HTML5.

Das läuft so ziemlich überall vom Internet-Kühlschrank über 
iPhone/Pad/Android/.. bis hin zum ausgewachsenen PC oder Mac. Und dank 
ausgeklügelter JIT-Compiler auch nicht unbedingt langsamer als Java oder 
C# (was für GUIs eh nur Nebensache ist).

Nachteil: "Einfach mal RS232 ansprechen" geht nicht, dafür muss immer 
ein Server dazwischen, der z.B. RS232->TCP (WebSockets im JS) macht.

von Tobi (Gast)


Lesenswert?

@ernst,

schade eigentlich das er um den Server zu schreiben dann doch eine 
richtig Programmiersprache ala C, C++ oder Java braucht.

Gruss,
Tobi

von Εrnst B. (ernst)


Lesenswert?

Tobi schrieb:
> schade eigentlich das er um den Server zu schreiben dann doch eine
> richtig Programmiersprache ala C, C++ oder Java braucht.

Das ginge zur Not auch in Javascript, http://www.modjs.org/ ;)

Aber was er eigentlich bräuchte:

- Statisch HTML + Javascript => Lokale Festplatte oder 08/15 Webserver
- MIDI/RS232/SelbstBastelGerät <-> TCP => AVR + ENC + µIP, in C.

Für z.B. Hausautomation eine tolle Sache, zum Musizieren über MIDI eher 
nicht.

von willibald (Gast)


Lesenswert?

Suchender schrieb:
> also im Moment sind Portierungen nicht nötig - es handelt sich um rein
> private Projekte und derzeit bin ich eigentlich mit Windows recht
> zufrieden.

Dann nimm C# mit dem neuesten .NET und Visual Studio. Exzellente IDE, 
leistungsfähige Bibliotheken, die dir bezüglich GUI, Multithreading usw. 
den ganzen Routinekram abnehmen, ausgereifte Interface-Konzepte.

Auch der Garbagecollector ist eine feine Sache, wenn die Programme eine 
gewisse Komplexität überschreiten (das darf man nur hier im Forum nicht 
laut sagen).

Insgesamt steile Lernkurve, Konzentration auf die Kernaufgabe und wenig 
Rumschlagen mit Drumherumkram.

Von QT habe ich auch eine Menge Gutes gehört, aber die 
Programmiersprache ist halt C++, mit allen Nachteilen, die das hat. 
Würde ich nur dann in Kauf nehmen, wenn ich dadurch auch entscheidende 
Vorteile bekäme. Plattformunabhängigkeit wäre so ein Vorteil, ist aber 
bei dir momentan nur ein "Nice to have".

> Jedoch halte ich mir immer im Hinblick auf eine eventuelle
> spätere, komerzielle Verwendung gerne ein paar Hintertürchen offen.

Geh davon aus, dass du deine Software, bevor du sie kommerziell 
verwerten kannst, sowieso nochmal gründlich überarbeiten müssen wirst. 
Wenn du das tatsächlich tust, kannst du immer noch überlegen, sie in C++ 
neu zu schreiben.

Du wirst als relativer Noob erstmal genug zu tun haben mit C# und deinem 
Projekt. Tu dir C++ nach Möglichkeit erst dann an, wenn du ein bisschen 
Erfahrung hast und wenn die Notwendigkeit feststeht.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Suchender schrieb:
> @ Andreas Schweigstill
> Auf was habt ihr denn gesetzt, nachdem ich euch WPF abgewandt habt ?

Wir haben uns nicht WPF abgewandt. Die Unterstützung 
mono-unterstützender Betriebssysteme ist in diesem Projekt ohnehin nur 
optional, so dass wir vorerst nur Windows unterstützen.

von Fabian (Gast)


Lesenswert?

C# Express

von Suchender (Gast)


Lesenswert?

Fabian schrieb:
> C# Express

In dem Zusammenhang eine Frage: bringt es mir Vorteile, ein 
ausgewachsenes Visual Studio zu benutzen? Schließlich sind auch 
"Professional" und "Ultimate" dank MSDN AA vorerst gratis.

Oder geht das eher zu Lasten der Übersicht wegen Unmengen ungenutzter 
Funktionen ?

von raketenfred (Gast)


Lesenswert?

Ich habe auch die Ultimate hier drauf- alles nur rein zum testen 
versteht sich- habe früher aber auch mit den Express Dingern gearbeitet.

Naja halt auch einfach Nice2have- aber wirklich brauchen?! -  Die 
Express reicht schon fast für die gängisten Probleme, wenn du alleine 
entwickelst(afaik sogar auch kommerziell gratis!)

Ansonsten guck dir mal die Featureliste an- da stehen solche Sachen 
drin- aber ich denke mit C# wirste glücklich.

mfg

PS: Ich habe noch Windows Forms(Software wurde mit Visual Studio 2005 in 
der ersten Version geschrieben- das war noch alles .Net 2.0)

von Arc N. (arc)


Lesenswert?

Suchender schrieb:
> Fabian schrieb:
>> C# Express
>
> In dem Zusammenhang eine Frage: bringt es mir Vorteile, ein
> ausgewachsenes Visual Studio zu benutzen? Schließlich sind auch
> "Professional" und "Ultimate" dank MSDN AA vorerst gratis.
>
> Oder geht das eher zu Lasten der Übersicht wegen Unmengen ungenutzter
> Funktionen ?

Sagen wir mal so, das Teil ist ziemlich flexibel konfigurierbar und wenn 
die Hardware stimmt auch mit allen Erweiterungen/Modulen gleichzeitig 
benutzbar...
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/product-comparison 
ob man allerdings die ganzen Funktionen braucht, ist eine andere Frage. 
Ansonsten: Erstmal mit den Express-Versionen anfangen und falls diese 
nicht reichen upgraden.

von Suchender (Gast)


Lesenswert?

Alles klar, so werde ich das wohl probieren, also VS Express mit C#.
Die Express-Edition hat für  schlechte Bandbreiten auch die 
freundlichere Downloadgröße :)

Vielen Dank

von Christian B. (casandro)


Lesenswert?

Wenn das mal auch auf anderen Rechnern laufen soll, würde ich Lazarus 
empfehlen. Das ist ein moderner Delphi-Klon. Kompilieren kannst Du das 
für gängige Posix-Plattformen, jedoch auch Windows oder MacOSX. Im 
Gegensatz zu .net musst Du keine 60 Megabytes an zusätzlichem Zeug 
installieren um was aus zu führen. Du kopierst einfach die .exe Datei 
auf den Rechnern und sie läuft, egal ob Windows 2000 oder Windows 7.

Wenn Du Mikrocontroller vom PC aus steuern willst, so würde ich Dir 
empfehlen einen Webserver drauf laufen zu lassen, und dann die GUI mit 
dem Browser zu machen.

von avr (Gast)


Lesenswert?

Hier noch etwas Literatur dazu, damit du nicht auch
diese suchen musst:

http://openbook.galileocomputing.de/visual_csharp_2010/

Gruß avr

von Lukas K. (carrotindustries)


Lesenswert?

Ich mache an dieser Stelle ma Werbung für python.
Für die serielle Schnittstelle gibt's das sehr handliche für pyserial
Bei der Gui hast du die Wahl zwischen Gtk, qt und wxwidgets. Letzters 
eignet sich in besonderem Maße für Cross-Plattform-Entwicklung. Bei Gtk 
hast du Glade/gtkBuilder, ein Programm um dir Guis bequem 
zusammenzuklicken dabei. Auch sind dann Programm und UI halbwegs 
getrennt. Qt hat was ähnliches. Wie es um wx steht weiß ich nicht. 
Graphen malen machst du bei GTK am besten mit Cairo, was, nachdem man 
sich mit dem etwas gewöhnungsbedürftigen Zeichenmodell angefreundet hat, 
auch ganz komfortabel geht.
Auch sonst gibt es bei python für so ziemlich alles ne Bibliothek, was 
einem sehr viel Arbeit abnimmt.
Das einzige, was manch einen stört, ist die etwas ... andere Syntax, die 
Blöcke mit Einrückungen kennzeichnet, statt mit {}. Das führt allerdings 
automatisch zu wohlformatierten Programmen.

Als Beispiel (pyserial, Datei schreiben, Kommandozeilenargs) kannst du 
dir mal meinen Nadeldrucker-Simulator ansehen
Beitrag "EPSON FX-80 Simulator"

Bei bedarf kann ich noch ne kleine Glade-Anwendung hochladen.

von Sebastian (Gast)


Lesenswert?

Schließe mich dem Vorschlag von Christian Berger an: Wir verwenden in 
der Firma Delphi, haben auch schon Lazarus eingesetzt. Beides ist gut 
erlernbar, hat wenig Overhead, Applikation und Oberfläche sind praktisch 
aus einem Guss - und der Vorteil, monolithische Applikationen zu 
erstellen, die "einfach überall" ohne vorherige Installation laufen, ist 
nicht zu unterschätzen. Zudem kann man oftmals alten Turbo Pascal Code 
(immer noch gebräuchlicher als man heute denken mag) problemlos 
recyceln. Wenn man nicht gerade eine Aversion gegen pascalähnliche 
Sprachen hat.

von Mehmet K. (mkmk)


Lesenswert?

Auch ich würde Python empfehlen. Ich bin gerade dabei, eine 
Web-Applikation damit zu schreiben, weil ich mit Php im Sumpf 
steckengeblieben bin.
Macht echt Spass.
Und vermutlich werde ich auch bei Desktip-Anwendungen bei dieser Sprache 
bleiben.

von Lukas K. (carrotindustries)


Lesenswert?

Sebastian schrieb:
> "einfach überall"
x86 Windows heißt für dich also überall?
Python hingegen läuft auch auf OS X, Linux, dabei muss es nichtmal x86 
sein, ARM geht auch. Das heißt überall.
Außerdem ist man bei proprietären Programmiersprachen sehr vom 
Hersteller abhängig. Wie schon erwähnt lässt sich python für so ziemlich 
alles (einfache Konsolenprogramme, was mit GUI, webserver einsetzen), 
das spart einiges an Lernaufwand, wenn man dann mal was anders machen 
will. Oder hast du schonmal eine Website in Delphi programmiert gesehen?
Youtube ist python-basiert ...

von Yalu X. (yalu) (Moderator)


Lesenswert?

Luk4s K. schrieb:
> Sebastian schrieb:
>> "einfach überall"
> x86 Windows heißt für dich also überall?

Es ging in dem Post von Sebastian ja nicht nur um Delphi, sondern auch
um Lazarus bzw. das dahinterliegende Free Pascal, das mehr oder weniger
Delphi-kompatibel ist. Während Delphi in der Anwendung tatsächlich auf
PCs mit Windows eingeschränkt ist, ist Free Pascal unter den meisten
Betriebssystemen und Prozessorarchitekturen einsetzbar, auf denen auch
Python läuft:

  http://www.freepascal.org/

Python gefällt auch mir sehr gut, weil durch den relativ hohen Abstrak-
tionsgrad die Zeitdauer von der Idee bis zum lauffähigen Programm sehr
kurz ist. Nachteilig ist die bescheidene Ausführungsgeschwindigkeit,
wenngleich diese bei vielen Anwendungen nur eine untergeordnete Rolle
spielt. Falls man auch mit rechenintensiveren Anwendungen zu tun hat,
sollte man noch eine zweite Sprache (z.B. C++) parat haben.

Java und C# liegen bzgl. Abstraktionsgrad und Ausführungsgeschwindigkeit
zwischen C++ und Python, aber näher bei C++. Sie eignen sich deswegen
gut als Allroundlösung, wenn man alle Anwendungen mit nur einer Sprache
erschlagen will.

Aber muss man sich unbedingt auf eine Programmiersprache beschränken?
Viele von uns besitzen ein Auto und ein Fahrrad, einen Satz Schrauben-
dreher und einen Akkuschrauber, Sommer- und Winterkleidung und
betreiben mehr als ein Hobby. Warum soll man sich diesen Luxus bei der
Programmierung nicht ebenfalls leisten?

von Stefan Salewski (Gast)


Lesenswert?

>Python gefällt auch mir sehr gut,

Ich wundere mich schon etwas, warum neben Python hier nicht stets auch 
Ruby genannt wird, beide Sprachen sind ja sehr ähnlich.

von Michel (Gast)


Lesenswert?

Yalu X. schrieb:
> Aber muss man sich unbedingt auf eine Programmiersprache beschränken?
> Viele von uns besitzen ein Auto und ein Fahrrad, einen Satz Schrauben-
> dreher und einen Akkuschrauber, Sommer- und Winterkleidung und
> betreiben mehr als ein Hobby. Warum soll man sich diesen Luxus bei der
> Programmierung nicht ebenfalls leisten?

Wenn ich etwas auf dem PC haben will, dann gönne ich mir nicht den Luxus 
einen Sprachkurs zu besuchen. Darum habe ich mich für GTK und C 
entschieden.

von Lukas K. (carrotindustries)


Lesenswert?

Michel schrieb:
> Darum habe ich mich für GTK und C
> entschieden.

GTK und C bzw. GObject sind in der Tat sehr gewöhnungsbedürftig bis 
scheußlich - die Nachteile von C und OOP vereint ;)
Mit Python ist GTK hingegen sehr bequem, es macht schon beinahe Spaß 
damit zu programmieren.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Stefan Salewski schrieb:
>>Python gefällt auch mir sehr gut,
>
> Ich wundere mich schon etwas, warum neben Python hier nicht stets auch
> Ruby genannt wird, beide Sprachen sind ja sehr ähnlich.

Eben deswegen. Weil die beiden Sprache so ähnlich sind (und eine noch
ähnlichere Zielsetzung haben), beschäftigt sich kaum jemand mit beiden
gleichzeitig und nennt in seinen Kommentaren natürlicheweise diejenige,
die er besser kennt.

Dass Python weiter verbreitet ist, hängt auch weniger damit zusammen,
dass es "besser" ist, sondern dass ein paar Jahre früher entstanden ist.

von S. B. (Gast)


Lesenswert?

> Dabei geht es mir hauptsächlich um übersichtliche Anwendungen mit
>grafischer Oberfläche
das geht mit so ziemlich jeder Sprache
> und Ausgabe über diverse PC-Schnittstellen bzw.
> die Schnittstellen von speziellen Peripherie-Geräten wie z.B. Midi.
da kommt es dann auf die Ausführungsgeschwindigkeit an und somit fällt 
schon einiges flach, C und Gtk oder Pascal/Delphi mit Inline Assembler 
als Lösungsansatz.

> Schön wäre es, wenn man die geschriebenen Anwendungen später noch gut
> auf andere Betriebssysteme als Windows portieren könnte
dafür ist in der Regel Java gut, kannst aber auch mal was exotisches a 
la GL-Basic oder Purebasic, usw. versuchen, zumal der Lern- und 
Kostenaufwand da geringer ist. Ist dann natürlich ein Experiment, weil 
da der Support nur über Forenteilnehmer stattfindet ... aber why not?

> und allzu
> kompliziert und langwierig sollte sich der Lernprozess auch nicht
> gestalten.
dann würde ich doch die Sprachen nehmen, die für die Midi-Ansteuerung in 
der Vergangenheit schon benutzt wurden und Codefragmente übernehmen 
(sofern sie der Entwickler freigibt) anstatt das Rad neu zu erfinden.
Es sei denn Du willst etwas hochkommerzielles neues kreieren; da wäre 
dann der Kostenaufwand für C# etc. gerechtfertigt.

von Arc N. (arc)


Lesenswert?

S. B. schrieb:
>> Schön wäre es, wenn man die geschriebenen Anwendungen später noch gut
>> auf andere Betriebssysteme als Windows portieren könnte
> dafür ist in der Regel Java gut, kannst aber auch mal was exotisches a
> la GL-Basic oder Purebasic, usw. versuchen, zumal der Lern- und
> Kostenaufwand da geringer ist.

Welcher Kostenaufwand? Java und die Tools (Eclipse, NetBeans) sind alle 
kostenlos

> dann würde ich doch die Sprachen nehmen, die für die Midi-Ansteuerung in
> der Vergangenheit schon benutzt wurden und Codefragmente übernehmen
> (sofern sie der Entwickler freigibt) anstatt das Rad neu zu erfinden.
> Es sei denn Du willst etwas hochkommerzielles neues kreieren; da wäre
> dann der Kostenaufwand für C# etc. gerechtfertigt.

Welcher Kostenaufwand? C# und die Tools (VS Express, SharpDevelop, 
MonoDevelop) sind alle kostenlos.

von S. B. (Gast)


Lesenswert?

> Welcher Kostenaufwand? Java und die Tools (Eclipse, NetBeans) sind alle
> kostenlos.
stimmt - wobei ich Java ja auch nicht wegen der Kosten kritisiert habe, 
sondern für Midi-Programmierungen eher ungeeignet halte ... vielleicht 
klappt es ja auch damit.

> Welcher Kostenaufwand? C# und die Tools (VS Express, SharpDevelop,
> MonoDevelop) sind alle kostenlos.
okay,Denkfehler von mir, stimmt auch, hätte ich nicht gedacht - 
Microsoft hat dazu gelernt.
Wer mag soll C# oder was immer er möchte verwenden ... aber bitte nicht 
glauben das damit alles einfacher ist, hardwarenahe Programmierung hat 
so ihre Tücken.
Ein paar Fenster kann man mittlerweile mit so ziemlich jeder Sprache 
programmieren.
Unser Threadopener möchte ja die Hardware ansprechen, außerdem noch 
Plattformunabhängigkeit,usw. - das geht nicht alles mit einer Sprache 
gleichgut.
Mag sein, daß es mit C# gut funktioniert ... ich habe leider keine 
Erfahrung mit C#
Ich würde mich auch mal schlau machen, womit so Sachen wie Steinberg 
Cubase, etc. programmiert wurden :)
Die Allroundsprache für alles sehe ich jedenfalls nicht ... 
glücklicherweise, sonst würde es ja noch einseitiger als es derzeit 
schon ist.

von Platinenschwenker .. (platinenschwenker)


Lesenswert?

S. B. schrieb:
>> Welcher Kostenaufwand? C# und die Tools (VS Express, SharpDevelop,
>> MonoDevelop) sind alle kostenlos.
> okay,Denkfehler von mir, stimmt auch, hätte ich nicht gedacht -
> Microsoft hat dazu gelernt.

Und das nicht erst seit gestern. ;) Visual Studio Express gab es als 
freie Version 2005 bereits vor rund 6 Jahren. Die läuft auch noch im 
Gegensatz zu den höheren Versionen auf älteren Notebooks mit W2k und 
(nur) .NET 2.0.

Eine Anwendung die in C# und .NET erstellt wurde ist beispielsweise 
diese hier

http://www.chip.de/downloads/Paint.NET_13015268.html

von Suchender (Gast)


Lesenswert?

Hallo nochmal,

Midi war nur ein Beispiel und ich strebe weder ein eigenes Midiinterface 
noch einen höchst taktstabilen Software-Sequender an.

Wenn ich als von dem Beispiel Midi spreche meine ich so etwas wie die 
Ausgabe von SysEx-Daten zur Konfiguration einfachster Module ohne eigene 
Bedienelemente, komerziell angewendet würde sowas z.B. noch für kleinere 
Firmware-Updates Sinn machen.

Die Anfrage war aber etwas allgemeiner gemeint, man kann jetzt Midi auch 
durch serielle Schnittstelle, IRDA, Bluetooth oder sonstwas ersetzen.

Es ist eigentlich so gut wie beschlossene Sache, dass ich mir erst mal 
C# anschaue. In den Grundzügen sind die meisten OO-Sprachen eh sehr 
ähnlich und der Umstieg fällt dann nicht ganz so schwer.

Momentan bilde ich mir auch ein, ernorm von den Java-Grundlagen (und bei 
Allem unter der Objektorientierung genauso von C) zu profitieren, wenn 
man C#-Grundlagen erlernen will.

Mal schauen, ob sich das bestätigt.

von smoerre (Gast)


Lesenswert?

> Und das nicht erst seit gestern. ;) Visual Studio Express gab es als
> freie Version 2005 bereits vor rund 6 Jahren. Die läuft auch noch im
> Gegensatz zu den höheren Versionen auf älteren Notebooks mit W2k und
> (nur) .NET 2.0.
ich habe seit Win95 kein Windows Betriebssystem mehr auf meinem Rechner, 
insofern habe ich den Überblick über Microsoft-Produkte verloren, weil 
die ja nur IHR Betriebssystem mit Sprachen versorgen ... natürlich nicht 
ganz ohne Hintergedanken und es funktioniert ja auch ;-)

> Es ist eigentlich so gut wie beschlossene Sache, dass ich mir erst mal
> C# anschaue. In den Grundzügen sind die meisten OO-Sprachen eh sehr
> ähnlich und der Umstieg fällt dann nicht ganz so schwer.
Wenn Du Dich sowieso schon festgelegt hast, wieso fragst Du dann noch 
und ziehst die Sache mit C# einfach durch?
Probleme werden immer auftreten, egal mit welcher Programmiersprache.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Suchender schrieb:
> Es ist eigentlich so gut wie beschlossene Sache, dass ich mir erst mal
> C# anschaue. In den Grundzügen sind die meisten OO-Sprachen eh sehr
> ähnlich und der Umstieg fällt dann nicht ganz so schwer.

Ohhh, da unterscheiden sich z.B. C# und Python doch ganz erheblich!

Gerade Python ist ausgesprochen interessant wegen der interaktiven 
Shell, in der man sehr viele Sachen während der Entwicklung ausprobieren 
kann. Sie gehört zwar eigentlich nicht zum eigentlichen Sprachumfang, 
sondern zur Python-Umgebung.

von Arc N. (arc)


Lesenswert?

Andreas Schweigstill schrieb:
> Ohhh, da unterscheiden sich z.B. C# und Python doch ganz erheblich!
>
> Gerade Python ist ausgesprochen interessant wegen der interaktiven
> Shell, in der man sehr viele Sachen während der Entwicklung ausprobieren
> kann.

http://www.mono-project.com/CsharpRepl

von Heinz B. (Firma: Privat) (hbrill)


Lesenswert?

Wenn es eine 'low cost Sprache' sein kann,
schau mal bei
www.PureBasic.de
vorbei.

Da haste für 79 € alles unter einem Dach,
inclusive lebenslange (solange es diese Sprache gibt)
Updates.
Für Windows, MacOsX, Linux. Und alles auch noch
zusätzlich für 64 Bit.
Amiga ist zwar auch noch dabei, wird aber nicht
mehr weiter entwickelt.

Es gibt auch eine Demo zum Ausprobieren dafür.

Rs232 wird auch unterstützt.

von Rainer (Gast)


Lesenswert?

...gibt's bei freepascal alles "für lau".

http://www.freepascal.org

RS232 wird selbstverständlich auch unterstützt.

Allerdings wird es einem nicht auf dem Silbertablett serviert.

von Sebi (Gast)


Lesenswert?

zum Thema Free Pascal, vielleicht hier noch der Link zu Lazarus, der 
Entwicklungsumgebung (und mit der LCL dem Toolkit):
http://www.lazarus.freepascal.org/

Vorteile: Nativer Code, nicht interpretiert, daher sehr schnell. Voller 
Zugriff auf alle APIs des zugrunde liegenden Betriebssystem möglich. 
Multi-Plattform, ziemlich alle gängigen Betriebssysteme und Prozessoren 
werden unterstützt. Einfach zu erlernende Sprache. Und viel mehr...
Wir haben's hier seit vielen Jahren in diversen kommerziellen Projekten 
im Einsatz (und ich selbst habe in der Vergangenheit auch schon einiges 
'contributed'), und sind sehr zufrieden.

von Someone d. (Firma: Someone@euIRC) (someonenew) Benutzerseite


Lesenswert?

hat schon jemand python erwähnt?
prima für anfänger und man lernt dabei essentielle dinge wie klassen, 
vererbungen und rekursion sehr intuitiv.

python 4 president!

von Gelegenheitsprogrammierer (Gast)


Lesenswert?

Pascal Dialekt hat für mich den Nachteil, das er mit seinen 
Schlüsselworten begin..end seit dem ich C kenne doch (im Gegensatz zu C 
Dialekten) recht geschwätzig wirkt. Außerdem ist die Dokumentation von 
MS nach meiner Einschätzung insgesamt deutlich runder und vollständiger, 
sowie mit mehr Beispielen unterfüttert (was man nicht unterschätzen 
sollte).

Wo Lazarus punkten kann ist beim gleichzeitigen Abdecken mehrerer 
Plattformen (Win, Linux, Mac). Das kann allerdings QT auch - wenn man 
Code für mehrere Plattformen denn überhaupt braucht. Was da im Endeffekt 
"einfacher" (was ist schon wirklich einfach wenn man es gut beherrschen 
will?!) für den Einsteiger ist, da bin ich mir nicht sicher, das ist zu 
sehr vom persönlichen Geschmack abhängig. Ein C Dialekt (C/C++/C#) mit 
Klammerebenen ist mir aber dann im Endeffekt doch näher, als das 
ständige begin..end geschreibe. Nicht zuletzt auch wegen der 
Mikrocontroller-Programmiererei. Pascal (Turbo Pascal) habe ich damals 
gegen C (Borland, später MS) "eingetauscht" und nun noch mal zurück?? 
Ich weiß nicht ..

von P. M. (o-o)


Lesenswert?

Ich empfehle Java. Vorteile:
- Die Sprache ist objektorientiert und im C/C++-Stil. Man lernt somit 
eine Sprache, deren Syntax und Paradigmen man auch im stark verbreiteten 
C++ anwenden kann.
- Es bietet vielfältige Bibliotheken. Im Gegensatz zu vielen anderen 
Sprachen muss man sich die Bibliotheken nicht einzeln dazusuchen und 
linken, sondern man hat für fast alle Aufgaben eingebaute APIs. (GUI, 
FileIO, Netzwerk, Multimedia, Grafik etc.)
- Es ist echt plattformunabhängig. Wo die VM läuft, da läuft dein 
Programm. Es ist also nicht wie in C/C++, wo ein entsprechender Port für 
alle deine Bibliotheken gefunden werden muss. Natürlich gibt es 
exotische Systeme, wo keine VM existiert, aber um so weit zu kommen, 
müssen fast schon mutwillig Spezialaufgaben gesucht werden ;-)
- Es ist schnell, stabil und zuverlässig. Java wird oft als langsam und 
speicherhungrig bezeichnet. Das stimmte früher sehr gut, heutzutage ist 
Java absolut konkurrenzfähig. Nicht schneller als ein gut programmiertes 
C++-Programm zwar, aber für sämtliche Anwendungen ausserhalb von 
hochoptimierten Berechnungen genügt Java absolut.

Ich gebe dir aber auch den Tipp, C mal anzuschauen. Du musst nicht bis 
zur GUI-Programmierung vorstossen, aber wichtig ist, mal den ganzen 
Workflow von Includes, Bibliotheken, Compiler, Assembler, Linker, 
Makefiles etc. und Sprachkonstrukte wie Pointer, Arrays/Pointer, 
Funktionspointer, Speicherallokation, Stack/Heap etc. im Detail zu 
verstehen. Das hilft sehr viel beim Schreiben effizienter Programmen und 
verstehen von Problemen in jeglichen Sprachen.

von Suchender (Gast)


Lesenswert?

P. M. schrieb:
> Ich gebe dir aber auch den Tipp, ...

Ich möchte ja nicht unverschämt erscheinen aber einen Tipp möchte ich 
trotzdem mal mit auf den Weg geben: EINGANGSPOSTING LESEN :)

Sowohl Java als auch C sind mir keine Unbekannten.

Im Übrigen war ich nicht, wie in einem Post angemerkt, vorn vornherein 
festgelegt, eine gewisse Tendenz zum Versuch mit C# muss ich allerdings 
zugeben.
Es wurde aber auch als gute Wahl bestätigt und auch die Vetreter 
alternativer Vorschläge haben zumindest nicht Negatives dazu gesagt.

Also: why not ?

von Michel (Gast)


Lesenswert?

Suchender schrieb:
> Also: why not ?

Weil du die Anforderung "Betriebssystem unabhängig" hast und die Frage 
nach der Zukunft von Mono stellst.

War da nicht etwas mit Patenten in C#?
Hat dieses nicht zur Folge, dass Mono von der Gnade MS/Novell abhängig 
ist?

==> Die Zukunft von C#/Mono auf nicht MS-Systemen ist ungewiss.

von Arc N. (arc)


Lesenswert?

Michel schrieb:
> Suchender schrieb:
>> Also: why not ?
>
> Weil du die Anforderung "Betriebssystem unabhängig" hast und die Frage
> nach der Zukunft von Mono stellst.
>
> War da nicht etwas mit Patenten in C#?

Nur rms und seine Anbeter glaub(t)en etwas gefunden zu haben.
http://www.mono-project.com/Licensing#Patents
http://www.microsoft.com/interop/cp/default.mspx

> Hat dieses nicht zur Folge, dass Mono von der Gnade MS/Novell abhängig
> ist?
> ==> Die Zukunft von C#/Mono auf nicht MS-Systemen ist ungewiss.

typischer rms/fsf-FUD-Sprech
http://www.zdnet.com/blog/bott/ogg-versus-the-world-dont-fall-for-open-source-fud/2086

von Zwie B. (zwieblum)


Lesenswert?

Na, da bin ich lieber RMS Jünger als M$ Gläubiger.

von Arc N. (arc)


Lesenswert?

Zwie Blum schrieb:
> Na, da bin ich lieber RMS Jünger als M$ Gläubiger.

Eine Seite verbreitet Lügen und Hass wie die anderen großen und kleinen 
Sekten (aktuell min. sieben Lügen auf http://de.windows7sins.org), die 
andere nicht.

von P. M. (o-o)


Lesenswert?

Michel schrieb:
> ==> Die Zukunft von C#/Mono auf nicht MS-Systemen ist ungewiss.

Bei Java schaut es dank Oracle aber auch nicht so sehr anders aus.

von Martin (Gast)


Lesenswert?

smoerre schrieb:
> ich habe seit Win95 kein Windows Betriebssystem mehr auf meinem Rechner,
> insofern habe ich den Überblick über Microsoft-Produkte verloren, weil
> die ja nur IHR Betriebssystem mit Sprachen versorgen ... natürlich nicht
> ganz ohne Hintergedanken und es funktioniert ja auch ;-)

Microsoft hat jahrelang Haskell-Compiler bereitgestellt, und zwar erst 
für FreeBSD, dann erst einige Zeit später für Windows.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Martin schrieb:
> Microsoft hat jahrelang Haskell-Compiler bereitgestellt, und zwar erst
> für FreeBSD, dann erst einige Zeit später für Windows.

Naja, Haskell kommt ja nicht direkt von Microsoft, sondern von einem
Konsortium, dem neben der Forschungsabteilung von MS (Microsoft
Research, MSR) noch mehrere Uni-Institute und Firmen angehören.
Allerdings ist MSR mit Simon Peyton-Jones und Simon Marlow maßgeblich an
der Sprachspezifikation und der Compilerentwicklung (GHC) beteiligt.

Trotz der regen Beteiligung von MS an Haskell muss man aber zwischen MSR
und der Produktentwicklungsabteilungen von MS unterscheiden. Im
Gegensatz zu letzteren scheint MSR weitgehende Narrenfreiheit innerhalb
der Firma zu haben, und ich kann mir gut vorstellen, dass die Redmonder
Führungsriege gar nicht so genau weiß, was ihre Kollegen in Cambridge
(UK) da so genau treiben. Jedenfalls benutzen sie für ihre Entwicklungen
auch "böse" Software wie Linux, BSD und GCC, weswegen der GHC unter
Windows nur unter Zuhilfenahme von MSYS/MinGW oder Cygwin läuft. Zudem
wird der Windows-Port von GHC m.W. von Leuten gepflegt, die nicht bei MS
angestellt sind.

Der Vorteil dieser etwas seltsamen Konstellation ist, dass Haskell wohl
nie ein MS-Produkt werden wird ;-)

von Michel (Gast)


Lesenswert?

Arc Net schrieb:
> Nur rms und seine Anbeter glaub(t)en etwas gefunden zu haben.
> http://www.mono-project.com/Licensing#Patents

Danke für den Link -- aber ein klares "Nein, es gibt keine Risiken" 
sieht anders aus. Dort wird lediglich die Frage "Could patents be used 
to completely disable Mono?" verneint. Es bleiben dennoch Risiken (wie 
niedrig auch immer) für mögliche Einschränkungen (wie minimal auch 
immer).

Kein Grund hier unsachlich zu werden und den Sektenbeauftragten auf den 
Plan zu rufen. Kein Grund Microsoft als besonders kundenfreundlich 
darzustellen, so dass man schon den Verdacht bekommt, dass Microsoft die 
Interessen der Aktionäre sträflich vernachlässigt und die EU Bußgelder 
willkürlich auferlegt.

von Arc N. (arc)


Lesenswert?

Yalu X. schrieb:
> Trotz der regen Beteiligung von MS an Haskell muss man aber zwischen MSR
> und der Produktentwicklungsabteilungen von MS unterscheiden. Im
> Gegensatz zu letzteren scheint MSR weitgehende Narrenfreiheit innerhalb
> der Firma zu haben, und ich kann mir gut vorstellen, dass die Redmonder
> Führungsriege gar nicht so genau weiß, was ihre Kollegen in Cambridge
> (UK) da so genau treiben. Jedenfalls benutzen sie für ihre Entwicklungen
> auch "böse" Software wie Linux, BSD und GCC, weswegen der GHC unter
> Windows nur unter Zuhilfenahme von MSYS/MinGW oder Cygwin läuft.

F# erst reines MSR-Cambridge-Projekt, dann Teil von Visual Studio und 
danach Open Source.
eMips kommt direkt aus Redmond und nutzt NetBSD, gcc und gdb
ASP.NET MVC, Boogie (Programm-Verifikation), Orchard (WebCMS) und div. 
andere größere und kleinere OSS-Projekte auf CodePlex und die Outercurve 
Foundation (früher CodePlex Foundation) dürfte selbst dem Chef bekannt 
sein...

Michel schrieb:
> Danke für den Link -- aber ein klares "Nein, es gibt keine Risiken"
> sieht anders aus. Dort wird lediglich die Frage "Could patents be used
> to completely disable Mono?" verneint. Es bleiben dennoch Risiken (wie
> niedrig auch immer) für mögliche Einschränkungen (wie minimal auch
> immer).

Weil das niemand mit Sicherheit behaupten kann.
Kurz gesagt: Bei den heutigen Patenten, Patentgesetzen bzw. der 
Rechtsprechung dazu kann dir so gut wie jede Zeile Code in egal welcher 
Sprache, mit jedem beliebigen Framework auf allen Betriebssystemen um 
die Ohren fliegen.


> Kein Grund hier unsachlich zu werden und den Sektenbeauftragten auf den
> Plan zu rufen. Kein Grund Microsoft als besonders kundenfreundlich
> darzustellen, so dass man schon den Verdacht bekommt, dass Microsoft die
> Interessen der Aktionäre sträflich vernachlässigt und die EU Bußgelder
> willkürlich auferlegt.

OT: Hab ich was verpasst und es gab in den letzten Jahren tatsächlich 
Gesetze/Verordnungen die nicht willkürlich ausgelegt werden bzw. die 
nicht direkt für solche Willkürmaßnahmen gedacht sind? EU-Haftbefehl, 
Vorratsdaten (nicht nur die eher harmlose VDS in DE, sondern z.B. 
Indect), Vertrag von Lissabon, Terrorlisten etc.pp

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die Patentsituation würde ich nicht als Problem für Mono ansehen. Gerade
weil es so viele offene Fragen gibt, würde sich ein Rechtsstreit bspw.
zwischen MS und Novell so lange hinziehen, dass MS selbst im Falle eines
Erfolgs keinen Nutzen daraus ziehen würde. Ich glaube, MS hat — wie auch
andere — diesbezüglich einiges aus dem SCO-Prozess gelernt.

Auch patentbezogene FUD-Attacken gegen die Allgemeinheit laufen ins
Leere. Das hat Ballmer mit seiner Anti-Linux-Kampagne feststellen
müssen, und RMS wird mit seinen Anti-Mono-Parolen auch nicht viel
erfolgreicher sein.

Patentdrohungen sind allenfalls dazu geeignet, gezielt kleinere Wettbe-
werber mundtot zu machen, was aber im Fall Mono (und Opensource-Software
insgesamt) die Situation nicht wesentlich ändert.

Die einzige Gefahr für Mono sehe ich darin, dass irgendwann niemand mehr
Interesse daran hat, es weiterzuentwickeln. Die meisten Linux-User
werden aber wahrscheinlich nicht einmal merken, wenn die Entwicklung
eingestellt wird, da sie Mono gar nicht benutzen. Auch für mich
persönlich ist Wine wichtiger als Mono, da es zwar ein paar Windows-
Anwendungen gibt, die ich auch gerne auf meinem Linux-Rechner laufen
lasse, keine einzige davon aber auf .NET basiert. An diesem Zustand wird
auch nur mäßig viel ändern, da kaum eine Softwarefirma einen nennenswer-
ten Vorteil darin sehen wird, ihre bestehende Windows-Native-Software
auf .NET zu portieren.

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.