.NET Programme nur von Hobbycodern?

.NET ist zwar natürlich langsamer als maschinennahe Sprachen wie C, aber in der heutigen Zeit mit den heutigen Kapazitäten kommt es auf die Geschwindigkeit gar nicht mehr so an.

In meinem Studium wurde uns sehr klar gemacht, dass schnelle Ergebnisse (also kurze Entwicklungszeit), Zuverlässigkeit und Portabilität in vielen Fällen Priorität haben. Und da sind Java und neuerdings .NET eben heiße Kandidaten.

Dass .NET keine Zukunft hat, das sehe ich anders. Am schwarzen Brett meiner Hochschule werden von Betrieben immer mehr Absolventen mit Erfahrungen in .NET-Sprachen gesucht.
 
DerEineDa schrieb:
.NET ist zwar natürlich langsamer als maschinennahe Sprachen wie C, aber in der heutigen Zeit mit den heutigen Kapazitäten kommt es auf die Geschwindigkeit gar nicht mehr so an.

Das kommt stark auf die Aufgaben an. Es gibt immernoch einige Bereiche, wo man sich durchaus noch wesentlich mehr Leistung wünschen würde, z.B. bei der Videobearbeitung, CAD, Spiele, Bildbearbeitung, Programmierung, ...

DerEineDa schrieb:
In meinem Studium wurde uns sehr klar gemacht, dass schnelle Ergebnisse (also kurze Entwicklungszeit), Zuverlässigkeit und Portabilität in vielen Fällen Priorität haben. Und da sind Java und neuerdings .NET eben heiße Kandidaten
Jep, sowas hat unser Softwaretechnik-Prof. auch immer gesagt. Allerdings ist immernoch Grundvorausetzung, dass die Leistung ausreichend ist, denn ansonsten bringt das alles nichts. Desweiteren hat Java im Bezug auf Portabilität eindeutig Vorteile gegenüber .NET, woran sich so schnell wohl auch nichts ändern wird.

DerEineDa schrieb:
Dass .NET keine Zukunft hat, das sehe ich anders. Am schwarzen Brett meiner Hochschule werden von Betrieben immer mehr Absolventen mit Erfahrungen in .NET-Sprachen gesucht.

Da bin deiner Meinung. Je größer die Hardwarekapazitäten werden, desto mehr kannst du damit sinnvoll machen. Es besteht aber auch noch sehr viel Verbesserungspotential.
 
Bis auf ein paar Nischenmärkte (z.B. Treiberprogrammierung, Spiele, Photoshop etc.) wird immer mehr auf .NET gesetzt. C++ wird zum Größten nur noch eingesetzt, da die Programmierer schon daran gewöhnt sind und der bestehende Code portiert werden müsste. Die Performance ist meistens nicht das erste Kriterium und .NET hat hier doch einige Vorteile:

1.) Viel mehr Stabilität durch Prüfung von Feldüberschreitungen. Das ist die Quelle von einer Menge Sicherheitslücken.
2.) Eine große Menge an Features sind gleich fix integriert. Man muss also nicht immer 100 zusätzliche Controls dazuinstallieren, diverse Codestücke irgendwo im Netz suchen.
3.) Der Zugriff über das .NET Framework ist sauberer, als über diverse Windows dlls, die sich öfters ändern können. Beim .NET Framework kann man ziemlich sicher sein, dass der Code auch in der nächsten Version von Windows und wahrscheinlich noch in er übernächsten 1:1 laufen wird.
4.) Der wartbare Code in der Software wird sehr viel kürzer. Alles, was im .NET Framework integriert ist, muss man nicht schreiben, nicht testen und man hat auch im Normalfall keine Bugs drin.
5.) Die Fehlersuche ist wesentlich leichter. In C++ stürzt ein Programm meist mit einer Segmentation Violation ab, weil irgendein Pointer ins Nichts zeigt und ich habe eine sehr vage Fehlerbeschreibung des Kunden, die meistens auch nur so ungefähr stimmt und ich kann nur raten, warum die Software alle 2-3 Tage einmal crasht. In .NET habe ich über die ganze Schleife ein Try-Catch, das genau die Fehlermeldung ausgibt und ich weiß haargenau in welcher Funktion an welcher Stelle der Fehler passiert ist. Oft kann man ja selbst nicht einmal etwas dafür und es werden aus irgendeinem Grund falsche Eingabedaten geliefert oder es hat der Admin wieder einmal ein Recht zu wenig gesetzt.

Und was die Performance angeht, so trifft das nur auf die Berechnungen im eigenen Code zu und da sehr viele Funktionen schon integriert sind, ist der meistens ziemlich kurz.

Weiters ist der Eindruck über die Verwendung von .NET meistens ziemlich verfälscht, da der typische Anwender nur die 0815 Programme wie Windows, Office, Spiele etc. sieht. 95% der Programmierer arbeiten jedoch an der Entwicklung von Individualsoftware, wo ganz andere Regeln gelten.
 
Das (nicht gerade kleine) Toolset von Neverwinter Nights 2 ist übrigens auch eine .NET Anwendung. Man sieht also, dass selbst in der Spieleindustrie nicht nur C++ verwendet wird.
 
asdfman schrieb:
Schwache Bilanz, dafür, dass .NET so ENTERPRISE ist.

Eben NICHT. Ich arbeite in einer Agentur und wir machen sehr viele Auftragsarbeiten für Firma in .NET.

Wäre .NET so CONSUMER, dann wäre es eine schwache Bilanz.
 
Um nochmal auf das Beispiel Chrome zurückzukommen: Er basiert auf WebKit, der Rendering Engine die auch z.B. bei Safari eingesetzt wird. Und diese ist in C++ geschrieben. Also wäre die schnelle problemlose Möglichkeit es ohne neu kompilieren zu müssen auf verschiedenen Plattformen ausführen zu können schonmal dahin. Das ist ein grundsätzliches Problem: Die meisten Bibliotheken sind einfach in C++ geschrieben. Nicht für jede gibt es gute Sprachbindings um sie gut mit Java/.NET nutzen zu können.

Genauso wie die großen alten Anwendungen sind einfach über viele viele Jahre gewachsen zu Zeiten wo es Java/.NET noch nicht gab. Die Mühe alte Anwendungen neu zu programmieren in einer anderen Programmiersprache wird sich niemand machen. Im Bereich der speziellen Firmensoftware sind hingegen die beiden neuen Sprachen in der Tat eine interessante Sache.
Auf dem Desktopbereich wird erstmal nur bei kleinen Anwendungen als Alternative zu sehen sein. So schnell stampft niemand einen Photoshop/Office Konkurrent aus dem Boden. Solche Mammutprogramme kann man nicht einfach innerhalb kürzester Zeit schreiben. Selbst kleine Konkurrenten wie OpenOffice sind uralt im Gegensatz zu .NET. Der Desktopsoftwaremarkt ist einfach zu festgefahren.
Bei Heise hab ich mehrfach davon gelesen, dass die Nachfrage nach .Net Spezialisten recht groß. Fazit: Auf Grund der Tat Sache das Anwendungen wie Photoshop nicht in C# umgeschrieben werden, würde ich nicht schließen, dass .Net nur von Hobbyprogrammierern eingesetzt wird.

Ein wenig Offtopic:
Außerdem hat Java immernoch einen schlechten Ruf, da alte Versionen doch erstmal den Rechner lahmlegten, die Anwendungen sich optisch nicht in den Desktop einpassen wollten und in der Anfangszeit auch einfach nicht sonderlich schnell war. Das hat sich inzwischen eigentlich ganz gut gelegt. Theoretisch wird sowas wie Java gebraucht. Den ganzen Kram wie AJAX Anwendungen sind eigentlich nicht sinnvoll in vielen Fällen. Für komplexe Anwendungen wäre Java einfach angesagter. AJAX Anwendungen zu schreiben ist ein Krampf, trotzdem versucht man das ganze dann mit Dignen wie Adobe AIR auch noch auf den Desktop zu holen. Java Webstart würde sich da eigentlich viel mehr anbieten. Ich fände es wünschenswert, wenn sich das rumsprechen würde... Vielleicht schafft ja Silverlight das ganze.
 
andr_gin schrieb:
Bis auf ein paar Nischenmärkte (z.B. Treiberprogrammierung, Spiele, Photoshop etc.) wird immer mehr auf .NET gesetzt.

Deine Nischenmärkte (Windows, Linux, Treiber, Spiele, Photoshop, Office, Video-/Audioprogramme) machen mit Abstand den größten Teil des Marktes aus.

andr_gin schrieb:
C++ wird zum Größten nur noch eingesetzt, da die Programmierer schon daran gewöhnt sind und der bestehende Code portiert werden müsste. Die Performance ist meistens nicht das erste Kriterium

Gewöhnung und Weiterverwendung von Code sind beides Punkte, die der Qualität des Codes zugute kommen und damit ein Vorteil für den Kunden. Natürlich ist das nur solange ein Vorteil für C/C++, solange sich .NET nicht so weit verbreitet. Andererseits muss .NET erst noch beweisen, dass es für große Projekte überhaupt geeignet ist, denn was Standardsoftware angeht, ist da noch nichts entsprechendes vorhanden und warum sollte man wechseln, wenn die Vorteile nicht deutlich größer sind als die Nachteile. Es stellt nämlich auf jeden Fall ein Risiko dar die Entwicklungsplattform zu wechseln.

andr_gin schrieb:
und .NET hat hier doch einige Vorteile:
1.) Viel mehr Stabilität durch Prüfung von Feldüberschreitungen. Das ist die Quelle von einer Menge Sicherheitslücken.
2.) Eine große Menge an Features sind gleich fix integriert. Man muss also nicht immer 100 zusätzliche Controls dazuinstallieren, diverse Codestücke irgendwo im Netz suchen.
3.) Der Zugriff über das .NET Framework ist sauberer, als über diverse Windows dlls, die sich öfters ändern können. Beim .NET Framework kann man ziemlich sicher sein, dass der Code auch in der nächsten Version von Windows und wahrscheinlich noch in er übernächsten 1:1 laufen wird.
4.) Der wartbare Code in der Software wird sehr viel kürzer. Alles, was im .NET Framework integriert ist, muss man nicht schreiben, nicht testen und man hat auch im Normalfall keine Bugs drin.

zu 1. Das kannst du auch problemlos in anderen Sprache realisieren. Bei den älteren Sprachen wirst du eben nur nicht gezwungen das zu überprüfen. Wenn du es trotzdem überall haben willst, besorgst du dir eben eine entsprechende Bibliothek. Da hast du genug Auswahl.
zu 2. .NET hat eine große Bibliothek. Allerdings gibt es sowas auch für andere Sprachen, z.B. Qt. Damit hast du übrigens auch den Vorteil, dass du Plattfom-unabhängig bist.
zu 3. Die Schnittstellen von .NET Bibliotheksfunktionen wird sich nicht weniger/häufiger ändern als bei anderen Bibliotheken. Aus welchen Grund sollte das denn auch so sein?
zu 4. Das ist kein Vorteil von .NET, sondern ein Vorteil der Benutzung von Bibliotheken und damit auf jeden beliebige Sprache übertragbar.

andr_gin schrieb:
5.) Die Fehlersuche ist wesentlich leichter. In C++ stürzt ein Programm meist mit einer Segmentation Violation ab, weil irgendein Pointer ins Nichts zeigt und ich habe eine sehr vage Fehlerbeschreibung des Kunden, die meistens auch nur so ungefähr stimmt und ich kann nur raten, warum die Software alle 2-3 Tage einmal crasht. In .NET habe ich über die ganze Schleife ein Try-Catch, das genau die Fehlermeldung ausgibt und ich weiß haargenau in welcher Funktion an welcher Stelle der Fehler passiert ist. Oft kann man ja selbst nicht einmal etwas dafür und es werden aus irgendeinem Grund falsche Eingabedaten geliefert oder es hat der Admin wieder einmal ein Recht zu wenig gesetzt.

Die Fehlerbehandlung ist bei .NET wirklich wesentlich besser.

andr_gin schrieb:
Und was die Performance angeht, so trifft das nur auf die Berechnungen im eigenen Code zu und da sehr viele Funktionen schon integriert sind, ist der meistens ziemlich kurz.

Das kommt darauf an, ob die Funktionen in .NET selbst geschrieben sind, oder ob der C/C++ Code des Frameworks die Funktionalität bereitstellt. Falls es im Framework integriert ist, sind diese Funktionen zwar in etwa gleich schnell wie die von C/C++ Bibliotheken, dafür auch kein bisschen sicherer als diese.

andr_gin schrieb:
Weiters ist der Eindruck über die Verwendung von .NET meistens ziemlich verfälscht, da der typische Anwender nur die 0815 Programme wie Windows, Office, Spiele etc. sieht. 95% der Programmierer arbeiten jedoch an der Entwicklung von Individualsoftware, wo ganz andere Regeln gelten.

Bei Individualsoftware haben .NET und Java ihre Stärken. Dort sehe ich auch den Haupteinsatzzweck. Allerdings kriegen sie in der Ecke auch Konkurrenz von anderer Seite, nämlich den Skriptsprachen. Vor allem in Nicht-Windows-Umgebungen ist die Kombination aus C/C++ Bibliotheken und einer Skriptsprache wie z.B. Python garnicht einmal so selten und hat durchaus auch ihre Reize.

Auch wenn sich das jetzt sehr negativ anhören mag, denke ich trotzdem, dass Programmiersprachen wie .NET und Java durchaus ihre Daseinsberechtigung haben, vor allem bei der Individualsoftware. Allerdings finde ich auch, dass sie teilweise doch arg überschätzt werden und ihnen Vorteile angedichtet werden, die garnichts mit der Sprache selbst zu tun hat, z.B. die Sache mit den Standardbibliotheken.





geisterfahrer schrieb:
Um nochmal auf das Beispiel Chrome zurückzukommen: Er basiert auf WebKit, der Rendering Engine die auch z.B. bei Safari eingesetzt wird. Und diese ist in C++ geschrieben. Also wäre die schnelle problemlose Möglichkeit es ohne neu kompilieren zu müssen auf verschiedenen Plattformen ausführen zu können schonmal dahin. Das ist ein grundsätzliches Problem: Die meisten Bibliotheken sind einfach in C++ geschrieben. Nicht für jede gibt es gute Sprachbindings um sie gut mit Java/.NET nutzen zu können.
Durch den mangelnden Support von MS für andere Betriebssysteme ist auch bei .NET Anwendungen die Plattformunabhängigkeit bisher nicht gegeben. Mono ist ein interessantes Projekt, aber Software, die darauf vertraut würde ich im Augenblick noch nicht anbieten wollen.

geisterfahrer schrieb:
Genauso wie die großen alten Anwendungen sind einfach über viele viele Jahre gewachsen zu Zeiten wo es Java/.NET noch nicht gab. Die Mühe alte Anwendungen neu zu programmieren in einer anderen Programmiersprache wird sich niemand machen. Im Bereich der speziellen Firmensoftware sind hingegen die beiden neuen Sprachen in der Tat eine interessante Sache.
Auf dem Desktopbereich wird erstmal nur bei kleinen Anwendungen als Alternative zu sehen sein.

Da bin ich ganz deiner Meinung.


geisterfahrer schrieb:
So schnell stampft niemand einen Photoshop/Office Konkurrent aus dem Boden. Solche Mammutprogramme kann man nicht einfach innerhalb kürzester Zeit schreiben. Selbst kleine Konkurrenten wie OpenOffice sind uralt im Gegensatz zu .NET. Der Desktopsoftwaremarkt ist einfach zu festgefahren.

Die Frage ist, ob das überhaupt jemand will.


geisterfahrer schrieb:
Bei Heise hab ich mehrfach davon gelesen, dass die Nachfrage nach .Net Spezialisten recht groß. Fazit: Auf Grund der Tat Sache das Anwendungen wie Photoshop nicht in C# umgeschrieben werden, würde ich nicht schließen, dass .Net nur von Hobbyprogrammierern eingesetzt wird.

Da hast du sicher recht. Was den Desktopbereich betrifft, kann man aber durchaus den Eindruck gewinnen.
 
Zuletzt bearbeitet:
Jo .net wird nur von hobbycodern verwendet. Wurden ja schon einige aufgezählt, darunter auch AMD/ATI´s Catalyst Center - und das sind wohl echte hobbyprogrammierer :D - ne mal im ernst, warum haben die es beschlossen die sprache zu nehmen? Richtig: Man erreicht mit .net alles was man mit anderen sprachen für ihre zwecke erreichen könnte nur leichter & schneller . Weil für die ist auch: Zeit = Geld

Naja so oder so, die leute die C gelernt haben und noch nie .net gemacht haben schwören auf C und umgekehrt. Eins ist klar, mit .net kann man deutlich schnell vorankommen wie mit C. C ist zwar schön, aber unnötig schwer und lang. Es kommt natürlich darauf an, was man entwickelt und und und...

edit: Also einigen wir uns darauf, dass alle sprachen ihre vor und nachteile haben und .net keine crap aber auch keine supersprache ist - so wie alle anderen sprachen. EINE perfekte programmiersprache gibt es NOCH nicht ;) - es gibt nur leute die gerne auf sachen schwören was sie am besten können um nicht blöd dar zu stehen.

@mediumX: Am anfang hast du eine frage gestellt wir versuchen es zu benatworten. Jetzt geht es garnicht mehr um die frage, sondern darum, dass du uns beweisen willst, dass .net nach deiner meinung scheiße ist. Das hättest du am anfang an schreiben können, dass dich das eh nicht interessiert was/warum/wie in .net gemacht wurde weil du einfach nur die .net sprache lächerlich machen willst.
 
Zuletzt bearbeitet:
Limit schrieb:
Deine Nischenmärkte (Windows, Linux, Treiber, Spiele, Photoshop, Office, Video-/Audioprogramme) machen mit Abstand den größten Teil des Marktes aus.

Das bezweifle ich einmal sehr stark. Windows und Office sind nur Teilgebiete von Microsoft. Das kennt nur jeder, weil es jeder benutzt. In der Entwicklung sind jedoch bei weitem nicht so viele Leute beschäftigt, wie man oft annimmt, zumindest in den Kernbereichen wie Windows und Office Professionell. Das Geld mit Linux wird sowieso fast nur mit dem Support gemacht. Hier wird der Marktanteil auch sehr überschätzt. Wirklich relevant ist Linux/Unix nur bei Großrechnern. Spiele gehören sowieso nur rein zur Privatschiene, mit der sich sowieso kein Geld machen lässt, da es entweder gesaugt wird oder es keiner kauft, weil es so teuer ist. Das einzige, was sich noch halbwegs verkauft ist Windows an OEM Hersteller und vielleicht noch ein paar Virenscanner.
Photoshop kennt auch jeder und es wird viel Geld damit gemacht, aber die Leute, die sich dort in der Entwicklung befinden sind auch nicht so viele.

Gewöhnung und Weiterverwendung von Code sind beides Punkte, die der Qualität des Codes zugute kommen und damit ein Vorteil für den Kunden. Natürlich ist das nur solange ein Vorteil für C/C++, solange sich .NET nicht so weit verbreitet. Andererseits muss .NET erst noch beweisen, dass es für große Projekte überhaupt geeignet ist, denn was Standardsoftware angeht, ist da noch nichts entsprechendes vorhanden und warum sollte man wechseln, wenn die Vorteile nicht deutlich größer sind als die Nachteile. Es stellt nämlich auf jeden Fall ein Risiko dar die Entwicklungsplattform zu wechseln.

95% der Programmierer sind in der Entwicklung von Individualsoftware tätig und das ist auch schon Software, die nur an 5 Kunden geht. So gesehen ist der Bereich ziemlich egal. Selbiges gilt deswegen auch für die ganzen Urheberrechtsdebatten, die eine Gefahr für die Softwarebranche darstellen. Das sind vielleicht 5%, die ständig nörgeln, das alles kopiert wird und der Rest ist froh, wenn er ein paar Lizenzen bei seiner Entwicklungsumgebung spart.
Ein großer Aufwand die Sprache zu wechseln ist es aber auf jeden Fall, da die meisten Programmierer mit Erfahrung noch C++ Programmierer sind.

zu 1. Das kannst du auch problemlos in anderen Sprache realisieren. Bei den älteren Sprachen wirst du eben nur nicht gezwungen das zu überprüfen. Wenn du es trotzdem überall haben willst, besorgst du dir eben eine entsprechende Bibliothek. Da hast du genug Auswahl.
Natürlich kannst du dir Bibliotheken besorgen bis zum geht nicht mehr. Gerade das ist ja das Problem. Ich habe mich schon oft geärgert, wenn ich irgendein altes C++ oder auch VB Programm warten konnte, wo 100 zusätzliche Controls irgendwie dazuinstalliert sind und man keine Ahnung mehr hat, wie man den Mist überhaupt noch zum Compilieren bringt. Natürlich hat da wieder keiner eine Ahnung, dass man dazu 17 dlls in sein system32 Verzeichnis kopieren muss, damit man eine .exe machen kann. War ja auch alles auf dem Rechner von meinem Vorgänger installiert. Blöd nur, dass der mittlerweile formatiert ist.

zu 3. Die Schnittstellen von .NET Bibliotheksfunktionen wird sich nicht weniger/häufiger ändern als bei anderen Bibliotheken. Aus welchen Grund sollte das denn auch so sein?
Es geht hier nicht so sehr um Bibliotheksfunktionen, die dir z.B. einen Arraylist machen, sondern um Funktionen zum Zugriff auf das Betriebssystem. Wenn es in .NET eine Funktion GetProgramDir gibt, dann kann ich mich darauf verlassen, dass das auch in zukünftigen Windows Versionen noch funktionieren wird, auch wenn es eventuell anders gelöst ist z.B. bei 64Bit-Versionen, die zwei verschiedene Directories hat und wo es 64Bit dlls gibt, die eventuell ganz anders heißen und wo anders liegen.

zu 4. Das ist kein Vorteil von .NET, sondern ein Vorteil der Benutzung von Bibliotheken und damit auf jeden beliebige Sprache übertragbar.

Der Vorteil an .NET ist jedoch, dass ich die ganzen Bibliotheken nicht einzeln irgendwo im Internet zusammensuchen muss, dabei 100 Versionen finde, die alle mehr oder weniger gut dokumentiert sind und falls es darin einmal einen Bug gibt, so habe ich einfach Pech gehabt.

Das kommt darauf an, ob die Funktionen in .NET selbst geschrieben sind, oder ob der C/C++ Code des Frameworks die Funktionalität bereitstellt. Falls es im Framework integriert ist, sind diese Funktionen zwar in etwa gleich schnell wie die von C/C++ Bibliotheken, dafür auch kein bisschen sicherer als diese.

Erstens denke ich, dass MS doch seine Arbeit so gut erledigt, dass das .NET Framework einigermaßen stabil ist, da es einfach so oft verwendet wird. Bisher habe ich noch keine gravierenden Probleme entdecken können außer dass der Text für eine Exception einmal nicht stimmt etc., im Gegensatz zu Access, wo vieles nicht so hinhaut, wie es soll und zwar sehr offensichtlich (z.B. der Mausrad Bug bei Endlosformularen). Hier sollte schon eine große Stabilität gegeben sein.
Zweitens gibt es das Problem mit Sicherheitslücken in erster Linie auf der Front zum Kunden. Da die .NET Funktionen jedoch nur von mir aufgerufen werden, ist das alles nicht so tragisch.

Bei Individualsoftware haben .NET und Java ihre Stärken. Dort sehe ich auch den Haupteinsatzzweck. Allerdings kriegen sie in der Ecke auch Konkurrenz von anderer Seite, nämlich den Skriptsprachen. Vor allem in Nicht-Windows-Umgebungen ist die Kombination aus C/C++ Bibliotheken und einer Skriptsprache wie z.B. Python garnicht einmal so selten und hat durchaus auch ihre Reize.

Die Verbreitung von Linux im Businessbereich wird von den meisten eindeutig überschätzt. Das ist für den Endanwender ziemlich uninteressant. Mindestens 80% der Software, die wir schreiben, würden unsere Kunden nicht akzeptieren, wenn sie nicht auf Windows laufen würde. Umgekehrt wüsste ich nicht, dass schon jemals ein Kunde gefordert hätte, dass unsere Software auf Linux läuft. Letztes Mal habe ich einen Kunden gehabt, der wollte wissen, wie er seine Schriftarten vom MAC auf den PC bringt, aber das war schon alles.

Auch wenn sich das jetzt sehr negativ anhören mag, denke ich trotzdem, dass Programmiersprachen wie .NET und Java durchaus ihre Daseinsberechtigung haben, vor allem bei der Individualsoftware. Allerdings finde ich auch, dass sie teilweise doch arg überschätzt werden und ihnen Vorteile angedichtet werden, die garnichts mit der Sprache selbst zu tun hat, z.B. die Sache mit den Standardbibliotheken.

Der Vorteil an .NET ist eben die riesige Bibliothek, die integriert ist. Natürlich kann man sich das auch irgendwo anders besorgen, aber das macht Arbeit und Arbeit kostet Geld, das man vom Kunden verlangen muss. Einmal abgesehen davon bin ich nicht unbedingt ein Freund davon, dass ich mir Unmengen von fremden Code in mein Projekt integriere, wo ich weder weiß von wem der stammt, noch ob er stabil ist und zukunftssicher ist. Wenn ich nicht weiter komme, dann suche ich schon nach Code aber nur nach welchem, den ich verstehen und dann selbst nachprogrammiere.

Durch den mangelnden Support von MS für andere Betriebssysteme ist auch bei .NET Anwendungen die Plattformunabhängigkeit bisher nicht gegeben. Mono ist ein interessantes Projekt, aber Software, die darauf vertraut würde ich im Augenblick noch nicht anbieten wollen.

Man muss sich immer die Frage stellen, ob man wirklich den doppelten Aufwand treiben will, damit man die letzten 2% der Anforderungen abdecken kann. Wenn ich eine Software schreibe, die eine Industrieanlage ansteuert, dann brauche ich mich nicht um Win98, WinNT, Linux etc. kümmern, wenn auf dem Rechner ein Windows XP läuft. Da ist es mir viel wichtiger, dass ich keine Probleme habe, wenn der Kunde in 3 Jahren auf Vista umsteigen will und in 5 Jahren auf ein 64Bit System inkl. Treiber für diverse Zusatzkarten und in 10 Jahren soll das Ganze wenn möglich auch noch laufen.
Mono ist eine nette Spielerei, wie vieles (nicht alles) auf nicht kommerzieller Basis, aber für den täglichen Einsatz ist es absolut nicht zu empfehlen. Schon gar nicht kann man erwarten, dass der Code, den man schreibt 1:1 verwendbar ist.
 
andr_gin schrieb:
Das bezweifle ich einmal sehr stark. Windows und Office sind nur Teilgebiete von Microsoft. Das kennt nur jeder, weil es jeder benutzt. In der Entwicklung sind jedoch bei weitem nicht so viele Leute beschäftigt, wie man oft annimmt, zumindest in den Kernbereichen wie Windows und Office Professionell. Das Geld mit Linux wird sowieso fast nur mit dem Support gemacht. Hier wird der Marktanteil auch sehr überschätzt. Wirklich relevant ist Linux/Unix nur bei Großrechnern. Spiele gehören sowieso nur rein zur Privatschiene, mit der sich sowieso kein Geld machen lässt, da es entweder gesaugt wird oder es keiner kauft, weil es so teuer ist. Das einzige, was sich noch halbwegs verkauft ist Windows an OEM Hersteller und vielleicht noch ein paar Virenscanner.
Photoshop kennt auch jeder und es wird viel Geld damit gemacht, aber die Leute, die sich dort in der Entwicklung befinden sind auch nicht so viele.

Kommt ganz darauf an, aus welchem Blickwinkel man die Sache betrachtet. Wenn man den Umsatz oder die Stückzahlen betrachtet ist die Standardsoftware das Maß der Dinge. Solange solche Standardsoftware in C/C++ oder anderen nativen Sprachen geschrieben wird, werden sie auch der Standard bleiben.

andr_gin schrieb:
95% der Programmierer sind in der Entwicklung von Individualsoftware tätig und das ist auch schon Software, die nur an 5 Kunden geht. So gesehen ist der Bereich ziemlich egal. Selbiges gilt deswegen auch für die ganzen Urheberrechtsdebatten, die eine Gefahr für die Softwarebranche darstellen. Das sind vielleicht 5%, die ständig nörgeln, das alles kopiert wird und der Rest ist froh, wenn er ein paar Lizenzen bei seiner Entwicklungsumgebung spart.
Ein großer Aufwand die Sprache zu wechseln ist es aber auf jeden Fall, da die meisten Programmierer mit Erfahrung noch C++ Programmierer sind.

Man sollte dabei aber auch beachten, das der Bereich Embedded Systems immer wichtiger wird, vor allem im industriellen Umfeld. Mittlerweile gibt es mehr Eingebettete Systeme als richtige Desktops/Server mit weiter stark steigender Tendenz. Für solche Systeme sind weder Windows noch .NET geeignet.

andr_gin schrieb:
Natürlich kannst du dir Bibliotheken besorgen bis zum geht nicht mehr. Gerade das ist ja das Problem. Ich habe mich schon oft geärgert, wenn ich irgendein altes C++ oder auch VB Programm warten konnte, wo 100 zusätzliche Controls irgendwie dazuinstalliert sind und man keine Ahnung mehr hat, wie man den Mist überhaupt noch zum Compilieren bringt. Natürlich hat da wieder keiner eine Ahnung, dass man dazu 17 dlls in sein system32 Verzeichnis kopieren muss, damit man eine .exe machen kann. War ja auch alles auf dem Rechner von meinem Vorgänger installiert. Blöd nur, dass der mittlerweile formatiert ist.

Was irgendwelche anderen Leute gemacht haben kann man ja grundsätzlich nicht beeinflussen. Ansonsten ist das nur eine Frage der richtigen Dokumentation und Codeverwaltung. Außerdem gibt es auch für andere Sprachen gute Bibliotheken, die einen sehr großen Bereich abdecken. Qt zusammen mit der Standardbibliothek sollte in etwa die gleichen Funktionen bieten wie die .NET Bibs.

andr_gin schrieb:
Es geht hier nicht so sehr um Bibliotheksfunktionen, die dir z.B. einen Arraylist machen, sondern um Funktionen zum Zugriff auf das Betriebssystem. Wenn es in .NET eine Funktion GetProgramDir gibt, dann kann ich mich darauf verlassen, dass das auch in zukünftigen Windows Versionen noch funktionieren wird, auch wenn es eventuell anders gelöst ist z.B. bei 64Bit-Versionen, die zwei verschiedene Directories hat und wo es 64Bit dlls gibt, die eventuell ganz anders heißen und wo anders liegen.

Sowas ist doch auch in den Windows-Libs für C/C++ drin und ich denke das Qt auch was entsprechendes implementiert. Müsste man mal nachschauen.


andr_gin schrieb:
Der Vorteil an .NET ist jedoch, dass ich die ganzen Bibliotheken nicht einzeln irgendwo im Internet zusammensuchen muss, dabei 100 Versionen finde, die alle mehr oder weniger gut dokumentiert sind und falls es darin einmal einen Bug gibt, so habe ich einfach Pech gehabt.

Wie gesagt, es gibt auch für andere Sprachen umfangreiche Bibliotheken.

andr_gin schrieb:
Erstens denke ich, dass MS doch seine Arbeit so gut erledigt, dass das .NET Framework einigermaßen stabil ist, da es einfach so oft verwendet wird. Bisher habe ich noch keine gravierenden Probleme entdecken können außer dass der Text für eine Exception einmal nicht stimmt etc., im Gegensatz zu Access, wo vieles nicht so hinhaut, wie es soll und zwar sehr offensichtlich (z.B. der Mausrad Bug bei Endlosformularen). Hier sollte schon eine große Stabilität gegeben sein.
Zweitens gibt es das Problem mit Sicherheitslücken in erster Linie auf der Front zum Kunden. Da die .NET Funktionen jedoch nur von mir aufgerufen werden, ist das alles nicht so tragisch.

Mag sein, aber dann kannst du auch verbesserte Sicherheit nicht ins Feld führen, denn in C/C++ geschriebene Teile der Standardbibliothek sind nicht sicherer/weniger sicher als ganz gewöhnliche C-Libs. Man hat also wieder nur die Wahl zwischen Performance und Sicherheit.

andr_gin schrieb:
Die Verbreitung von Linux im Businessbereich wird von den meisten eindeutig überschätzt. Das ist für den Endanwender ziemlich uninteressant. Mindestens 80% der Software, die wir schreiben, würden unsere Kunden nicht akzeptieren, wenn sie nicht auf Windows laufen würde. Umgekehrt wüsste ich nicht, dass schon jemals ein Kunde gefordert hätte, dass unsere Software auf Linux läuft. Letztes Mal habe ich einen Kunden gehabt, der wollte wissen, wie er seine Schriftarten vom MAC auf den PC bringt, aber das war schon alles.

Es geht nicht darum Windows abzuschaffen, sondern darum die Software generell plattformunabhängig zu machen. Skriptsprachen wie z.B. Python sind von Natur aus plattformunabhängig, sehr leicht wartbar, durch den großen Sprachumfang und große Standardbibliothek bekommt man meist noch kürzeren und übersichtlicheren Code. Mittlerweile gibt es Python ja auch in einer Version für die JVM.

andr_gin schrieb:
Man muss sich immer die Frage stellen, ob man wirklich den doppelten Aufwand treiben will, damit man die letzten 2% der Anforderungen abdecken kann. Wenn ich eine Software schreibe, die eine Industrieanlage ansteuert, dann brauche ich mich nicht um Win98, WinNT, Linux etc. kümmern, wenn auf dem Rechner ein Windows XP läuft. Da ist es mir viel wichtiger, dass ich keine Probleme habe, wenn der Kunde in 3 Jahren auf Vista umsteigen will und in 5 Jahren auf ein 64Bit System inkl. Treiber für diverse Zusatzkarten und in 10 Jahren soll das Ganze wenn möglich auch noch laufen.
Mono ist eine nette Spielerei, wie vieles (nicht alles) auf nicht kommerzieller Basis, aber für den täglichen Einsatz ist es absolut nicht zu empfehlen. Schon gar nicht kann man erwarten, dass der Code, den man schreibt 1:1 verwendbar ist.

Das ist verständlich, allerdings ist die Frage, warum du dazu unbedingt .NET brauchst. Alles, was OS-abhängig ist, wird MS auch noch sehr lange als native C/C++ Libs bereitstellen und bei allen OS-unabhängigen Teilen spielt das OS keine Rolle, solange du den Quellcode hast.
 
Zurück
Oben