Ide 支持实时编码的工具,如Bret Victor';s";“按原则发明”;谈话
我看过一个已经广为人知的例子,前苹果用户界面设计师布雷特·维克托(Bret Victor)在修改源代码中的一个符号后,立即更新了运行代码,展示了令人惊叹的演示 为了让那些没有看过或没有时间看视频的人明白我的问题:我想用这样的工具来编写我自己的软件。他演示的工具是否可用,或者是否有其他类似的工具 不管是哪种语言/环境,我只想让我的代码运行,然后在源代码中更改一行,并立即看到更新的结果,而无需重新启动它 视频也可在上获得,关键点包括:Ide 支持实时编码的工具,如Bret Victor';s";“按原则发明”;谈话,ide,demo,Ide,Demo,我看过一个已经广为人知的例子,前苹果用户界面设计师布雷特·维克托(Bret Victor)在修改源代码中的一个符号后,立即更新了运行代码,展示了令人惊叹的演示 为了让那些没有看过或没有时间看视频的人明白我的问题:我想用这样的工具来编写我自己的软件。他演示的工具是否可用,或者是否有其他类似的工具 不管是哪种语言/环境,我只想让我的代码运行,然后在源代码中更改一行,并立即看到更新的结果,而无需重新启动它 视频也可在上获得,关键点包括: -05:30-实时编码图形算法(空格) -14:30-实时编码
- -05:30-实时编码图形算法(空格)
- -14:30-实时编码一些游戏代码(空间和时间)
- -21:30-实时编码局部变量(状态)
JavaScript支持也已宣布。IPython笔记本就是朝着这个方向迈出的一步。虽然它更倾向于对科学问题进行交互式探索性分析,但我发现它非常具有互动性,而且开发起来很有趣
代码管弦乐队成员最近发布了名为C.O.L.T的LiveCodeing工具。它支持JavaScript和ActionScript,看起来非常有前景。强烈建议您试用。我已经为Emacs、PyCharm和Eclipse构建了一个名为的插件,它涵盖了您询问的三个特性中的两个。当您键入代码时,它会立即更新海龟图形算法的结果 它还显示每个赋值旁边的局部变量的状态。以下是二进制搜索算法的示例显示:
def search(n, a): | n = 3 a = [1, 2, 4]
low = 0 | low = 0
high = len(a) - 1 | high = 2
while low <= high: | |
mid = (low + high) / 2 | mid = 1 | mid = 2
v = a[mid] | v = 2 | v = 4
if n == v: | |
return mid | |
if n < v: | |
high = mid - 1 | | high = 1
else: | |
low = mid + 1 | low = 2 |
return -1 | return -1
|
i = search(3, [1, 2, 4]) | i = -1
def搜索(n,a):|n=3 a=[1,2,4]
低=0 |低=0
高=透镜(a)-1 |高=2
虽然很低,但谁做的
您将在React和ELM社区以及前端函数式编程社区中发现许多有趣的东西
最近一些试图提供此类开发环境的全堆栈平台包括:
:
Andreessen-Horowitz/Y-Combinator初创公司,由Chris Granger出资230万美元,Chris Granger是Clojure的一位有影响力的程序员,他已经建造了灯塔
技术:Rust(后端)、TypeScript(前端)以及React概念的自制实现(他们称之为“microReact”)
:
不是一家公司(还没有?),而是由保罗·丘萨诺(著名著作《斯卡拉的FP》的作者)发起的帕特伦运动支持
技术:Haskell(后端),ELM(前端)
注意:您可以看到这些工具背后的人都是经验丰富的函数式程序员。检查“如何工作”部分
工作原理->函数式编程
程序有状态
布雷特·维克托为什么能拍下那部录像
因为:
- 他的体系结构明确地描述了状态突变
- 他使用功能纯度
- 他将历史事实记录为状态,而不是当前UI状态
受此演讲启发的一个工具是ELM语言
榆树:
因此,调试器的根本是Elm本身的设计。如果你这样做
不是从语言层面的正确设计选择开始,
创建一个时间旅行调试器很快就会变得极其复杂。
即使是部分实现必要设计的语言
需求将面临严峻挑战
因此,您真正需要了解的是,有趣的不是技术,而是底层软件架构。一旦有了架构,添加这样的调试特性就不难了