大家都这么关心王垠做编程语言,怎么没人关心另一个华人搞的语言ATS呢?性能还堪比C/C++呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的容
ShiningRay
V2EX    程序员

大家都这么关心王垠做编程语言,怎么没人关心另一个华人搞的语言ATS呢?性能还堪比C/C++呢

  •  
  •   ShiningRay
    ShiningRay 2013-11-13 00:14:48 +08:00 10508 次点击
    这是一个创建于 4360 天前的主题,其中的信息可能已经有所发展或是发生改变。
    41 条回复    1970-01-01 08:00:00 +08:00
    leotso
        1
    leotso  
       2013-11-13 00:39:26 +08:00 via Android
    @ShiningRay 听都没听过,涨见识了,貌似挺厉害啊.闪闪你从哪里知道这个语言嘀呢?
    ShiningRay
        2
    ShiningRay  
    OP
       2013-11-13 01:13:04 +08:00
    @leotso The Computer Language Benchmarks Game http://shootout.alioth.debian.org/

    之前还有更多语言,后来都不弄了,现在貌似打不开了啊
    DearMark
        3
    DearMark  
       2013-11-13 07:08:23 +08:00 via iPhone   1
    性能 不是全部
    关键字 ruby
    wuxqing
        4
    wuxqing  
       2013-11-13 08:25:38 +08:00
    这说明,这年头要会炒作才行
    niko
        5
    niko  
       2013-11-13 09:20:35 +08:00
    不明觉厉
    cYcoco
        6
    cYcoco  
       2013-11-13 09:23:26 +08:00   1
    LZ不是曹力么。。。
    10iii
        7
    10iii  
       2013-11-13 09:31:13 +08:00   2
    计算机语言这个东西,主要看背后依靠的社区。要有死忠,有大牛,有脑残粉。
    这个就像你自己弄个微薄类的网站,技术上拳打推特脚踩微薄,抗压600亿,但是没人来用,你就干耗电磨损服务器。
    sgissb1
        8
    sgissb1  
       2013-11-13 09:50:02 +08:00
    @10iii 顶你,你说的比较实在。这年头基本都是这样了。以前是为了解决问题而搞一个语言。
    tabris17
        9
    tabris17  
       2013-11-13 09:50:12 +08:00
    汇编性能还要高呢。我大致看了下语法,类似F#和pascal的混合体,实在是有点不适应
    liuzhoou
        10
    liuzhoou  
       2013-11-13 10:04:26 +08:00
    julyclyde
        11
    julyclyde  
       2013-11-13 10:26:53 +08:00
    东西好并不代表有意义
    现在行业内不缺语言,也不缺实现
    ShiningRay
        12
    ShiningRay  
    OP
       2013-11-13 10:36:00 +08:00
    @cYcoco 矮由,居然有人认得我
    ShiningRay
        13
    ShiningRay  
    OP
       2013-11-13 10:42:27 +08:00
    @10iii 你说的一点也没错
    judasnow
        14
    judasnow  
       2013-11-13 10:54:30 +08:00
    楼主 js 的那本书 翻译的不错 :-)
    wdlth
        15
    wdlth  
       2013-11-13 11:58:19 +08:00
    现在缺的不是语言,性能也没必要太讲究,而是用的人,有用户、社区支持的东西能很快的发展起来,很多东西不在沉默中爆发,就在沉默中消亡。
    ivgf629
        16
    ivgf629  
       2013-11-13 12:07:21 +08:00
    趋势所向
    matrix12346
        17
    matrix12346  
       2013-11-13 12:21:22 +08:00
    王垠会炒作呢
    hooluupog
        18
    hooluupog  
       2013-11-13 14:36:50 +08:00
    王垠的这篇What's wrong with Object-Oriented Programming and Functional Programming(https://yinwang0.wordpress.com/2013/11/09/oop-fp/)最近在hacker news和reddit/r/programming的首页上引起了激烈的讨论。。。
    cxshun
        19
    cxshun  
       2013-11-13 14:42:42 +08:00
    @ShiningRay 原来兄弟是曹力啊,哈哈,糗事百科不错啊。
    akira
        20
    akira  
       2013-11-13 15:08:36 +08:00
    原来shiningray也素大神呀,每天比上的2个站,v2ex和糗百
    heganj
        21
    heganj  
       2013-11-13 17:23:35 +08:00
    如果我没记错的话,王垠好像说打算将ylang, yos 和 ydb 融为一体。说实话,我挺期待的 XD
    ShiningRay
        22
    ShiningRay  
    OP
       2013-11-13 17:33:46 +08:00
    @heganj squeak no os
    momo5269
        23
    momo5269  
       2013-11-13 17:43:09 +08:00
    @hooluupog 这类东西很容易让人联想起joel spolsky和paul graham...
    文中有些内容是老生常谈了,以前关注的几个计算机博客(博文聚合类)一年下来最少有四分之一是有同类观点的内容...
    yangff
        24
    yangff  
       2013-11-13 20:54:48 +08:00
    @tabris17 汇编效率不高的。。
    txlty
        25
    txlty  
       2013-11-13 21:23:25 +08:00
    ShiningRay
        26
    ShiningRay  
    OP
       2013-11-13 21:31:29 +08:00
    @txlty 呵呵
    tabris17
        27
    tabris17  
       2013-11-14 09:09:16 +08:00
    @yangff 执行效率
    yangff
        28
    yangff  
       2013-11-14 09:30:27 +08:00
    @tabris17 是啊……哪怕是最熟练汇编语言的人,要制造出效率超过现代编译器的汇编码,也几乎是不可能的……
    tabris17
        29
    tabris17  
       2013-11-14 09:56:04 +08:00
    @yangff 我们说的前提根本不一致
    yangff
        30
    yangff  
       2013-11-14 10:43:13 +08:00
    @tabris17 不信你用汇编写线段树,我用C++写,我的代码跑得肯定比你快。
    tabris17
        31
    tabris17  
       2013-11-14 12:52:54 +08:00
    @yangff 要不你用C++写个helloworld,我用汇编写一个,我保证运行速度比你快
    luikore
        32
    luikore  
       2013-11-14 14:24:44 +08:00
    @yangff 熟练汇编的人不用全部自己写, 只要改改现代编译器的汇编输出就行了...
    最简单的一种就是调分支代码块的顺序(人知道哪段代码是常态, 哪段是异常态, 但C++不知道). 而你在C++层面上调的顺序还有可能被编译器的优化改掉.
    yangff
        33
    yangff  
       2013-11-14 15:30:47 +08:00
    @luikore 请使用__builtin_expect,这样编译器能更好的帮你优化,而不是手改汇编码……
    为什么都到了2013年,还有人相信手写汇编码的效率会高过编译器生成代码……
    yangff
        34
    yangff  
       2013-11-14 15:35:34 +08:00
    如果是在Windows下用MSVC的话,用 Profile-Guided Optimizations 会更好些……
    standin000
        35
    standin000  
       2013-11-14 16:01:58 +08:00
    @yangff 这位同学没做过底层程序吧,某些时候汇编是必须的。一般来说来说效率最高的语言总是DSL,没有通吃的语言。
    yangff
        36
    yangff  
       2013-11-14 18:11:25 +08:00
    @standin000 ……算了……请允许我做一个悲伤的表情。
    standin000
        37
    standin000  
       2013-11-14 21:19:48 +08:00
    @yangff 晕,那也允许我叹口气吧。DSL啊!
    yangff
        38
    yangff  
       2013-11-14 21:43:09 +08:00
    @hooluupog ……这文章神炸鱼……
    ShiningRay
        39
    ShiningRay  
    OP
       2013-11-14 21:47:25 +08:00
    楼上讨论的非常热烈,鼓掌,啪啪啪
    luikore
        40
    luikore  
       2013-11-15 14:54:01 +08:00
    @yangff

    手写汇编一个原因是兼容不同的编译器, 例如我想用 AVX2 指令但有些用户硬件支持而编译器不支持, 这时就要用汇编, 或者直接把机器码放到 .text 段中. 又例如写解释器, 但很多编译器不支持 __attribute__((__noinline__,__noclone__)), 其实写个脚本调整汇编输出的顺序就可以了. 很多解释器的核心部分都是简单粗暴的手写汇编, C/C++ 改 flag 的方式太迂回曲折了.

    PGO 作用真的很微弱. 很多情况都是只需要优化一两个点, 用 PGO 还要设计把分支跑热的样例, 最后还要检查生成的代码是否真的优化了那里... (其他不是瓶颈的部分, 是否 PGO 我管你啊!).
    yangff
        41
    yangff  
       2013-11-15 21:27:29 +08:00
    @luikore 嗯,指令确实是一个问题,这时候一般是嵌入汇编吧。

    要说生成代码的质量现代的编译器是要比人手工码要高的。毕竟有几个人能够充分考虑每一个优化细节……或者是手动展开递归之类的。。

    除非极少部分没有被考虑到的……可能手写效率会高,比如你说的AVX2,其实MMX也是吧,虽然GCC有宏,但是我还是比较喜欢直接写,宏好长啊。。

    其他的编译器我不是太熟悉,GCC和VS应该是可以在编译命令里面直接要它给汇编代码出来的……

    PGO那是真没办法了,VS好像也有个宏可以要求指定分支预测的结果,但是好像那个东西不稳定还是什么的……说是会导致生成的代码有错误?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     932 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 21:26 PVG 05:26 LAX 14:26 JFK 17:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86