Hallo liebe MC Community, Ich hätte mal ein paar Fragen zur Programmierung und hoffe hier nützliche Infos zu bekommen. Kurz zu meiner Person: Ich bin 23 Jahre jung gelernter Elektroniker für Betriebstechnik, habe nach der Ausbildung 1,5 Jahre als Facharbeiter gearbeitet um Berufserfahrung zu sammeln. Seit Oktober diesen Jahres studiere ich dual Elektrotechnik an der Universität Siegen. In meiner Freizeit schraube ich gern an Autos rum und mein neuestes Hobby sind Mikrocontroller und alles was mit Programmieren zu tun hat. Ich versuche mich grad mit einem STK500 ein wenig an der Atmel programmierung in C. Ein wenig Erfahrung konnte ich in C schon sammeln und komme mittlerweile gut mit dieser Programmiersprache zurecht. Und genau zu letztem habe ich ein paar Fragen. Mich reizt schon seit langem die Programmierung unter Windows bzw. PC's allgemein, speziell was das Thema GUI angeht. Ich hab die letzten Tage damit verbracht mich ein wenig in die Thematik ein zu lesen und bin dabei auf eine Masse von infos gestoßen und kann diese noch nicht ganz zuordnen. Ich bin schon immer jemand gewesen der gern soviel wie möglich wissen möchte, deshalb bin ich für jede Programmiersprache offen, nur leider weiß ich nicht in welche Richtung ich gehen muss. C++ oder C# oder Java usw.. Meine späteren Ziele ( es kann und wird sehr wahrscheinlich ein paar Monate/Jahre dauern, aber damit rechne ich ;) ) sind komplette GUI Programmierung ( Unteranderem kommunikation mit Mikrocontrollern usw ). Könnt ihr mir eine Sprache empfehlen um GUI's und Programme zu erstellen? Gibt es vlt eine komplette Entwicklungsumgebung mit der ich vielleicht alles oder einen Teil schreiben/entwickeln kann: Auch was die spätere einbindung in Embedded Systeme angeht wäre ich über Infos sehr dankbar. Ich hoffe das hier ist jetzt nicht zuviel Text auf einmal und meine Kernfrage ist noch ehrsichtlich. Mit freundlichen Grüßen Max
Also wenn das wirklich nur für Windows sein soll, würde ich C# nehmen mit dem Visual Studio (die Express-Version ist kostenlos). Da ist ein brauchbarer GUI Designer mit dabei und C# ist einfach eine Sprache, die mir sehr gut gefällt. Wenn du etwas darauf achtest, kannst du die Programme dann auch unter z.B. Linux mit mono laufen lassen. Da geht aber einiges nicht und wenn du von Anfang an mit mehreren OS planst, solltest du für C# vl eher Gtk# nutzen (ich vermute, dass es das auch für Windows gibt?). Java und GUI ruft bei mir immer etwas Unwohlsein hervor, vor allem wenn man Swing für die GUI nutzt. Gut, unter Windows sieht das evtl. noch brauchbar aus. Aber ich als Linuxnutzer schrecke vor Swing-GUIs eher zurück. Man merkt Java auch an, dass es einige Entwicklungen hinter sich hat, und vieles ist in C# einfach schöner. Zum Beispiel Generics. Oder Events. Oder Getter/Setter. Java und C# haben aber einiges gemeinsam. Nur gehört das eine eben inzwischen zu Oracle und ist etwas älter, das andere zu Microsoft und etwas jünger. C++.. Nun, für Desktop-Anwendungen die weder besonders Zeit- noch sonst-irgend-was-kritisch sind, bin ich da kein großer Fan von. Mit Qt gibt es hier eine anständige Bibliothek. C++ ist eben auch recht komplex, das Speichermanagement gestaltet sich komplizierter, und man erzeugt auch leichter Sicherheitslöcher. Das Entwicklungstempo dürfte im Vergleich zu Java oder C# auch langsamer sein. Mit C# und Winforms (oder WPF), oder eben Java/Swing würdest du vermutlich gut fahren.
Maximilian Sarges schrieb: > Ich bin schon immer jemand gewesen der gern soviel wie möglich wissen > möchte, deshalb bin ich für jede Programmiersprache offen, nur leider > weiß ich nicht in welche Richtung ich gehen muss. C++ oder C# oder Java > usw.. Hallo Maximilian, ich fürchte, mit dieser Frage hast du die Büchse der Pandora geöffnet. Bevor die ganzen Glaubenskrieger loslegen, will ich dir eine sachliche Antwort geben. In der Industrie ist für bisherige Projekte der Standard MS Visual C++ mit der guten alten MFC als Klassenbibliothek. Neue Projekte werden in der Regel mit MS C# auf .NET gemacht. Jetzt wird es gleich damit losgehen, daß alles von MS scheiße und des Teufels ist, Java viel besser, und Windows ganz allgemein nicht funktioniert. Bewerten muss du das selbst. Tatsache ist, daß Java und Linux in der Industrie für PC-Anwendungen irrelevant ist. Und Leute: erst lesen, dann durchatmen und nachdenken, nochmal lesen und eine Runde spazieren gehen. Dann habt ihr es vielleicht gesehen: Ich sagte für PC-Anwendungen. Gruß Ulli
Das war sowas wie die berühmte Gretchenfrage: einfach gefragt und doch so schwer zu beantworten. Auf dem PC speziell unter Windows kann man sehr wohl mit einfachem C seine Anwendungen schreiben, aber mir wäre das eine viel zu elende Arbeit. Sowas wie C++, C# und Konsorten ist letztendlich auch nicht besser. Entweder man programmiert direkt auf dem API (was sehr schnelle und kleine Programme ergibt) oder man benutzt die MFC, wovor ich mich bisher zu sehr geekelt habe. Was es an "aktuellem" Zeugs noch gibt, läuft alles auf Interpreter-Programmierung hinaus, also Java, DotNet, QT, usw. Wenn du auch mal Anwendungen für WinCE oder Mobile schreiben willst, dann wirst du um diese schnöde C Programmiererei nicht herumkommen. Ist eklig, aber es übt. Ich hatte mir vor Jahren zum Ausprobieren von und Üben mit EVC (Embedded Visual C) ein einfaches Einmann- Geduldsspiel (Daleks) geschrieben. Irgendsowas würde ich dir zum Üben auch anraten. OK, unter Linux fehlt das API und man kommt um C-Programmierung nicht drumherum. Wohl deswegen lieben die Linuxer Kommandozeilenprogramme, weil sie es sich besonders schwer gemacht haben, Programme mit grafischer Oberfläche zu schreiben. Bis vor einigen Jahren galten dort grafische Oberflächen als verhaßt (Schimpfwort: "KlickiBunti") Wenn man schnell und relativ sauber ein Programm mit einer grafischen Oberfläche schreiben und trotzdem nicht den Boden unter den Füßen verlieren will, dann kommt in erster Linie Delphi in Frage. Man hat sowohl eine IDE für die grafische Oberflächengestaltung als auch den direkten Griff auf das API, kann ne saubere Multithread-Programmierung machen und erzeugt ne App aus echtem Maschinencode und nicht so ein langsames Interpretergewusel. Allerdings sind die neueren Versionen auch recht aufgebläht, so daß ich dir eigentlich nur dazu raten kann, ein altes Delphi6 oder 7 zu besorgen und Pascal zu lernen, gab's vor mindestens 100 Jahren mal als kostenlose Zeitungsbeilage. Wer C kann, wird staunen, wie logisch und sauber diese Sprache ist. Alternative: Free Pascal und darauf aufbauend Lazarus (quasi fast wie Delphi) oder MSEide (anders als Delphi aber auch gut). Ich selber benutze immer noch Virtual Pascal, auch manchmal für Programme mit Oberfläche, allerdings ist Virtual Pascal inzwischen kaum noch zu kriegen und man programmiert direkt auf dem API wie bei C (s.o.) Delphi-Programme sind von Hause aud umfänglich und Lazarus- und MSeide-Programme sind noch viel riesiger. Sollte man wissen. Von sowas wie Visual Basic rate ich dir ab, weil du damit auf ähnliche Wege wie Java, Dotnet usw. kommst: Dicke Laufzeitinterpreter nötig, von Vielen eher nicht geschätzt usw. Also, es gibt viele Wege und jeder, den du fragst, wird dir seine Lieblingssachen preisen. Vielleicht probierst du alles mal selber aus.
W.S. (Gast) schrieb: > Auf dem PC speziell unter Windows kann man sehr wohl mit einfachem C > seine Anwendungen schreiben, aber mir wäre das eine viel zu elende > Arbeit. Sowas wie C++, C# und Konsorten ist letztendlich auch nicht > besser. Was heißt hier "besser"? Solche Vokabeln sind hier nicht hilfreich. C# (ebenso wie Java) ist einfacher im Lernaufwand als C++, darüber braucht man hier nicht mehr zu philosophieren. > Entweder man programmiert direkt auf dem API (was sehr schnelle > und kleine Programme ergibt) Kann man machen, geht sogar recht gut. Ist aber nicht mehr zeitgemäß, weil wenig komfortabel und nicht ansatzweise so gut unterstützt wie C#/.NET mit seinen schier unendlichen Klassen/Methoden. > oder man benutzt die MFC, wovor ich mich > bisher zu sehr geekelt habe. Es gibt ein rein praktisches Problem die MFC verwenden zu wollen, man kann sie nämlich nicht VisualC# Express einfach downloaden. Es braucht dazu eine Vollversion von VisualStudio oder eine ältere Vollversion von VisualC++. > Was es an "aktuellem" Zeugs noch gibt, > läuft alles auf Interpreter-Programmierung hinaus, also Java, DotNet, > QT, usw. Kannst du mal bitte aufhören JAVA und .NET als "Interpreter-Sprache" wie ein ordinäres BASIC mit Prompt und zeilenweiser Abarbeitung hinzustellen? Was soll der Blödsinn?
Ersa schrieb: > Kannst du mal bitte aufhören... Ach, es fängt schon an.. Java: Frag mal SUN, ob deren java-Compiler nativen x86 Code erzeugt.. DotNet: Guck dir mal eine EXE von innen an.. VisualBasic: guck mal in deinem Windows Systemverzeichnis nach VBxx..DLL Ich hab im Grunde nix gegen all diese Möglichkeiten, etwas zu programmieren. Vor knapp 20 Jahren war VB3 geradezu genial, war es doch das erste Tool, was jeder, der mal was von Basic gehört hatte, benutzen konnte und damit ein Programm mit grafischer Oberfläche schaffen konnte. Ideal für Gelegenheitsprogrammierer, die heutzutage eher eine Tabellenkalkulation benutzen - was auch seinen Sinn hat, wo es gebraucht wird. Und dir, Ersa, würde ich anraten, etwas weiter zu blicken. Die Welt besteht nicht bloß aus der Vollversion von Microsoft's Visual Studio und den diversen C-Dialekten. W.S.
W.S. (Gast) schrieb: > Ach, es fängt schon an.. DU hast damit angefangen. > DotNet: Guck dir mal eine EXE von innen an.. Was hat das mit deiner falschen Aussage zu tun? > VisualBasic: guck mal in deinem Windows Systemverzeichnis nach VBxx..DLL Guck mal nach was ein stinknormales compiliertes C-Programm abarbeitet. Stichwort C-Runtime-Library. > Und dir, Ersa, würde ich anraten, etwas weiter zu blicken. Soweit wie DU? Das ist mir wirklich zu kurz. ;) > Die Welt > besteht nicht bloß aus der Vollversion von Microsoft's Visual Studio und > den diversen C-Dialekten. > W.S. Wer soll das behauptet haben?
W.S. schrieb: > Das war sowas wie die berühmte Gretchenfrage: einfach gefragt und doch > so schwer zu beantworten. > > Auf dem PC speziell unter Windows kann man sehr wohl mit einfachem C > seine Anwendungen schreiben, aber mir wäre das eine viel zu elende > Arbeit. Sowas wie C++, C# und Konsorten ist letztendlich auch nicht > besser. Entweder man programmiert direkt auf dem API (was sehr schnelle > und kleine Programme ergibt) oder man benutzt die MFC, wovor ich mich > bisher zu sehr geekelt habe. Man merkt der MFC zwar ihr Alter an... brauchbar und in der Praxis genutzt wird sie trotzdem... C# mit WinForms ist letztlich nichts anderes als die minimal indirektere Nutzung der nativen Windows-Steuerelemente. C# + WPF kann dagegen schneller sein, da es das Rendering (größtenteils und falls die Hardware es unterstützt) an die GPU auslagert http://msdn.microsoft.com/en-us/ms742196.aspx > Was es an "aktuellem" Zeugs noch gibt, > läuft alles auf Interpreter-Programmierung hinaus, also Java, DotNet, > QT, usw. Interpretiert wird dort genau gar nichts. Java und .NET werden JIT-übersetzt. .NET hat mit ngen einen AOT-Compiler/Service, Java z.B. mit Excelsior JET. Qt ist C++, das neuere Qt Quick/QML nutzt JavaScript (ob das intern nur in Bytecode übersetzt und dann interpretiert wird oder in nativen Code müsste ich nachsehen) > Wenn du auch mal Anwendungen für WinCE oder Mobile schreiben willst, > dann wirst du um diese schnöde C Programmiererei nicht herumkommen. Ist > eklig, aber es übt. Ich hatte mir vor Jahren zum Ausprobieren von und > Üben mit EVC (Embedded Visual C) ein einfaches Einmann- Geduldsspiel > (Daleks) geschrieben. Irgendsowas würde ich dir zum Üben auch anraten. WinCE (Mobile ist ehe tot) ist seit längerem MFC (reines Win-API wird sich niemand freiwillig antun, der auch irgendwann mal fertig werden will). .NET Compact ginge zur Not auch noch. Seit CE6 gibt es zudem natives Silverlight für/mit C++ http://www.microsoft.com/windowsembedded/en-us/evaluate/silverlight-for-windows-embedded-ce-6.aspx bzw. http://msdn.microsoft.com/en-us/library/ee502198.aspx Windows Phone ist C#/VB/F#+Silverlight. Zukunft: Windows 8, Windows Phone 8(?) d.h. WinRT und damit entweder XAML (wie jetzt bei WPF/Silverlight) oder HTML+JS. Genauso bzw. sehr ähnlich sieht es auch auf anderen Plattformen aus: Alles geht Richtung deklarativer UIs (HTML, XAML, QML) > Wenn man schnell und relativ sauber ein Programm mit einer grafischen > Oberfläche schreiben und trotzdem nicht den Boden unter den Füßen > verlieren will, dann kommt in erster Linie Delphi in Frage. Delphi, gibt's noch, die Firma auch noch, der Entwickler dagegen ist seit längerem bei MS (dem .NET-Framework merkt man dies sehr schön an, wenn man vorher mit der VCL gearbeitet hat) > Man hat > sowohl eine IDE für die grafische Oberflächengestaltung als auch den > direkten Griff auf das API, Das geht mit allen (fast allen...) Programmiersprachen > kann ne saubere Multithread-Programmierung > machen Sauber und Imperativ/OO...p.s. wie lange gab es keine 64-Bit Unterstützung bei Delphi/C++Builder? > Wer C kann wird staunen, wie logisch und sauber diese Sprache ist. Genauso wenig wie andere (imperative/oo) Sprachen aus der Epoche auch. > Delphi-Programme sind von Hause aud umfänglich und Lazarus- und > MSeide-Programme sind noch viel riesiger. Sollte man wissen. Von sowas > wie Visual Basic rate ich dir ab, weil du damit auf ähnliche Wege wie > Java, Dotnet usw. kommst: Dicke Laufzeitinterpreter nötig, von Vielen > eher nicht geschätzt usw. s.o. es wird nicht interpretiert, Laufzeitumgebungen werden überall genutzt, UIs werden (zukünftig) deklarativ erstellt.
@Maximilian Wie du siehst, nimmt die Sache langsam Fahrt auf. Bin gespannt, wie es weiter geht, wenn die Hardcorebasher morgen früh wieder online sind :-))))) Gruß Ulli
Glade ist cool (benötigt GTK) http://de.wikipedia.org/wiki/Glade Ein Gui Designer für Eclipse (Java): http://code.google.com/intl/de-DE/javadevtools/wbpro/quick_start.html
W.S. schrieb: > Delphi-Programme sind von Hause aud umfänglich und Lazarus- und > MSeide-Programme sind noch viel riesiger. Sollte man wissen. Free Pascal Programme haben in der Regel debug infos in der Programm Datei eingebaut und nicht wie bei Delphi in separaten unit Dateien, daher der grosse Unterschied in der Entwicklungsversion-Dateilänge. Ein Free Pascal Programm ohne debug info ist nur unwesentlich grösser als ein Delphi Programm. MSEide+MSEgui Programme sind meist etwas kleiner als Lazarus Programme, obwohl sie die gesamte GUI Komponentenbibliothek integriert haben. MSEgui benützt keine externen widgetset Bibliotheken sondern spricht direkt gdi32 auf Windows und xlib auf Linux an. Damit funktionieren MSEgui Programme auch in allen Umgebungen exakt gleich. MSEide kann auch zur Entwicklung von gnu-toolchain (gcc-gdb) basierten Mikrokontroller-Projekten benützt werden. Ein weiterer Schwerpunkt sind Datenbank Anwendungen. Martin
Martin Schreiber schrieb: > MSEgui benützt keine externen widgetset Bibliotheken... Ja, das ist ja auch eine der guten Sachen daran. Man hat ne EXE, die richtig selbständig ist und ein Entwurfssystem, das zwar gewöhnungsbedürftig ist, aber den Entwurf der Oberfläche für die Anwendung ganz angenehm macht. Und man kann beide Welten (Win+Linux) damit bedienen. Wenn ich dagegen bedenke, daß bei einem auf QT aufsetzenden Programm rund 10 MB an Libs erstmal ins System installiert werden müssen.. Der Unterschied zwischen Delphi und Free Pascal (wo Lazarus und MSEide ja aufsetzen) liegt/lag im Linker. Der ist bei Delphi ein bissel smarter, aber da kann sich in der letzten Zeit bei Free Pascal durchaus was getan haben. Ich hatte mal (ohne Debug-Infos) ein Verhältnis der Größe der EXE von ca. 2:1 festgestellt, also bei Delphi ca. 600 k, bei Lazarus ca. 1200 k. Liegt aber schon ein paar Monate zurück. Ähem, ich muß das hier mal loslassen, obwohl es mir genauso geht wie dir und vielen anderen: Zu MSEide fehlt ne gute Dokumentation als PDF. Ich meine was wirklich selber von Grund auf geschriebenes, nicht was wie bei den Linuxern (Doxygen.. oder so ) maschinell erzeugtes, wo nur die Funktionsheader hingeklatscht sind, und auchn icht in dem Stil "Drücken Sie zuerst den Knopf und dann jenen". Jaa, ist mühselig, ich weiß und ich will ja auch nicht meckern, aber bei vielen guten Programmen fehlt einfach die Doku, siehe z.B. KOL. W.S.
Hallo, erstmal vielen Dank an die vielen Antworten. Nun wie schon erwähnt wurden hier mehrere Anwendungen/Sprachen angesprochen bzw. vorgeschlagen. Ich habe mich nach einigen recherchen für C# entscheiden, ich denke das ist mit meinen momentanen Kenntnissen das beste, das non-plus-ultra gibt ja es ja bekanntlich sowieso nicht ^^ und deshalb arbeite ich mich erstmal in diese Sprache ein und wenn ich lustig bin fange ich eventuell irgendwann mal mit Linux usw. a. Vielen Dank nochmal an alle für ihre Meinungen und Anregungen! Gruß Max
Wenn es auch was kosten darf, schau Dir mal Realbasic an. http://www.realsoftware.com Kann die Programme direkt für Windows, Linux und Mac übersetzen. Bin zwar kein Fan von Basic, aber nach einem Testlauf musste ich eingestehen: "Kompliment!"
W.S. schrieb: > Ähem, ich muß das hier mal loslassen, obwohl es mir genauso geht wie dir > und vielen anderen: Zu MSEide fehlt ne gute Dokumentation als PDF. Da hast du natürlich recht. Leider hat sich bis jetzt niemand aus der MSEide+MSEgui Gemeinschaft dazu bequemt, eine Dokumentation mit Hand und Fuss zu erstellen. Für Fragen steht die mailing Liste https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk zur Verfügung. NNTP gateway: http://dir.gmane.org/gmane.comp.ide.mseide.user Ein deutschsprachiges Forum gibt es auch: http://www.lazarusforum.de/viewforum.php?f=53&sid=337f9e1bc89a401fd1ead94bfe92e302 Zum FPC Linker: Smartlinking muss mittels der Kommandozeilen-Schalter -XX -CX eingeschaltet werden: http://www.freepascal.org/docs-html/user/usersu15.html#x38-450005.1.4 Es gibt auch noch einen post compile Optimierer den ich aber noch nie benützt habe. Martin
Mit c# fährst du wohl ganz gut, weise Entscheidung. ;) Klar, um das auszuführen muss .NET framework oder mono installiert sein, aber warum hier alle ein Problem damit haben, verstehe ich nicht. Heute machen doch selbst 100mb für ein framework, das nur ein mal installiert werden muss, nichts aus. Festplatten sind riesig. Und auch wenn reines c bei geeigneter algorithmenwahl schneller als jit-compiliertes c# ist, das ist meist zu vernachlässigen. Und selbst wenn nicht: Die entwicklungsgeschwindigkeit ist dafür in c sehr viel langsamer. Zeit ist Geld, und für die gesparte Zeit kann man sich dann eben einen doppelt so flotten Rechner leisten. Ist Abwägungssache. Ganz zu schweigen davon, dass man vielleicht in c eher zu schlechteren algos tendiert, damit man überhaupt mal fertig wird.
anon schrieb: > Heute > machen doch selbst 100mb für ein framework, das nur ein mal installiert > werden muss, nichts aus. Festplatten sind riesig. Ich stimme dir grundsätzlich zu, bin auch Fan von C#. Aber: Im Firmenumfeld sind die Rechner oft "veraltet", insbesondere die Produktionsrechner. Mach das den IT-Leuten mal klar, dass du eben mal kurz das .NET Framework 4 auf jedem Rechner installiert haben möchtest. Nicht unmöglich aber dennoch ist es ein Problem und bedeutet Arbeitsaufwand.
Frank Meier schrieb: > Mach das den IT-Leuten mal klar, dass du eben mal > kurz das .NET Framework 4 auf jedem Rechner installiert haben möchtest. Das Problem sind da in der Regel eher die Kaufleute als die IT-Leute, aber ansonsten hast du natürlich recht.
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.