Laden...

Erste Details zu C# 3.0 von Anders Hejlsberg

Erstellt von Noodles vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.433 Views
N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 18 Jahren
6.862 Beiträge seit 2003
vor 18 Jahren

Einige Sachen werden wohl aus Comega übernommen. In den Quellen spricht er ja hauptsächlich von XML aber ich wünsch mir so die Streams aus Comega - des programmiert sich echt gut.

Baka wa shinanakya naoranai.

Mein XING Profil.

N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 18 Jahren

Original von talla
Einige Sachen werden wohl aus Comega übernommen.

Denke ich auch.

Er spricht aber auch von den Unterschieden der OO- und der relationalen Welt ( SQL ), dass lässt hoffen.

M
456 Beiträge seit 2004
vor 18 Jahren

Naja, ich persönlich sehe die Ankündigung, in C# Konstrukte zur Datenabfrage zu integrieren, eher kritisch. Aus C# jetzt eine Art objektrelationale Programmiersprache zu machen, lässt bei mir gemischte Gefühle aufkommen.
Heijlsberg sollte sich genau überlegen, was er wirklich in die Sprache einbauen will, sonst haben wir am Ende ein ähnlich unübersichlichen und kaum noch zu implementierenden Standard wie das C++-Komitee.
Glücklicherweise bin ich nicht allein mit dieser Meinung, denn im Channel 9 Forum gibt es auch Leute, die das ähnlich sehen wie ich ...

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

6.862 Beiträge seit 2003
vor 18 Jahren

Klar darf man nicht einfach alles blind implementieren was gerade so "in" ist an Techniken, weil dann wäre Comega schon Version 3 von C#, ist es aber nicht. So wie dort aber XML z.B. integriert ist, find ich schon Klasse. Und denke mal die werden mit Comega als Experimentalsprache viel Erfahrungen sammeln wie sehr sich einige Konzepte für C# eignen.

Baka wa shinanakya naoranai.

Mein XING Profil.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Die "SQL-Integration" entpuppt sich beim zweiten Hinsehen ja als IEnumerable-Abfragesprache. Bleibt natürlich die Frage, wo außer bei SQL das mit Gewinn eingesetzt werden kann. Generell folgt das natürlich dem aktuellen Trend mehr und mehr deklarativ zu arbeiten.

Ich sehe zumindest den Gewinn, auch hier Typisierung zu bekommen und somit etliche Fehler zu vermeiden.

N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 18 Jahren

Original von svenson
Ich sehe zumindest den Gewinn, auch hier Typisierung zu bekommen und somit etliche Fehler zu vermeiden.

Sehe ich auch so. Das hat A.H. ja auch angesprochen.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Grundsätzlich finde ich auch Innvoation in dem Bereich begrüßenswert. Wenn man mal ehrlich ist, sind solche wirklich revolutionären Ansätze in letzter Zeit doch ziemlich selten zu finden. Ebenfalls diskutieren wird ja, bestimmte Merkmale funktionaler Programmiersprachen aufzunehmen. Dem wäre ich auch nicht abgeneigt.

Q
992 Beiträge seit 2005
vor 18 Jahren

Original von svenson
Grundsätzlich finde ich auch Innvoation in dem Bereich begrüßenswert. Wenn man mal ehrlich ist, sind solche wirklich revolutionären Ansätze in letzter Zeit doch ziemlich selten zu finden. Ebenfalls diskutieren wird ja, bestimmte Merkmale funktionaler Programmiersprachen aufzunehmen. Dem wäre ich auch nicht abgeneigt.

Welche Merkmale wären das?

4.207 Beiträge seit 2003
vor 18 Jahren

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

6.862 Beiträge seit 2003
vor 18 Jahren

Original von Der Eisbär

>


>

Klingt sehr interessant. Diese SQL ähnlichen Abfragen gibts ja auch in comgea. Dort liefern die Streams, gibts in Linq sowas ähnliches? Weil das was ich im Comega mit Streams gemacht habe fand ich einfach nur geil 😁 Viel komfortabler gehen damit einige Sachen als bisher

Baka wa shinanakya naoranai.

Mein XING Profil.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Original von Quallo
Welche Merkmale wären das?

Schau dir mal bei MSDN Artikel zum Thema F# an. Genau wie COmega eine Experimentalsprache, diesmal aber eben funktional.

N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 18 Jahren

Original von Der Eisbär

>


>

Das klingt sehr angenehm.

Hast Du denn mal was über die Zukunft von ASP.NET gehört?
Ob die in Richtung ClientCallback noch mehr tun. Typisierte Sessionvariablen, ähnlich wie die Properties beim neuen Konfigurationfeature einer WindowsApp fände ich auch cool.

M
456 Beiträge seit 2004
vor 18 Jahren

Hier kann man übrigens die Spezifikation runterladen:

http://download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%203.0%20specification.doc

Einige Dinge seh ich aber immernoch kritisch. Viele Syntaxerweiterungen sind oft nur Aliase für Methodenaufrufe in Collections. Man hätte die gleichen Effekte auch mit deutlich weniger Syntaxmodifikationen hinbekommen.

Ob ich nun schreibe:


from c in customers
where c.City == "London"
select c.Name

oder


customers.
Where(c => c.City == "London").
Select(c => c.Name)

ist eigentlich wurst, denn Oberes wird ja eh in die untere Schreibweise übersetzt. Außerdem integriert sich ja die letztere Version schon in die bestehende Sprachdefinition von C# (Bis auf die Lambda Ausdrücke, die schon cool sind). Ich seh die Aufnahme neuer Schlüsselwörter eher mit Skepsis. Lisp braucht z.B. überhaubt keine neuen Syntaxkonstrukte und ist trotztem beliebig erweiterbar.
Keep it small and simple.

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

P
939 Beiträge seit 2003
vor 18 Jahren

Ich hab mal in den Link von maxE reingeschaut.

Objekt- und Collection-Initializers sind eine gute Idee, finde ich. Man kann dann alle (?) Typen schon bei der Deklaration/Instanziierung vollständig initialisieren. So wie man es heute von Arrays her kennt.

List<string> stringList = new List<string> {"abc", "def", "ghi"};
Person p = new Person {Name="Gonzo", Age=28};

Der Sinn hinter impliziter Typisierung hat sich mir auf die Schnelle nicht erschlossen.

var i = 5; // int i
var s = "abc"; // string s

Was soll es bringen, den Typ nicht mit anzugeben, was wird dadurch vereinfacht? Ich seh's schon kommen, in C# 4.0 gibt es den Variant-Typ.

N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 18 Jahren

Zur ClientCallback Geschichte in ASP.NET, ist folgender Link interessant.
Atlas Project

4.207 Beiträge seit 2003
vor 18 Jahren

Infer data type ... sprich das var-Schlüsselwort ... sollte laut Anders Heijlsberg nur dann eingesetzt werden, wenn es nicht ohne geht ...

Bei int und string ist es Quatsch, aber bei anonymen Datentypen geht es nicht anders. Und bei Abfragen mit Instanziierung ohne Konstruktor benötigt man das ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de