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

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

  •  
  •   ShiningRay ·
    ShiningRay · 2013-11-13 00:14:48 +08:00 · 9998 次点击
    这是一个创建于 4035 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   2303 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:55 · PVG 08:55 · LAX 16:55 · JFK 19:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.