zoukankan      html  css  js  c++  java
  • 复古运动: 看C#语言的发展(转)

    由于多种原因,没去找出处,下面仅是转载

    C#从1.1到2.0再到3.0 , 许多fans为它的新特性欣喜若狂, 其实大部分只是在做一些复古运动.

    C#1.x  基本上抄袭了Java, 
    新加的特性:
    Foreach: 很多语言早就有了这个关键字. 古老的Lisp里用的是DoList 宏.
    delegate: 模仿了Lisp的Funcall.

    C#2.0:
    Generics, 学过C++的人应该对模板都不陌生吧.虽然C#中做了少许改变.
    Anonymous methods:  模仿Lisp 里面的Lambda函数.
    Nullable types: Lisp 里面有(null )函数. 不管是atom 还是 list 都可以是nil.
    aliases: 类似C里面的 #define

    再看C#3.0
    Implicitly Typed Local Variables: 许多弱类型的语言已经这样做了.
    Lambda Expressions: 还是模仿了Lisp 里面的Lambda函数. 比Anonymous Methods 更加像了.
    Anonymous Types: 早就觉得写Entity 太麻烦了, 我以前还写过Code Generation 来生成实体类, Anonymous Types 可就简单多了, Lisp 里面的Macro做的就是Code Generation 的工作.
    Query Expressions: 我以前做的O/R Mapping 跟它有些像. 增加的 from where select 等关键字, 好像是从COmega进化过来的. 这样下去C#的关键字会越来越多, 语言变得越来越难学. 其中yield return 跟Lisp的Loop 方法如出一辙(loop... collecting..)


    其实许多许多的特性, 在古老的Lisp语言中都已经存在了的. 现在把它翻出来, 稍微改变一下, 又变成新的了. 很大程度上,这种现象跟流行服饰是一样. 实在没什么东西可创新了, 就复古吧!!!

  • 相关阅读:
    hive数据仓库入门到实战及面试
    clickhouse入门到实战及面试
    透过源码看懂Flink核心框架的执行流程
    hive经典练习题
    flink批处理从0到1学习
    flink基础篇
    flink进阶篇
    flink源码阅读
    spark优化总结
    uni-app跨平台移动应用开发
  • 原文地址:https://www.cnblogs.com/xiexiaokui/p/1685652.html
Copyright © 2011-2022 走看看