V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kasumi20
V2EX  ›  程序员

为什么总有人搬出“语言只是一种工具”。

  •  
  •   Kasumi20 · 41 天前 · 7290 次点击
    这是一个创建于 41 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每种语言都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论语言的时候,总有人搬出“语言只是一种工具”的说辞,如果用什么语言真的无所谓,为什么还会涌现那么多新的语言?

    第 1 条附言  ·  40 天前
    有意思,很多人分不清“是”和“只是”的区别。

    标准答案:#54 #60
    see: http://www.yinwang.org/blog-cn/2013/04/21/programming-languages-are-not-tools

    此帖关闭,禁止回复!!!
    byaiu
        1
    byaiu   41 天前   ❤️ 5
    因为锤子和锯子的功能不一样
    Version12
        2
    Version12   41 天前
    可能你的境界跟我的不一样,比我高
    icyalala
        3
    icyalala   41 天前   ❤️ 28
    锤子和钳子都有它自己的定位,有自己的目标,有自己的特性。
    但如果我的需求只是砸一颗钉子,那么锤子和钳子都能用,它们在这时候只是一种工具。
    xuanbg
        4
    xuanbg   41 天前
    好吧,语言其实连工具都算不上……sdk 才是工具
    xuanbg
        5
    xuanbg   41 天前
    @icyalala 10 磅大铁锤和 1 磅小铁锤肯定有不同的用处,羊角锤不但能砸钉子,还能拔钉子呢
    overflow99
        6
    overflow99   41 天前
    「如果用什么语言真的无所谓」不等同于「语言只是一种工具」
    语言只是一种工具,我认为这样说也合适,任何事物都可以当作工具,看怎么理解了,编程语言是抽象现实世界的一种工具。就比如四肢是大脑的的实现工具,自然语言是与人的沟通工具一样
    cxe2v
        7
    cxe2v   41 天前
    打个比方,你这个项目好比要建设一个房子,你用水泥,用泥巴,用木头,用石头,都可以建好这个房子并且保证能住人,这里的水泥,泥巴,木头,石头就是语言
    overflow99
        8
    overflow99   41 天前
    宽泛点说,除了生物觉得自己为什么存在在这个世界上以外,任何事物都有它自己的属性和功能,那么就都可以被叫做工具
    rabbit
        9
    rabbit   41 天前   ❤️ 9
    因为确实只是一种工具啊
    kop1989
        10
    kop1989   41 天前   ❤️ 4
    开发语言只是一种工具,和每种开发语言各有优势并不冲突。

    语言只是一种工具,对应的话题应该是类似于“我应该去学 java 还是学 c#”。
    既程序员不应该把自己限定在“某个技术语言”、“某个技术”、“某个 sdk”这种条条框框之中。
    应该拥有架构师思维。每次技术选型都应该在众多语言、库、框架中综合所有因素,来选择最优的组合。而不是以“我只会”或者“我只喜欢”来选择。

    就像楼上说的,同样是锤子,只有羊角锤能拔钉子,你对鸭嘴锤再怎么喜欢(比如你说他是宇宙第一工具),那他也拔不了钉子。
    Joker123456789
        11
    Joker123456789   41 天前   ❤️ 9
    因为这句话是在一个前提下说的,
    当有人问 [什么语言最好的时候] , [ java 和 c++谁好的时候] , [ php 是不是世界上最好的语言的时候] 。

    如果问题变成 [想开发一个大型 web,用什么比较合适] , [想开发一个底层软件,用什么合适] , [想开发爬虫,用什么合适] 。
    那自然会有人来比较各种语言了,因为场景很明显了,所以会根据场景选择合适的语言。
    zzh7982
        12
    zzh7982   41 天前
    语言就像微信和支付宝或者其他的,都可以支付
    Kasumi20
        13
    Kasumi20   41 天前
    @Joker123456789 赞同,就是这个意思
    adoal
        14
    adoal   41 天前   ❤️ 3
    因为他们只对升职转管理岗脱离具体技术工作感兴趣
    yanzhiling2001
        15
    yanzhiling2001   41 天前   ❤️ 5
    不是工具是什么,难不成真要当成宗教信仰
    S179276SP
        16
    S179276SP   41 天前
    因为自己的语言水平没法上升文学高度,只能是勉强达到获取资源或者娱乐的程度。
    S179276SP
        17
    S179276SP   41 天前
    @S179276SP 指的是外语
    devwolf
        18
    devwolf   41 天前
    同#6 的理解,主题描述中[语言只是一种工具]并在所有场合都等同于[用什么语言无所谓]。

    比如想在乡下单纯的想打个火,店里只卖火柴那也够用了,为什么要去找打火机,甚至还要防风打火机、典藏限量版打火机。

    [语言只是一种工具],这话本身我是认为没有问题的,也不影响“讨论语言”,可能帖主曲解了这句话,或者原发话者的后续言论和这句话八竿子打不到一撇

    [用什么语言真的无所谓],同样看场景

    [新语言]TrumpScript 算吗。这个话题更广了,感觉帖主的想说明"新语言"必须要后浪推前浪——但这并不能代表"新"
    cgqsidney
        19
    cgqsidney   41 天前
    每种语言都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论语言的时候,总有人搬出“语言只是一种工具”的说辞,如果用什么语言真的无所谓,为什么还会涌现那么多新的语言?

    这算是月经贴吧
    这个里面的“语言”可以替换成很多东西,这样答案会好给一点,比如,聊天工具

    每种聊天工具都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论聊天工具的时候,总有人搬出“聊天工具只是一种工具”的说辞,如果用什么聊天工具真的无所谓,为什么还会涌现那么多新的聊天工具?
    devwolf
        20
    devwolf   41 天前
    @devwolf #18 更正 "并在所有场合都等同于"->"并非在所有场合都等同于"
    janxin
        21
    janxin   41 天前
    “语言是工具”在我这里使用场景主要是在合适的场景下选择适合的工具,工具不就是拿来解决问题的么?不建议尝试用一种工具解决所有的问题。不需要尝试把自己吊死在一棵树上。

    当然这不代表工具是一直不需要改进的。
    Al0rid4l
        22
    Al0rid4l   41 天前
    这句话本身是没什么问题的, 问题是看它所在的上下文, 和说这句话的人想表达什么
    据我观察, 这句话通常出现在讨论 A 和 B 谁更好的时候, 就会有人出来说 A 和 B 都是工具
    就像是, 在说 A 和 B 两个人谁更聪明的时候, 就有人说 A 和 B 都是人, 一样, 这句话本身正确但是放在这里意义不明, 不构成反驳, 是句废话, 但是可以引来观众一片喝彩较好, "对, 他说得对, A 和 B 都是人"
    ElmerZhang
        23
    ElmerZhang   41 天前   ❤️ 2
    “工具”是相对于“技能”来说的。
    锤子、刨子等等都是“工具”,做木工是“技能”。最后出的活好不好,主要取决于你的技能,而不是工具,好的工具当然能起到一些正向的辅助作用,但并不能起到决定作用。
    有很多场景下,工具是可以有多种选择的,只要你技能到位了,工具是次要的。
    如果某种工具过于复杂,那么对这种工具的熟练程度其实也就成了一种技能。
    Al0rid4l
        24
    Al0rid4l   41 天前
    @Al0rid4l typo 较好 -> 叫好
    paoqi2048
        25
    paoqi2048   41 天前
    私以为这句话不全对
    Yourshell
        26
    Yourshell   41 天前
    因为现有的编程语言(工具)未能更好地解决问题,所有会有新的编程语言(工具)出现。
    locoz
        27
    locoz   41 天前 via Android
    定位、目标、特性是相对于其他工具而言的优势,在大部分情况下并不代表其他工具不能干这事,你要搞清楚这个区别。
    举个例子,Python 写爬虫的话生态够丰富吧?这是 Python 的优势,但你说 JS 、Go 、Java 甚至是 C 能写爬虫吗?一样能写啊,大不了就是写起来麻烦点而已。而如果你搞了个新语言专门用来写爬虫,写起来比 Python 更方便,然后呢?它不还是就仅限于方不方便而已?在这种情况下,当然是用什么都无所谓。
    再换个和楼上举的例子类似的例子,扳手是拿来拧螺丝的对吧?但扳手能砸钉子吗?能拔钉子吗?也可以啊,就是方不方便的问题而已。
    falcon05
        28
    falcon05   41 天前 via iPhone
    语言就是一种工具,为什么会有这么多种语言?因为不同的工具解决的问题不一样啊
    zzw1998
        29
    zzw1998   41 天前 via iPhone
    我还以为你在说自然语言....
    sherryqueen
        30
    sherryqueen   41 天前
    语言是个工具, 但工具有自己的针对点和对应优化点
    Vegetable
        31
    Vegetable   41 天前
    语言的确是一种工具,这句话的意思是:

    - 语言不应该有绝对的优劣之分,只是功能不同
    - 一个工程师不应该只能使用一种工具,而应该有一个工具箱

    我只会在对方陷入了「唯工具论」的误区时,告诫对方语言只是工具。
    kkbblzq
        32
    kkbblzq   41 天前
    这个和你说的不冲突吧,说是工具不代表无所谓,你上螺丝可以用螺丝刀,也可以用锤子强行锤进去,但是好坏一看便知
    ksedz
        33
    ksedz   41 天前
    编程语言和对应的框架、生态会深刻影响使用者的习惯、认知、思想、知识体系。
    “只”太理想化了,编程语言本身也比锤子、扳手复杂得多。
    dayeye2006199
        34
    dayeye2006199   41 天前
    要发挥人的作用,做程序语言和工具的主人,而不要被工具牵着鼻子走。你不能说你一个资深点的程序员,哪天换了份工作换了个语言环境,两手一摊说没法干。。
    sagaxu
        35
    sagaxu   41 天前 via Android
    语言只是工具,你也只是工具人,老板换个人就是了
    vitoliu
        36
    vitoliu   41 天前
    哈哈哈哈哈
    yangxiaopeipei
        37
    yangxiaopeipei   41 天前
    @xuanbg 想起 php 是两头羊角锤的图片
    jones2000
        38
    jones2000   41 天前
    新的语言, 不都是用老语言开发出来包装下出来的嘛, 没有什么区别.
    wutiantong
        39
    wutiantong   41 天前
    每种 [工具] 都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论 [工具] 的时候,总有人搬出“《工具只是一种投机取巧》”的说辞,如果用什么 [工具] 真的无所谓,为什么还会涌现那么多新的 [工具] ?


    每种 [投机取巧] 都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论 [投机取巧] 的时候,总有人搬出“《投机取巧只是一种耍小聪明》”的说辞,如果用什么 [投机取巧] 真的无所谓,为什么还会涌现那么多新的 [投机取巧] ?


    每种 [耍小聪明] 都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论 [耍小聪明] 的时候,总有人搬出“《耍小聪明只是一种思维方式》”的说辞,如果用什么 [耍小聪明] 真的无所谓,为什么还会涌现那么多新的 [耍小聪明] ?


    每种 [思维方式] 都有它自己的定位,有自己的目标,有自己的特性。

    每当讨论 [思维方式] 的时候,总有人搬出“《思维方式只是一种语言》”的说辞,如果用什么 [思维方式] 真的无所谓,为什么还会涌现那么多新的 [思维方式] ?
    abelmakihara
        40
    abelmakihara   41 天前
    正确的废话 语言是工具 生态呢?
    keymao
        41
    keymao   41 天前
    啊?这...

    "每种语言都有它自己的定位,有自己的目标,有自己的特性。" √

    "如果用什么语言真的无所谓,为什么还会涌现那么多新的语言?" ?

    这话说的,你自己都说了每个工具有他自己的定位,自己的特性, 你怎么还能反问出新的语言出现这种现象呢?

    正因为他们用途不同,所以适应不同的需求,需要不断地创造新的语言来适应新的需求啊?

    语言只是一个工具,这是对于开发者来说的。 这句话本意是教育开发者,不要被语言所局限,再不同的需求场景下使用不同的语言来完成需求,而不是做语言的卫道士,天天我 php 天下第一 我 python 天下第一的, 很幼稚。
    zmqiang
        42
    zmqiang   41 天前
    或许可以参考现实现实世界的例子:

    人类所说的语言和写的文字本身也是一种沟通用的工具,但为什么会有这么多的语言和文字呢?
    WilsonGGG
        43
    WilsonGGG   41 天前
    他们说的不准确,实际上*程序员是一种工具*
    agdhole
        44
    agdhole   41 天前
    同类工具也可以横向比较

    有些人说“语言只是一种工具”其实是在说“你技术不行,没权利说哪个语言比哪个更好更差”
    newmlp
        45
    newmlp   41 天前
    那为什么有那么多中工具呢,同种工具还有不同的型号,语言本来就是工具
    felixcode
        46
    felixcode   41 天前 via Android
    语言只是工具
    技术只是手段
    产品只是配角,场景才是主角

    这些话说出来,显得有多牛 B 就有多装 B
    codeDreamfy
        47
    codeDreamfy   41 天前   ❤️ 1
    很多时候说这句话的人可能更想表达的是,语言的思想或者编程的思想才是最重要的,因为语言永远学不完,但是编程思想,解决问题的办法不会改变
    js8510
        48
    js8510   41 天前 via Android
    好吧,我摊牌了,我会的多,我凡尔赛了朋友们
    Yvette
        49
    Yvette   41 天前
    又是一个被不当类比给带偏的讨论
    wanguorui123
        50
    wanguorui123   41 天前
    语言只是一种工具 = 条条大路通罗马
    fewok
        51
    fewok   41 天前
    什么不是工具?
    libook
        52
    libook   41 天前
    我觉得楼主对“语言只是一种工具”的理解有误,至少我本人在说这个的时候所指的意思不是“用什么语言都无所谓”。

    为什么会出现“语言只是一种工具”的观点?
    我个人的经历来看,这应该和“PHP 是世界上最好的语言”有关。有些人会把语言作为归宿,认为自己精通了一门语言之后就无所不能,从而产生了一些优越感,进而任何需求都要用这一种语言来做。

    那么主流语言有没有本质上的好坏?

    拧螺母要用扳手,如果想钉钉子扳手也可以临时顶一顶,但大多时候肯定不如锤子好用。

    软件架构上来说,从来都找不到一种方案能够解决所有的问题,更明智的是根据具体的需求去寻找更适合的方案,如果实在找不到就去创造一种。
    所以语言的诞生往往都是源于当时现有的技术无法很好的满足某一些需求。

    “语言只是一种工具”恰恰是说给那些在一门语言上吊死、深陷思维定式的人听的,旨在于提醒他们:跳出语言的限制,或许有更多更好的方案。
    ysChan
        53
    ysChan   41 天前
    连人都是工具,何况语言呢😂
    aloxaf
        54
    aloxaf   41 天前   ❤️ 3
    我记得王垠以前写过一篇文章谈论过这个问题,还是挺有道理的。
    他认为语言是材料而不是工具,因为语言的特性在最终产品中也会有所体现,真正的工具应该是 IDE 、编辑器之类的。
    Kasumi20
        55
    Kasumi20   41 天前
    @aloxaf 这个说得好
    xiaotianhu
        56
    xiaotianhu   41 天前
    这么说的人,一般是为了体现自己的优越感

    大部分的工具,都是通用性比较强的。我会开手动挡汽车,那么所有的汽车基本上都能无缝切换的开。
    我能用 STAR 的钳子,国产钳子也能用。
    momocraft
        57
    momocraft   41 天前
    人总可以把任何东西分类成手段工具,毕竟目的是一层套一层的

    那人们用这些工具做出了什么呢 呵呵
    hxndg
        58
    hxndg   41 天前
    每当讨论语言的时候,总有不说环境上来就说 XXX 语言好的人,语言只是一种工具是对这种语义的反驳。

    但是

    A:天下乌鸦一般黑,哪里都有素质低的人。
    B:你怎么敢说天下乌鸦一般黑,那么多种类的黑色,那么多的乌鸦。

    A 说的时候,重点是第二句
    B 只关注第一句话的对错,然后开始批判:你怎么敢说天下乌鸦一般黑?

    这种情况脱离了特定的环境,上来就反驳的情况,一般被称为杠精,
    Varobjs
        59
    Varobjs   41 天前
    有人把语言当成工具
    有人把语言当成信仰
    有人...
    和而不同
    bk201
        61
    bk201   41 天前
    没看明白逻辑点,你既然说了用语言,那不是工具是啥?
    GrayXu
        62
    GrayXu   41 天前
    @kop1989 +1 题干有点偷换概念了
    Salticey
        63
    Salticey   41 天前 via Android
    因为语言就是一种工具呀
    shawnsh
        64
    shawnsh   41 天前 via Android
    某个角度是的
    AX5N
        65
    AX5N   41 天前
    本来想说点什么,一看楼主表达的意思不就是他反对的“语言只是一种工具”吗,都不知道从哪里下口了。
    inwar
        66
    inwar   41 天前 via Android
    语言只是一种工具--不用选,我全都会
    Kasumi20
        67
    Kasumi20   41 天前
    @AX5N 那就别说话
    alazysun
        68
    alazysun   41 天前
    有一定道理,但这句话太装 b 了
    ClericPy
        69
    ClericPy   41 天前
    这句话有个八九年经验的大佬说过, 有个应届生也说过, 某个纯学术的导师同样说过, 确实很常见的观点, 而且他们说话时候的语境上下文都不一样, 没有什么为什么, 图灵完备的语言功能上确实基本都具备, 但是顺手不顺手还不是冷暖自知, 月经帖了
    mNiska
        70
    mNiska   41 天前 via iPhone
    额…?切菜难道要用锤子吗
    AndyAO
        71
    AndyAO   41 天前
    当某个人在讨论问题的时候说出这样的话时,我们应该识趣的尽快闭嘴!甚至还应该唯唯诺诺的假装点点头。因为他已经无话可说了,但心里目前有没有办法接受。

    如果没有充分的上下文,这句话毫无价值,「语言是工具」是正确的废话,没有提供任何额外信息。

    所以只能表现出他自己内心的强烈情绪。
    imycc
        72
    imycc   41 天前
    语言确实是一种工具。用什么语言当然有所谓。挑选合适的工具来工作,就是程序员该干的事。
    DeWhite
        73
    DeWhite   41 天前
    @cxe2v 房间这个说法不错,只是木头和泥巴的房子交换人流的时候容易出现人流交换过慢或者为了满足业务要花大功夫去建立一个完备的木头房。
    charlie21
        74
    charlie21   41 天前
    所有的成品在更大的目的面前都是一种工具

    房子(你可以自己买 也可以去森林里自己造)在`泡妞`面前就是一种工具
    良好的版式设计在`吸引用户`面前就是一种工具

    SDK 用的语言 在`借助 SDK 完成功能`面前就是一种工具
    APP 用的 SDK 在`APP 功能实现`面前就是一种工具
    编程语言 在`APP 功能实现`面前就是一种工具
    APP 在`一个人达成目的`面前就是一种工具
    画纸和画笔 在`一个人陶冶情操`面前就是一种工具
    良好无冗余的时间安排 在`一个人矫正坏习惯避免闲下来想太多`面前就是一种工具
    人 在`实现贵国伟大复兴`面前就是一种工具 ... 都是说烂了的话
    yzbythesea
        75
    yzbythesea   41 天前   ❤️ 1
    我觉得语言就是一门工具啊。

    我一直无法理解国内招人一定要区分出什么 java 后端,python 后端,go 后端。我就纳闷了,那亚马逊的 java 后端是不是跳槽去不了微软写 c#,去不了谷歌写 cpp 呢?事实上毫无此类情况啊。

    语言当然有所不同。但是你大部分的技术水平肯定不应该在于对单一语言的理解啊,而是更多的计算机科学通用知识,比如网络,安全,分布式,系统设计这些独立于语言之外的东西啊。
    bao3
        76
    bao3   41 天前 via iPhone
    语言不是工具,还能是什么……
    JokeEnd
        77
    JokeEnd   40 天前
    为什么还有提出“为什么总有人搬出“语言只是一种工具”。”这种问题
    Narcissu5
        78
    Narcissu5   40 天前   ❤️ 3
    我记得《黑客与画家》里面还专门嘲讽过这件事,“每种语言都一样”背后的潜台词其实是“选谁都差不多”,但其实差得真的很多,语言的选择可以说是程序员的头等大事了
    encro
        79
    encro   40 天前   ❤️ 1
    钉钉子的时候你可以选择很多种类工具,比如锤子,扳手,

    但是显然如果如果你的钉子是螺丝钉,你需要钉在水泥墙而不是木板,你还希望以后可以将钉子拔出来但不会大面积损坏墙面----
    这时候你可以选择的理想工具可能是电钻。
    zorui
        80
    zorui   40 天前
    难道不是工具吗?
    zorui
        81
    zorui   40 天前
    语言都是工具,重点是选对工具。
    raptor
        82
    raptor   40 天前
    不是工具难道还是信仰么?

    当然这句话只是半句,另半句是:要针对应用场景选择合适的工具。
    breestealth
        83
    breestealth   40 天前
    因为语言本身就是一种工具。
    另外“语言只是一种工具”不能推导出你所说的“用什么语言真的无所谓”这个结论,所以后续讨论基本无意义。
    cxe2v
        84
    cxe2v   40 天前
    @DeWhite 是的,我可能话没说完整,工具都有适用场景,泥巴也建不起来高楼大厦,相对的,你修个猪圈不用钢筋混凝土也能达到要求
    easing
        85
    easing   40 天前   ❤️ 1
    整楼都没看到几个类比正确的。。语言当然不是工具,要类比也是类比砖块,是 building block,是材料。而 IDE 这些才是锤子等各种工具,用来把由语言组成的大厦给建造起来。哪儿见过拿钉子锤子组成的高楼呢。。
    语言的特性直接影响大厦的基本结构,混凝土和石头建筑就是不一样,更和土房子不一样。更好的材料有助于构建更宏伟的工程。
    kooze
        86
    kooze   40 天前
    把你的描述字符串里的“语言”替换成“工具” 毫无违和感。
    TuxcraFt
        87
    TuxcraFt   40 天前
    不说语言是一种工具
    大部分人也是一种工具而已……
    看透了就行
    不要搞什么信仰
    angusun
        88
    angusun   40 天前
    打比方如果做得不恰当往往容易让人挑毛病。
    虽然大家都能理解,但是就是不舒服。
    HannibaI
        89
    HannibaI   40 天前
    就是因为每种语言都有它自己的定位,有自己的目标,有自己的特性,所以语言才只是一种工具呀。
    HannibaI
        90
    HannibaI   40 天前
    如果某某语言没定位,没目标,没特性,那它连工具都算不上。
    每种语言有万能定位,万能目标,万能特性,那它就不是工具了,是改变世界的神迹
    gggxxxx
        91
    gggxxxx   40 天前
    这话当然是对的。
    人类使用计算机的目的是什么?不就是用计算机解决一个特定问题嘛?
    解决问题使用的是什么编程语言根本不重要,只要这个问题被正确解决了就行。
    所以编程语言只是工具
    southsala
        92
    southsala   40 天前
    多接触几个平台,多接触几种语言,你会发现语言还真就是个工具,而且还是地位低下的那种
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   819 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:06 · PVG 05:06 · LAX 14:06 · JFK 17:06
    ♥ Do have faith in what you're doing.