Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Allgemeines (OffTopic) » MFC, .NET, Qt, wxWidgets oder Java

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.04.2006, 03:18 Uhr
~Stefan S.
Gast


Hallo,

ich möchte gerne einmal wissen auf welche Platform ihr in Zukunft zur Softwareentwicklung setzt? Ich bin zur Zeit diesbezüglich ziemlich frustriert . Microsoft scheint der MFC nur mehr geringe Aufmerksamkeit zu widmen, da laut Vice President das Hauptaugenmerk auf .NET liegt. Die MFC wird zwar weiterentwickelt, an die neue kommende Windows API (WinFX) angepasst und sicherheitsrelevante Fixes werden vorgenommen - aber das wars! In den meisten Foren und Newsgroups bekommt man immer dezent den Tip auf .NET umzusteigen.

Als erfahrener C++ Programmierer möchte ich aber auf die Möglichkeiten der nativen Programmierung und den unzähligen C++ Bibliotheken nicht verzichten. Ich halte C/C++ immer noch für die beste und bewährteste Sprache überhaupt. Auch mein geliebter Inline Assembler ist mir ans Herz gewachsen. C# ist ja ganz ok und die Programmierung unter .NET ist in dieser Sprache ideal. Aber Managed Code ist nunmal ein neues Software Paradigma und vieles lässt sich damit nicht realisieren. Interops sind auf Dauer auch keine Lösung.

Die Einführung von Managed DirectX ist in meinen Augen pure Zweckentfremdung. Fehlt nur noch das man das DDK wrappt!? C++/CLI ist hingegen ein Krampf und ich sehe keinen Sinn darin Managed und Unmanaged Code zu vermischen.

Java ist trotz langjährigem Hype immer noch nicht dort wo Sun eigentlich hin wollte. Swing ist ein Witz. Weit von der Versprechung "Write once, run anywhere" entfernt!

Eine Zeit lang habe ich mir überlegt auf Qt oder wxWidgets zu setzen, aber mittlerweile bin ich mir einfach nicht mehr sicher. Deshalb meine Frage an euch. Welche Sprache und welche Platform benutzt ihr hauptsächlich? Und auf was setzt ihr in Zukunft?

Gruß
Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.04.2006, 08:01 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


.NET ist schon gar nicht so schlecht, zumindest für Windows, ansonsten unter Linux ists halt weiterhin C/C++, evtl wenn Mono sich weiter verbessert hat halt auch ".NET"
--
class God : public ChuckNorris { };

Dieser Post wurde am 07.04.2006 um 08:01 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.04.2006, 08:49 Uhr
(un)wissender
Niveauwart


Qt ist sicherlich nicht verkehrt wenn man mal von moc und der Lizenz absieht. Mit wxWidgets kann man arbeiten, ist aber recht buggy. Ansonsten, für den allgemeinen Fall, gibt es da draußen nicht viel. GTKmm ist keine Alternative (schlechter Windowsport, nur GUI, viele Bibs)

Ich finde du siehst Java zu negativ. Ebenso C#. Mittelfristig ist das die Zukunft für Desktop Apps.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.04.2006, 14:19 Uhr
ao

(Operator)



Zitat von ~Stefan S.:
Ich halte C/C++ immer noch für die beste und bewährteste Sprache überhaupt. Auch mein geliebter Inline Assembler ist mir ans Herz gewachsen.

... die beste Sprache für welchen Zweck? Du kannst alles mit C++ erledigen, aber vieles ist umständlicher und fehlerträchtiger als es sein müsste und kostet dadurch zuviel Entwicklungszeit. Bau mal ne Applikation mit MFC zusammen, und dann dasselbe noch mal mit .NET, dann merkst du den Unterschied.

Gut, wenn du Inline-Assembler wirklich brauchst (und nicht nur meinst, es zu brauchen), kommst du um "Lowlevel-Sprachen" wie C++ nicht herum. Aber hast du schon mal eine deiner Inline-Assembler-Lösungen mit einer reinen C++-Lösung verglichen, nach Optimierung durch den Compiler? Bist du wirklich so viel besser?

Zitat:
Aber Managed Code ist nunmal ein neues Software Paradigma

"Immer diese Säugetiere mit ihren neumodischen Ideen", sagte der Dinosaurier, kurz bevor er ausstarb.

Zitat:
und vieles lässt sich damit nicht realisieren.

Es ist nicht so, dass nur hier und da mal was geht, sondern das allermeiste lässt sich machen. Und es geht schneller und einfacher, weil man - durch managed code - keine Speicherfehler mehr machen kann. Der Code ist übersichtlicher, besser verständlich und damit leichter wartbar. Die Klassenbibliothek des .NET-Frameworks ist um Lichtjahre besser als alles, was ich aus der C++-Welt kenne. Alles wichtige Punkte, wenn man nicht nur Ex-und-Hopp-Programme schreibt.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.04.2006, 17:08 Uhr
~Stefan S.
Gast



Zitat von (un)wissender:
Ich finde du siehst Java zu negativ. Ebenso C#. Mittelfristig ist das die Zukunft für Desktop Apps.


Jaja, die Zukunft . Ich habe bereits unter Java als auch C# Applikationen geschrieben. Unter Windows ist C# meiner Meinung nach das Maß aller Dinge. Das .NET Framework wird von Microsoft rasant entwickelt und ist perfekt mit Windows verbunden. An C# wird unter Leitung von Hejlsberg ebenfalls stetig gearbeitet. Unter den Windows Desktop Applikationen wird Java langfristig keine Chance haben sich gegeüber C#/.NET durchzusetzen. Das ist zumindest meine Meinung, aber die Zeit wird es zeigen.


Zitat von ao:

Zitat:
Ich halte C/C++ immer noch für die beste und bewährteste Sprache überhaupt. Auch mein geliebter Inline Assembler ist mir ans Herz gewachsen.

... die beste Sprache für welchen Zweck? Du kannst alles mit C++ erledigen, aber vieles ist umständlicher und fehlerträchtiger als es sein müsste und kostet dadurch zuviel Entwicklungszeit. Bau mal ne Applikation mit MFC zusammen, und dann dasselbe noch mal mit .NET, dann merkst du den Unterschied.


C/C++ ist eine Allzwecksprache. Mit ihr ist sowohl Low-Level Programmierung als auch High-Level Programmierung kein Problem. Die Sprache ist standardisiert und die Entwicklung hat sich in den letzten Jahrzenten bewährt. .NET liefert eine weitere Abstraktionsschicht. Versuche doch mal einen Treiber in C# zu programmieren. Mir gefällt das System von Managed Code einfach nicht! Der Programmierer wird von den Internals vollständig abgeschottet. Die VM übernimmt die Kontrolle. Letztenendes bestimmt also der Hersteller der VM wie und ob der Code überhaupt ausgeführt wird! Was im Übrigen noch mehr Kontrolle in die Hände von MS legt...

Mir ist durchaus bewußt dass das .NET Framework die Zukunft in der Entwicklung von Desktop Applikationen darstellt, da ich sowohl mit der MFC als auch mit C#/.NET Windows Applikationen entwickelt habe. Ich weiß also wie leicht und vor allem elegant das .NET Framework mit der Sprache C# verwendet werden kann. Die MFC war leider nie vollständig OO designed und die Entwicklung unter ihr war stets eine Frage des persönlcihen Geschmacks. Dennoch bleibt ein fader Nachgeschmack bei der Entwicklung von Managed Code vorhanden.


Zitat von ao:
Gut, wenn du Inline-Assembler wirklich brauchst (und nicht nur meinst, es zu brauchen), kommst du um "Lowlevel-Sprachen" wie C++ nicht herum. Aber hast du schon mal eine deiner Inline-Assembler-Lösungen mit einer reinen C++-Lösung verglichen, nach Optimierung durch den Compiler? Bist du wirklich so viel besser?

Zitat:
Aber Managed Code ist nunmal ein neues Software Paradigma

"Immer diese Säugetiere mit ihren neumodischen Ideen", sagte der Dinosaurier, kurz bevor er ausstarb.

Zitat:
und vieles lässt sich damit nicht realisieren.

Es ist nicht so, dass nur hier und da mal was geht, sondern das allermeiste lässt sich machen. Und es geht schneller und einfacher, weil man - durch managed code - keine Speicherfehler mehr machen kann. Der Code ist übersichtlicher, besser verständlich und damit leichter wartbar. Die Klassenbibliothek des .NET-Frameworks ist um Lichtjahre besser als alles, was ich aus der C++-Welt kenne. Alles wichtige Punkte, wenn man nicht nur Ex-und-Hopp-Programme schreibt.

ao


In der Tat arbeite ich studienbedingt oft mit Assembler und C/C++. Ich vergleiche im Übrigen öfter die Compiler Übersetzung von C++ mit der Assembler Lösung. Unter Assembler ist es nunmal erforderlich bei der Programmierung ein entsprechendes Wissen mit zu bringen um überhaupt die Sprache sinnvoll nutzen zu können, da der C/C++ Compiler ansonsten wesentlich besseren Maschinencode produziert. Es ist auch nicht so das ich für Alles Assembler nutze. Eben nur dann wenn es wirklich sinnvoll ist. Aber zumindest habe ich die entsprechende Integration in C/C++ aufgrund des praktischen Inline Assemblers.

Und nochmal, ja es stimmt. Das .NET Framework ist riesig und exzellent konzipiert. Aber es ist und bleibt alles verwalteter Code. Zudem besteht bei verwalteten Sprachen das Problem von Dekompilierungen. Ofuscator usw. sind auch keine praktische Lösung!

Ich habe einfach Probleme den Spagat zwischen Managed und Unmanaged Code zu machen. Mir wäre es lieber gewesen MS hätte ein neues Framework für C++ geschaffen das nicht so sehr VM gestützt ist. Aber man musste Sun auf diesem Sektor ja Paroli bieten, leider...

Gruß
Stefan


Bearbeitung von ao:
quote-Tags klargezogen.

Dieser Post wurde am 07.04.2006 um 20:38 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.04.2006, 20:28 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


Das .Net-Framework finde ich von der API her gut (um Welten besser als die mit der Ungarischen Notation verpestete WinAPI), aber die grundlegende Idee dahinter ist eine Katastrophe.

Wie viele Schichten will man denn noch schaffen, bis man mal endlich etwas brauchbares zu Stande bekommt? Sollen wir in 5 Jahren dann eine Java-Anwendung schreiben, die von der Java Runtime interpretiert wird, die wiederum von der WinAPI interpretiert wird, die ihrerseits von dem .Net-Framework interpretiert wird, welches letztendlich nur die alte C-basierende WinAPI kapselt? Dann wundert es mich nicht, dass wir bald mit Systemanforderungen von 3 GHz-CPUs und 4GB RAM für den simplen Office-Betrieb rechnen müssen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.04.2006, 21:08 Uhr
~Stefan S.
Gast



Zitat von Reyx:
Wie viele Schichten will man denn noch schaffen, bis man mal endlich etwas brauchbares zu Stande bekommt? Sollen wir in 5 Jahren dann eine Java-Anwendung schreiben, die von der Java Runtime interpretiert wird, die wiederum von der WinAPI interpretiert wird, die ihrerseits von dem .Net-Framework interpretiert wird, welches letztendlich nur die alte C-basierende WinAPI kapselt?


Genau das ist was ich meine! Man versucht alles von der Runtime Engine kontrollieren und ausführen zu lassen. Mögliche Fehler werden von vornherein verhindert indem man einfach kritische Controls in die Hand der VM legt. Wo soll das den letztenendes hinführen? Ab wann kann man eigentlich noch von programmieren sprechen? Das .NET Framework besitzt bereits hochgradig abstrakte Klassen. Mit nur einem Befehl wird beispeilsweise ein ganzer HTTP Client erstellt. Zunehmende Abstraktion bewirkt immer eine Abnahme an Flexibilität. Folge ist eine zunehmende Spezialisierung.

Ich befürchte schon bald wird es zahlreiche Programmierer geben die von den tatsächlichen Abläufen im Computer überhaupt gar keine Ahnung mehr haben. Unter C/C++ war der Programmierer ja noch gezwungen grundelegende Konzepte der internen Verarbeitungsschritte zu lernen. Nun wird es eine klare Abgrenzung geben, zwischen systemnaher Programmierung und abstrakter High-Level Programmierung. Einige wenige werden eventuell beide Seiten exzellent beherrschen, aber das dürfte die Minderheit sein. Ich zumindest bin froh darüber das sich an der Rechnerarchitektur und internen Datenverarbeitung nichts ändert bzw. nichts ändern kann. Zumindest auf diese Konstante kann man sich auch noch in weiterer Zukunft verlassen - Abstraktion hin oder her .
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Allgemeines (OffTopic) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: