Welche Sprache
-
C#-Fan schrieb:
Und wie und warum bitte ist C# für Windows designt? Weißt Du eigentlich wovon du sprichst? Kennst du die Spracheigenschaften und intelligenten Neuerungen von C# eigentlich.
Selbst wenn du eigentlich die enorm umfangreiche Bibliothek gemeint hast: Auch die ist nicht für Windows "designt".
C# selbst ist in der Tat plattformneutral. Das .Net Framework wiederum ist (logischerweise) deutlich besser an Windows als an andere Systeme angepasst. Und Mono wird wohl (auch auf längere Sicht) niemals zu den neuen Features von .Net 3.0/3.5 gänzlich kompatibel sein [Speziell spreche ich hier u.a. WPF an, siehe dazu auch ein Hinweis von der Mono-Seite].
Unsupported technologies
Some technologies are very hard to implement or are being phased out by new .NET components. So we are not likely going to implement these features.
....
...There might be some code on SVN but we are not currently planning on implementing:
- Windows Presentation Foundation (.NET 3.0).
- Windows Workflow Foundation (.NET 3.0).
- Code Access Security (.NET 1.0).
Das man die WF nicht umsetzt ist sogar recht logisch, da diese ohnehin gänzlich für .Net 4.0 neu entwickelt wird (Da auch im Originalframework sehr langsam, man spricht von Performanceeinbusen im Faktor 1:1000!).
Nichts spricht dagegen unter Mono auf die WinForms zu setzten, aber eine Kompatibilität wird auch in Zukunft nicht "automatisch" existieren (Ich könnte meine Privatprojekte z.B. definitiv nicht portieren, da ich die WPF verwende).
C#-Fan schrieb:
Dummerweise ist die Plattform dermaßen durchdacht, dass sie sich perfekt portieren lies.
Gut, wenn es so "perfekt" portierbar ist, mach dich mal bitte an einen WPF-Port. DirectX existiert nicht unter Linux, man könnte zu teilen vielleicht auf OpenGL austauschen, aber spätestens bei Videowiedergaben etc. möchte ich mal sehen wie du das ohne weiteres umsetzt...
Meine Meinung
Mono ist durchaus ausgereift, dennoch ist es Unsinn zu sagen das .Net nicht für Windows konzipiert wurde. Und solange einige Kerntechniken (WPF wird ja als DIE UI der Zukunft gepriesen - was sich durchaus mit meiner Meinung deckt) nicht portiert werden, muss man einfach sagen:C# und .Net ist in Teilen portierbar, man muss aber bei der Projektkonzeption aufpassen, welche der Techniken man verwendet.
Ich halte C# und .Net für durchdachter als Java (logisch, C#/.Net kam ja später und konnte so noch einiges mehr berücksichtigen), nicht desto trotz muss man zumindest mit gewissen Einschränkungen rechnen, wenn man dies portabel verwenden will.
cu André
-
C#-Fan schrieb:
Mir ist keine Plattform bekannt, dir derart ausgereift und durchdacht ist wie .NET.
wie kommst du darauf?
-
<-- vergessen
-
Siassei schrieb:
z.B. hat Fortran noch immer eine Nische und ist in gewissen Bereichen überlegen. Oder, die Entwickler von C konnten sich gar nicht vorstellen, dass diese Sprache jemals einer benutzen würde.
FORTRAN gibt es seit 1958, C erst seit 1972. K&R kamen aber von ASSEMBLER. Sie und ihre Nachfolger haben die Sache so gut gemacht, dass die meisten FORTRAN-Programmierer auf C, später C++, umgestiegen sind.
-
asc schrieb:
Ich halte C# und .Net für durchdachter als Java ...
das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
-
berniebutt schrieb:
K&R kamen aber von ASSEMBLER.
Schonmal von B und BCPL gehört? Mal ganz davon abgesehen, dass in den 60er Jahren so unbedeutende Sachen wie ALGOL passiert sind.
Zu dem Rest deines Postings kann ich ohne Recherche nichts sagen, vermute aber nichts gutes :p
-
+fricky schrieb:
asc schrieb:
Ich halte C# und .Net für durchdachter als Java ...
das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
Und warum merkt man daran dann was? Java hat überhaupt keine Pointer und dass C# sie zulässt, sie jedoch weniger zugänglich macht, ist doch gut?
-
LOLAlter schrieb:
+fricky schrieb:
asc schrieb:
Ich halte C# und .Net für durchdachter als Java ...
das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
Und warum merkt man daran dann was?
die durchdachtheit von C# zeigt sich dadurch, dass offenbar der bedarf besteht, direkt im speicher rumzuwuseln. aber vielleicht hat C# auch nur pointer, um sich von Java abzuheben.
-
C# ist nicht besser durchdacht als Java, nur aufgeblasener. Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.
Aber Featureritis gibt es ja auch bei anderen Produkten aus dem Hause MS.
-
+fricky schrieb:
LOLAlter schrieb:
+fricky schrieb:
asc schrieb:
Ich halte C# und .Net für durchdachter als Java ...
das merkt man ja schon daran, dass C# pointer und ein 'unsafe' keyword hat.
Und warum merkt man daran dann was?
die durchdachtheit von C# zeigt sich dadurch, dass offenbar der bedarf besteht, direkt im speicher rumzuwuseln. aber vielleicht hat C# auch nur pointer, um sich von Java abzuheben.
Keines weiteren Kommentares würdig.
-
LOLAlter schrieb:
Keines weiteren Kommentares würdig.aha, LOLAlter hat keine ahnung und findet sich deswegen unwürdig, weitere kommentare zu schreiben. respekt!
-
tfa schrieb:
C# ist nicht besser durchdacht als Java, nur aufgeblasener.
Also zumindest von der Installationsgröße her würde ich dem widersprechen - das nimmt sich nicht viel (Ich glaube sogar das .Net 3.5 kleiner ist als ein aktuelles Java).
tfa schrieb:
Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.
Beide Sprachen haben ihre Schwächen (Ein Fehlgriff von MS war z.B. Worflow Foundation - zumindest in dem aktuelle Stand) und nehmen sich nicht viel (wobei ich C# zumindest in meinen Bereich - hauptsächlich Cliententwicklung unter Windows, für weitaus besser halte).
cu André
-
tfa schrieb:
Man hat zwar einige Schwächen von Java nicht übernommen (was gut ist), aber dafür viele neue eingeführt.
z.b. das eingebaute kryptosystem, im volksmund auch 'operatorüberladung' genannt, macht garantiert jeden obfuscator überflüssig. dagegen kann Java nicht anstinken.
-
asc schrieb:
Also zumindest von der Installationsgröße her würde ich dem widersprechen - das nimmt sich nicht viel (Ich glaube sogar das .Net 3.5 kleiner ist als ein aktuelles Java).
Das meinte ich nicht mit aufgeblasen, sondern die Sprachen selbst. Die Downloadgröße ist völlig egal.
-
tfa schrieb:
Das meinte ich nicht mit aufgeblasen, sondern die Sprachen selbst. Die Downloadgröße ist völlig egal.
Dann führ das bitte mehr aus. Meine Javakenntnisse sind leider nicht auf dem aktuellen Stand, um einen fairen Vergleich zu machen - zumindest auf den Stand von Java 1.4 sehe ich hier nicht wirklich einen großen Unterschied.
-
Was willst du denn hören? Eine Liste der Features, die Java nicht hat im Gegensatz zu C#?
-
tfa schrieb:
Was willst du denn hören? Eine Liste der Features, die Java nicht hat im Gegensatz zu C#?
Nein, sondern welches Feature den fälschlich in C# eingeführt wurde (Sowohl Java als auch .Net haben versucht eine mächtige Bibliothek zur Verfügung zu stellen, schlagen imho daher in die selbe Quelle).
-
Z.B.: Structs, implizite Type Conversions, Indexers, Operatorüberladung (selten sinnvoll, oft gefährlich), LINQ, "unsafe"
Sachen, die in Java fehlen: Reifed Generics, ARM-Blöcke
Sachen, die in Java überflüssig sind: checked Exceptions
Bei Closures bin ich mir nicht sicher, wie ich sie (in einer statisch typisierten Sprache) finden soll.(Sowohl Java als auch .Net haben versucht eine mächtige Bibliothek zur Verfügung zu stellen, schlagen imho daher in die selbe Quelle).
Sprache!=Bibliothek. In Sachen Bibliotheken gibt es nicht viel, was ansatzweise an Java heranreicht. Aber darum geht es nicht.
-
@Bashar: Dann hast Du in dieser Zeit noch nicht programmieren müssen. ALGOL war sogar besser als FORTRAN, nur leider aus Europa, nicht aus USA. Ich finde überall die wesentlichen Grundlagen der Programmierung auch heute noch wieder. Meine heutige Wahl ist C++. Das wollte ich dem Fragesteller sagen.
-
berniebutt schrieb:
@Bashar: Dann hast Du in dieser Zeit noch nicht programmieren müssen. ALGOL war sogar besser als FORTRAN, nur leider aus Europa, nicht aus USA.
Ich meinte das nicht ironisch. Kernighan und Ritchie kamen nicht von Assembler, sondern standen wie viele andere auf den Schultern von Riesen, im Falle von C sind die Vorgänger B und BCPL. Und ALGOL ist natürlich der Stammvater aller modernen blockstrukturierten Sprachen.
Es hörte sich bei dir so an als gäbe es nur FORTRAN und dann hat jemand mit C etwas völlig neues geschaffen, worauf die FORTRAN-Programmierer alle umgestiegen sind.