擅长:python、mysql、java
<p>不管对Python做什么努力,有些事情都是不可能的。例如,在开发web应用程序时,Flask/Django/Gunicorn或whatnot web服务器在源代码发生更改后必须重新启动其进程。但是在比如Lisp中,您在REPL中启动一个web服务器,然后您只需编译一个函数,例如添加一个新的路由,您就可以立即尝试它。没有进程重新启动,它更具交互性。在</p>
<p>另一个例子是更新类和实例。在公共Lisp中,假设您编写了一个类并创建了一些对象。现在您更改了类定义,并且现有实例得到(延迟)更新。例如,添加一个新的槽,删除一个槽,等等,我们甚至可以控制更新是如何完成的(通过子类化一些通用函数)。在</p>
<p>在Python中附加到一个正在运行的远程进程是可行的,但是交互性要少得多,编辑体验也不太理想(默认情况下,终端中是一个哑pythonshell,而完全成熟的Emacs则可以在一次击键(Slime中的<code>C-c C-c</code>)中导航源代码和重新编译函数(或者在任何其他可以连接到Swank服务器)。在</p>
<p>运行一个给定的单元测试也很简单和快速,不需要重新启动任何进程。在</p>
<p>参考文献:</p>
<ul>
<li><a href="https://lispcookbook.github.io/cl-cookbook/clos.html" rel="nofollow noreferrer">https://lispcookbook.github.io/cl-cookbook/clos.html</a></li>
<li>在另一台计算机上调试正在运行的程序:<a href="https://lispcookbook.github.io/cl-cookbook/debugging.html#remote-debugging" rel="nofollow noreferrer">https://lispcookbook.github.io/cl-cookbook/debugging.html#remote-debugging</a></li>
</ul>