V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
jadeity
V2EX  ›  奇思妙想

编程工具是不是该进步了

  •  
  •   jadeity · 2018-08-24 18:46:35 +08:00 · 4966 次点击
    这是一个创建于 2043 天前的主题,其中的信息可能已经有所发展或是发生改变。
    总的来说,编程面向两个方向,一方面是机器,一方面是人。

    除了少数对性能要求严苛的场景,这两方面的之间的平衡点越来越偏向于方便人类的思考方式。

    但是就创造程序的工具来说,相较于这些程序对于世界其他方面的改进,好像依然停留在一个二维的窗口内。
    想要理解一个程序,依靠的还是语法的着色,大括号,小括号,中括号。
    想要了解一个当前的函数调用的具体细节,可能要翻越好几个文件,可能要在脑海里维护一个栈来记忆相互之间的关系。
    是不是有更好的改进空间呢?

    比如说更有动画效果,在一个三维空间里,更具表现力的方式展现结构。
    23 条回复    2018-08-27 22:04:49 +08:00
    MinonHeart
        1
    MinonHeart  
       2018-08-24 18:57:16 +08:00   ❤️ 32
    0attocs
        2
    0attocs  
       2018-08-24 19:02:03 +08:00 via iPhone   ❤️ 1
    不是工具的表现力弱,是编程语言的表达能力强。
    以及,饭总是要自己吃的。
    HayesTsai
        3
    HayesTsai  
       2018-08-24 19:04:57 +08:00 via iPhone   ❤️ 1
    你说的那种效率太低,如果一段代码脑袋都想不清楚要靠三维动画来说明,那么这样的代码就不应该出现
    Tyaqing
        4
    Tyaqing  
       2018-08-24 19:05:25 +08:00 via iPhone
    机器码 汇编 高级语言 自然语言

    工具也要语言写,所以还是要更新语言
    janus77
        5
    janus77  
       2018-08-24 19:15:49 +08:00 via Android
    首先,并不是树,而是一个网状,因为每一段函数都有他自己的调用栈。
    在我们没有明确观测哪个函数的情况下,那就是网。这涉及到性能问题。
    如果我们明确了,那就和传统 ide 一样了,自己选定一个 ctrl 点进去,有区别吗
    twor
        6
    twor  
       2018-08-24 19:36:13 +08:00
    脑图编程
    agagega
        7
    agagega  
       2018-08-24 19:38:50 +08:00   ❤️ 7
    有人也许会以为,关于代码的书有点儿落后于时代——代码不再是问题;我们应当关注模型和需求。确实,有人说过我们正在临近代码的终结点。很快,代码就会自动产生出来,不需要再人工编写。程序员完全没用了,因为商务人士可以从规约直接生成程序。

    扯淡!我们永远抛不掉代码,因为代码呈现了需求的细节。在某些层面上,这些细节无法被忽略或抽象,必须明确之。将需求明确到机器可以执行的细节程度,就是编程要做的事。而这种规约正是代码。

    我期望语言的抽象程度继续提升。我也期望领域特定语言的数量继续增加。那会是好事一桩。但那终结不了代码。实际上,在较高层次上用领域特定语言撰写的规约也将是代码!它也得严谨、精确、规范和详细,好让机器理解和执行。

    那帮以为代码终将消失的伙计,就像是巴望着发现一种无规范数学的数学家们一般。他们巴望着,总有一天能创造出某种机器,我们只要想想、嘴都不用张就能叫它依计行事。那机器要能透彻理解我们,只有这样,它才能把含糊不清的需求翻译为可完美执行的程序,精确满足需求。

    这种事永远不会发生。即便是人类,倾其全部的直觉和创造力,也造不出满足客户模糊感觉的成功系统来。如果说需求规约原则教给了我们什么,那就是归置良好的需求就像代码一样正式,也能作为代码的可执行测试来使用。

    记住,代码确然是我们最终用来表达需求的那种语言。我们可以创造各种与需求接近的语言。我们可以创造帮助把需求解析和汇整为正式结构的各种工具。然而,我们永远无法抛弃必要的精确性——所以代码永存。

    ——《代码整洁之道》
    designer
        8
    designer  
       2018-08-24 19:42:00 +08:00 via iPhone
    @MinonHeart vscode for 要自己写代码,你们都快下岗了吧
    PureWhiteWu
        9
    PureWhiteWu  
       2018-08-24 19:46:05 +08:00
    最大的问题是,自然语言是有二义性的。
    请填空:
    (季节)能穿多少穿多少,(季节)能穿多少穿多少。
    ho121
        10
    ho121  
       2018-08-24 20:29:23 +08:00 via Android
    vim 挺好
    codehz
        11
    codehz  
       2018-08-24 20:38:33 +08:00
    你说的三维结构,那至少得等键盘作为输入工具被淘汰了才行。。。。话说未来的输入工具会是啥呢(
    justfun
        12
    justfun  
       2018-08-24 21:02:16 +08:00
    @codehz 小声点 吵到我用 TNT 了
    glues
        13
    glues  
       2018-08-24 21:36:47 +08:00   ❤️ 1
    凡是试图将编程可视化的有两类:一是外行人士,二是刚入门的菜鸟
    henryhu
        14
    henryhu  
       2018-08-25 05:44:25 +08:00
    Windows 都要加强命令行功能,你的倡议是不是有点反程序员的潮流?
    taurenshaman
        15
    taurenshaman  
       2018-08-25 11:05:39 +08:00
    0、现在提这些还是早,等 VR/AR/MR 发展起来再说吧--这些发展起来了,才会标志着 3D 模型的广泛应用
    你可以把 gist、包管理等看做初级阶段 ^_^

    1、去看看有些启蒙类编程,很有意思:
    微软的 TouchDevelop (貌似已成先烈?)
    MIT 出品的 scratch
    微软的 Kodu (对标 Minecraft。貌似已成先烈?)
    我记得有基于 MineCraft 的教育产品
    (由此可见,微软做先烈好多年啊,也许可以考虑通过复制微软的小产品做大?)

    2、特定领域的编程也发展的不错--当然,好不好用,就得问专业人士了
    使用 JS 和 WebGL 实现的 vvvv: http://idflood.github.io/ThreeNodes.js/
    基于云的生理学研究工具: https://github.com/Microsoft/BioModelAnalyzer
    WebGL protein viewer: http://nglviewer.org/ngl/
    taurenshaman
        16
    taurenshaman  
       2018-08-25 11:07:13 +08:00
    楼主,游戏都是从二维发展起来的,所以要看好当前的启蒙类编程啊
    NGLSL
        17
    NGLSL  
       2018-08-25 11:20:12 +08:00
    @MinonHeart vs 笔记本加上固态都很卡
    2Go
        18
    2Go  
       2018-08-25 11:39:22 +08:00 via Android
    吵到我用 TNT 了
    laudukang
        19
    laudukang  
       2018-08-25 11:46:47 +08:00
    TNT
    Outshine
        20
    Outshine  
       2018-08-25 13:49:05 +08:00
    人类:"TNT,给我做一个和淘宝一样的网站"
    jadeity
        21
    jadeity  
    OP
       2018-08-25 19:00:04 +08:00
    @taurenshaman 这些和我想的不是一类东西,我说的是类似从手绘图纸到 CAD 的变化。更快速,更准确,更清晰,但是不是不需要脑子,不需要细节。相反细节会被更放大,代码结构会更好,跟什么 TNT 无关,跟 VS 和 VIM 的区别也无关。就好像 AE 和 NUKE,一个是层式编辑,一个是节点式编辑。一行一行的代码就像是一层层的,但是一个程序的逻辑更像一些节点连接起来的。
    taurenshaman
        22
    taurenshaman  
       2018-08-25 19:45:53 +08:00
    @jadeity 你如果做过 3D 方面的程序开发( WebGL/OpenGL/DirectX/...),再看这个项目 ThreeNodes.js ,就明白我的意思了。(好吧,提示我这个:“请不要在每一个回复中都包括外链,这看起来像是在 spamming ”,自己往前面翻吧。。。。)

    非专业方向的话,我说的 TouchDevelop/Scratch/Kodu 都很有意思,也无关 IDE/TNT ^_^
    wizardforcel
        23
    wizardforcel  
       2018-08-27 22:04:49 +08:00 via Android
    控制流就是线性的,你再怎么三维也没有用啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   990 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:06 · PVG 04:06 · LAX 13:06 · JFK 16:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.