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 ?
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.
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.
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
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
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.
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.
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.
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.
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.
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 ?
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)
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.
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
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.
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.
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.
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.
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 ...
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?
>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.
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.
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.
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.
> 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.
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.
> 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.
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
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.
> 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.
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.
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
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.
...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.
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.
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!
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 ..
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.
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 ?
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.
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.
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.
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 ;-)
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.
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
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.