编程工具是不是该进步了

2018-08-24 18:46:35 +08:00
 jadeity
总的来说,编程面向两个方向,一方面是机器,一方面是人。

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

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

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

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

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

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

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

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

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

——《代码整洁之道》
designer
2018-08-24 19:42:00 +08:00
@MinonHeart vscode for 要自己写代码,你们都快下岗了吧
PureWhiteWu
2018-08-24 19:46:05 +08:00
最大的问题是,自然语言是有二义性的。
请填空:
(季节)能穿多少穿多少,(季节)能穿多少穿多少。
ho121
2018-08-24 20:29:23 +08:00
vim 挺好
codehz
2018-08-24 20:38:33 +08:00
你说的三维结构,那至少得等键盘作为输入工具被淘汰了才行。。。。话说未来的输入工具会是啥呢(
justfun
2018-08-24 21:02:16 +08:00
@codehz 小声点 吵到我用 TNT 了
glues
2018-08-24 21:36:47 +08:00
凡是试图将编程可视化的有两类:一是外行人士,二是刚入门的菜鸟
henryhu
2018-08-25 05:44:25 +08:00
Windows 都要加强命令行功能,你的倡议是不是有点反程序员的潮流?
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
2018-08-25 11:07:13 +08:00
楼主,游戏都是从二维发展起来的,所以要看好当前的启蒙类编程啊
NGLSL
2018-08-25 11:20:12 +08:00
@MinonHeart vs 笔记本加上固态都很卡
2Go
2018-08-25 11:39:22 +08:00
吵到我用 TNT 了
laudukang
2018-08-25 11:46:47 +08:00
TNT
Outshine
2018-08-25 13:49:05 +08:00
人类:"TNT,给我做一个和淘宝一样的网站"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/482980

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX