• 请不要在回答技术问题时复制粘贴 AI 生成的内容
changwei
V2EX  ›  程序员

你们觉得哪个编程语言的坑最多?

  •  
  •   changwei ·
    cw1997 · Feb 12, 2017 · 11429 views
    This topic created in 3556 days ago, the information mentioned may be changed or developed.

    楼主昨天写 PHP 就碰到 PDO 扩展的一个大坑,详情 https://segmentfault.com/q/1010000008305175

    PDO 的参数绑定 bindParam 方法第二个参数是传递一个引用类型,而不是值,因为这个问题我前天晚上反反复复调试了半天,甚至去各大 PHP 群里面问了一些"资深大牛"都说不知道,看来现在的程序员确实都是用多了框架都忘记了 PHP 原生的各种坑啊。

    还有 JavaScript 的 this 指向也让很多初学者摸不着头脑,不过这貌似是函数式编程语言的特性把,不知道算不算一种坑呢?

    话说别的编程语言有类似的坑吗?各位可以分享分享

    81 replies  •  2017-02-13 21:20:31 +08:00
    hweining
    hweining
    Feb 12, 2017
    1
    JS 的 callback hell 算吗?laravel:从入门到重装虚拟机;没有虚拟机环境, migragte 用不上,
    jarlyyn
    jarlyyn
    Feb 12, 2017❤️3
    2
    php 和 js
    linboki
    linboki
    Feb 12, 2017 via Android❤️1
    3
    c++
    zhuce1234578888
    zhuce1234578888
    Feb 12, 2017
    4
    python 之外的任何语言
    ericls
    ericls
    Feb 12, 2017 via iPhone
    5
    this 和 functional 有何关系?
    Jakesoft
    Jakesoft
    Feb 12, 2017 via iPhone❤️2
    6
    文档中参数有&符号的,表明是引用传递。

    这怎么能叫坑呢,明显是卤煮没有仔细看文档。
    Jakesoft
    Jakesoft
    Feb 12, 2017 via iPhone
    7
    引用传递特点有仨:
    函数会修改变量本身;
    不能传具体值,比如 func(12),如果 func 第一个参数是引用的话;
    不会新开辟内存,这应该都知道。
    just4test
    just4test
    Feb 12, 2017
    8
    AS3 ( Flash )。编译器都不稳定。早期版本编译一个包里面元素多了就不能成功打包,需要拆成两个包。
    后来的版本经常有语法错误检查不出来能够成功编译,运行时候报错的问题(调用栈下溢听说过么)。或者偶尔出现代码完全没问题编译出来的程序运行时报错,重新编译就好了的问题。
    chairuosen
    chairuosen
    Feb 12, 2017
    9
    js ,因为运行你代码的环境你不能控制
    Miy4mori
    Miy4mori
    Feb 12, 2017❤️8
    10
    坑最少的肯定是 java ,但是人们总是嫌弃它。
    changwei
    changwei
    OP
    Feb 12, 2017 via Android
    11
    @Jakesoft 我很少去查官方文档和用 ide ,由于现在还没工作,写 php 都是做点小东西玩玩。

    而且 pdo 作者为什么要把这个参数弄成引用传递?
    changwei
    changwei
    OP
    Feb 12, 2017 via Android
    12
    @Jakesoft 因为我访问 www.php.net 很慢, w3c 也一样(因为 w3c 他引用了一个谷歌字体,我又没改过 hosts ),想问问国内还有什么比较快的在线查 php 以及常用扩展 api 的地方?
    scnace
    scnace
    Feb 12, 2017 via Android
    13
    golang 昨天遇到一个 xml unmarshal 的时候 namespace 会莫名其妙消失的 bug 官方的 issue 现在还开着 还好用第三方包解决了!
    tyrealgray
    tyrealgray
    Feb 12, 2017 via iPhone
    14
    c++
    ryd994
    ryd994
    Feb 12, 2017 via Android
    15
    人
    脑残不能怪机器
    人傻不能怨语言
    Perry
    Perry
    Feb 12, 2017
    16
    Java 的 Swing 。。。
    lhbc
    lhbc
    Feb 12, 2017
    17
    大部分较流行的语言,都有很多水货码农,碰到这样的同事坑最多。
    wellsc
    wellsc
    Feb 12, 2017 via Android
    18
    this 是 oop 的啊
    zhidian
    zhidian
    Feb 12, 2017
    19
    this 只是作用域啊……
    patx
    patx
    Feb 12, 2017
    20
    代码质量因人而异,别把锅甩给语言
    akking
    akking
    Feb 12, 2017
    21
    this 奇怪的地方是因为人们误认为 JS 是 Class-based OOP 语言(比如 Java ),但 Javascrit 其实是 Prototype-based. 与其说是“坑”, 不如说是“特性”...
    murmur
    murmur
    Feb 12, 2017❤️2
    22
    js 的 this 其实有一套很好的解决方案了, jquery 把所有的事件都绑定当前触发的元素作为 this ,然后虚拟了一个 data 方法直接可以在元素上“放”数据,这样只要元素对数据就肯定对
    可惜大神都鄙视 jQuery ,喜欢闭包什么的
    zgqq
    zgqq
    Feb 12, 2017 via Android
    23
    @Perry 估计你没用过 javafx
    Khlieb
    Khlieb
    Feb 12, 2017 via Android
    24
    要是能把坑填上,坑多坑小都不是问题
    ewBuyVmLZMZE
    ewBuyVmLZMZE
    Feb 12, 2017
    25
    Lua
    mcfog
    mcfog
    Feb 12, 2017 via Android
    26
    不是我说啥,碰到问题了都不好好看官方文档,换什么语言都没的治

    还有这种发帖的思路,你觉得你这样发帖,下面会出现有助于你的内容么?
    flydogs
    flydogs
    Feb 12, 2017 via iPhone
    27
    查一下最终执行 sql ,再查一下 php 函数说明,就明白怎么回事了
    lazypu
    lazypu
    Feb 12, 2017
    28
    楼主和我一样, 把不认真阅读文档当做坑.
    gouchaoer
    gouchaoer
    Feb 12, 2017 via Android
    29
    这个在 stackoverflow 上 vote 很高的,一开始是为了性能吧,后来为了兼容性就不改了。。。有很多有问题的函数在 php7 里面都留下来了,比如 parse_str 的覆盖全局变量的危险做法
    gouchaoer
    gouchaoer
    Feb 12, 2017 via Android
    30
    php 的 unserialize 就是坑,估计以后还会爆漏洞

    别的坑的话,我暂时想不到了
    abcbuzhiming
    abcbuzhiming
    Feb 12, 2017
    31
    第一名 C++,第二名 JS ,另外楼主,你这哪叫坑,你这分明是自己没认真看文档。我说的这两个,里面坑有些你去翻文档都翻不到,放狗搜半天才在某个叫角落里找到类似,“这是编译器实现问题”,“这是历史遗留问题”的坑
    ikaros
    ikaros
    Feb 12, 2017
    32
    js 吧,灵活性越高的语言坑越多
    huntererer
    huntererer
    Feb 12, 2017
    33
    js 应该不是坑最多的,不过确实有一些坑,毕竟是 10 天做出来的。不过好在来一次新 ES 就填不少坑。不过 this 这个和函数式没什么关系。
    huntererer
    huntererer
    Feb 12, 2017
    34
    坐等说 python 的编码
    itfanr
    itfanr
    Feb 12, 2017 via Android
    35
    js 为首
    ming2050
    ming2050
    Feb 12, 2017 via iPhone
    36
    js......
    chenxu
    chenxu
    Feb 12, 2017 via Android
    37
    js
    janxin
    janxin
    Feb 12, 2017
    38
    C++、 Javascript 一定榜上有名
    Jackeriss
    Jackeriss
    Feb 12, 2017 via iPhone
    39
    @huntererer 这个还好吧,统一编码就好了,而且 3 已经把坑填了。
    WispZhan
    WispZhan
    Feb 12, 2017❤️1
    40
    如果单说语言,抛开开发环境与语言生态来看是: JS

    如果全带上,我选.NET ,对于 .NET 微软的坑太多。
    dorentus
    dorentus
    Feb 12, 2017 via iPhone❤️1
    41
    gisonrg
    gisonrg
    Feb 12, 2017 via iPhone
    42
    js 语法糖(keng)太多了
    oska874
    oska874
    Feb 12, 2017
    43
    C
    编译器扩展,不同标准,各种未定义,各种优化,各种硬件相关,。。。。
    holy_sin
    holy_sin
    Feb 12, 2017
    44
    汇编
    Doubear
    Doubear
    Feb 12, 2017
    45
    有 go 语言坑么?啥玩意都要自己整一套,写起来真是蛋疼死
    fytriht
    fytriht
    Feb 12, 2017
    46
    @hweining callback hell 是 ES5 时代的坑,现在都快 ES7 了...
    maomaomao001
    maomaomao001
    Feb 12, 2017 via Android
    47
    js 挺好的,坑不多吧,理解 this ,原型链,闭包等一些概念, js 完全不是问题
    hwsdien
    hwsdien
    Feb 12, 2017
    48
    C++
    SuperMild
    SuperMild
    Feb 12, 2017❤️2
    49
    综上所述,人们习惯把自己不懂又不懒得去搞懂的知识点称之为坑。
    chengluyu
    chengluyu
    Feb 12, 2017
    50
    JavaScript 还好吧。新的 ES2015 、 ES6 和 ES7 所加的大部分特性也只是语法糖而已,基本就是读文档就能学会的东西;只有少数的东西去要专门花时间理解。
    chengluyu
    chengluyu
    Feb 12, 2017
    51
    对了其实楼主说的这一点是不对的:

    > 还有 JavaScript 的 this 指向也让很多初学者摸不着头脑,不过这貌似是函数式编程语言的特性把,不知道算不算一种坑呢?

    函数式语言的特征不是 this 指针的搞法……而是纯函数、副作用、高阶函数、柯里化那些东西,更不用说诸如 monad 、 dependent type 这些东西了。

    JavaScript 能算函数式语言特征的就是 function as first class 和闭包。
    djFFFFF
    djFFFFF
    Feb 12, 2017❤️2
    52
    二战梗:“你粉哪个国家,取决于对哪个国家了解更少”
    viosey
    viosey
    Feb 12, 2017
    53
    js
    chemzqm
    chemzqm
    Feb 12, 2017
    54
    @murmur #22 jquery 最大问题在于完全思路完全基于 DOM ,没有可控的组件化机制,业务代码与 UI 代码完全耦合,相比与通过特定接口交互所设计的组件,不利于多人协作以及相对复杂的页面交互场景。
    this 应该是做 OO 时用的,原型函数内定义的函数使用箭头函数就可以了,而不是 jquery 这种把 this 指向元素的做法,不是说操作元素就不好,而是这种方式如果跟面向对象的 UI 设计混用会很容易导致混乱。
    ragnaroks
    ragnaroks
    Feb 12, 2017
    55
    @WispZhan #40 +1
    murmur
    murmur
    Feb 12, 2017
    56
    @chemzqm 在那个年代这不是个问题,是现在前端要秒天秒地秒空气,通杀一切 UI 部分,这个还需要 webasm 来终结
    我要的是 JAVAscript 不是那个四不像的 es6 es7 什么

    讲个笑话, javascript 有 oo ?
    那个箭头函数我认为是个败笔, js 小黄书关于 this 那本讲了 this 的四个原则,就是教你怎么去看 this 是啥,你设计太奇葩,大家都学会没啥了
    突然你又把 this 从运行时改成语义化,这就很操蛋了
    类似的还有循环类函数对 undefined 的处理
    fomenyesu
    fomenyesu
    Feb 12, 2017
    57
    Java 的 swing +1
    raptor
    raptor
    Feb 12, 2017❤️1
    58
    PHP 是最好的语言,怎么能说有坑呢?
    我觉得最坑的是 SHELL ,其次是 JS
    ifaii
    ifaii
    Feb 12, 2017
    59
    在用过的当中, shell 最坑,无比难用,习惯了 Python 在用这玩意真是痛苦
    owt5008137
    owt5008137
    Feb 12, 2017 via Android
    60
    比坑的话, c++一出,谁与争锋
    murmur
    murmur
    Feb 12, 2017
    61
    @chemzqm 更正一下,是对 array 空白位的处理
    aploium
    aploium
    Feb 12, 2017 via Android
    62
    @huntererer 觉得 python 编码坑的大概还停留在 2.x ,而且不会__future__吧
    willm
    willm
    Feb 12, 2017 via Android
    63
    c++:你们都是来争第二的么?
    zhuangtongfa
    zhuangtongfa
    Feb 12, 2017
    64
    函数式没有 this,this 是 OOP 的,ES6 以后 JS 就没啥大坑了
    chipmuck
    chipmuck
    Feb 12, 2017
    65
    同事
    cchange
    cchange
    Feb 12, 2017
    66
    要说语言 PLC 用的 STL 和 LAD 还有高级的 SCL ,坑是最少的,每个指令要得到的信息都是已知的,好多是硬件实现的

    语言这个东西 看使用场合吧
    xcodebuild
    xcodebuild
    Feb 12, 2017
    67
    @hweining 虽然 js 坑是挺多的。。但是现在( 2017 年)还在抱怨 callback hell 实在是没说到点子上
    viator42
    viator42
    Feb 12, 2017❤️2
    68
    bash ,语法格式各种反人类,不折腾一圈根本写不出东西来,写完的都留着不敢删因为没法保证还能再写出来
    zhuangzhuang1988
    zhuangzhuang1988
    Feb 12, 2017
    69
    php.. 最坑了。。
    ZE3kr
    ZE3kr
    Feb 12, 2017 via iPhone
    70
    php.net 每一个函数下面的用户评论,被顶起来的很多都是说这个函数有什么坑的
    wdlth
    wdlth
    Feb 12, 2017
    71
    人说的话最坑……
    aliuwr
    aliuwr
    Feb 12, 2017
    72
    居然没人提 Scala 啊,失望。
    果然是没人用么。。。
    AnyISalIn
    AnyISalIn
    Feb 12, 2017
    73
    js
    mingyun
    mingyun
    Feb 12, 2017
    74
    py2 编码坑
    MntCw
    MntCw
    Feb 12, 2017 via Android
    75
    这叫坑?文档里有写清楚的能叫坑?
    xialdj
    xialdj
    Feb 12, 2017 via iPhone
    76
    js 反正是奇技淫巧最多的语言 语言层面上历史遗留的问题就很多 有的坑还入了标准
    Gantz
    Gantz
    Feb 13, 2017 via iPhone
    77
    @murmur 所以结论是你比较适合那个时代?
    murmur
    murmur
    Feb 13, 2017
    78
    @Gantz 昨天看到一个笑话图, es3 的精髓是那么多, es6 的精髓还是跟 es3 一样多,实际上除了 es5 的 get/set 方法绑定之外,其余的都是跑在 polyfill 上的

    用 java 的没说用 java8 鄙视用 apache utils 的,但是前端文章动不动不用 es6 你就 xx 一样的标题
    messXD
    messXD
    Feb 13, 2017
    79
    python?
    项目一大各种耦合搞死你
    irenicus
    irenicus
    Feb 13, 2017
    80
    我会的语言不多,但据说是 C++

    我用 perl 用得神清气爽我会乱说?
    newtype0092
    newtype0092
    Feb 13, 2017
    81
    @syhily 说来听听,看看我遇到过没有~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1756 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 189ms · UTC 03:55 · PVG 11:55 · LAX 19:55 · JFK 22:55
    ♥ Do have faith in what you're doing.