2010-06-18 88 views
5

我有兴趣为一个侧面项目构建一个新样式的IDE。主要是为了消除类固醇IDE上的正常记事本。我正在寻找一些已经尝试或者你已经看到(或不是)看起来很酷并且在IDE中有用的东西的灵感。的事情,我可以了是:实验IDE概念

http://digitaltools.node3000.com/blog/1052-field-experimental-programming-suite

http://www.cs.brown.edu/people/acb/codebubbles_site.htm

+0

“我很有趣”,并谦虚太:-P – 2010-06-18 03:57:52

回答

4

安德鲁·柯(原CMU,现在教授ü冲)集中了他论文对允许人们通过询问调试“为什么事发生“或”他为什么没有“。该项目被称为WhyLine,他甚至有一个Java版本。

1

跨网络的交互代码如何变化?因此,您对代码进行了更改,并且更改会自动在您的伙伴机器上更新。可以为一些有趣的开发技术。可能会导致完全混乱,但嘿!这是个主意!

编辑:我会在此扩大。处理冲突时,像SVN或TFS这样的当前仓库系统可能会变得很烦人。如果其他开发人员所做的更改可能会立即反映到您的系统中,可能会以某种方式进行突出显示,那么知道哪些内容可能会更容易理解。

此外,当我编辑一个类的某个函数并且另一个开发人员向类中添加一个函数时,真的很痛苦,因此TFS检测到冲突,我必须手动解决它。最酷的将是获得锁而不是特定文件但是具体范围的能力。所以我可以检出一个函数并将其余的文件打开以进行编辑!

+0

你的意思是SubEthaEdit? http://www.codingmonkeys.de/subethaedit/index.html – ddimitrov 2010-06-18 03:00:04

+0

@ddimitrov:Yipee! – Anthony 2010-06-18 03:07:24

+1

恩,目前的系统是git和hg。 svn是前一代,像cvs或tfs这样的东西是之前的一代。技术现在好多了,不需要处理像cvs这样的锁定文件,并且几乎不需要像svn那样手动合并,并且如果我想在推送到主线之前获取其他人的更改,我可以。 – 2010-06-18 03:10:31

2

我可能是一个讨论这个问题的人,因为我发现使用IDE来编程,例如在手臂上使用铅笔编程,但是我认为可以获得围栏边缘的视角。人们想出的任何有趣或实验性的想法仍然需要处理开发人员工具的基本需求。

IDE通常是某种类型的编辑器,调试器和编译器。因为这些都是工具的三个不同的部分,我会通过他们seperately运行

以下是我从一个编辑

  1. 快想。我从不想等待事情加载。永远。
  2. 给我强大的方法来操纵和跳转代码。我不关心学习曲线,当它是我平均每天使用10小时的工具时,另一方面是我不想浪费时间去熟练使用功能不强大的工具。
  3. 给我一个体面的方式来打开文件。打开的文件对话框不够好,项目树也不够好。
  4. 很好的支持让很多东西同时打开。我有一个27英寸的屏幕,选项卡远远不够,目前我住在分割,但它不会很难提出更好的东西。
  5. 从来没有让我在编辑代码时触摸鼠标。如果你给我一个可视化设计师,那么最好让我在打字的时候更有效率,同时产生与我一样灵活的代码能够用文字制作。我还没有找到一个这样做的视觉设计师,我曾经使用过的每一个都基本上降低了学习如何做事的标准,但是让您在可维护性和灵活性方面付出了沉重的代价。如果用于严肃的目的(即不仅仅关注质量和不关心质量),我会考虑通过绘制图像来编程的每一个编程示例。
  6. 自动重构。我现在在使用vim,我想念的一件事是能够从其他方法中提取方法,或者点击按钮来重命名某些内容,并且使用该工具的工作方式感到安全。
  7. 代码分析。我想在发生语法错误时看到它们,看看我是否输入了冗余代码,或者看看有没有更好的方法去做某些事情的建议。
  8. 伟大的测试赛跑者。我练习TDD,而差劲的测试选手将我推上了墙,因为它对我所做的每件事都有如此的影响力。

我想从一个调试器

  1. 一个REPL。当我被视觉工作室困住时,这让我疯狂,而且我可能花更多时间在团队中的其他人身上。调试器的重点在于能够探索执行过程中发生了什么,如果我不能输入任意代码并查看它的计算结果,我觉得我有一只手绑在背后
  2. 改变的能力代码在运行,虽然有一个体面的REPL和语言,这种照顾自己
  3. 在执行中前后移动的能力。
  4. 速度,不要让我等待
  5. 在代码中跳跃的好方法。如果我在第1行,并要跳转到500线,看看是怎么回事,我应该能够做到这一点

我从编译器

  1. 速度,至少要在开发模式。谷歌去能够在毫秒内在笔记本电脑上编译500,000位loc,这正是我所说的。如果语言需要编译,每秒钟注意编译器输出只会让你无论做什么都更难(追踪bug,测试功能,运行测试等)
  2. 你需要某种方式来挂钩到执行前和执行后的任意方法中,或者以更一般的方式预处理代码文件(想想lisp reader宏)。如果你不能用语言来做,你需要能够用编译器
  3. 良好的分析。告诉我在编译时搞砸了哪里,如果你之前无法捕捉它,那么
  4. 透明度。我真的不想知道它在那里,除非我直接与它互动。

我有什么

目前,我使用vim,这给了我1,2,3(含fuzzyfinder.vim/rails.vim),4,5,和8(含syntastic非常差vim的)。我没有重构或代码分析,我真的很想念它,但IMO更值得权衡。

调试,我使用ruby-debug,这真的不是很好。基本上你得到1,2(更多的原因,然后红宝石调试),3,但多数民众赞成它。

不要再使用编译器(感谢上帝),但在使用7年后(至少在专业上)不使用编译器真的强调了它们对开发过程的可怕影响。

+0

您对编译器速度的评论是奇怪的一个。如果你的语言有一个repl(按D.1),那么我敢打赌它可以做增量编译,我不知道你为什么想要或需要一次编译500KLOC。例如,我现在在使用SBCL,它不是世界上最快的编译器,但我不记得上次我需要一次编译20行以上(1个函数)。当然,在我的笔记本电脑上编译一个函数需要40ms的时间,但也可以在40ms内完成所需的工作。 – Ken 2010-06-18 03:24:33

+0

我以前从来没有用过增量编译的语言,但这会缓解我所说的问题。如果您通过执行代码/编译/测试舞蹈追踪错误,那么中间步骤所需的每一秒都是很重要的。我是一个网络人,我的最后一份工作是编辑我们项目的时间从45秒到2分钟。 2分钟使得难以保持动力,特别是与代码更改,alt-tab,重新加载体验相比。 – 2010-06-18 03:31:41

+0

在维基百科的sbcl之后(并且发现它是一种方言),事实证明我在使用clojure之前经历了渐进式编译,我从未以严肃的方式使用任何lisp。你完全正确,但编译时间的问题消失了。而且,使用emacs + SLIME获得的整个REPL导向开发事项(IMO)是任何人都可以实现的最先进的方法。真的希望有更多的lisp工作可用... – 2010-06-18 03:40:25