V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
WXB506
V2EX  ›  问与答

请大家聊聊自己熟悉的编程语言的优缺点,各种语言都可以,不喜勿喷,拜托

  •  
  •   WXB506 · 2015-06-01 13:19:55 +08:00 · 3139 次点击
    这是一个创建于 3493 天前的主题,其中的信息可能已经有所发展或是发生改变。
    20 条回复    2015-08-14 11:32:44 +08:00
    Septembers
        1
    Septembers  
       2015-06-01 14:15:37 +08:00
    因人而异
    lbp0200
        2
    lbp0200  
       2015-06-01 14:30:14 +08:00
    语言这东西
    运行速度快的,如c/c++,java,啰嗦,开发慢。
    开发快的,如ruby,运行速度慢。
    性能就是money,看你要为程序的某个特性付出多少代价。——源自斯坦福算法公开课,网易公开课上有。
    hambut
        3
    hambut  
       2015-06-01 17:40:17 +08:00
    我来添一把火

    PHP是世界上最好的语言
    angkec
        4
    angkec  
       2015-06-01 18:42:33 +08:00
    @hambut 我来喷楼上 大家把气氛搞起来~
    czheo
        5
    czheo  
       2015-06-01 19:10:08 +08:00
    python,可读性强,最接近程序员思维方式。
    ruby,sugar太多,甜到腻。
    c,不会你好意思自称程序员?
    javascript,设计有够糟糕。
    HTML, CSS,SQL,你好意思说这些是编程语言?
    FrankFang128
        6
    FrankFang128  
       2015-06-01 19:14:52 +08:00 via Android
    JS 设计可一点也不糟糕。只是不完备。
    zhgg0
        7
    zhgg0  
       2015-06-01 19:19:02 +08:00
    PHP是世界上最好的语言
    czheo
        8
    czheo  
       2015-06-01 19:32:57 +08:00
    @FrankFang128
    你觉得行尾要写分号么?不写我也能执行哦,出问题了你自己负责哦。
    你能用js写一个有自信的继承的best practice么?我反正是没有。
    异步是很帅,我能偶尔同步一下么?滚出,不行。
    FrankFang128
        9
    FrankFang128  
       2015-06-01 20:32:12 +08:00 via Android
    @czheo 没有编译的语言出问题不都是自己负责吗。
    JS继承不走Java那一套,直接操作 prototype 一点也不麻烦。
    为何要同步?单线程同步不起。
    Hyperion
        10
    Hyperion  
       2015-06-01 23:46:18 +08:00 via Android
    @czheo 一部分是历史原因,还有一部分是用的人水平太差。
    linxy
        11
    linxy  
       2015-06-01 23:52:41 +08:00
    C++嘛,真正会的人太少。大多数人是在当c with class写。(其实我也是
    入门容易精通难…
    坑嘛……多的好几本书都没讲完啊
    xiaosun
        12
    xiaosun  
       2015-06-01 23:52:47 +08:00 via iPad
    见过好多类似帖子,v2ex果然是web前后端以及app开发的人多,其他的人很少见到
    wohenyingyu01
        13
    wohenyingyu01  
       2015-06-02 00:08:35 +08:00
    @czheo 不会c的程序员路过,完全没学过
    jacob
        14
    jacob  
       2015-06-02 00:26:13 +08:00
    @Hyperion javascript在大牛和菜鸟手里就是2种语言
    czheo
        15
    czheo  
       2015-06-02 08:25:58 +08:00
    @FrankFang128
    分号问题你看这个有没有够恶心。http://stackoverflow.com/questions/444080/do-you-recommend-using-semicolons-after-every-statement-in-javascript/1169596#1169596

    php也是单线程啊,和线程无关。

    不麻烦?你去看看jQuery.extend的源码有几行。
    FrankFang128
        16
    FrankFang128  
       2015-06-02 09:32:29 +08:00
    @czheo 分号的坑不足三个,也算门槛吧,你可以选择全部加分号啊,没人拦着。
    var a = 1; a++ 。这不就是同步的吗?实际上所有的方法都有同步版本,只是IO不推荐同步,所以调用起来不那么方便。
    jQuery.extend 的核心代码也就这么几行:
    for ( ; i < length; i++ ) {


    if ( (options = arguments[ i ]) != null ) {


    for ( name in options ) {
    src = target[ name ];
    copy = options[ name ];


    if ( target === copy ) {
    continue;
    }


    if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
    if ( copyIsArray ) {
    copyIsArray = false;
    clone = src && jQuery.isArray(src) ? src : [];

    } else {
    clone = src && jQuery.isPlainObject(src) ? src : {};
    }


    target[ name ] = jQuery.extend( deep, clone, copy );


    } else if ( copy !== undefined ) {
    target[ name ] = copy;
    }
    }
    }
    }
    其大部分都是在处理「对调用者的友好性」和错误处理,所以没什么好喷的,加上现在 ES6 出了 Object.create,友好性又大大加强了。
    xlrtx
        17
    xlrtx  
       2015-06-02 14:15:04 +08:00
    看了IIFE之后感觉js和c一样美, 靠事件触发多线程, 很独特的语言啊
    xlrtx
        18
    xlrtx  
       2015-06-02 14:28:54 +08:00
    @xlrtx 是单线程的
    qw7692336
        19
    qw7692336  
       2015-08-14 11:31:32 +08:00
    @lbp0200 开发效率也是money
    qw7692336
        20
    qw7692336  
       2015-08-14 11:32:44 +08:00
    @xiaosun 因为v2ex的人大多数喜欢自己创造面向用户的作品
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1360 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:54 · PVG 07:54 · LAX 15:54 · JFK 18:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.