나는 최근에 IDE보다 훨씬 자주 선택한 텍스트 편집기 (vim, nano, gedit, 독을 선택)를 사용합니다.
이 경이에 대해 생각하기 시작 먼지 나는 점점 내 IDE 바로 가기 몰래 후 텍스트 편집기에 반대에 대한 정당화는 IDE의 사용 무엇을 ?
이 문제에 대해 IDE를 사용 하지 않고 편집기에만 의존 하는 이유는 무엇 입니까?
나는 최근에 IDE보다 훨씬 자주 선택한 텍스트 편집기 (vim, nano, gedit, 독을 선택)를 사용합니다.
이 경이에 대해 생각하기 시작 먼지 나는 점점 내 IDE 바로 가기 몰래 후 텍스트 편집기에 반대에 대한 정당화는 IDE의 사용 무엇을 ?
이 문제에 대해 IDE를 사용 하지 않고 편집기에만 의존 하는 이유는 무엇 입니까?
답변:
I : 통합 . 좋은 텍스트 편집기는 코드를 작성하는 데는 좋지만 대부분의 프로그래밍은 작성하는 데 소비되지 않습니다. 테스트와 디버깅에 소비되었으며 텍스트 편집기가 컴파일러 및 디버거와 통합되기를 원했습니다. 이것이 IDE의 가장 큰 장점입니다.
이것들은 내가 좋아하는 IDE 인 IntelliJ의 가장 좋아하는 기능이며 Java, PHP, Javascript, HTML, 심지어 ActionScript에도 사용합니다.
Ctrl+click
함수, 변수, 유형에서 정의로 이동합니다. (IntelliJ는 위의 모든 언어에서 이것에 매우 능숙합니다)Ctrl+space
필요한 클래스 또는 메소드 이름을 채우는 데 지속적으로 사용 합니다. 이렇게하면 톤 코딩 속도가 빨라지고 필요한 컨텍스트에 액세스 할 수 없을 때 버그가 발생하기 전에 버그를 잡을 수 있습니다. IntelliJ는 두문자어 유형 NPE를 확장하고 히트 Ctrl+space
하며 "NullPointerException"을 표시 하도록 도와 줍니다. "NoPageError"등 Alt+enter
자동으로 추가하는 import
것도 정말 좋습니다.코드 채색과 같은 것은 당연한 것으로 여겨지지만 좋은 코드 채색은 말초 비전과 같습니다. 그것은 전체 단어를 식별하기 위해 몇 초를 더 흘리지 않고도 중요한 것들에 집중할 수 있습니다.
IntelliJ는 Ctrl+space
변수 이름 제안 에도 사용 합니다. Java에서 새 EventMessageItem 변수를 선언하고을 누르면 Ctrl+space
"eventMessageItem", "eventMessage", "item"등이 제안됩니다.
이러한 모든 것들이 나에게주는 방법으로 내 코드와 아키텍처에 대해 생각하고, 등 등 문서를 추격, 파일 시스템을 다루는 포맷을 고정 오류를 복사 및 붙여 넣기 고정, 응용 프로그램 간의 전환에 대해 덜 생각하는 더 많은 시간을 그런 종류의 생산성 향상에 대해 어떻게 거절 할 수 있는지 모르겠습니다.
IDE는 편집기보다 코드를 훨씬 잘 이해합니다. 예를 들어, 식별자 완성 및 리팩토링이 가능합니다. Java와 같은 장황한 언어의 경우 신이 보냅니다.
[To the IDE] You had me at intellisense/autocomplete
생산력. 이해가되는 다른 정당성이 있습니까? 필자는 프로그래밍, 코드 작성, 편집, 소스 제어 사용, 디버깅, 프로젝트 관리 도구와의 상호 작용, 다른 프로그래머와의 커뮤니케이션, 문서 작성, 자동화 된 테스트 실행 중 수행하는 많은 기능을 중앙 집중화하는 잘 설계된 IDE -프로세스 마찰을 크게 줄여서 생산성을 떨어 뜨립니다.
또한 각 도구를 개별적으로 사용하는 방법을 알아야한다고 생각하지만 그럴 필요는 없습니다. 적어도 저에게 CLI를 열고 입력하는 것보다 마우스 오른쪽 버튼 클릭이 무한대로 선호됩니다.
나는 많은 것을 사용했지만 반복해서 돌아가는 IDE는 Visual Studio, Wing IDE 및 NetBeans입니다. 모두 프로그래밍에 소비하는 시간에 상당한 가치를 부여합니다.
역사적으로 IDE는 단일 작업 컴퓨터에서 비교할 수없는 편의를 제공했습니다. 첫 번째 C 컴파일러에는 edit-compile-run 사이클에서 다음 단계가 필요했습니다.
내 CP / M 시스템에서. (일괄 프로그램이 디스크 드라이브를 더 크게했을 때 많은 부분을 자동화 할 수있었습니다.)
Turbo Pascal을 받았을 때 컴파일 및 디버깅하는 동안 편집기를 사용할 수있게되어 기뻤습니다.
그것이 IDE가 처음에 인기를 얻은 이유라고 생각합니다.
Lisp로 코드를 작성하는 경우 Emacs는 메소드 매개 변수 검색 및 자동 완성과 같은 Intellisense와 유사한 기능을 가지고 있으므로 원래 IDE라고 말할 수 있습니다. 여러 작업 (일반적으로 편집, 셸 / 명령 프롬프트, 뉴스 읽기)에 하나의 프로그램을 사용할 수있는 것도 좋습니다.
일반적으로 편집기 대 IDE 질문은 프로그래밍 언어에 의존하는 것 같습니다. 예를 들어 Ruby와 Haskell 코더는 좋아하는 텍스트 편집기를 선호하는 것 같습니다.
나는 그 대답이 당신이 사용하는 프로그래밍 언어와 당신이 얼마나 잘하는지에 달려 있다고 생각합니다. JAVA와 같은 언어의 경우 심각한 작업을 수행하는 경우 IDE가 필요합니다. JS 또는 Ruby IDES와 같은 스크립팅 언어와 관련하여 어디에서나 많이 사용되지는 않습니다.
메모장 ++과 개발을 위해 쉘 스크립트 (백업, git commits)를 사용하며 완벽하게 작동합니다.
"편집자"에 찬성하는 몇 가지 주장 :
나는 매일 IDE를 사용하여 일하고, 그렇지 않으면 Java / C #을 작성하는 것이 어렵습니다.
(2) (3)과 비교 : 기본적으로 파일을 원격으로 (ssh / 원격 데스크톱을 통해) 편집하고 원격 서버 구성이나 파일을 최소한으로 변경하는 옵션.
IDE는 편집 기능이 심각하지 않기 때문에 테스트 / 디버깅 / 통합을 위해 IDE를 사용하고 편집을 위해 KEDIT을 사용합니다.
.NET IDE는 외부 편집 내용을 인식하므로 편집기에 저장하고 소스를 다시로드하라는 메시지를 수락하기 만하면됩니다. 이를 통해 편집 및 디버깅 기능을 동시에 최적화 할 수 있습니다.
다른 IDE의 경우 KEDIT를 템플릿 프로세서 및 소스 검색 프로그램으로 사용하고 해당 소스를 IDE에 복사 / 붙여 넣습니다.
짧은 학습 곡선. 그게 다야.
내가 정말로 권장하는 유일한 것은 디버거입니다. IDE는 실제로 다른 구빈이 추가 된 편집기이지만 명령 프롬프트에 make (또는 위쪽 화살표 + enter)를 입력하여 컴파일 할 수 있으면 IDE 가 필요 하지 않습니다 . 탐색기를 마우스 오른쪽 버튼으로 클릭하고 오른쪽 메뉴 항목을 선택하여 SCM에 커밋 할 수 있으면 IDE가 필요하지 않습니다.
이제 일부 사람들은 리팩토링 지원 (코드를 처음으로 작성하십시오 :) 또는 일부 통합 GUI 디자이너 (Visual Studio를 사용하여 VS의 거친 XAML 지원이 아닌 Expression을 사용하여 GUI 작업을 수행하는 것과 같은 것들이 필요하다는 것을 알고 있습니다. ), 많은 사람들 이 지능적이고 자동 완성 이 필요합니다 (특히 Java 및 C #과 같이 긴 이름을 가진 장황한 언어의 경우).
그러나 저에게는 GUI 디버거가 IDE를 사용하는 유일한 이유입니다. 나는 여전히 'command-line'디버거 (잘, windbg)를 사용하지만 일상적으로 내장 된 VS를 사용합니다.
IDE에는 이점이 있습니다. 모든 언어에 실제로 스케일을 기울일 수있는 포괄적 인 IDE가있는 것은 아니며, 해당 언어에 대한 언어를 만들기가 엄청나게 어려울 수 있습니다. 왜 IDE를 원할까요? 다음과 같이 시작하십시오.
문제는 모든 언어가 실제로 포괄적 인 IDE에서 큰 생산성 향상을 얻는 것은 아닙니다. 나는 내가하는 일부 작업 (Java, C #)에는 IDE를 사용하지만 다른 작업 (Python, Ruby, Coldfusion)에는 사용하지 않습니다. 그것은 모두 실제로 균형을 잡는 행동입니다. 일부 언어에는 이러한 포괄적 인 제품군이 필요하지 않습니다.
각각에 대한 IDE가 있습니까? 확실한. 항상 필요합니까? 실제로는 아닙니다.