发信人: Cklein (Calvin Klein), 信区: DotNet
标 题: Re: 好像c#为了DotNet牺牲了不少
发信站: BBS 未名空间站 (Sat May 30 16:51:37 2009)
I guess we need to define "Computing Language". By the end of the day, "C#,
Java, VB ... etc" are supposed to serve the same purpose as Natural language
like English, Chinese, to computer of course. It enables you to give
specific instruction to a computer. But it needs to be able to easily
understood by human being also.
If you can live "one" keyword, don't create "two", that's good for computer.
But not good for humanbeing. Unfortunately the language is writen by
humanbeing, and has to be understood by computer and other humanbeings
around you, easily! So some redundancy is necessary sometime because
humanbeings don't always behave consistently, and humanbeing make mistakes.
Windows and VB was popular for the same reason: Humanbeing are stupid. If
everybody is smart, everybody will use C++ programming on Unix machine. All
the additional keywords created to make it easier for humanbeing to read/
understand the code, not for the computer.
And you don't have to understand every keywords just like you don't have to
understand everyword in English. I have been programming in C# since its
beta 2 version. Since C# 2.0, I can't understand everything in C# anymore. I
don't know exactly how to use Lambda expression though I wrote LinQ all the
time, I don't understand how to take full advantage of the dynamic lambda
expression feature, and some other features like "Yield", I never used them.
But it doesn't prevent me from creating great software. And I know that
when I need it, I can look it up.
More and more language elements got introduced, you just need to get the one
you needed in your project. Of course, you need to understand the principal
programming, so whatever you've learned in school about data structure and
software engineering still applies really well.
※ 来源:·WWW 未名空间站 海外: mitbbs.com 中国: mitbbs.cn·[FROM: 68.5.]