k9982874

golang 是目前为止用过的最难受的语言

  •  
  •   k9982874 · Nov 22, 2017 · 56594 views
    This topic created in 3275 days ago, the information mentioned may be changed or developed.

    没三目运算

    没泛型,别说 interface{}算泛型

    没函数重载

    没 template

    要啥没啥

    变量类型说静态不静态,说动态不动态

    没有杀手级的框架,写个 web 服务都要难受死

    我圆润的滚回 PHP 了

    Supplement 1  ·  Nov 22, 2017
    对了,还有函数参数不支持预设默认值。。。
    126 replies  •  2020-07-01 21:26:01 +08:00
    1  2  
    ❮ ❯
    glues
    glues
    Nov 22, 2017❤️8
    1
    基本都黑到点了
    feiyuanqiu
    feiyuanqiu
    Nov 22, 2017 via Android❤️11
    2
    php 有这些?
    onlyhot
    onlyhot
    Nov 22, 2017 via iPhone
    3
    @feiyuanqiu 哈哈
    hjc4869
    hjc4869
    Nov 22, 2017 via iPhone
    4
    看着都难受
    yoa1q7y
    yoa1q7y
    Nov 22, 2017
    5
    前排啤酒瓜子花生米
    cuebyte
    cuebyte
    Nov 22, 2017
    6
    黑到一些點了,但 PHP 不比 go 好啊⋯⋯
    clino
    clino
    Nov 22, 2017
    7
    "没 template"
    虽然我没用过 go,不过真没 template?
    takanasi
    takanasi
    Nov 22, 2017 via Android❤️2
    8
    最臭名昭著的错误处理没说
    40huo
    40huo
    Nov 22, 2017
    9
    前排
    Bigglesworth
    Bigglesworth
    Nov 22, 2017 via Android
    10
    挤一挤,让我过去。
    dy7338
    dy7338
    Nov 22, 2017❤️1
    11
    php 是全世界最好的语言
    isCyan
    isCyan
    Nov 22, 2017 via Android
    12
    当然不能和 php 比,php 真是好用
    golang 适合搞一些小工具之类的,或者 api
    k9982874
    k9982874
    OP
    Nov 22, 2017
    13
    @clino 咱俩应该说的不是一个 template

    @feiyuanqiu 没有,因为不需要

    @cuebyte 除了代码安全,没见那不好。如果说运行速度,python 都没说话。
    sorra
    sorra
    Nov 22, 2017
    14
    @clino Go 是没 template 啊,所以有第三方项目在探索 https://www.v2ex.com/t/377298
    mkeith
    mkeith
    Nov 22, 2017
    15
    最后 PHP 躺枪
    cuebyte
    cuebyte
    Nov 22, 2017
    16
    @k9982874 仁者見仁,PHP 對於我來說:真值判斷簡直吃屎;寫個變量還要$符號,反人類; array 使用不統一,有方括號也有函數創建,而且數組與 map 混用⋯⋯;內置函數一大堆,並且命名缺乏規劃性。
    nullen
    nullen
    Nov 22, 2017❤️4
    17
    没喷到点子上,入手一门语言切勿把其他语言带给你的观念给代入进去。
    wph95
    wph95
    Nov 22, 2017
    18
    clino
    clino
    Nov 22, 2017
    19
    @sorra #14 明白了,原来说的是泛形,我一看是 php 在做对比就想成了 web 的模板.
    SuperMild
    SuperMild
    Nov 22, 2017
    20
    新语言肯定要和现有语言有很大区别才值得被创造和推广,Golang 最大的两个优点是语言特性少超快上手、和闪电般的编译速度,而这两大优点的代价之一就是暂时没有泛型。

    什么叫做“说静态不静态,说动态不动态”,Golang 绝对是静态类型,连这点你都搞不清楚吗?

    说框架和生态,不说语言的年龄不公平,Golang 的生态发展速度可以说是“惊人”的快。Go 1.0 是 2012 年发布的,同期的新语言,哪个的生态敢说比 Golang 好?
    Hellert
    Hellert
    Nov 22, 2017❤️9
    21
    Go 语言的定位是系统语言,部分替代 C,要说友好性和 C 比才恰当。
    总拿 Go 和 Php, Python 这样的动态语言比较,是几个意思啊
    TangMonk
    TangMonk
    Nov 22, 2017
    22
    我觉得挺好用的,我主要用来写底层的协议,没写 Web
    SuperMild
    SuperMild
    Nov 22, 2017❤️2
    23
    语言特性本身要啥没啥,这是 Golang 的特点(说缺点可以,说优点也行),要啥有啥的语言又不是没有,C++就是,Golang 没必要重新发明 C++,不同的语言有不同的特点和适用场景。
    qleroooo
    qleroooo
    Nov 22, 2017
    24
    web 框架有 beego,虽然不怎么样,不过要用框架用 java 啊
    k9982874
    k9982874
    OP
    Nov 22, 2017
    25
    @SuperMild
    大牛,先把我前面说的理解了,自然就理解我为什么说 golang 变量类型说静态不静态,说动态不动态了。

    优点在哪?除了增加代码行数真没看出来
    skadi
    skadi
    Nov 22, 2017❤️1
    26
    我一个 cpp 的使用者跑去写 golang。那才叫一个难受呢。
    不仅你提到的这些,还有语法以及好多黑膜法都用不了。
    2ME
    2ME
    Nov 22, 2017
    27
    16 楼函数和语言结构都没搞清楚 低端黑
    boboliu
    boboliu
    Nov 22, 2017 via Android❤️1
    28
    rust 不服我跟你讲
    prolic
    prolic
    Nov 22, 2017
    29
    感觉随便写个语句就要开花括号,特别烦
    k9982874
    k9982874
    OP
    Nov 22, 2017
    30
    @skadi 哈哈,我也写了好多年 C/C++,写 GO 的时候的感觉说不上来。感觉以前积累多年的套路一下全废了(摊手

    @boboliu 我认输,没写过 rust
    daizongxyz
    daizongxyz
    Nov 22, 2017
    31
    写了三四年 golang,突然来写 C++,各种不习惯,由简入翻好难适应。
    recall704
    recall704
    Nov 22, 2017
    32
    写了好几个月了,还行。

    只是刚开始的时候老用 python 的思想写代码。
    aksoft
    aksoft
    Nov 22, 2017
    33
    开始确实难受,不过一门语言和另一门的功能都有了,还有另一门的特性 优点。。那另一门直接去吃屎了
    sensui7
    sensui7
    Nov 22, 2017
    34
    还有一条, 包管理, 太敷衍了. 只能说比 include 头文件好用,
    MushishiXian
    MushishiXian
    Nov 22, 2017
    35
    写起来是有点难受的...interface 用得不好的话各种蛋疼..
    timothyye
    timothyye
    Nov 22, 2017
    36
    看明白了,原来是黑 PHP 的
    yuchenyang1994
    yuchenyang1994
    Nov 22, 2017❤️4
    37
    刚开始用 go 的时候,也感觉是这样,tmd,要啥没啥,各种好用的魔法根本就没有,if err!=nil 写的我手疼,不禁大骂,什么玩意儿啊.......真的是垃圾....直到。。。
    我正在改写一个东西,拿到的库不能满足我的需求,然后我去看他的源码,黑魔法少,关键字少,看着流畅且不费力,分分钟把库改成我想要的东西。也许程序员并不需要那么多特性,人民不需要自由。。。
    looplj
    looplj
    Nov 22, 2017
    38
    是黑点,在工程中,这些都不是真正的痛点。
    albertofwb
    albertofwb
    Nov 22, 2017 via Android
    39
    @TangMonk 正在学习中,感觉底层撸起来还是蛮舒服的
    albertofwb
    albertofwb
    Nov 22, 2017 via Android
    40
    @yuchenyang1994 为解决问题而生……哈
    webjin1
    webjin1
    Nov 22, 2017
    41
    用 D 语言吧。
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Nov 22, 2017 via iPhone
    42
    哈哈,才学了几天我也发现了,go 就是一门任性的语言,爱用用不用滚→_→

    我选择坚持.
    est
    est
    Nov 22, 2017
    43
    就是带 gc 的 C 语言。
    jiangzhuo
    jiangzhuo
    Nov 22, 2017
    44
    Dart 欢迎你
    gouchaoer
    gouchaoer
    Nov 22, 2017 via Android❤️1
    45
    go 有 2 个优点,第一是协程带来的 io 高性能,第二是直接编译成二进制无依赖,就这两个就够了。。。至于写业务,php 可以很快很快
    iappled
    iappled
    Nov 22, 2017
    46
    但是简单,工程化啊
    fuxiaohei
    fuxiaohei
    Nov 22, 2017
    47
    会用动态的感觉,肯定是滥用空接口,反而写的折腾。
    Tink
    Tink
    Nov 22, 2017 via iPhone
    48
    主要是能编译二进制
    mritd
    mritd
    Nov 22, 2017 via iPhone
    49
    @falcon05 抽屉伙伴?
    strahe
    strahe
    Nov 22, 2017
    50
    没觉得难受, 相反觉得写起来很舒服,
    guoziyan
    guoziyan
    Nov 22, 2017
    51
    滚回宇宙最好的语言吧 [手动 dog]
    21
    21
    Nov 22, 2017
    52
    Golang 可以看做 C 语言的填坑加强版
    wevsty
    wevsty
    Nov 22, 2017❤️1
    53
    看到列的这几条,我只想说,你确定你要的不是 cpp ?
    littleshy
    littleshy
    Nov 22, 2017
    54
    这也是让我一个写 C#的转了两次都放弃的原因。
    后来一想,其实我并不需要呀,C#、Python 用着就很爽了啊。
    leitwolf
    leitwolf
    Nov 22, 2017
    55
    就喜欢它的特性少,每个人的写法都差不多。
    还有就是直接生成二进制不用配置什么依赖环境。
    missdeer
    missdeer
    Nov 22, 2017 via Android
    56
    你需要的是 cpp
    jowuIM
    jowuIM
    Nov 22, 2017
    58
    ....我也使用 go 来学习系列比较底层的协议的,说实话 web 开发我还是习惯用 Java,只有写 typescript 的时候很有写 go 的感觉
    stabc
    stabc
    Nov 22, 2017
    59
    @yuchenyang1994 代码可读性也许跟程序员的关系更大呢?
    asen1987
    asen1987
    Nov 22, 2017❤️11
    60
    abcbuzhiming
    abcbuzhiming
    Nov 22, 2017
    61
    golang 非常适合写底层的小工具,写大玩意我个人觉得这东西和 node.js 一样,生态圈不够成熟
    scnace
    scnace
    Nov 22, 2017 via Android
    62
    PHP:这都能黑我?
    ddou
    ddou
    Nov 22, 2017 via iPhone
    63
    为什么要给自己过不去用 go 写 web 服务? java,c#,ruby,python,nodejs,随便挑个框架都能很 6 的写 web 服务。好钢还是要到刀刃上!
    scnace
    scnace
    Nov 22, 2017 via Android
    64
    还有人家叫 Go …
    leyle
    leyle
    Nov 23, 2017
    65
    遇到那种直接在数据库里面写程序的,他们定义的结构,那叫圆环套圆环,套了一层又一层,按他们的结构给他们传数据时,才叫恶心。
    Technetiumer
    Technetiumer
    Nov 23, 2017 via Android
    66
    @scnace 聽說 Go 有人佔了 於是 Google 的 Go 就 Golang
    Sliverburger
    Sliverburger
    Nov 23, 2017
    67
    不熟和难用不一样

    Go 我用 200 行写出一个类似 ip.cn 的网站,PHP 需要多少?随便 Github 上看了个类似网站的文件,吓一跳 mmornati/myip/blob/master/index.php

    Go 的网站我可以直接 go run website.go 几乎什么都不需要,PHP 不要 Apache 或者 PHP-FPM 能行?

    各有个的好处,Go 也不是说上来就让你做网站用的。
    lrxiao
    lrxiao
    Nov 23, 2017
    68
    大括号不能换行(滑稽)
    lrxiao
    lrxiao
    Nov 23, 2017
    69
    不过你说的这些全是坑(
    看看函数重载 /模板 C/C++标准写了多长?
    siteshen
    siteshen
    Nov 23, 2017
    71
    说得很对,这些楼主想要的几乎都没有,(除了 go 明确是支持自动推导的静态类型)。

    另外 template ( c++)和范型( java?-不很清楚这块),函数默认值( python )和函数重载( c++/java )都能解决同样的问题,有一个就可以了。(当然了 go 都没有……)
    skadi
    skadi
    Nov 23, 2017
    72
    @siteshen 然后 interface 里面啥都装了
    Clarencep
    Clarencep
    Nov 23, 2017
    73
    确实写起来没有世界上最好的语言 -- PHP 好。

    但是,不得不说两句:

    “没泛型,别说 interface{}算泛型” -- PHP 好像也没有泛型呀,话说都是 duck type 的,要泛型干啥

    “没函数重载” -- 哎,说得跟 PHP 有重载一样

    “变量类型说静态不静态,说动态不动态” -- golang 明显是静态类型,只是类型推断系统很牛 x

    “没有杀手级的框架,写个 web 服务都要难受死” -- 不评价,反正我用内置的 http 感觉挺好,挺稳定的
    GreatHumorist
    GreatHumorist
    Nov 23, 2017
    74
    @Sliverburger 建议不清楚不要乱黑
    Yuansir
    Yuansir
    Nov 23, 2017
    75
    又黑 PHP
    zjqzxc
    zjqzxc
    Nov 23, 2017
    76
    @Sliverburger #67 php 能活到今天就是因为其在 web 领域的开发效率

    用 go 来黑 php 的 web 开发效率?????
    k9982874
    k9982874
    OP
    Nov 23, 2017
    77
    @siteshen
    “变量类型说静态不静态,说动态不动态”这句话说的有问题。
    应该要表达变量类型推导这么 NB,为啥没有静态语言的特性(泛型,多态)
    然而也没有动态语言的语法糖。

    @Clarencep
    没错 PHP 和其它动态语言也没有这些东西,是在语言设计时已经规避了问题或者提供了其它方案。


    @Sliverburger
    我相信 GO 可以 200 行写一个 ip.cn ,甚至你说 200 行写个 facebook 我也信,这是框架或者库提供的便利与语言本身无关。

    lumen 框架支持『 php -S localhost:8000 -t public 』启动一个 Server。同样这不是语言层提供的优势,只是看框架是否愿意支持而已。
    jxl
    jxl
    Nov 23, 2017
    78
    go 去你的 爱用不用
    zjqzxc
    zjqzxc
    Nov 23, 2017
    79
    @k9982874 php -s 不是框架的,是 php 自己带的
    http://php.net/manual/zh/features.commandline.webserver.php
    zyh94946
    zyh94946
    Nov 23, 2017
    80
    @Sliverburger 给你科普下 php [options] -S <addr>:<port> [-t docroot] Run with built-in web server.
    lbp0200
    lbp0200
    Nov 23, 2017
    81
    泛型,暴露了楼主是 Java 程序员,坐山观虎斗,哼哼。
    mooncakejs
    mooncakejs
    Nov 23, 2017
    82
    go 需要一个 typescript 差不多的 typego
    6ufq0VLZn0DDkL80
    6ufq0VLZn0DDkL80
    Nov 23, 2017
    83
    泛型和模板简直是说烂了的问题了,Go 没有的原因是会拖累编译速度,而编译速度快是 Go 语言诞生的目的之一。等 Go team 找到了合适的解决方案就会加,不过至少要等到 Go 2 了。不过,在有接口的情况下,究竟有多少场景真的需要泛型和模板?

    函数重载和三目运算这些更是可要可不要的东西,而且会给不够熟悉的代码的阅读者造成混淆,代码不是越短越优雅的,为什么不写得清楚一点呢?
    hmli
    hmli
    Nov 23, 2017
    84
    求你别黑 PHP 了
    zhangtao
    zhangtao
    Nov 23, 2017
    85
    我只想说,go 能解决 php 没法解决的问题,这就够了
    pqee
    pqee
    Nov 23, 2017
    86
    几年前我写 go 的时候什么都能忍,错误处理不能忍。
    50vip
    50vip
    Nov 23, 2017
    87
    需要和 js 一样,产生一个 typego
    joye1230
    joye1230
    Nov 23, 2017
    88
    php 程序员莫名遭黑啊

    我接盘过 php 的 workerman 项目觉得,后面换了 golang 的 leaf
    场景不适合->写的不爽->开喷 手动滑稽
    cloud107202
    cloud107202
    Nov 23, 2017
    89
    楼主说的没错啊,难用还不让人说了?只拿出反正我自己写 xxx 时候 blahblah 没什么意义。

    还有关于社区所谓的 我们目标是编译快 -> 泛型很影响编译速度 -> 我们舍弃了泛型
    cloud107202
    cloud107202
    Nov 23, 2017
    90
    不是所谓的舍本逐末么
    solee
    solee
    Nov 23, 2017
    91
    终于有兄弟吐槽了啊~ 一个包管理就搞到我吐血了,ORM 也不是很完善。 本来无事想学学 go 做个小项目,结果发现处处都是泪啊。 只能说仁者见仁吧,我还是喜欢我的 node,pm2, npm, sequelize
    solee
    solee
    Nov 23, 2017
    92
    语言有语言的特性,但是使用便利度,我到现在位置没有感受到~
    Richardweii
    Richardweii
    Nov 23, 2017
    93
    用不用 go 都在这里
    SuperMild
    SuperMild
    Nov 23, 2017
    94
    @solee 从动态语言转到静态语言、从生态丰富的旧语言转到刚开始发展的新语言,写小项目,使用便利度不高是很正常的。你试试别的与 Go 一样年轻的静态语言,就能体会了。
    zjyl1994
    zjyl1994
    Nov 23, 2017
    95
    只有我用 Go 给 ARM 设备写软件么? hhhh
    solee
    solee
    Nov 23, 2017
    96
    @SuperMild 主要是没有领路的,选什么包管理,进程管理有什么可用的 module,ORM 哪个比较好。感觉因为是上升期吧,都是百花齐放,感觉还没有形成比较突出的包。这就给我这种有兴趣的很大的困扰。
    a591826944
    a591826944
    Nov 23, 2017
    97
    nil
    wuhau
    wuhau
    Nov 23, 2017
    98
    @zjyl1994 我用 go 写 openwrt,每次写完都得想办法缩减体积,不然放不下去。
    k9982874
    k9982874
    OP
    Nov 23, 2017
    99
    @solee 本来也想放上来,弄明白规则之后用 dep 还是挺好用的。


    @a591826944 本来也想吐这个,不过不算是大问题,毕竟用人家的东西,得听人家的。
    loading
    loading
    Nov 23, 2017
    100
    if err != nil {


    上面这些字符,我是用过键盘的固件功能,一键输入的,可想而知多恶心。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1124 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 213ms · UTC 23:22 · PVG 07:22 · LAX 15:22 · JFK 18:22
    ♥ Do have faith in what you're doing.