【问题标题】:What programming tools haven't been written yet? [closed]哪些编程工具还没有写出来? [关闭]
【发布时间】:2009-04-17 03:48:07
【问题描述】:

您希望拥有哪些工具来简化开发,这些工具要么尚不存在,要么太小众/没有特色而无法使用。这个问题是由Redgate(无连接)提出的,他们正在寻求为 Sql 构建适当的版本控制工具 - 这多年来一直是一个明显的差距,希望现在可以填补。

Joel 自 2004 年 1 月以来一直在关注 .Net static linker

我个人想要IDE that understood the difference between business logic and other code

您希望看到哪些(可行的)工具?

【问题讨论】:

  • 电子邮件刺伤!还有一个未来的火腿,该死!
  • 仅仅理解业务逻辑就会向前迈出一步。

标签: language-agnostic


【解决方案1】:

这对某些人来说可能听起来很愚蠢,但是当我在学校学习 COBOL 时,您可以告诉 IDE 为您逐行跳过您的代码,如果您触摸鼠标,调试器会暂停,好像你达到了一个断点。有时我宁愿看调试器也不愿反复按 F10。我最喜欢的功能之一是您可以更改步进速度。基本上是每秒的行数,或步骤之间的延迟秒数。

或者如果你有一个长时间运行或复杂的过程,你想说测试步骤 5,而不必重新运行步骤 1-4(因为它们需要 20 分钟才能完成),能够在某个特定时间保存程序执行点,并将其恢复到特定的代码行。我现在正在开发一种工作工具,这将是上帝派来的。

我知道 VS2010 有一个历史调试功能,但我不确定它是否只适用于异常而不适用于程序状态。

我刚刚收听了关于应用程序兼容性的 RunAs 广播第 #92 集,大约 27 分钟后,他们正在讨论应用程序中的硬编码文件夹路径。我真的责怪该工具没有提供足够的指导。如果我们可以对 LINQ 等复杂技术进行智能感知,为什么它不能在你做一些会伤害你的事情时产生某种类型的警告。有 fxcop,但你必须知道才能运行它。它应该是过程的一部分。

也许我要求的太多了,我们需要依靠第三方。

【讨论】:

  • 听起来这可能是 VisualStudio 的一个附加功能......我实际上会觉得这很有用。
  • @Neil:哪一个?自动步进或保存程序状态?
  • 现在我们开始讨论,让我们开始打破常规并构建一些非常好的工具
  • @MrTelly:哈哈“打破常规 [原文如此]”
  • xcode 3 已经有历史调试; iphonedevelopertips.com/xcode/…
【解决方案2】:

为您选择的 OO 语言发出 RDBMS 模式和匹配类的单一概念域建模工具。 (或者对于任何语言,就此而言。)

中间的一些新的类似语言的东西不算数。任何基于 XML 的东西都是反模式。

【讨论】:

    【解决方案3】:

    一个让您及时倒退的调试器。程序崩溃时很容易破坏程序。找出发生这种情况的原因并找出导致这一点的步骤通常并不容易。

    我有一种感觉,我不久前听说过类似的事情,但不记得是什么了。尽管如此,Visual Studio 中没有“后退”按钮,所以我可以做梦。

    【讨论】:

    • @Peter:您可以通过单击黄色箭头并将其在 Visual Studio 中向上拖动到上面一行来移动执行行,但我认为这不会倒回您的程序。
    • 是的,您必须重新启动程序,这在大多数情况下都适用于调试,但在特定用户输入或其他外部条件引入崩溃时则不行。
    • 有些调试器可以做到这一点,例如 OCaml。
    • Chris:不,它不会倒回程序,只是跳到那一行。
    • OCaml 是否保留程序状态的历史记录?这似乎是您可以“倒带”程序执行的唯一方法。
    【解决方案4】:

    随着时间的推移捕获内存、磁盘和进程信息的调试器。在某些非常具体的情况下,它们存在于一些糟糕的实现中,但尚未触及主流语言和环境。一项功能是及时倒退一分钟并查看系统原样。

    【讨论】:

    • 它将在 VS2010 中进入 Visual Studio。我等不及了。
    • oprofile 可能是在 nix 系统上进行类似操作的绝佳基础。
    【解决方案5】:

    一个好的解析器IDE。 ANTLRWorks 渴望实现这一目标,但受到许多问题的困扰,尤其是对于非 Java 目标。

    【讨论】:

    • +1000 作为目前正在学习 flex 和 bison 的人。
    • 我发现 ANTLR 在跨平台跨语言特性方面更容易使用。当然,当你有语义谓词和回溯时,ANTLRWorks 似乎会崩溃,但它胜过我用过的所有其他东西。
    【解决方案6】:

    一方面,我宁愿在大型 C++ 项目中使用多线程链接器。此外,如果 .NET 的文档构建工具 Sandcastle 是多线程的,那将为我节省大量时间。它是一堆独立的 XSLT 转换,但它在单个核心上一次运行一个文件。但这是对现有工具的改进。

    我真正渴望的一个“新”工具是一个不花钱的半体面的 .NET 分析器,或者至少有一个可用的免费版本,不会被定时炸弹。 DevPartner 将他们的免费版本改为试用版,而 NProf 已经死了,而且在功能方面太缺乏了。市场上的其他参与者,如 dotTrace 和 ANTS,不仅是付费的,而且实际上非常昂贵。我运行一个开源项目,我不能为分析每个许可证放弃 500 美元。钱根本不存在。

    【讨论】:

    • 您可能需要查看黄金链接器。
    【解决方案7】:

    具有出色 IntelliSense / 代码完成功能的 IDE,适用于 Python 和 PHP 等动态语言。

    【讨论】:

    • 这样的 IDE 确实存在用于 php,它被称为 NetBeans,它是一个 23MB 的免费下载。它还带有一个完全可操作的调试器;踏步,洗漱和一切。不知道关于 Python 的情况
    【解决方案8】:

    这是高度推测性的,但是:

    在使用动态环境(如 Common Lisp、Python 甚至 C++ 应用程序)时,我很惊讶与 C++、C 和 Java 应用程序相比,我的工作速度要快得多。系统下来做些小改动。

    然后我想知道,这种环境是否可以扩展到多用户系统,用于中型和大型程序?缺少的工具是一个平台、编辑工具,甚至可能是新的工作方式,这将使我们能够实时协作。有点像与更多人结对编程。

    【讨论】:

    【解决方案9】:

    用于分析在分布式系统上运行的代码的分析器/调试器,允许您调试/单步调试这些主机,并且来自单个运行时的网络交互将非常简洁,并且随着分布式系统的普及,这将是必须的.目前调试这样的系统特别困难,因为有太多的小条件会导致其他系统的连锁反应......

    【讨论】:

      【解决方案10】:

      一个优化编译器,实际上可以完成每个人认为它应该做的所有事情。

      【讨论】:

        【解决方案11】:

        一个正在进行的研究领域是如何创建一个程序的多个可编辑视图,以跨越各种关注点。一些示例是分配、事务、锁定、数据流、控制流、跟踪、日志记录等。请注意,困难的部分是能够在所有视图中编辑程序,并以有效的方式组合各个部分。这是一种编程语言,也是一种开发工具的挑战。

        Roly Perera 对此进行了很好的介绍 blog entry。我通过 LtU thread 发现了关于 Fluid AOP(归属于 Gregor Kiczales 的名称)的信息。

        【讨论】:

          【解决方案12】:

          两个我愿意付现金的:

          • 一种跟踪业务对象更改的简单方法。在这一点上,我会对“IsDirty”标志感到满意,但检查原始值和更改值以及回滚更改的能力会很好。
          • 一个 UI 框架,可以更轻松地编写相同数据的只读和可编辑视图。

          【讨论】:

          • +1 绝对。好几次我都希望有一个“业务对象的 SVN 存储库”。
          【解决方案13】:

          我真的很想看到一个完全支持重构甚至是复杂的 C++ 源代码的应用程序。不得不手动完成所有这些工作,实在是太乏味了。

          重构 C++,或者说 C++ 源代码的静态分析和自动转换一直是一个大 PITA。

          C++ 源代码需要成为可查询的实体,例如 RDBM,以便我们可以使用查询轻松转换它,最好使用基于 SQL 的自定义重构语言或其方言。

          【讨论】:

            【解决方案14】:

            一个真正的拖放工具,提供了很好的代码。

            【讨论】:

              【解决方案15】:

              好吧,至少here is your static linker。 :)

              【讨论】:

                【解决方案16】:

                当您没有 Platform Builder 时,这是一种在 Windows CE 上进行概要分析的好方法。 :)

                试图分析我的程序似乎是不可能的,所以需要猜测。

                【讨论】:

                  【解决方案17】:

                  XML 之后的任何内容。我等不及了。

                  【讨论】:

                  【解决方案18】:

                  一个自动将我模糊的思维过程转化为工作代码的工具。

                  此工具需要了解“你知道”和“其他事物”等高级概念。

                  【讨论】:

                  • 是的意思是一个可以解码“步骤 2.???”的程序
                  • 我相信您正在寻找第 3 步 :)
                  猜你喜欢
                  • 2010-10-12
                  • 2010-10-05
                  • 2021-12-04
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-10-05
                  • 1970-01-01
                  • 2010-11-24
                  • 1970-01-01
                  相关资源
                  最近更新 更多