Hi! Nachdem mein letzter Thread in einem langen Glaubenskrieg ausartete und mir keiner die richtige Programmiersprache für meine Zwecke ans Herz legen konnte habe ich mich nun unglücklicherweise dazu entschieden auf Linux umzusteigen, da mir die Oberfläche und die Möglichkeiten einfach 10 mal besser gefallen. Jedoch weiß ich noch nicht ob ich das gleich tue oder erstmal beide OS' parallel verwende. Ich habe nun mit einem meiner Meinung nach recht schlecht strukturierten Buch ein wenig C# gelernt und fühle mich vom Sprachkonzept erstmal erschlagen, aber das wird mir bei C++ ja auch blühen. Mit Mono kann man ja nun C#.NET auch unter Linux verwenden. Allerdings frage ich mich, ob das dann noch so hübsch aussieht wenn ich da mit Windows Forms rumprogrammiere und ob ich die funktionen von Linux auch ausnutzen kann. Für Windows Systemprogrammierung gibt es da ja klassen, wie siehts für Linux aus? Wäre es sinnvoller auf C++ umzusteigen und sich vom .NET kram abzuwenden? Es muss nicht sein dass ich ein Programm plattformübergreifend schreibe, ich kompiliere es auch gerne zweimal und schreibe es für jedes System ein wenig um. Das sind meine Anforderungen an die Programmierung nochmal: - Bin nur Gelegenheitsprogrammierer - Programme für Linux (Ubuntu) und Windows XP schreiben - Zugriff auf die serielle Schnittstelle - Schöne GUIs erstellen, auch mit Trayleiste usw. (und was es bei linux so gibt) - Ein bisschen Grafikprogrammierung um Statistiken usw. darstellen zu können Der PC ist quasi nur ein Massenspeicher und Ein-/Ausgabegerät mit hübschem GUI für meine µC-Anwendungen. Was mach ich nun? Weiter mit C# oder doch was anderes? lg PoWl
Wenn Du mit einem kommerziellen Produkt leben kannst, sieh Dir mal RealBasic an. Das kann Applikationen für Windows, Linux und sogar Mac OS X erzeugen. Ansonsten wäre C++ und ein plattformübergreifend verfügbares GUI-Toolkit zu empfehlen, Qt und wxWidgets kämen da beispielsweise in Frage. Das beliebte "Terminal"programm hTerm von Tobi ist mit wxWidgets geschrieben worden und sollte sich daher auch auf Mac OS X und Linux portieren lassen (das müsste, in Ermangelung allgemein zugänglicher Sourcen allerdings Tobi selbst machen).
Paul Hamacher wrote: > Hi! > > Nachdem mein letzter Thread in einem langen Glaubenskrieg ausartete und > mir keiner die richtige Programmiersprache für meine Zwecke ans Herz > legen konnte habe ich mich nun unglücklicherweise dazu entschieden auf > Linux umzusteigen, da mir die Oberfläche und die Möglichkeiten einfach > 10 mal besser gefallen. Jedoch weiß ich noch nicht ob ich das gleich tue > oder erstmal beide OS' parallel verwende. > Ich habe nun mit einem meiner Meinung nach recht schlecht strukturierten > Buch ein wenig C# gelernt und fühle mich vom Sprachkonzept erstmal > erschlagen, aber das wird mir bei C++ ja auch blühen. C++ würde ich lernen wenn du Zeit und Motivation hast, ansonsten ist es eine wiklich mächtige Spache, so richtig zum rumfreaken ahja aber du wirst sowieso mehr als eine spache lernen, für jedes Projekt eine eigene ;D > Mit Mono kann man ja nun C#.NET auch unter Linux verwenden. Allerdings > frage ich mich, ob das dann noch so hübsch aussieht wenn ich da mit > Windows Forms rumprogrammiere und ob ich die funktionen von Linux auch > ausnutzen kann. Für Windows Systemprogrammierung gibt es da ja klassen, > wie siehts für Linux aus? es gibt einmal die ganzen POSIX funktionen, dann würdes du dich aber an (L|U)nix OSs binden (Linux, Unix, Solaris, BSD, Mac OS X, Windows mit Cygwin) mit Qt gibt es auch klassen für linux/windows > Wäre es sinnvoller auf C++ umzusteigen und sich vom .NET kram > abzuwenden? Es muss nicht sein dass ich ein Programm > plattformübergreifend schreibe, ich kompiliere es auch gerne zweimal und > schreibe es für jedes System ein wenig um. > Das sind meine Anforderungen an die Programmierung nochmal: > - Bin nur Gelegenheitsprogrammierer > - Programme für Linux (Ubuntu) und Windows XP schreiben > - Zugriff auf die serielle Schnittstelle > - Schöne GUIs erstellen, auch mit Trayleiste usw. (und was es bei linux > so gibt) > - Ein bisschen Grafikprogrammierung um Statistiken usw. darstellen zu > können Python (glaube mir ich kenne die alternativen wie C++, C, Java zu genüge) > Der PC ist quasi nur ein Massenspeicher und Ein-/Ausgabegerät mit > hübschem GUI für meine µC-Anwendungen. > > Was mach ich nun? Weiter mit C# oder doch was anderes? Ich denke keine Sprache wird leichtverdaulich, wenn du gleich mit GUI-Programmierung anfängst. wenn du nur graphen zeichnen willst, könntes du dir gnuplot anschauen einfach eine gnuplot datei von deinen programm schreiben lassen und dann gnuplot damit starten läst sich leichter entwickeln da man die zwischenprodukte leichter einsehen kann.
Nunja danke für die Antworten erstmal! Also wie gesagt, wenn C# die gleichen Möglichkeiten für Windows wie auch mit Mono für Linux bietet, bin ich bereit mich da weiter reinzuhängen. Ansonsten würde ich gerne umsteigen auf etwas, das für mich auch zukunftssicher ist. Von Phyton hab ich schon gehört und dass es recht einfach sei. Ist das eine interpretierte Sprache? Wenn die für meine Anwendungszwecke ausreicht und ich damit schöne Programme für Linux und Windows programmieren kann, wäre das eine echte Aternative (auch wenn mir die Syntax nicht gefällt und ich gerne meine Programme auch weitergeben würde und daher nicht erwarten kann, dass sich jemand für ein läppisches Programm einen Interpreter auf seinen PC installiert. Nur Graphen möchte ich natürlich nicht zeichnen, das war nur ein Beispiel. Im Großen und Ganzen möchte ich eben verschiedene Anwendungen für die Kommunikation mit meinem Elektronikzeugs schreiben, deshalb wie gesagt nur Gelegenheitsprogrammierer bleiben und keine riesenhaften Softwares schreiben. lg PoWl
Die Wahrscheinlichkeit, dass Python schon vorinstalliert ist, ist gar nicht so klein wie Du denkst. Die Syntax ist wohl Ansichtssache .. aber mir gefällt sie. Python ist nicht deswegen "einfach" weil es eingeschränkt ist, sondern weil die komplexen Sachen einfach gemacht werden. Zum Beispiel Umgang mit Listen, Tuples, Dictionary. Natürlich nicht für uC Anwendungen ;) Aber für alles bis vielleicht zur der Grenze wo zig tausend Objekte pro Sekunde erzeugt/vernichtet werden müssen. Für eine Anwendung von Komplexität einer Datenbank wäre es wohl zu langsam.
Unter Linux, speziell Ubuntu (Gnome), wuerde ich das GTK-Toolkit (C) mit der IDE Anjuta nehmen.
Direkt in C wollte ich nach Möglichkeit nicht programmieren, da die Stringverarbeitung da recht aufwändig ist und ich nicht die Möglichkeit habe OOP zu programmieren, wenn ich das will. Auch die Arbeit mit grafischen Oberflächen ist afaik eher kompliziert. Wie gesagt, ich möchte Applikationen erstellen, die ich für Windows und Linux kompilieren kann, wobei jeweils nur kleine Änderungen nötig sind (z.B. unterschiedliche Ansteuerung der seriellen Schnittstelle, unterschiedliche Möglichkeiten zur GUI Programmierung)
Das schreit dann foermlich nach Python. Die leistet alles, was du in deinen Anforderungen beschreibst. Auch plotten kann man damit leicht (Pyplot, Gnuplot, etc.). Z.B. nehmen wir hier Python, um ueber den Parallelport mit unseren FGPA-Datenloggern zu kommunizieren, oder zu interaktiven steuerung von Atmegas ueber den seriellen Port. Mit dem GTK-Toolkit kann man auch objektorientiert programmieren, dafuer gibt es einen C++-Wrapper: gtkmm (http://www.gtkmm.org/)
Ich würde eine JVM-basierte Sprache empfehlen, z.B. Java oder JRuby. Da hast du eine Menge Bibliotheken zur Verfügung, und deine Programme laufen überall wo es eine JVM gibt ohne große Anpassungen.
Hallo Paul, Versuche es doch mal mit QT. Es ist mit den Strings wirklich einfach. Da kannst du Strings einfach addieren! Auch der Designer ist genial. QT ist auch Plattformübergreifend also Windows/Linux kein Problem. Grüsse, Tom
mal wieder die Nachtschwärmer unterwegs, was? wärst mal lieber bei Windows geblieben, da gibt es gute, ausgereifte Oberflächen wie die MS Express Versionen; aber als Anfänger gibt es ja auch noch CodeBlocks oder wenn es nur C sein darf die schöne Oberfläche von Pelle www.smorgasbordet.com/pellesc/ das Ergebnis kannst ja dann auch unter Wine laufen lassen im Übrigen scheint der Glaubenskrieg mal wieder voll entbrannt mit java würd ich nix machen, gegen eine schön nativ compilerte exe oder wegen mir auch einen dot net msil code ist das doch gefühlsmässig lahm, bis es zur Ausführung kommt so, jetzt geh ich in die Heia und zähl Codezeilen und bUgs bis ich einschlafe hehe
Nachtschwärmer wrote: > mal wieder die Nachtschwärmer unterwegs, was? > > wärst mal lieber bei Windows geblieben, da gibt es gute, ausgereifte > Oberflächen wie die MS Express Versionen; Windows und ausgereift, das ist ein Widerspruch in sich. Windows 95 bis Windows XP bestehen fast nur aus Hilfscode, um illegale Funktionsaufrufe von um die WinAPI herum programmierten Apllikationen abzufangen. Was meint ihr wohl, warum die Registry so anschwillt. Und unter Windows Vista will keiner mehr Programmieren, da die gut funktionierende API durch den .NET-Mist mit einem Haufen von Pseudosprachen ersetzt wurde. Warum bestehen wohl die Browser von MS bis heute nicht die ACID-Tests? Weil man auch in Redmond erkannt hat, dass der Trend zu Webapplikationen geht, bei denen es Wurst ist, welches OS auf dem Client laeuft. Und diesen Trend weg von nativen Apps will man dort nicht noch unbedingt b schleunigen.
Bitte Leute, lasst diesen Thread nicht wieder in irgendwelchen ellenlangen Diskussionen ausarten wo niemand so richtig bescheid weiß aber trotzdem jeder irgendeine andere Halbwahrheit erzählt und das Thema des ersten Posts völlig untergeht. Könnt ihr mir Python ans Herz legen? Geht das damit alles? Dateiverwaltung, GUI für Windoof und Linux, Serielle Schnittstelle,.. und das alles ohne so riesigen Aufwand wie bei C, C++, C#... ? Ist Python denn nun eine Scriptsprache? Liegen die Programme als Scriptdateien vor und werden dann von einem Python-Interpreter ausgeführt? Wie schnell ist es, wenn ich in echtzeit Graphen zeichnen möchte? (z.B. ein Oszilloskop das die Daten Seriell zugeschickt bekommt) Weiß denn jemand von euch in wie fern C# dann nun mit Linux kompatibel ist? Wahrscheinlich trotz Mono nicht besonders, oder? lg PoWl
tom wrote: > Hallo Paul, > > Versuche es doch mal mit QT. > > Es ist mit den Strings wirklich einfach. > Da kannst du Strings einfach addieren! > Auch der Designer ist genial. > QT ist auch Plattformübergreifend also Windows/Linux kein Problem. Das geht mit jeder STANDARD-Template-Library (STL). Qt ist zwar hübsch, wenns läuft, aber wenns ums Programmieren damit geht, ist QT (m.A.n.) TOTALER MURKS. Da gibt es schon leistungsfähige Objektorientierung in C++, aber nein, QT muss natürlich noch Metaobjekte und den MOC einführen... (Wenn man in QT eine "Fensterklasse" schreibt, dann erzeugt das mitgelieferte Tool MOC dadraus, also auf Quelltextebene, ein paar zusätzliche Quelldateien, die sog. Metaobjekte enthalten. Damit regelt QT dann seinen SIGNAL-Krempel.) Dass es anders geht, wurde mit sig++ ja bereits gezeigt.
Paul Hamacher wrote: > Könnt ihr mir Python ans Herz legen? Geht das damit alles? > Dateiverwaltung, GUI für Windoof und Linux, Serielle Schnittstelle,.. Ja, geht alles. > und das alles ohne so riesigen Aufwand wie bei C, C++, C#... ? Wir haben hier einen Diplomanden, der unter Python ohne weitere Programmiererfahrung schon nach kurzer Zeit seriell mit seinem uC sprechen konnte. Das will was heissen :-) Fuer die GUI gibt es wxwidgets. > Ist Python denn nun eine Scriptsprache? Liegen die Programme als > Scriptdateien vor und werden dann von einem Python-Interpreter > ausgeführt? Ja, die kann man aber auch vorkompilieren, so dass vom Laufzeitverhalten kein grosser Unterschied zu C# besteht. > Wie schnell ist es, wenn ich in echtzeit Graphen zeichnen möchte? (z.B. > ein Oszilloskop das die Daten Seriell zugeschickt bekommt) Da ist die serielle Schnittstelle der begrenzende Faktor. Olli
>Ja, die kann man aber auch vorkompilieren, so dass vom Laufzeitverhalten >kein grosser Unterschied zu C# besteht. Naja...das einzige was da "kompiliert" wird, ist doch dass der Textbasierte Quellcode in Binäre Tokens umgewandelt wird, womit das natürlich schon relativ aufwändige Parsen entfällt. An C# insbesondere auf MS.NET (ja, das ist wirklich schnell) kommt das niemals ran. File I/O, GUI etc, alles kein Problem mit Python, im Bereich File I/O sind die Libraries von Python und auch Ruby sowieso genial. Ärger kriegst du höchstens mit der seriellen, bzw. kann es da sein dass du für Linux und Win32 auch mal selber wieder ein bisschen hand anlegen musst. Wenn du plattformunabhängige Utilities schreiben willst mit GUI etc, nimm Python oder Ruby. Willst du was wirklich universelles haben, lern C und C++, dann bist du auch im Embeddedbereich dabei.
Ich glaube die Fährte führt mich immer mehr zu Python. Ich würde sagen, dass ich C++ dann eher irgendwann später mal lerne wenn ich auch Zeit dazu habe. Dass ich mit C# jetzt angefangen hab ist halt unglücklich, da ich das ganze Wissen darüber wieder verwerfen muss. lg PoWl
Paul Hamacher wrote: > Dass ich mit C# jetzt angefangen hab ist halt unglücklich, da ich das > ganze Wissen darüber wieder verwerfen muss. Das wird Dir immer so ergehen, wenn du mit proprietaerer Software (gilt gleichfalls fuer Hardware) arbeitest. Irgendwann ist das erarbeitete Wissen im Gulli, wenn die Plattform nicht weiter entwickelt wird. Kann bei Open Source nicht passieren. Olli
> Warum bestehen wohl die Browser von MS bis heute nicht die ACID-Tests? Warum sollten sie? Damit das im Vergleich zu nativen Applikation zu 99.9% unbrauchbare AJAX-Gezappel überall läuft? > Weil man auch in Redmond erkannt hat, dass der Trend zu Webapplikationen > geht, bei denen es Wurst ist, welches OS auf dem Client laeuft. Und > diesen Trend weg von nativen Apps will man dort nicht noch unbedingt b > schleunigen. Einfach mal versuchen über den Tellerrand zu schauen... > Und unter Windows Vista will keiner mehr Programmieren, da die gut > funktionierende API durch den .NET-Mist mit einem Haufen von > Pseudosprachen ersetzt wurde. > Das wird Dir immer so ergehen, wenn du mit proprietaerer Software (gilt > gleichfalls fuer Hardware) arbeitest. Irgendwann ist das erarbeitete > Wissen im Gulli, wenn die Plattform nicht weiter entwickelt wird. Kann > bei Open Source nicht passieren. Und bei solchen unqualifizierten Kommentaren erübrigt sich jede ernsthafte Diskussion. Zur Frage des TOs: Bleib entweder bei C# bzw. mach mal ein paar Sachen damit und teste die mit dem Mono Migration Analyzer (Moma) gegen eine aktuelle Mono-Version (>= 1.9). Der weitaus überwiegende Teil der Sachen wird problemlos laufen. Statt WinForms, kann auch problemlos GTK# oder auch wxNET zum Erstellen des UI genutzt werden. Oder eben Ruby oder Python, die es im übrigen auch mit Zugriff auf das gesamte Net Framework gibt: IronRuby bzw. IronPython.
Ich mein es gibt ja auch so sonderfunktiönchen wie rahmenlose Windows, halbtransparente Böxchen die ich auf dem Desktop fixiere, die dann einblenden sobald ich mit der Maus drüberhovere. So nette gimmicks halt. Krig ich das über C# auch mit Linux hin? Liege ich mit der Annahme, dass C# eher nur für den gebrauch mit Windows zu verwenden ist falsch? In .NET gibt es ja sicher n haufen Klassen für Windows Systemprogrammierung, bei Linux seh ich da wohl eher alt aus, oder? lg PoWl
Paul Hamacher wrote: > Ich mein es gibt ja auch so sonderfunktiönchen wie rahmenlose Windows, > halbtransparente Böxchen die ich auf dem Desktop fixiere, die dann > einblenden sobald ich mit der Maus drüberhovere. So nette gimmicks halt. > Krig ich das über C# auch mit Linux hin? Prinzipiell ja, prinzipiell nein. Bei Windows ist ja alles zusammengematscht, bei Linux kannste deine graphische Oberfläche dagegen leicht austauschen. Ob dein buntes Gezappel jetzt auch unter Linux funktioniert, hängt davon ab, ob diese austauschbare Oberfläche (KDE+QT, Gnome+GTK etc.) das unterstützt. Dieses Transparenzgerümpel könnte man unter Linux z.B. mit Compiz realisieren. > Liege ich mit der Annahme, dass C# eher nur für den gebrauch mit Windows > zu verwenden ist falsch? In .NET gibt es ja sicher n haufen Klassen für > Windows Systemprogrammierung, bei Linux seh ich da wohl eher alt aus, > oder? Irgendwo siehst du das schon richtig denk ich, die Frage ist halt, wie abstrakt deine .NET-Klassen gehalten sind und wie es dann um Mono steht. Auf der Mono-Seite muss halt erheblicher Mehraufwand getrieben werden. Während .NET für Windows eine Benutzeroberfläche malen können muss, muss Mono unter Linux mit allem Möglichen klarkommen (KDE, QT, Gnome, GTK, FVWM, X11 und was noch alles dazugehört).
Die Sonderfunktiönchen sind dann halt schon wieder OS-Abhängig. Auf X11 musst du halt damit rechnen, dass ein Benutzer gar keinen Windowmanager installiert hat der sowas wie einen Desktop wo man Icons drauf speichern kann oder einen Taskbar hat. >Liege ich mit der Annahme, dass C# eher nur für den gebrauch mit Windows >zu verwenden ist falsch? In .NET gibt es ja sicher n haufen Klassen für >Windows Systemprogrammierung, bei Linux seh ich da wohl eher alt aus, >oder? Das Problem hast du immer, mit .NET, mit Python, mit Ruby, mit C++, mit xyz. Du musst dir im Klaren sein welche OSe du unterstützen willst und dich entweder auf ein Featureset einschränken welche alle deine Zielsysteme anbieten (Tray-Icons gehören eher nicht dazu bzw. das Vorgehen um so ein Ding zu erstellen ist komplett verschieden. Mein Windowmanager hat jedenfalls keine Traybar), oder du bist dann halt plötzlich doch wieder nicht plattformunabhängig.
Hm, alles kompliziert. Wie gesagt ich möchte für Linux und Windows programmieren. Ja klar, Windows und Linux haben jeweils ihre eigenen features. Ich dachte mir blos, dass es da eventuell Überschneidungen gibt und irgendwelche Toolkits mir als einheitliche Schnittstelle dienen. Mir ist es auch recht, wenn ich für beide OS' verschiedene Teile des Programms separat bzw. zweimal programmieren muss. (Kann man im Programm eine Abfrage machen ob Windows oder Linux verwendet wird und dann zur Laufzeit die richtigen Funktionen aufrufen?) Die Frage war eher auf C# und .NET bezogen. Das läuft ja alles auf eher hoher Ebene und nicht allzu nahe am Betriebsystem. Für Windows Systemprogrammierung gibt es da klassen, auf Linux ist .NET ja nun überhaupt nicht ausgelegt, demnach gibt es dafür keine Klassen. Wie komm ich dann aber überhaupt bei Linux ans System heran um so Spielereien wie Transparenz bla blub überhaupt zu ermöglichen? Sollte ich da mal in nem Programmiererforum nachfragen? lg PoWl
Es wurde dir hier schon mehrfach die Verwendung von wxwidgets als Toolkit empfohlen. Das gibt es fuer alle von dir genannten Plattformen, und es spielt mit Python, C++, C, GTK+, qt und was weiss ich nicht allem zusammmen. Warum stellst du immer wieder dieselben Fragen? Mach einfach!
LabVIEW-Progrogramm ------------------- Ich möchte nicht in einen Sprachenstreit meine Zeit investieren, aber vielleicht ein kleines Beispiel. Das LabVIEW-Programm im Anhang sendet einen String an die Serielle und ist ohne Einschränkung für Windows und Linux geeignet.
Paul Hamacher wrote: > Hm, alles kompliziert. > > Wie gesagt ich möchte für Linux und Windows programmieren. Ja klar, > Windows und Linux haben jeweils ihre eigenen features. Ich dachte mir > blos, dass es da eventuell Überschneidungen gibt und irgendwelche > Toolkits mir als einheitliche Schnittstelle dienen. Mir ist es auch > recht, wenn ich für beide OS' verschiedene Teile des Programms separat > bzw. zweimal programmieren muss. (Kann man im Programm eine Abfrage > machen ob Windows oder Linux verwendet wird und dann zur Laufzeit die > richtigen Funktionen aufrufen?) http://www.mono-project.com/Gui_Toolkits#Alternative_Implementation_Approaches if (Environment.OSVersion.Platform == PlatformID.Unix) { } > Die Frage war eher auf C# und .NET bezogen. Das läuft ja alles auf eher > hoher Ebene und nicht allzu nahe am Betriebsystem. Für Windows > Systemprogrammierung gibt es da klassen, auf Linux ist .NET ja nun > überhaupt nicht ausgelegt, demnach gibt es dafür keine Klassen. Da müsste man schon wissen, was genau gemacht werden soll. > Wie komm > ich dann aber überhaupt bei Linux ans System heran um so Spielereien wie > Transparenz bla blub überhaupt zu ermöglichen? "Mono's Winform implementation supports transparency on its windows as long as the underlying windowing system has support for it. For Unix/X11 users this means that they must have the COMPOSITE extension enabled on their server, and they must be running a compositing manager, like xcompmgr. " http://www.mono-project.com/FAQ:_Winforms#How_can_I_make_my_windows_alpha_blended.3F_.28transparent.29 > Sollte ich da mal in nem Programmiererforum nachfragen? > > lg PoWl
@ paul schreib doch genauer, weches Programm Du schreiben willst.
@Helmut: Thread lesen hilft. Dann waere Dir auch klar, warum LabVIEW fuer Pauls Ansinnen ungeeignet ist.
Ich lese: >>sind meine Anforderungen an die Programmierung nochmal: >- Bin nur Gelegenheitsprogrammierer >- Programme für Linux (Ubuntu) und Windows XP schreiben >- Zugriff auf die serielle Schnittstelle >- Schöne GUIs erstellen, auch mit Trayleiste usw. (und was es bei linux >so gibt) >- Ein bisschen Grafikprogrammierung um Statistiken usw. darstellen zu >können und Visualisierung bzw. Stringverarbeitung. Aber vielleicht können wir eine genauere Spezifikation eines Problems erfahren.
Ich lese auch: "sonderfunktiönchen wie rahmenlose Windows, halbtransparente Böxchen die ich auf dem Desktop fixiere, die dann einblenden sobald ich mit der Maus drüberhovere. So nette gimmicks halt."
Paul lass dir als Einsteiger nicht irgendwelche Spezialsprachen oder Spezialtoolkits aufquatschen. Bleib weg von Sprachen, bei denen Klassen und abgeleitete Klassen im Spiel sind. Da wirst du nicht froh mit (erfordert viel Einarbeitungszeit). Bleib beim guten alten C, das ist eine einfache Syntax und schau nach wie weit du damit kommst. Für Windows braucht man erst mal nicht mehr, da gibt es immer noch den meisten Beispielcode und für Linux wird da auch was bei sein (GTK ..). Und dann noch eins, Linux ist eine schöne Sache, aber wenn du nicht gerade schon lange und ausgiebig mit Linux arbeitest, dann bleib bei Windows. Da kennst du dich aus und dafür gibt es immer noch die meiste Software gerade auch im Bereich der Elektronik. Bevor du dich ansonsten mit einer neuen, anderen Programmiersprache vertraut machen möchtest, schau dir vorher lieber genau die Syntax und Beispielcode an, ob dir das liegt. Programmieren wenn man es freiwillig macht, also nicht gezwungen ist, muss Spass machen (sonst siehst du kein Land). Ob dir da Python liegt, das will ich fast bezweifeln und Java würde ich gleich links liegen lassen. Warum? Ganz einfach, ich habe noch kein Java Programm jemals auf meinem Rechner gebraucht bzw. das was ich gesehen habe, hat immer erst einen unangenehm trägen Übersetzungsvorgang (JIT) gestartet. Sowas will ich nicht auf meinem Rechner sehen. Auch wenn sich mir der Magen dabei umdreht, vielleicht hat Rufus sogar recht und RealBasic wäre was für dich (aber wie angedeutet, ich persönlich mag die Basic Dialekte nicht, es geht doch nichts über das gute alte C oder C++ ohne das dämliche objektorientierte Gedöns). Ich glaube mit deinem selbst verkündeten \"Umstieg\" auf Linux legst du dir nur neue Steine in den Weg. Linux hab ich auch laufen (wie viele andere auch), aber mein Win würde ich dafür nicht aufgeben. Aber erst kommen die \"Auswanderer\" und dann irgendwann die \"Rückkehrer\" (wenn das Pendel wieder zurück schwingt).
Also, jetzt muss man schon ehrlich sein. "sonderfunktiönchen wie rahmenlose Windows, halbtransparente Böxchen die ich auf dem Desktop fixiere, die dann einblenden sobald ich mit der Maus drüberhovere. So nette gimmicks halt." ...sind in Windows und Linux anders zu programmieren.
> Bleib beim guten alten C, das ist eine einfache Syntax und > schau nach wie weit du damit kommst. Im Prinzip kein schlechter Rat. Das "bleib" ist hier natürlich falsch, der Threadstarter hat ja mit "C#" angefangen, und das hat mit C fast nichts mehr gemein. > Für Windows braucht man erst mal nicht mehr Wer Windows-Programme nur mit Win32-API in C schreibt, muss ernsthaft masochistisch veranlagt sein. Und den Petzold auswendig vor- und rückwärts aufsagen können ...
> Bevor du dich ansonsten mit einer neuen, anderen Programmiersprache > vertraut machen möchtest, schau dir vorher lieber genau die Syntax und > Beispielcode an, ob dir das liegt. Also es ist ja jetzt bei den meisten Sprachen nicht so, dass das ein allzugrosser Zeitaufwand ist...ne halbe bis ganze Stunde Ruby-Tutorial durcharbeiten dürfte z.B. eigentlich genügen um zu entscheiden, ob man die Sprache mag oder nicht. Forth musste ich mir auch nur kurz (~2 min.) anschauen um zum Schluss zu kommen "genial einfach, aber so möchte ich eigentlich doch nicht Programmieren müssen".
Gelegenheitsprogrammierrer wrote: > Bleib beim guten alten C ... > Programmieren wenn man es freiwillig > macht, also nicht gezwungen ist, muss Spass machen Na dann ist ja eine Sprache genau das richtige, in der sich sogar erfahrene Programmierer regelmaessig bei so einfachen Dingen wie dem Kopieren eines Strings den Fuss wegschiessen. Wenn C# unter Linux gut laeuft (ausprobieren!), bleib einfach dabei. Ansonsten nimm Java/JRuby, das ist ausgereifter als Python+wx, und nirgendwo geht das Erstellen von wirklich portablen Programmen einfacher. Die paar Sekunden mehr Startzeit gegenueber einem kompilierten Programm tun nicht weh. C++ macht nur Sinn wenn du dich auf das Schreiben von Desktopsoftware spezialisieren willst.
>> Bleib beim guten alten C, das ist eine einfache Syntax und >> schau nach wie weit du damit kommst. > Im Prinzip kein schlechter Rat. Das \"bleib\" ist hier natürlich falsch, > der Threadstarter hat ja mit \"C#\" angefangen, und das hat mit C fast > nichts mehr gemein. Hab ich bewusst so formuliert. Hier bei uC dot net (welch schöne Assoziation zum \"Geraffel\" wie du, lieber Rufus, das Framework von MS doch gerne zu nennen pflegts :)) werden doch fleißig mit der Programmiersprache C AVRs anprogrammiert, deshalb das \"bleib\", soll heißen, bei den AVRs nutzt man C schließlich auch oder werden die neuerdings in Ruby programmiert (lerne immer gerne was dazu, also bitte umgehen mir sagen ;)). >> Für Windows braucht man erst mal nicht mehr > Wer Windows-Programme nur mit Win32-API in C schreibt, muss ernsthaft > masochistisch veranlagt sein. Und den Petzold auswendig vor- und > rückwärts aufsagen können ... Ich bin dankbar Rufus, dass du diesen Begriff nennst. Der Petzold bietet nach meiner Erfahrung einen sehr gut verständlichen Einstieg in die Windows Programmierung. Eine unmittelbarere und direktere Methode kenne ich nicht und ich kenne sehr viele Bücher. Das soll natürlich nicht keißen, dass es nicht auch einfacher geht ein Fenster zu erzeugen. Das ist sogar mit QT banal, aber damit ist es halt auch nicht getan. Was die Schniistellen anbetrifft, da gibt es gute Möglichkeiten darauf zuzugreifen (war vor kurzem hier ein Thread mit Beispiel; oder es war sogar von dir, Rufus). Nicht dass man mich falsch versteht, ich versuche mir auch achon die ganze Zeit QT, .NET und weiteres zu Gemüte zu führen (finde das alles hoch interessant). Wenn ich aber mal ein Progrämmchen wirklich brauche, dann lande ich irgendwie immer wieder beim altbekannten C. Meistens wird\'s ein Konsolenprogramm ohne GUI Elemente, aber es macht was es soll bzw. ist leicht debuggbar und kommt mir als Gelegenheitscoder halt zu pass. > Andreas Schwarz wrote: > Na dann ist ja eine Sprache genau das richtige, in der sich sogar > erfahrene Programmierer regelmaessig bei so einfachen Dingen wie dem > Kopieren eines Strings den Fuss wegschiessen. Das passiert schon mal, aber man hat auch eine gewachsene Leidensfähigkeit (die übrigens mit jeder Linux-Installation oder Auffrischung um längen mehr gefordert ist als bei dem von dir genannten Beispiel ;)). > Wenn C# unter Linux gut laeuft (ausprobieren!), bleib einfach dabei. Zitat Paul H. >> ein wenig C# gelernt und fühle mich vom Sprachkonzept erstmal >> erschlagen \"bleib\" ist gut :) > Ansonsten nimm Java/JRuby, das ist ausgereifter als Python+wx, und > nirgendwo geht das Erstellen von wirklich portablen Programmen > einfacher. Die paar Sekunden mehr Startzeit gegenueber einem > kompilierten Programm tun nicht weh. Das sehe ich völlig anders. Das ist für mich ein absolutes KO-Kriterium. Nicht weil ich die Zeit nicht habe, sondern weil mir der just in time Übersetzungsvorgang einfach auf den Wecker fällt. > C++ macht nur Sinn wenn du dich auf > das Schreiben von Desktopsoftware spezialisieren willst. Sehe ich ganz genauso. Gott bewahre uns davor einen Mikrocontroller mit abgeleiteten Klassen anprogrammieren zu müssen (um mal ein anderes Beispiel zu bringen). Ich weiß, die C++ Profis die es auch hier im Forum geben wird denken vermutlich nur noch in Objekten, deren Methoden und Eigenschaften, aber wem das nicht vertraut ist, der tut sich damit schwer. > JRuby Himmel hilf, jetzt ist wieder ein neuer Begriff für Paul gefallen ich kenne auch noch einen Jython oder besser gleich CPython ? armer Paul !!
> Na dann ist ja eine Sprache genau das richtige, in der sich sogar > erfahrene Programmierer regelmaessig bei so einfachen Dingen wie dem > Kopieren eines Strings den Fuss wegschiessen. Der war gut. Ansonsten: ich selber habe früher Ruby häufig für kleine Wegwerfprogramme benutzt, häufig als Teile von Buildprozessen (z.B. Fontkonverter und son Zeug). Davon bin ich ein bisschen weggekommen, C++ ist mein Allzwecktool geworden. Klar, mit GUI ist da zunächst einmal nichts, aber sonst? Zusammen mit boost habe ich also auch eine verdammt leistungsfähige Library zur Verfügung.
>Ich weiß, die C++ Profis die es auch hier im Forum >geben wird denken vermutlich nur noch in Objekten, deren Methoden und >Eigenschaften, aber wem das nicht vertraut ist, der tut sich damit >schwer. Zu den C++ Profis gehörst du ja wohl nicht (ich auch nicht. Das hier ist einer: http://erdani.org). C++ drängt dir weder Klassen auf, noch ist es das einzige Feature was es von C abhebt...
> Zusammen mit boost habe ich also auch eine verdammt > leistungsfähige Library zur Verfügung. Solche Tools gibt es doch wie Sand am Meer, nur ich frage mich, wie lange haben solche Libs eigentlich bestand? Irgendwie erinnere ich mich auch noch an sowas wie Objekt Windows, was mal ziemliche Popularität hatte zu Zeiten, als wir alle noch mit einem Windows 3x rumgegurkt sind. Wieviel von den heute gerade aktuellen Toolkits wird es in 5 bis 7 Jahren noch geben? Oder schon in 3 Jahren? Ich hab das Gefühl ständig wird eine neue Sau durchs Dorf getrieben und keiner hat mehr den Überblick.
> C++ drängt dir weder Klassen auf, noch ist es > das einzige Feature was es von C abhebt... sagt auch keiner, aber wenn es nur um ein aufgebohrtes C geht gerne, nur unter C++ verstehe ich was anderes mal abgesehen davon, die Seite hilft dem Paul bestimmt nicht weiter
> nur unter C++ verstehe ich was anderes
Achso, ja, böse, böse Klassen. OK.
>> nur unter C++ verstehe ich was anderes > Achso, ja, böse, böse Klassen. OK. ich brauch sie jedenfalls nicht und hab sie auch noch nie vermisst
Gelegenheitsprogrammierer wrote: >>> nur unter C++ verstehe ich was anderes > >> Achso, ja, böse, böse Klassen. OK. > > ich brauch sie jedenfalls nicht und hab sie auch noch nie vermisst aber du hast sicherlich schon mal fopen, fwrite, fprintf, fscanf usw. genutzt, findes du das desing schlecht? natürlich wenn aus fprintf(datei, "..."); datei.fprintf("...") wird, ist alles viel schlechter :) zusätlich bekommst du noch ein paar optionen die dir das leben leichter macht (z.b. ein autmatisches fclose)
Zu sagen C++ wäre wie C nur mit Klassen wäre so ähnlich wie .. ein Hochhaus ist wie eine Garage nur höher. Um die Klassen sind zig Konzepte gestrickt worden.
> Zu sagen C++ wäre wie C nur mit Klassen wäre so ähnlich wie ..
Und wer hat das gesagt? Braucht es wirklich solche Kommentare? ..
> Ich weiß, die C++ Profis die es auch hier im Forum > geben wird denken vermutlich nur noch in Objekten, deren Methoden und > Eigenschaften, aber wem das nicht vertraut ist, der tut sich damit > schwer. Eigentlich ist jeder damit vertraut, nur wird manchem von zuviel imperativer Programmierung oder zuviel Theorie die Sicht verstellt, es ist die natürlichere Sichtweise... Bsp: Man braucht ein paar Controller für das nächste Projekt Also geht's auf zum (realen oder virtuellen) Laden (ein spezieller, d.h. abgeleitete Klasse, d.h. der Laden hat von seinen u.U. abstrakten Eltern gewisse Eigenschaften vererbt bekommen) und man übergibt diesem, wie auch immer, (Methode, Message) eine Liste (Datenstruktur) mit Bauteilen. Wie der Laden daran kommt oder der Distri oder wie und wo das Packaging stattfand/findet oder die Wafer hergestellt wurden oder wie/wo das Design der Controller stattfand, welche Personen (Vererbung) daran beteiligt waren, interessiert nicht (Kapselung). Dasselbe wenn man was zu essen braucht, zwar ein anderer Laden, der aber auch weiß, wie man bestimmte Teile besorgen kann, also gibt's so etwas wie eine, jetzt wird's komplizierter, entweder allgemeinere Klasse von Läden oder ein sogenanntes Interface, sprich eine Art Definition wie man mit bestimmten Objekten spricht. Oder so ähnlich... Paket paket = Laden.besorgTeile(Liste teile);
Wisst ihr was? Ich werde mich jetzt einfach mal mit Python beschäftigen, das artet hier ja schon wieder aus und jeder legt mir unbedingt irgendwas anderes ans herz. Irgendwann wenn ich dann in Python fit bin und der bedarf nach schnelleren und umfangreicheren Programmen aufkommt kann ich ja immernoch C++ lernen. Kennt jemand geeignete Literatur zum Einstieg in Python oder soll ich mal wieder einen Schuss ins Blaue bei Amazon wagen, der ja nicht gerade das gelbe vom Ei war bei C#. lg PoWl
ich würde Dir erstmal empfehlen ein paar Tutorials im Internet .. und wenn Dich danach die Lust überkommt es in Paper zu haben, dann wirst Du schon selber in der Lage sein die Bücher nach den Kriterien auswählen. http://docs.python.org/tut/ und als pdf http://www.cis.upenn.edu/~cis530_fall2001/materials/python-tutorial.pdf http://diveintopython.org/ grüsse, daniel
Wenn du schon etwas Programmieren kannst http://www.galileocomputing.de/openbook/python/index.htm Schaue dir danach aber an was es für Änderung zu python 3.0 gibt.
Unter Windows ist die folgende Python-Distri zu empfehlen, da sind die meisten Pakete, die man sonst manuell nachinstallieren muss schon drin: http://www.enthought.com/ Olli
gutennacht wrote:
> Schaue dir danach aber an was es für Änderung zu python 3.0 gibt.
Hm? Die aktuelle, stabile Version ist 2.5 Damit sollte er anfangen,
nicht mit einer Beta.
Gelegenheitsprogrammierer wrote: >> Zusammen mit boost habe ich also auch eine verdammt >> leistungsfähige Library zur Verfügung. > > Solche Tools gibt es doch wie Sand am Meer, nur ich frage mich, wie > lange haben solche Libs eigentlich bestand? Sehr lange, da große Teile der boost-lib in den neuen Standard für die kommenenden C++-Standard-Libs einfließen. Damit dürfte der Bestand für die nächsten 5-10 Jahre gesichert sein.
Tobi H. wrote: > Gelegenheitsprogrammierer wrote: >>> Zusammen mit boost habe ich also auch eine verdammt >>> leistungsfähige Library zur Verfügung. >> >> Solche Tools gibt es doch wie Sand am Meer, nur ich frage mich, wie >> lange haben solche Libs eigentlich bestand? > > Sehr lange, da große Teile der boost-lib in den neuen Standard für die > kommenenden C++-Standard-Libs einfließen. Damit dürfte der Bestand für > die nächsten 5-10 Jahre gesichert sein. Was aber wiederum nicht für Qualität/Sinn spricht, weil BOOST auch viel Bockmist enthält, zumindest für diejenigen, die nicht uuuunbedigt direkt ihre EBNF-Grammatiken mit zehmal überladenen Operatoren direkt in C++ formulieren wollen :-)
Hi. Ich sag mal nicht was besser ist, sondern wie ich vor kurzem an die Sache herangegangen bin, da ich in einer ähnlichen Situation hänge bzw. gehangen habe. Ich persönlich komme nicht so gut klar auf nicht native Anwendungen wie z.B. Java. Der Grund dafür war, das wenn ich ein Programm weitergebe unter Windows an einen Kollegen, dann möchte ich das es bei ihm läuft, ohne das er sicherst eine entsprechende Laufzeitumgebung (JRE) installieren muß. Denn nicht immer haben die Leute denen man sein Programm geben möchte vollen Zugriff auf ihr System (speziell in vielen großen Firmen so, das nur eingeschränkte Rechte vorhanden sind) um solche Umgebungen nachzuinstallieren. Deshalb viel für mich .NET und Java vorerst weg. Nachdem ich mir dann einige Tutorials im Netz angeschaut hatte bin ich auf C von A-Z von Jürgen Wolf gestoßen. Hier das openbook dazu: http://www.galileocomputing.de/openbook/c_von_a_bis_z/ Was ich dabei sehr super fand, das er wirklich bei den Grundlagen anfängt und immer wieder Unterschiede zwischen Windows und Linux genannt werden. Ich hasse es nämlich wie die Pest wenn gerade zum Erlernen einer Sprache "Sachen" allein geschehen. Deshalb fand ich es gerade als Elektroniker sehr angenehm das C nicht so abstrakt ist und man nachvollziehen kann was die eigenen Codezeilen + Includedateien bewegen. Als ich vor einigen Jahren mich mal an Java vesucht habe, da ist mir zuviel automatisch passiert (Im täglichen Leben mag einem das die Arbeit erleichtern, aber den Lernprozess stört es). Was mich dann weiter dazu bewegt hat auf C zu setzen ist, das es so gut wie auf jeder Plattform läuft und es auch entsprechend viele freie Compiler und auch IDE`s gibt. Ich kann dadurch erstmal die Sprache am PC erlernen und kann dann die Grundlagen später wunderbar gut umsetzen für die µC Programmierung, da die auch neben Assembler (für zeitkritische Sachen) sehr viel in C stattfinden. Das C sowohl unter Windows als auch unter Linux vernünftig läuft (beide Systeme werden damit in nicht unerheblichen Teilen erstellt). Java und Perl habe ich für mich persönlich nicht verdrängt, es aber aufgrund oben angeführter Gründe nicht priorisiert für die erste zu erlernende Sprache. Sie sind für mich nach hinten geschoben, wenn es denn für mich daran geht Serverseitige Programme zu erstellen (Beispiel: Live-Video ins Internet streamen etc.). .NET und alles andere proprietäre kommt bei mir im Regelfall nicht in die Tüte ((Zwangs-)Ausnahmen: Flash, Windows, Treiber und das eine oder andere Spiel). Was ich ansonsten noch sehr interessant fand ist die Tatsache, das ich seit dem ich C lerne mir auch einen sehr guten Überblick darüber verschaffen kann was ein einfacher Quelltext einer anderen Sprache aussagen möchte, da ja C für vieles die Basis war/ist bzw. stark beeinflussend wirkt. Was die Betriebssysteme angeht, so habe ich bei mir XP, Vista und Kubuntu Linux laufen, wobei ich jedoch hauptsächlich meine kleinen Programme unter Windows schreibe, da ich nicht nur für mich schreiben möchte, sondern meine Programme auch anderen zugänglich machen möchte. Und da sich nunmal (leider) die Anzahl der Linuxnutzer in meinem Bekannten- und Kollegenkreis auf 0 beläuft, würde die Leute mich immer nur fagend anschauen was ich ihnen da für eine komische Datei geschickt habe :). Ich hoffe das ich Dir helfen konnte indem ich Dir meine Beweggründe und Überlegungen offen gelegt habe. Gruss Maddin
>unglücklicherweise dazu entschieden auf Linux umzusteigen
Allerdings!! Geht mir nicht in die Birne, das Netz ist voll mit
Berichten über die Katastrophe Frickelschrottung-OS.
Hm, danke für die hilfreichen posts. Ist die ganze Sache mit Python wirklich soviel einfacher? Ich bin wieder ins Zweifeln gekommen ob ich tatsächlich auf Linux umsteigen und mir den Stress geben soll oder ob ich bis auf weiteres bei Windoof XP bleiben soll womit alles läuft? Dann könnte ich mit C# weiter machen, was mich daran jedoch noch beängstigt ist halt dass .NET halt proprietär und eignetlich nur für Windows zu gebrauchen ist. Würde mir ein erfahrener Python Programmierer mal sagen, ob das alles was ich vor habe mit Python wirklich so einfach geht und ob die Ausführgeschwindigkeit von Python schnell genug ist, gegenüber anderen Sprachen wie C++, C#.. Java mag ich im Moment nicht. In C hab ich wohl recht viel Aufwand, natürlich ist da der Lerneffekt groß aber ich möchte nicht sooviel Zeit in Programmierung aufwänden. Zumindest nicht sehr viel mehr als eben wirklich nötig. Hab ja noch andere Dinge womit ich mich beschäftigen kann. Klar, es wird wohl nicht bei einer Sprache bleiben, ich brauch aber irgendwas zum Anfangen womit ich weit komme. Ich denke da an Python, C, C++ oder C#. Nur was? Ich sag euch mal was ich von folgenden Sprachen denke, bitte bekräftigt oder widerlegt meine Aussagen je nachdem: C - Ist alt und nicht OOP, schlimm oder nicht schlimm? - Nach Beispielcode in Wiki und anderen Berichten ist es sehr kompliziert darin GUIs zu programmieren + Universell einsetzbar + Native Anwendungen C++ - Schwierig und kompliziert, nicht zum Einstieg zu empfehlen? + Neuer, OOP + Sehr universell einsetzbar, alles möglich + Native Anwendungen C# - An .NET und somit ziemlich an MS Windoof gebunden - Proprietär - Braucht .NET als Basis + Durch .NET vieles einfacher + Einfache GUI-Programmierung Python + Man kann Programme um einiges schneller als mit anderen Sprachen erstellen + Sehr einfache und praktische Sprache (nicht typenstreng, einfache Syntax) + Sehr einfache GUI-Programmierung - benötigt Python Interpreter + Kann mit Interpreter zusammen in exe-file gepackt werden - Langsam, da interpretierte Sprache Was stimmt davon, was nicht? Hat Python wirklich solche Vorteile? Ist C# vielleicht doch das richtige und vor allem zukunftssicher? Lieber gleich in die harte C++ Welt einsteigen oder erst eine leichtere Sprache zum Einstieg lernen? Wie gesagt ich möchte kein Programmierprofi werden, nur ein paar schöne GUI-Anwendungen programmieren mit denen ich mein Kram steuern kann. lg PoWl
Ich kenne Java und C seit längerer Zeit. Ich habe vor 2 Monaten Python gelernt, weil ich beruflich damit ein größeres Softwareprojekt umsetzen soll, das heißt ich habe jetzt 2 Monate lang den ganzen Tag Python programmiert und getestet. Die Software die ich entwickele, muss mit größerern Datenmengen (~40MB ASCII file input) klarkommen. Ich war selber überrascht, wie schnell Python ist, ich hätte es langsamer eingeschätzt. Was mir aber auch aufgefallen ist, ist die extrem kurze Entwicklungszeit. Man hat in sehr kurzer Zeit brauchbare Ergebnisse. Das ist insbesondere in Firmen Geld wert, dürfte dich also nicht betreffen, schön ist es trotzdem :-) Ich möchte inzwischen die vielen einfachen buildin funktionen nicht mehr missen, da es wirklich einfach geht. Da du schon Programmieren kannst, kann ich dir Python empfehlen, jedem Programmieranfänger(also einer der noch gar kein Kontakt mit dem Programmieren hatte) möchte ich lieber eine streng typisierte Sprache ans Herz legen, weil man dann sauberer prgrammiert. Gruss Stefan
Paul: Probier doch einfach mal ein paar Dinge aus. So ein Aufwand ist das jetzt wirklich nicht. Die siehst dann schon schnell ob du lieber C#/.NET weiterbenutzt oder lieber Python lernst. Schnell ein GUI zusammengeklatscht hast du jedenfalls mit Python/TK definitiv schneller. >Was aber wiederum nicht für Qualität/Sinn spricht, weil BOOST auch viel >Bockmist enthält, zumindest für diejenigen, die nicht uuuunbedigt direkt >ihre EBNF-Grammatiken mit zehmal überladenen Operatoren direkt in C++ >formulieren wollen Kann ja jeder für sich entscheiden, welchen Bockmist von boost er benutzt und welchen Bockmist er sich anderweitig besorgt. Scanner/Parser mache ich auch lieber mit externen Tools, ist schon so. Das ändert nichts an der Sache dass es 1) boost schon lange gibt 2) C++ noch länger 3) Teile von boost (interessanterweise die eher bekannteren Teile welche eher nicht als Bockmist bezeichnet werden) vermutlich in den C++ Standard aufgenommen werden 4) Das Ding Open Source Software ist und daher eher nicht einfach so plötzlich von der Bildfläche verschwinden wird. Das ist ja das schöne an OSS: auch wenn sie niemand mehr wartet, an den Quellcode kommt man immer noch ran.
@Maddin Ich sehe das ähnlich wie du, wobei ich .NET in Kombination mit C# nicht beiseite wischen würde (mitsamt solcher Toolkits wie QT und was es noch vergleichbares gibt (gtk.. wx..)). Für mich ist C und die Win32 API die absolute Grundlage zusammen mit x86 Assembler. Schon die MFC geht mir auf den Geist (ich habe damit nicht das Gefühl, dass es einfacher wird und Programme vom Umfang eines OpenOffice werde ich eh nicht schreiben). Habe seinerzeit mit Pascal begonnen (das gute alte Borland TP) und bin dann zu Turbo C aus dem gleichen Hause gewechselt. Unter DOS ging das damals einfach klasse, wobei für mich das wichtigste Element der Borland IDE die gut ausgebaute Hilfefunktion mit den kurzen Programmcode-Beispielen war). Hätte im Prinzip auch bei Delphi landen können, ist aber irgendwie nicht geworden. Als ich C kennen lernte kam mir Pascal einfach als eine zu geschwätzige Sprache vor, mit dem ewigen Begin .. End. Die Klammern machten für mich die Quelltexte um einiges übersichtlicher. Zumal C universeller als Pascal und Delphi war und auf jeder Plattform verfügbar sich mindestens ein Compiler befand. Python hab ich mir mal angesehen und muss sagen, da fühle ich mich eigentlich mit dem gewohnten C auf Anhieb auch ganz gut "zuhause". Es braucht halt einen Interpreter. Dadurch ergibt sich der Nachteil, dass mit 'mal eben ein Python Programm ausführen' auf Rechnern, die die Laufzeit Umgebung nicht installiert haben is nicht! Das ist auch der Nachteil bei .NET. Wenn das Programm auf älterer HW laufen soll (z.B. altes Notebook, Zweitrechner etc.) dann fangen die Probleme wieder an. Die neusten Laufzeitumgebungen laufen wieder nicht, weil dort vielleicht nur ein Windows 98 läuft und/oder es ist zuwenig Speicher vorhanden und das Programm wirkt dort träge etc. An solche Hindernisse wird meistens erst mal nicht gedacht, in der aktuellen Freude über die tollen bunten aber auch aufgeblähten 'Cross Plattform Application Toolkits' pipapo... Überhaupt würde ich raten als jemand der mit der GUI-Programmierung beginnt erstmal Abstand zu nehmen von tollen bunten Oberflächen-Schnörkeleien und erst mal mehr Gewicht in die Funktionaliät des eigenen Programms zu legen, als in das Aussehen. Lieber das versuchen was nötig d.h. unumgänglich erscheint, als das gleich haben wollen, was möglich ist, sonst legt man sich nur unnötig Steine in den Weg. Mal ne Frage an die Python-Verwender. Mir ist aufgefallen, dass die Syntax (bis auf die Möglichkeit mit der Verwendung von OOP Sprachelementen) recht ähnlich mit der von C ist, nur dass anscheinend u.A. auf Klammern verzichtet wird. Jetzt hab ich aber auf genau dieser Seite http://docs.python.org/dev/3.0/whatsnew/3.0.html gesehen, dass sich das anscheinend gerade ändert. Siehe Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Kann es sein, dass Python damit C noch ähnlicher wird? Ich meine das ist ja keine kleine Veränderung, wenn ich mir anschaue wie wenig sich über die vielen Jahre am "Kernighan und Ritchie C" geändert hat bzw. wieviele Jahre dazwischen die Sprache stabil blieb, dann kommt mir so eine Änderung wie oben aufgezeigt in einem Versionssprung doch nicht gerade klein vor. Auf was soll ich mich denn als Neuling dann bei Python schon wieder einstellen? Auf den 'old Style' oder besser gleich auf den 'New Style'? Ich frage das bewusst, weil mich ständig ein Gefühl begleitet, dass ich gar nicht so schnell mir eine Übersicht verschaffen kann (und damit eine neue Sprache mir aneignen kann), wie sich die Syntax der meisten Sprachen ratzfatz wieder ändert?! Für den Originalposter sind hier nochmal (falls noch nicht bekannt) zwei sehr schöne Links für den allerersten Überblick über die jeweile Syntax eines 'Hallo, Welt' Programms. Damit kann man zumindest schnell herausfinden, was einem eher liegt, oder was einem spontan die Stirnfalten im Gesicht in Bewegung bringt. "Liste von Hallo-Welt-Programmen/Programmiersprachen" http://de.wikipedia.org/wiki/Liste_von_Hallo-Welt-Programmen/Programmiersprachen "Liste von Hallo-Welt-Programmen/Sonstige" http://de.wikipedia.org/wiki/Liste_von_Hallo-Welt-Programmen/Sonstige
@Gelegenheitsprogrammierer: > Mal ne Frage an die Python-Verwender. Mir ist aufgefallen, dass die > Syntax (bis auf die Möglichkeit mit der Verwendung von OOP > Sprachelementen) recht ähnlich mit der von C ist, nur dass > anscheinend u.A. auf Klammern verzichtet wird. Naja, ein paar Operatoren (z.B. &, ==, +=) heißen gleich, ansonsten hat Python mit C nicht viel mehr Gemeinsamkeiten als mit anderen Sprachen. > Jetzt hab ich aber auf genau dieser Seite > > http://docs.python.org/dev/3.0/whatsnew/3.0.html > > gesehen, dass sich das anscheinend gerade ändert. Siehe > > Old: print "The answer is", 2*2 > New: print("The answer is", 2*2) Es ging hier nicht darum, mehr Klammern einzuführen, sondern aus der bisherigen print-Anweisung eine print-Funktion zu machen. Dadurch wird die Anzahl der Schlüsselwörter um 1 reduziert, und die Python- Entwickler können künftig, ohne die Syntax zu ändern, print leichter um neue Features erweitern. > Kann es sein, dass Python damit C noch ähnlicher wird? Es wird zumindest eine ähnliche Philosophie wie in C verfolgt, nämlich den Sprachumfang klein zu halten und alles, was nicht unbedingt in die Sprache aufgenommen werden muss (und damit deren Syntax und Compiler komplexer macht) in Bibliotheksfunktionen auszulagern. Gerade die Ein-/Ausgabe-Operationen hatten in den meisten älteren Sprachen (z.B. Fortran, Basic, Pascal) eine spezielle Syntax, in C wurde daraus eine ganz gewöhnliche Funktion, die damit die gleiche Syntax wie mathematische oder benutzerdefinierte Funktionen hat. > ... wenn ich mir anschaue wie wenig sich über die vielen Jahre am > "Kernighan und Ritchie C" geändert hat bzw. wieviele Jahre > dazwischen die Sprache stabil blieb, dann kommt mir so eine Änderung > wie oben aufgezeigt in einem Versionssprung doch nicht gerade klein > vor. Python ändert sich im Vergleich zu vielen anderen Programmiersprachen sehr schnell. Damit daraus kein unhandliches Monster ensteht, werden nicht mehr benötigte alte Features nach einer gewissen Zeit auf Kosten der Abwärtskompatibilität hinausgeschmissen. Damit man nicht bei jeder neuen Python-Release seine Programme anpassen muss, werden ältere Python-Releases nach Erscheinen des Nachfolgers noch eine Weile weitergepflegt. Bspw. gab es für das Release 2.3, das schon 2004 von 2.4 und 2006 von 2.5 abgelöst wurde, erst vor Kurzem ein Bugfix- Release. Teilweise werden auch Konvertierungstools angeboten, um den Umstieg auf ein neues Release etwas erleichtern.
python hat mit C nur oberflächlich eine Ähnlichkeit python ist teilweise imperativ teilweise funktional geprägt list comprehensions hat es von haskell übernommen als paar Beispiele ... map(lambda x: x^2, [cos(i) for i in range(10) if i!=5]) filter(str, [1,2,"string",{}]) p = lambda a,b,c: lambda x: a*x^2+b*x+c wie in matlab gilt in python die regel, dass man eingebaute funktionen benutzen sollte, anstatt einer for oder while schleife. (map,filter) man kann rechenintensiven code in c modul auslagern und aus python aufrufen (vergleiche auch hier mit matlab)
Paul Hamacher wrote: > Hm, danke für die hilfreichen posts. > > Ist die ganze Sache mit Python wirklich soviel einfacher? Ich bin wieder > ins Zweifeln gekommen ob ich tatsächlich auf Linux umsteigen und mir den > Stress geben soll oder ob ich bis auf weiteres bei Windoof XP bleiben > soll womit alles läuft? Also der Umstieg ist nicht leicht, du kannst den Umstieg von Windows auf Linux etwas flüssiger gestalten, mit hilfe von: cygwin (portierung von linux programmen) andLinux bzw. coLinux (Portierung des Linux Kernel) Zum Thema auf Windows XP läuft alles: Temp leeren, nicht aufhören wenn eine Datei blockiert ist: rm /tmp/* -rf (Unter Windows darf man raten, in welchen Ordner sich die Datei befindet, die das Löschen abbricht). Es gibt noch Tausende nützlicher Kommandos, für die man unter Windows entweder Shareware braucht oder man macht es per Hand. Linux: mehrere Desktops, Fenster immer in Vordergrund, Tastenkombination für Programmfenster Windows: man braucht Virenscanner und Desktop-Firewalls Windows: man muss sich Unmengen Freeware/Shareware installieren (Packer, PDF Betrachter, Bildbetrachter, Musikplayer, Office usw.) Linux: Copy&Past durch Markieren + 3te-Maustaste ist für einen Programmierer eine Wohltat. Irgendwann war ist es leid, ständig mit den Unzulänglichkeiten zu leben. > Dann könnte ich mit C# weiter machen, was mich daran jedoch noch > beängstigt ist halt dass .NET halt proprietär und eignetlich nur für > Windows zu gebrauchen ist. .NET gibt es durch mono auch für Linux, sogar ein paar Standardprogramme sind in C# / gtk# geschrieben (gtk# ist ein WinForm Ersatz) Problematisch sind bisher nur die WinForms. > Würde mir ein erfahrener Python Programmierer mal sagen, ob das alles > was ich vor habe mit Python wirklich so einfach geht und ob die > Ausführgeschwindigkeit von Python schnell genug ist, gegenüber anderen > Sprachen wie C++, C#.. Python ist wirklich schnell, ich habe hier ein Python Programm das rekonstruiert 3D Volumen aus Röntgenbildern. Die Koordination von Threads, eingaben, Parametern, Caches, Dateien ist direkt in Python geschrieben, die wirklich rohen Rechenaufgaben macht ein Modul welches in C geschrieben wurde. Das Programm rechnet aber auch 12h (99% der Zeit verbringt es im C-Modul), da lohnt es sich einige Module in C/C++ zu implementieren. Ich wollte jetzt kein negativ Beispiel bringen, du kannst sehr gut Python und C/C++ kombinieren wo es sich lohnt. Es lohnt nicht über Geschwindigkeit zu reden wenn ... beteiligt sind: -Netzwerke -Serielleschnittstellen -Dateien -Datenbanken -interaktives Verhalten Ich kann dir noch was sagen, ich arbeite zurzeit mit Oktave das dürfte ein Zacken langsamer sein als Python und c, nun ist es aber so das Oktave eine schöne Lib hat und es ist damit viel leichter etwas zu programmieren als mit C. Meine Programme in Oktave sind um den Faktor >1000 mal schneller (die Zahl habe ich mir nicht aus den Fingern gesogen) weil ich ein anderen Algorithmus benutzt habe, klar wenn ich den gleichen Algorithmus in C implementiere wird er schneller sein als in octave, aber darum gehts nicht in C wäre ich immer noch mit compilieren und testen Beschäftigt. Wir haben mal in Studium ein Modul für eine CD-Verwaltung schreiben müssen (in C). 3h Arbeit und 4 DIN A 4 Seiten Quelltext In Python waren das 10 Zeilen. > Java mag ich im Moment nicht. In C hab ich wohl recht viel Aufwand, > natürlich ist da der Lerneffekt groß aber ich möchte nicht sooviel Zeit > in Programmierung aufwänden. Zumindest nicht sehr viel mehr als eben > wirklich nötig. Hab ja noch andere Dinge womit ich mich beschäftigen > kann. > > Klar, es wird wohl nicht bei einer Sprache bleiben, ich brauch aber > irgendwas zum Anfangen womit ich weit komme. Ich denke da an Python, C, > C++ oder C#. Nur was? Python oder C# > Ich sag euch mal was ich von folgenden Sprachen denke, bitte bekräftigt > oder widerlegt meine Aussagen je nachdem: > > C > - Ist alt und nicht OOP, schlimm oder nicht schlimm? Eine Sprache unterstützt OOP oder tut es nicht, man kann auch in C OOP Programmieren siehe: fopen, gtkmm Die Sprachen C++, Python, Java, C# usw. unterstützen OOP Programmieren, man ist aber sehr wohl in der Lage nicht OOP zu programmieren. > - Nach Beispielcode in Wiki und anderen Berichten ist es sehr > kompliziert darin GUIs zu programmieren Ja > + Universell einsetzbar Ja > + Native Anwendungen Ja Den wichtigsten Punkt gegen C hast du vergessen: eine sehr beschränkte Standard Lib > C++ > - Schwierig und kompliziert, nicht zum Einstieg zu empfehlen? Schwieriger > + Neuer, OOP > + Sehr universell einsetzbar, alles möglich > + Native Anwendungen > > C# > - An .NET und somit ziemlich an MS Windoof gebunden > - Proprietär > - Braucht .NET als Basis Es gib auch mono, leider bringt MS alle paar Jahre eine neue Version und mono ist immer ein Schritt zurück. > + Durch .NET vieles einfacher Die Python Lib macht genauso alle einfacher. > + Einfache GUI-Programmierung Ja > > Python > + Man kann Programme um einiges schneller als mit anderen Sprachen > erstellen > + Sehr einfache und praktische Sprache (nicht typenstreng, einfache > Syntax) > + Sehr einfache GUI-Programmierung > - benötigt Python Interpreter > + Kann mit Interpreter zusammen in exe-file gepackt werden > - Langsam, da interpretierte Sprache Langsamer, man muss das immer relativ sehen. > Hat Python wirklich solche Vorteile? Gegen über was? und in welchen Zusammenhang? > Ist C# vielleicht doch das richtige und vor allem zukunftssicher? Zukunftssicher ist es sicherlich nicht, (man muss nicht weit in der Verganheit schauen) -vb6.0 wurde eingestampft, der Konverter funktionierte nicht, Programme mussten umgeschrieben werden. -spätesten mit Windows 7 wird es neue Funktionen geben, die man nicht in Windows XP benutzen kann > Lieber gleich > in die harte C++ Welt einsteigen oder erst eine leichtere Sprache zum > Einstieg lernen? Wenn du 3D Spiele programmieren, größere und schnelle Desktop Programme schreiben willst, alles was viel Performance braucht dann ja. Wenn du mal vor hast dich in Richtung Linux zu bewegen, Python. Mit C# wirst du wahrscheinlich schneller bei GUIs ankommen.
So, vielen Dank! Ich habe mich soeben für meine Einstiegssprache zur PCprogrammierung für Python entschieden. C, C++, C#, Java.. keine Ahnung, kann ich hinterher immernoch lernen :-) C# ist wohl darunter noch das einfachste, allerdings ist mir .NET ein Dorn im Auge. lg PoWl
> C > - Ist alt und nicht OOP, schlimm oder nicht schlimm? Hängt vom Anwendungsfall ab. Persönlich benutze ich reines C nur noch für Embedded-Entwicklungen, alles andere in "höheren" Sprachen. > - Nach Beispielcode in Wiki und anderen Berichten ist es sehr > kompliziert darin GUIs zu programmieren Ohne entsprechende Bibliotheken, ja, deutlich aufwendiger. > + Universell einsetzbar > + Native Anwendungen Abgesehen von einigen Ausnahmen erzeugen auch alle anderen Genannten nativen Code. Entweder kurz vor der Ausführung (JIT, Just In Time) oder z.B. bei der Installation, vor der ersten Ausführung (AOT, Ahead Of Time). AOT kann man bei .NET entweder mit ngen bei der Installation machen oder man nimmt Tools wie Salamander und erzeugt Stand-Alone-Programme, die ohne installiertes Framework auskommen. > C++ > - Schwierig und kompliziert, nicht zum Einstieg zu empfehlen? Hängt von den Features ab, die man verwenden will > + Neuer, OOP "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." Alan Kay > + Sehr universell einsetzbar, alles möglich Sehr vieles, aber nicht alles möglich (u.a. richtige Introspektion, Reflexion, dynamische Typen, dynamische Codegenerierung etc.) > C# > - An .NET und somit ziemlich an MS Windoof gebunden > - Proprietär Einen ISO/ECMA-Standard würde ich nicht unbedingt als proprietär bezeichnen. > - Braucht .NET als Basis Brauchen tuts das nicht, man kann sich auch auf die standardisierten Klassen beschränken > + Durch .NET vieles einfacher > + Einfache GUI-Programmierung Python > + Man kann Programme um einiges schneller als mit anderen Sprachen > erstellen Hängt auch wieder vom zu lösenden Problem ab, > + Sehr einfache und praktische Sprache (nicht typenstreng, einfache > Syntax) > + Sehr einfache GUI-Programmierung Hängt vom verwendeten Toolkit ab, GTK, wxWidgets etc. > Ist C# vielleicht doch das richtige und vor allem zukunftssicher? > Zukunftssicher ist es sicherlich nicht, (man muss nicht weit in der > Verganheit schauen) Der Großteil der Entwicklung unter Windows wird Richtung C# + .NET gehen d.h. solange Windows einen Marktanteil >> 90% hat, wird sich daran auch nichts ändern. Auch wird sich das mono-Projekt nicht von heute auf morgen verabschieden. > -vb6.0 wurde eingestampft, der Konverter funktionierte nicht, Programme > mussten umgeschrieben werden. Wer sich zehn Jahre lang nicht um die Weiterentwicklung der Anwendung kümmert, darf sich nicht wundern, wenn es irgendwann nicht mehr läuft. Wenn man weiß, dass die Anwendung so lange unterstützt werden muss, hat man auch die zur Pflege notwendigen Entwicklungsumgebungen und Betriebssysteme etc. mit versioniert und kann bei Bedarf problemlos Änderungen durchführen... > -spätesten mit Windows 7 wird es neue Funktionen geben, die man nicht in > Windows XP benutzen kann XP wird dann ca. acht bis zehn Jahre auf dem Markt sein -> Zeit genug sich darauf vorzubereiten.
Paul Hamacher wrote: > So, vielen Dank! Ich habe mich soeben für meine Einstiegssprache zur > PCprogrammierung für Python entschieden. > das wichtigste, das man lernt wenn man mit der programmierung beginnt, sind konzepte. wenn man mal die grundlegenden konzepte der programmierung halbwegs verstanden hat, macht es keinen großen unterschied mehr, ob die sprache nun brainf*ck, taxi, prolog, ocaml, befunge, java2k, malbolge oder wie auch immer heißt. klar, die syntax ist nicht immer die gleiche und manche sprachen haben auch ein anderea programmierparadigma (funktional, prozedural, ...) aber im großen und ganzen haben alle sprachen ähnlichkeiten. p.s. ja ich weiß, prolog und ocaml sind nicht so esoterisch wie die anderen von mir genannten sprachen. aber ich ordne sie wegen einer persönlichen abneigung den esoterischen zu...
Soweit seh ich das auch so, nur einige kleinere Dinge sind mir da aufgestoßen Arc Net wrote: > Einen ISO/ECMA-Standard würde ich nicht unbedingt als proprietär > bezeichnen. WAS ist denn standardisiert? Die Sprache, oder auch all die Bibliotheken und Funktionen, die C# so attraktiv machen? >> -vb6.0 wurde eingestampft, der Konverter funktionierte nicht, Programme >> mussten umgeschrieben werden. > > Wer sich zehn Jahre lang nicht um die Weiterentwicklung der Anwendung > kümmert, darf sich nicht wundern, wenn es irgendwann nicht mehr läuft. > Wenn man weiß, dass die Anwendung so lange unterstützt werden muss, hat > man auch die zur Pflege notwendigen Entwicklungsumgebungen und > Betriebssysteme etc. mit versioniert und kann bei Bedarf problemlos > Änderungen durchführen... DAS ist so falsch. Als ich damals mit VB5.0 angefangen habe und nach VB6.0 umgestiegen ging, lief das bis auf einige Kleinigkeite prima. Aber schon den Umstieg von VB6.0 auf die "Nachfolgeversion" VB.NET habe ich sein gelassen. Da wäre mir einfach zu viel umzuschreiben gewesen; stattdessen hab ich einen Mehraufwand in Kauf genommen und mit C/C++/portables angefangen und muss mir keine Gedanken mehr machen, wann VB das nächste Mal derart umfangreiche Umgestaltungen erfahren wird. Aber ansonsten: Volle Zustimmung -- gerade weil Py einen dazu zwingt, VERDAMMT NOCH MAL leserlichen Code zu schreiben :-D
> das wichtigste, das man lernt wenn man mit der programmierung beginnt, > sind konzepte. Das wichtigste beim Programmieren nach meiner Erfahrung ist üben, üben, üben. > wenn man mal die grundlegenden konzepte der programmierung halbwegs > verstanden hat, macht es keinen großen unterschied mehr, ob die sprache > nun brainf*ck, taxi, prolog, ocaml, befunge, java2k, malbolge oder wie > auch immer heißt. Eine Programmiersprache flüssig zu beherrschen ist ähnlich wie eine Fremdsprache zu beherrschen. Wenn du von etlichen Fremdsprachen ein bisschen was kannst, kannst du dich noch lange nicht in einer bestimmten Sprache gescheit ausdrücken (es bleibt Gestammel, du ringst um die entsprechenden Vokabeln). Es braucht lange sich in einer Sprache "heimisch" zu fühlen. Beherrscht man mal EINE, dann kann eine ähnlich klingende Sprache um einiges schneller gelernt werden. Das heißt aber noch lange nicht, dass man JEDE Sprache beliebig schnell intus hat und was man auch nicht vergessen sollte, man kann auch Sprachen wieder "verlernen". Was man länger nicht benutzt, das geht einem aus dem Sinn (zwar nicht vollständig, aber dennoch spürbar). Die Erfahrung haben bestimmt die meisten unter uns schon öfter gemacht.
Gelegenheitsprogrammierer wrote: > Eine Programmiersprache flüssig zu beherrschen ist ähnlich wie eine > Fremdsprache zu beherrschen. Der Vergleich ist in der Tat astrein! Man könnte das sogar auf Sprachfamilien ausweiten; ich versuch einfach mal sowas: Familie: OOP, graphisch > Die Sprachen (vorallem BCB und Delphi) sind konzeptionell austauschbar - Borland-C++ (=BCB) - Delphi - C++ mit MFC Familie: puristisch... - C(++) - Pascal Familie: Hochsprachen > Interpretierte Sprachen mit Kernmerkmalen wie eingebaute Stringverarbeitung - PHP - C# - Python - Java Familie: RAD, BASIC > Sprachen, die auch "quick-and-dirty"-tauglich sind... - QuickBasic - VisualBasic (passt einfach nicht zu OOP/graphisch) - Shell-Skripte (Bash-a-like) Ohne Anspruch auf Gewähr oder Glaubenskrieg :-)
Paul, Du wirst niemals eine Plattform und eine Programmiersprache finden, die für alles gleich gut geeignet ist. In erster Linie sollte Deine Entscheidung davon abhängen, was Du genau realisieren willst. Nur schon die Entscheidung, dass es kompatibel zu Windows und Linux sein soll, zieht mehr nach sich als Du vielleicht denkst. Windows ist nicht Windows (3.11, 95, 98, 2000, XP, Vista) und Linux ist nicht Linux (Suse, Red Hat, Ubuntu, FreeBSD, Unix, versch. Window Manager etc.) selbst Profis kriegen keine (aufwändigeren) Applikationen hin, die überall problemlos funktionieren, geschweige denn noch auf Windows und Linux. Von da her überlege Dir, was Du überwiegend programmieren willst und wie/wo es vorallem eingesetzt werden soll. Meine Favoriten für Windows: GUI Applikation Windows 95 bis Vista: C# mit.NET oder Visual Basic mit .NET Konsolenprogramm: C# mit.NET, C oder Python Unixderivate wie FreeBSD, Linux, ... sehe ich eher als Arbeitstiere für Server, die meist ohne GUI zum Einsatz kommen: z.B. Webapplikationen: PHP (normale Aufgaben), Python (komplexere aufgaben), C (wenn es sehr schnell sein muss) Bei .NET musst Du bedenken, was da alles drin steckt! Eine unglaubliche Menge an Funktionalität ist bereits darin enthalten, die Du nicht mehr selber implementieren musst. Mit nur wenigen Zeilen Code kannst Du mit Dateien hantieren, Datenbanken ansprechen, Drucken, komplexe GUIs erstellen, Verschlüsseln, Daten per Netzwerk austauschen und und und; alles aus einem Guss. Ich frage mich, warum das Rad immer neu erfinden wollen, denn die Lebenszeit ist beschränkt und vorallem die Freizeit.
Hm das stimmt auch wieder, aber ich beschäftige mich erstmal mit Python, C# kann ich dann immernoch lernen :-) Je nachdem ob ich Windoof oder Linux später mehr benutze. Weiß ich noch nicht.. ich hab mich aber gerade mehr oder weniger in Linux verliebt, muss nur noch die Oberfläche etwas anpassen so dass sie mir gefällt. lg PoWl
> Nur schon die Entscheidung, dass es kompatibel zu Windows und Linux sein > soll, zieht mehr nach sich als Du vielleicht denkst. Das stimmt definitv! > Windows ist nicht Windows (3.11, 95, 98, 2000, XP, Vista) Äh, ich bin wahrlich kein MS-Fan, aber wenn eins bei Redmonder Produkten stabil ist, dann die API. Eine 10 Jahre alte Borland-Version tut es auch heute noch. Abgesehen davon, dass Nutzer von 3.11 und 9X wohl kaum den potentiellen Nutzerkreis darstellen werden. Mag sein, dass noch ein paar 9X-Nutzer auf diesem Erdenrund existieren, aber irgendwo fängt dann PAL (Problem-Anderer-Leute) einfach mal an. ;-) > und Linux ist nicht Linux (Suse, Red Hat, Ubuntu, FreeBSD, Unix, versch. > Window Manager etc.) selbst Profis kriegen keine (aufwändigeren) > Applikationen hin, die überall problemlos funktionieren, geschweige denn > noch auf Windows und Linux. Du hast noch nie Linux benutzt, oder? -VirtualBox -KDE -Opera-Webbrowser -Mathematica -Photoshop Album von Adobe -MainActor des Unternehmens MainConcept -Google Earth -gnome -the gimp -inkscape Sind alle mehr oder weniger aüfwändig und laufen auf diversen Linux-Distributionen, *BSDs und außer KDE/gnome auch auf Windows. MfG
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.