Eri*_*pen 4 static parsing types language-design dynamic
编辑:为了澄清,我并不打算建议为动态语言编写IDE可能是不可能的./编辑
根据我的具体经验,我正在考虑多年的关于JavaScript的对话/评论,其中许多是关于堆栈的,但是偶尔会有人这么说,JS没有一个像样的IDE的原因是因为动态类型也是如此难做.
我在写JS解析器方面想过这个,我不明白的地方的类型有什么关系像功能自动完成或直去的东西的定义.如果没有类型检查的关注,如果我想象通过动态语言中传递的params的范围和可用性将更容易建立.特别是在JS中,在大多数情况下规则实际上非常简单.
直到我开始听到人们引用动态类型就好像它是一个技术阻塞问题一样,我只是假设在大多数动态脚本语言中你可以从控制台运行,减少冗长和在实时执行环境中测试的简易性使调试更容易,从而减少对IDE的需求.
那是哪个呢?关于静态类型的一些东西可以更容易地解析代码以建立范围/可用性,或者我是否正确减少需求?
IDE是用动态语言发明的.重构是用动态语言发明的.自动重构工具是用动态语言发明的.
动态语言具有图形IDE,当静态语言甚至没有图形时,内置支持网络上的结对编程.或IDE.或网络支持.
例如,Smalltalk和Lisp IDE仍然领先于Java或C#.事实上,Eclipse 曾经是Smalltalk IDE!
IDE的质量取决于使其变好的努力程度.Smalltalk和Lisp社区花费了数十年的研究成果,数十名博士和大量的资金构建了强大的IDE.Java社区也是如此.(实际上,他们花了大量的钱购买Smalltalk公司...)
JavaScript社区没有.这是完全不同的.
有些事情需要在两者之间采用不同的方法.例如,使用IntelliSense /内容辅助/自动完成等功能.静态地尝试确定动态语言中范围内的标识符基本上等同于解决暂停问题,因此您不能这样做.您的IDE也需要是动态的,然后它不需要进行静态分析,它只需查看正在运行的代码并查看范围内的标识符.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |