Ist C# so gut?
-
asc schrieb:
Grundsätzlich zu deinen Punkten Zustimmung, aber bezogen auf 1.: Kann man nicht eine bestimmtes Interface als Constraint angeben?
Ja das geht und ist an anderen Stellen viel wert. Für das genannte Problem ist es aber keine Lösung. Zum einen wäre es mehr als hässlich, auf überladene Operatoren verzichten zu müssen wenn es um mathematische Klassen geht. Statt dessen müssten wir gegen sowas wie IBasicMath mit Methoden wie Add oder Mul programmieren.
Viel gravierender ist aber, dass die Basistypen (float, double, decimal) kein passendes Interface zur Verfügung stellen. Man ist also nicht einmal in der Lage ein class Complex<T> oder class Vector<T> zu entwickeln und sie mit den Basistypen zu instanziieren.
-
Generics habe ich bis jetzt noch nicht oft genug benutzt aber ich stimme dir besonders in Punkt 3 zu.
-
C# erfordert .Net und packt eine weitere Ebene zwischen Betriebssystem und Anwendung für z.B. Typen. Macht durchaus Sinn, wenn unterschiedliche Platformen oder Compiler unterschiedliche Anzahl Bytes für die Typen bereitstellen. Aber C# bietet noch einiges mehr, nur anders als von C oder C++ gewohnt.
-
berniebutt schrieb:
Macht durchaus Sinn, wenn unterschiedliche Platformen oder Compiler unterschiedliche Anzahl Bytes für die Typen bereitstellen.
Das ist doch wirklich nicht der Grund hinter .NET. Defacto ist das was man unter .NET versteht doch nur die Implementierung von Microsoft unter Windows. Also hat es nichts mit unterschiedlichen Plattformen oder Typgrößen zu tun. Natürlich ist das eigentliche .NET plattformunabhängig und es gibt ja zB Mono. Aber viele der Bibliotheken (zB GUI-Zeugs) sind da ja nicht enthalten und es hinkt in der Entwicklung immer der Microsoft Implementierung hinterher. Die meisten .NET-Programme laufen daher sicher nicht unter Mono.
.NET wurde nicht für Plattformunabhängigkeit entwickelt, sondern einfach als neue Programmierumgebung für Windows. Zum einen weil Microsoft damals Angst vor Java hatte und zum anderen, weil sie einen Nachfolger für das angestaubte MFC brauchten.
-
Ich habe mal gehört das .NET es auch erlaubt die IL Sprache abhängig von der Hardware des PC in echt-zeit zu optimieren. Stimmt das?
-
Patrickssj6 schrieb:
Ich habe mal gehört das .NET es auch erlaubt die IL Sprache abhängig von der Hardware des PC in echt-zeit zu optimieren. Stimmt das?
In der Theorie ja, aber Java könntest auch. Praxis, dunno.
-
Patrickssj6 schrieb:
Ich habe mal gehört das .NET es auch erlaubt die IL Sprache abhängig von der Hardware des PC in echt-zeit zu optimieren. Stimmt das?
Ich glaub du meinst den JIT-Compiler («just in time»). Der IL-Code wird auf der Zielplattform vor der Ausführung in nativen, optimierten Maschinencode übersetzt (ich glaube methodenweise on-demand). Echtzeit ist nicht ganz das richtige Wort dafür.
-
@ rüdiger
Meinetwegen ist das mit .Net und C# alles so und alles nur eine vielleicht unnötige Sache von Microsoft. Wer aber für Windows Phone (die kleinen hübschen Telefone mit Internetzugang) entwickelt, kommt weder um .Net noch um C# herum, weil diese Plattform das verlangt. Gut, der Marktanteil von Windows Phone mag gegenüber Android noch gering sein. Wir werden da aber wohl zunehmend mit leben müssen. Es ist nicht alles nur Marktstrategie, wenn auch vieles so erkennbar ist.
-
berniebutt schrieb:
alles nur eine vielleicht unnötige Sache von Microsoft.
Das sag ich doch gar nicht
-
berniebutt schrieb:
.... Wer aber für Windows Phone (die kleinen hübschen Telefone mit Internetzugang) entwickelt, kommt weder um .Net noch um C# herum, weil diese Plattform das verlangt. Gut, der Marktanteil von Windows Phone mag gegenüber Android noch gering sein. Wir werden da aber wohl zunehmen mit leben müssen. Es ist nicht alles nur Marktstrategie, wenn auch vieles so erkennbar ist.
Sehe ich eher als Vorteil, weil es eine elementare .NET Eigenschaft ist, das du in jeder beliebigen .NET Sprache für diese Plattform programmieren kannst. Das sollte sich auch auf den mobilen Plattformen anwenden lasstn - Also nicht nur C# sondern auch Basic oder C++
Das hast du bei Java auf Android und Objective C *würg* auf Apple z.B. nicht. Und bei letzteren sind das noch die harmlosesten Hürden die es zu überwinden geht, um dort überhaupt was entwickeln zu können
-
Cpp_Junky schrieb:
Das sollte sich auch auf den mobilen Plattformen anwenden lasstn - Also nicht nur C# sondern auch Basic oder C++
Kann man inzwischen C++/CLI auf WP7 nutzen?
IIRC war am Anfang nur C# möglich...
-
@Cpp_Junky
Für Android kann man doch auch C++ nehmen und über die JVM auch andere Sprachen (Scala, Clojure, etc.). Für iOS kann man Objective-C doch auch mit C++ kombinieren (Objective-C++). Für Android und iOS gibt es übrigens auch Mono in einer kommerziellen Version.
-
GPC schrieb:
Cpp_Junky schrieb:
Das sollte sich auch auf den mobilen Plattformen anwenden lasstn - Also nicht nur C# sondern auch Basic oder C++
Kann man inzwischen C++/CLI auf WP7 nutzen?
IIRC war am Anfang nur C# möglich...
Sollte afaik eigentlich funktionieren, solange ein Compact Framework Assembly hinten rauskommt. Falls nicht, wär das böse am .net Konzept vorbeikonzeptioniert, oder ist einfach noch nicht fertig.
-
Cpp_Junky schrieb:
Sollte afaik eigentlich funktionieren, solange ein Compact Framework Assembly hinten rauskommt. Falls nicht, wär das böse am .net Konzept vorbeikonzeptioniert, oder ist einfach noch nicht fertig.
Oder es ist pure Absicht
Schließlich ist C++/CLI nicht als Hauptsprache für .NET, sondern nur als Bindeglied zwischen unmanaged und managed-Welt gedacht. Man kann z.B. auch kein Silverlight (ok, es ist eh tot) mit C++/CLI programmieren.
-
GPC schrieb:
Cpp_Junky schrieb:
Das sollte sich auch auf den mobilen Plattformen anwenden lasstn - Also nicht nur C# sondern auch Basic oder C++
Kann man inzwischen C++/CLI auf WP7 nutzen?
IIRC war am Anfang nur C# möglich...
Nope. Zumindest habe ich es nicht geschaft - habe aber auch nur etwa 10 Minuten probiert. Inzwischen: http://wpdev.uservoice.com/forums/110705-app-platform/suggestions/1755203-native-sdk-to-support-c-development
-
GPC schrieb:
Man kann z.B. auch kein Silverlight (ok, es ist eh tot)...
Silverlight wurde bislang nicht von Microsoft offiziell begraben, und müsste nach Microsofts eigenen Regeln noch ca. 10 Jahre unterstützt werden, falls es den wirklich begraben wird.
Silverlight hat im Unternehmensumfeld durchaus eine große Verbreitung, und auch die MFC wurde damals aufgrund des Protestes vieler Entwicklungshäuser am Leben gehalten...
Also den Ball erst einmal flach halten.
-
C# is die schoenste Sprache, mit der ich jemals gearbeitet hab. Ein schoener Hybrid aus Java und C++.
Und in Verbindung mit dem .NET Framework und VS war das Entwickeln echt ein Traum.
-
asc schrieb:
GPC schrieb:
Man kann z.B. auch kein Silverlight (ok, es ist eh tot)...
Silverlight wurde bislang nicht von Microsoft offiziell begraben, und müsste nach Microsofts eigenen Regeln noch ca. 10 Jahre unterstützt werden, falls es den wirklich begraben wird.
Silverlight hat im Unternehmensumfeld durchaus eine große Verbreitung, und auch die MFC wurde damals aufgrund des Protestes vieler Entwicklungshäuser am Leben gehalten...
Also den Ball erst einmal flach halten.
Ich habe natürlich stark überspitzt. Aber Silverlight riecht schon etwas komisch und so wie es momentan aussieht, läuft - auch bei MS - alles auf HTML5 + JS hinaus. Und klar dass Entwickler keine Lust haben, dass ein Produkt eingestellt wird, mit dem sie was programmiert haben
Das gleiche passiert immer und überall
-
GPC schrieb:
Ich habe natürlich stark überspitzt. Aber Silverlight riecht schon etwas komisch und so wie es momentan aussieht, läuft - auch bei MS - alles auf HTML5 + JS hinaus.
Nur kann HTML5+JS nicht Alles, zudem ist es noch kein verabschiedeter Standard. Und zu guter letzt gilt JS unter vielen Programmierern nicht unbedingt als sinnvolle Sprache. Und SL hat einige Vorteile für Firmen (Nicht nur wegen Ähnlichkeiten zu WPF und einer Sprache als Basis).
-
asc schrieb:
GPC schrieb:
Ich habe natürlich stark überspitzt. Aber Silverlight riecht schon etwas komisch und so wie es momentan aussieht, läuft - auch bei MS - alles auf HTML5 + JS hinaus.
Nur kann HTML5+JS nicht Alles, zudem ist es noch kein verabschiedeter Standard. Und zu guter letzt gilt JS unter vielen Programmierern nicht unbedingt als sinnvolle Sprache. Und SL hat einige Vorteile für Firmen (Nicht nur wegen Ähnlichkeiten zu WPF und einer Sprache als Basis).
Ich habe ganz ehrlich so gut wie keine Ahnung von Webprogrammierung, insofern weiß ich nicht wie und wo HTML5 + JS hinterherhinkt. Dass es das tut, war aber zu erwarten, es ist ja noch ganz am Anfang.. sozusagen vor dem "Start"-Feld
Ach ja, bzgl. des eigentlichen Threadthemas:
Ich mag C# auch sehr gerne, wünsche mir aber wie µ weniger "Gleichheitskonzepte" und etwas mehr Power für die Generics. Das sind aber keine echten Probleme für mich, insofern bin ich sehr zufrieden damit