2010-08-10 122 views
0

在一塊軟件合法稱爲集成開發環境(IDE)之前,所需的最低功能是什麼?或者以另一種方式提出這個問題,區分一個IDE和一個功能強大的文本編輯器與程序員中心功能有何區別?IDE所需的最低要求功能?

我認爲,任何IDE將需要有至少:

  • 基本文本編輯功能(如剪切,複製,粘貼,撤消,重做,查找,替換),
  • 「智能「基於特定語言的代碼結構縮進功能,
  • 特定語言的語法高亮,
  • 智能感知類代碼幫助/完成,
  • 一些代碼導航功能,無論是」 VI級ew「風格的樹形顯示,快速的」導航「能力(一個Resharper和最近的VS2010),或者代碼大綱/摺疊,
  • 能夠與命令行工具進行交互。編譯器),包括管道輸出回IDE的能力,
  • 能夠設置斷點,調試運行代碼,然後顯示有關該運行代碼狀態的實時信息,
  • 「項目「或用於組織/編輯目的的文件分組。

此列表的任何更改/添加?關於視覺設計表面和圖表工具的功能如何?這些應用程序必須被視爲IDE嗎?

每個項目的單獨答案可能是有道理的。

+1

這是可能作爲一個社區維基更好。 – FrustratedWithFormsDesigner 2010-08-10 16:41:16

+0

是的......意味着在我提交之前檢查。謝謝! – 2010-08-11 01:46:42

+0

即使這是我自己的問題,我正在投票結束它。這在當時對我來說很有意義,但我真的只是想通過一個概念來思考 - 這不是在網站上存在問題的好理由。 – 2012-05-09 14:52:13

回答

0

我想說當一個編輯器支持編譯和調試時,它就會正式成爲IDE。

0

爲了一個IDE,我認爲,所有你需要的是能夠:

  • 編輯代碼
  • 編譯代碼(如果需要)
  • 運行代碼
  • 調試代碼

其他一切都只是裝飾。

0

我想說一個受限制的功能集總是語言相關的。例如,許多語言將使用代碼編譯運行 - 調試周期(例如C,C++,Java)進行編程,其他語言則更具交互性,如Python和Common Lisp。因此,例如,在第一組中,我想要一個能夠啓動編譯器(將其輸出消息鏈接到我的代碼)的IDE,運行生成的二進制文件,在代碼上放置斷點並檢查堆棧在休息時間進行跟蹤。 (Eclipse是這種IDE的一個例子)

對於第二組,我寧願使用基於Read-Eval-Print-Loop的IDE,它允許我評估代碼構件本身的代碼位,檢查變量,以及通常保持代碼構件和運行時內存狀態之間的緊密關係 - 動態地。 (Emacs + SLIME就是這種IDE的一個例子)。

這不以任何方式,編程語言組/家庭的全覆蓋;只是爲了說明問題,IDE必須提供與特定PL開發風格的緊密聯繫。其他一些功能,如代碼完成和語法高亮過於籠統,因此他們向那些面向程序員的文本編輯器發展。但是IDE中的'ID'表示集成開發,因此它應該涵蓋所有你需要做的事情,而不需要使用額外的工具,比如終端(或者至少把外部工具集降到最低!)。

關於特定功能,如視覺提到/圖編輯器,如果你用它來開發程序,他們是有意義的。因此,UI編輯器僅適用於IDE的所有編程語言子集。但一旦考慮思維導圖編輯器和「虛擬」白板/素描本,事情就會變得更難定義。很明顯,您可以在任何PL中使用它來開發產品,但對於IDE來說,它不是那麼明顯(至少對我而言),它們應該爲它們提供支持......同樣也適用於協作支持。所以這種功能確實可以豐富IDE - 以及任何生產力工具。也許這是一個標誌,它應該由操作系統提供? :)我相信集成開發的概念涵蓋了從輸入工件(程序員製作的輸入)到最終輸出二進制文件的整個循環。這意味着像sratchpads這樣的東西不會成爲IDE的重要組成部分,但是UML圖編輯器可能會(如果可以從中推斷出代碼)。

還有其他SO線程在IDE的談論最喜歡的功能,例如見this one

(出於好奇,你將如何去選擇「正確」的答案嗎?這看起來更像是一個討論首發,也許維基,與其說像問答&線程)