我以前是玩 Javascript的,最近转而研究C#,发现C# 4.0 支持的两个新特性:
 dynamic 和可选参数。感觉 dynamic 怎么那么像 Javascript 里面的 var 呢?dynamic 支持的一切用 JS 的 var 都可以实现。
还有【可选参数】这个特性,C# 现在才有,而 JS 一早就支持了。
我想学C#是因为这门语言比较新,而且还在不断地发布新版本,比较有追头。可现在给我的感觉被彻底颠覆了。
我在研究C#的过程中发现,每次的新版本都会或多或少添加一些JS本来就有的东西。
Javascript 这个语言十几年前就有了,而C#还算是个小青年,感觉好悲哀。不知道C#这算不算赤果果的抄袭呢?
我还要不要继续学习这门语言呢?
将来C#还会不会继续抄袭JS的理念呢?迷茫了,求解答…… 

解决方案 »

  1.   

    我想学C#是因为这门语言比较新,而且还在不断地发布新版本,比较有追头。可现在给我的感觉被彻底颠覆了。
    我在研究C#的过程中发现,每次的新版本都会或多或少添加一些Java本来就有的东西。
    Java 这个语言十几年前就有了,而C#还算是个小青年,感觉好悲哀。不知道C#这算不算赤果果的抄袭呢?
    我还要不要继续学习这门语言呢?
    将来C#还会不会继续抄袭Java的理念呢?迷茫了,求解答…… 
      

  2.   

    C#是强类型的,JavaScript是弱类型的……
      

  3.   

    这。 不止javascript 
    还"借鉴"java很多思想
      

  4.   

    谢谢大家的回复,我接触的编程语言只有 javascript,所以见识比较狭隘,只能按照自己的理解来看问题。
    问的问题肯定很幼稚,但对我来说确实比较真是问题。
    希望大家笑过,也还是认真考虑回答一下吧,呵呵。
      

  5.   

    没有抄袭不抄袭的,c#有C#的使用环境,js有自己的使用环境。如果做.net的东西,还是要学习C#。
    C#引入一些js或者说是脚本语言的东西,是为了这个语言更加灵活,强大。因为编译型或者强类型语言是很难做到脚本语言那么灵活的编程风格的,因为要兼顾效率和编译前类型检查,类型检查是很重要的,他可以使我们在编译期间就发现很多程序的错误,而JS只有到运行了,在会暴露出来。
      

  6.   


    javascript。语言?。无语。。
      

  7.   

    不能孤立的学习C#,你得结合framework,你会发现.net很强大地
      

  8.   

    此贴必火,留个隐藏链接。UUsee网络电视
      

  9.   


    呀米隐藏...UUsee网络电视
      

  10.   

    楼主追C#太落伍了,去学Google Go吧,适合你。
      

  11.   

    c井号, js 都是针对一个运行时平台的语言
    直接负责执行的不是os, 有个虚拟层
      

  12.   

    c#是为了和java竞争微软搞出来的东西,可以说已经超越java了
      

  13.   

    楼主意思好像是,学习C#是不多余。不多于的,C#有自己的应用场合,JavaScript代替不了的,一般情况下,在服务器端,就要用到C#,而不是JavaScript;同理JavaScript也有自己的应用场合,互相配合使用;你可以这么想,如果打算一直在windows下工作,那就紧跟微软吧
      

  14.   

    C#中的var 变量只是IDE搞的鬼,在语法上让你更方便而已,实际编译的时候还是会转换为实际的int,string这些类型。
      

  15.   

    别人都能做带只能提示的 mini IDE 了, 
    咋办,
      弄个 var.2.0 足够稳定, 满足大多数需要了, 好多用户不升级弄个隐式属性, 再造个 => 包语法,想用2005编译基础代码? 没门!干, 这些狼子野心,
    一个语言在语法层次都这么剧烈的动荡, 为了啥.真是他们说的抢夺站.上面的语法构造都可以修改为 2.0 的.见过好多类库的代码, 只有一处这些语法, 使得跟 >= 3.0 绑定的.
    codeplex 居多
      

  16.   

    var 可以增强可读性的,比如 var obj = new MyLLLLLLLLObj();显然要比MyLLLLLLLLObj obj = newMyLLLLLLLLObj();好一些,因为它更简单,一目了然的知道它是什么类型了。但另一种情况旬var obj = GetObj();这种情况就不能用var了,就该用 MyLLLLLLLLObj obj = GetObj();
      

  17.   

    谢谢大家的解惑。
    不过C#中var虽然也叫var,我觉得更像是dynamic的阉割版,反而dynamic才真正的像js里德var。
    另外我觉得从javascript接触编程真的很不杯具,反而很洗具。
    因为js太灵活了,写出的程序也很优雅,使得我见到C#这样有些刻板的语言反而不知道该怎么办了。
    相比之下,我觉得能设计出js这样语言的人真的好伟大,C#反而有些模仿(我不说抄袭了,我也觉得在编程的世界里谈不上抄袭)其他语言的痕迹。
    我想再看看还有什么见解,所以不出意外的话,过两天就会结贴。
    再次感谢大家的看帖、回帖,O(∩_∩)O~
      

  18.   

    我想知道...按照LZ的意思....TenXun算是.....
      

  19.   

    JS是什么呢、。?和感觉和XML很相似
      

  20.   

    还有,在泛型里,可以使用var,当然也可以用Object,比如:
    public T a<T>() where T : IEnumerable, new()
    {
        T b = new T();
        foreach (var att in b)
        {
            
        }
        return b;
    }
      

  21.   

    听说csdn还是有javascript论坛的呀!争论语言有什么用,争论具体的项目开发吧,你用javascript做几个.net论坛中讨论的项目出来。
      

  22.   

    呵呵,我提的问题是很傻的。难为大家帮忙回答。
    我也不纠结语言的差异了,现在就是想弄明白一件事儿,就是类似 dynamic 这样很早就存在的东西,为什么C#现在才开始支持呢?
    (开发者目光短浅么……?)
      

  23.   

    楼主说的var和可选参数:
    十几年前,微软上一代vs中的vb就已经有了,
    vb中的关键字:
    variable和Optional其实,自从有了.netFrameWork这个"二道贩子",几个高级编程语言都已经弱化了,
    只是一些写法而已,微软会迎合那些编程"潮人",投其所好的加入一些他们喜欢的二五郎当的"新特性",
    事实上,进入2000年后,我几乎再也没有用过variable和Optional这两个关键字了
      

  24.   

    一个是脚本,一个是.net,c#用到了js是为了更好的开发,所以这没什么好奇怪的,好用就行
      

  25.   

    楼主应该这样思考:
    为什么微软在15年前自己的vb中都已经实现的类型推迟绑定和可选函数参数,反倒在C#1.0中一直没有实现?
    反而是十几年后的今天,在C#4.0中加入了这种写法?
      

  26.   

    c#还可以写单机程序、服务、类库==
    js?
      

  27.   

    C#本来就是抄袭了 C++和JAVA的东西 就个四不像。。呵呵