改善我们编写代码的方式?

Nil*_*nck 22 language-agnostic editing

在考虑软件工程的同时,我遇到了一个问题,为什么我们没有看到编写/记录代码的方式有任何改进.

想一想:自从我们从穿孔卡转向文本编辑以来,没有一个革命性的改进.我见过的最后一项改进是语法高亮和上下文敏感的帮助(例如Intellisense或ctags).不是我称之为革命性的东西.

这让我想知道:为什么会这样?

我会从错过的东西开始:

  • 我的很多代码都涉及几何.对于描述几何关系的文档,总是会出现在一大堆难以阅读的数学内容中(由于缺少适当的ASCII方程式设置).但是,如果我可以在代码中嵌入一些绘图或涂鸦,一切都会更容易,更整洁,更容易被理解.

您能想到什么会使您的编码/文本编辑/文档任务更容易?

Ada*_*eld 30

我很惊讶没有人提到没有银子弹.1986年(!),弗雷德里克布鲁克斯预言:

无论是技术还是管理技术,都没有单一的发展,它本身承诺在十年内在生产力,可靠性和简单性方面提高一个数量级[十倍]的改进.[...]我们不能指望每两年看到两倍的收益."

在23年中,他被证明是正确的.我们已经提出了许多方法,例如语法高亮和Intellisense,它们显着提高了生产力,但肯定不是一个数量级.随着时间的推移,我们将继续进行一些渐进的改进,但事实是没有灵丹妙药:我们编写代码的方式不会有一些神奇的启示,这将提高生产力一个数量级.

  • 查看Subtext IDE视频并告诉我你是否仍然喜欢if,elseif,else - http://www.subtextual.org/subtext2.html (3认同)

小智 15

令我感到惊讶的是,似乎没有人提到唐纳德克努特的开创性文学编程 - 将你的代码写成一本书或一篇科学论文.


dmc*_*kee 13

自从我们从打卡转向文本编辑以来,没有一个革命性的改进

从未使用过行编辑器,对吗?


但严肃地说,文本(特别是在为现代语言选择的表示中)是

  1. 容易处理
  2. 相当容易指定
  3. 信息密集
  4. 精确

任何取代它的东西必须是所有这四个属性的净胜利.不容易.


eip*_*puz 11

我不同意.我们确实有变化,但变化很小.

"for each"结构有多常见?与20年前相比.Domain Specific Languages运动怎么样?我们应该在图层中编码的想法怎么样?行为驱动的发展怎么样?通过遵守规范进行编码...当所有运行正常时,将一个好的文档写为输出.正则表达式的标准化怎么样?PCRE.什么阿兰凯的集团的"摩尔定律软件" DSL相关的工作,探索利用图表从RFC的更高级的实现开罗和产生的TCP/IP代码?

文档是双向对话.代码更容易理解,人们学习这种特殊语言.如果你懂德语,你不会说德语需要文件.我知道自然语言与计算机语言相差甚远,但是有一种运动可以让代码更具表现力.它不是关于新工具,而是关于我们如何编码.


Tim*_*omb 5

我最近在我的应用程序的一些数学重点部分做的一件事是将特定等式的LaTeX标记包含为注释/文档字符串.现在,我只是复制粘贴到在线公式编辑器中,但是看到公式本身(包括希腊字母和子/上标)而不是一堆ASCII代码会非常有用.


Coo*_*une 1

大脑到计算机的翻译器。打字是真正的瓶颈。它实际上只需要导出我想到的算法并将其转换为机器代码。

我想说,许多较新的语言非常擅长快速创建算法。现在的改进与其说是革命性的,不如说是渐进式的。

  • 键盘〜所以〜不是瓶颈。真正的瓶颈在于思考解决方案,而脑机代码翻译器并不能缓解这一问题。 (12认同)
  • “在淋浴时完成的最佳思考”+“大脑接口”->“电击”和“关于很棒的柠檬肥皂的评论” (4认同)