DenkzeitWiki

Suchen:

Aktuelle Änderungen Printable View Änderungen Bearbeiten

LiskovSubstitutionPrinciple > HomePage > CSharpClear Trail
Main /

CSharp

DotNetFrameworkClassBrowser

ProgrammingLanguages
Boo

DotNet
VisualStudio
Ildasm
Delegates
ADO

CSharpVsJava

AndersHejlsberg

C# is, in some sense, the programming language which most directly reflects the underlying .NET Framework on which all .NET programs run, and it depends strongly on this framework; there is no such thing as an unmanaged C# program.


v3.0


CSharp becomes Lispier. Funny.

a Moped is just fast enough to get you into trouble, but not fast enough to get you out of trouble.

A couple years back there was a blog meme floating around called Is Ruby an Acceptable Lisp? When C# 3 came out, there was some quiet discussion in ALT.NET circles that maybe the new language features (the "var" keyword, better type inference, lambdas) would be enough to satisfy us in regards to Language Oriented Programming and keep us from clamoring for Ruby. The answer for me after three months of hands on C# 3 is that C# 3 is NOT an acceptable Ruby. Simply having Duck Typing (or maybe the super type inference that OCaml and other exotic languages have) would have made what we were trying to do easier to code and easier to read. Some of the Fluent Interface work helps to boil down code into a much smaller surface area, but there's still too many extraneous angle brackets, squiggley brackets, and semicolons floating around to make it really readable the same way that a Ruby or Python internal DSL can be. Maybe my entire point here is that C# is simply not Ruby and we shouldn't try so hard to use C# like Ruby.


interesting features


Unlike most other programming languages, no C# implementation currently includes any distinct set of class or function libraries. Instead, C# is tied closely to the .NET Framework, from which C# obtains its runtime functions and classes.



Generics

JavaGenerics

C# generics are really just like classes, except they have a type parameter. C++ templates are really just like macros, except they look like classes.

DuckTyping

So in a sense, C++ templates are actually untyped, or loosely typed. Whereas C# generics are strongly typed.



Hacks

MixIn - MultipleInheritance


Managed And Unmanaged Code

VirtualMachine
CommonLanguageRuntime
ByteCode

IDEs


Tools


books

Edit - BackLinks - Tags - Page Hist - Print - Changes - Home - Orphans - Help

Zuletzt geändert am 29.05.2009 21:32 Uhr und seit 7. April 2005 2004 aufgerufen.