实验IDE概念

时间:2010-06-18 02:11:24

标签: ide

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

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

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

5 个答案:

答案 0 :(得分:4)

Andrew Ko(前CMU,现任U Wash教授)将他的大部分论文集中在允许人们通过询问“为什么发生了什么”或“为什么他没有”进行调试。该项目被称为WhyLine,他甚至有一个Java版本。

答案 1 :(得分:2)

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

IDE通常是某种编辑器,调试器和编译器。由于这些是工具的三个不同部分,我将单独执行它们

这是我想要的编辑器

  1. 快点我永远不想等待加载的东西。如初。
  2. 给我强大的方法来操纵和跳转代码。我不关心学习曲线,因为它是我平均每天使用10小时的工具,另一方面,我不想浪费我的时间来擅长使用功能不强的工具。
  3. 给我一个体面的方式来打开文件。打开文件对话框不够好,项目树也不行。
  4. 同时打开许多东西的良好支持。我有一个27英寸的屏幕,标签远远不够。目前我生活在分裂,但要想出更好的东西并不难。
  5. 在编辑代码时从不让我触摸鼠标。再一次,我不关心学习曲线,我想要的是速度,效率和力量。
  6. 如果你给我一个视觉设计师,那么最好让我比打字更有效率,同时生成具有与我能够用文本产生的相同灵活性的代码。我还没有找到一个这样做的视觉设计师,我曾经使用的每一个都基本上降低了学习如何做某事的标准,但是让你在可维护性和灵活性方面付出了代价。如果用于严肃的目的(即不仅仅是敲打东西而不是关心质量),我会通过绘制我失败的图片来考虑编程的每一个例子。
  7. 自动重构。我现在正在使用vim,我想念的一件事就是能够从其他方法中提取方法,或点击一个按钮来重命名某些内容,并对该工具的操作感到安全。
  8. 代码分析。我希望看到语法错误,看看我是否正在键入冗余代码,或者看看是否有更好的方法可以做某些事情。
  9. 伟大的测试运动员。我练习TDD,而糟糕的测试跑步者让我起了作用,因为它对我所做的一切产生了影响。
  10. 我想要的调试器

    1. 一个REPL。当我被视觉工作室困住时,这让我疯了,我可能在眼前的窗口花了更多的时间,然后团队中的其他任何人。调试器的全部内容是能够探索执行过程中发生的事情,如果我不能输入任意代码并查看它的评估结果,我觉得我有一只手绑在我背后
    2. 即时更改代码的能力,虽然有一个不错的REPL和语言,但这样可以解决问题
    3. 执行中前后移动的能力。
    4. 速度,不要让我等待
    5. 在代码中跳转的好方法。如果我在第1行,并想跳到第500行看看发生了什么,我应该能够做到这一点
    6. 我想要的编译器

      1. 速度,至少在开发模式下。谷歌go能够在一台笔记本电脑上以毫秒为单位编译500,000个本地,这就是我所说的。如果需要编译语言,那么每一秒都盯着编译器输出只会让你更难做你正在做的事情(追踪错误,测试功能,运行测试等)。
      2. 您需要一些方法来挂钩执行前后任意方法,或以更一般的方式预处理代码文件(想想lisp阅读器宏)。如果您不能使用该语言,则需要能够使用编译器
      3. 很好的分析。
      4. 告诉我,如果你不能在编译时把它搞砸了
      5. 透明度。我真的甚至不想知道它在那里,除非我直接与它互动。
      6. 我拥有什么

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

        用于调试,我使用ruby-debug,这真的不是那么好。基本上你得到1,2(更多的红宝石然后ruby-debug)和3,但就是这样。

        不要再使用编译器了(感谢上帝),但是在使用一个编译器7年后(至少是专业版)不使用编译器真的突出了它们对开发过程产生的可怕影响。

答案 2 :(得分:1)

交互式代码如何跨网络变化?因此,您对代码进行了更改,并且更改会在您房间内的好友计算机上自动更新。可以制作一些有趣的开发技巧。可能会导致完全混乱,但嘿!这是个主意!

编辑:我将对此进行扩展。当处理冲突时,像SVN或TFS这样的当前存储库系统可能会变得非常烦人。如果其他开发人员所做的更改可能会立即反映在您的系统中,可能会以某种方式突出显示,那么更容易知道什么不会搞乱。

此外,当我编辑一个类的一个函数而另一个开发人员向该类添加一个函数时,这是一个真正的痛苦,所以TFS检测到冲突,我必须手动解决它。什么是酷的是能够获得不在特定文件而不是特定范围的锁。所以我可以查看一个函数,然后打开文件的其余部分进行编辑!

答案 3 :(得分:1)

Zero Button Testing是我的参赛作品。

答案 4 :(得分:0)

我添加到混音中的想法是:

TouchDevelop,基于实时和网格的Continuous IntegrationFormal VerificationWhy3ITI0060