어떤 비교해볼만한 프로그램 편집기들이 있을까요..?
글쓴이: 착한아이 / 작성시간: 월, 2008/06/30 - 5:10오전
제가 만들고 있는 편집기(http://kldp.org/node/93541)와 기능 비교를 해볼만한 다른 편집기를 찾고 있는중에 있는데요.. 대충 생각나는 대로 적어보면
vs2005IDE, borland2006IDE, pythonIDE25, Matlab2007a, Mathematica6, Maple11, MatheCAD14, vim70, XEmacs21421, Eclipse1211, WsciTE, jEdit43, acroedit09, desyedit113, PSPad433, devphp3, ...
제 편집기가 가진 기능이 다른 편집기에도 동작하는지를 살펴보려고 해요.. 위 편집기이외에 필적한만한 다른 편집기를 알고 계시면 소개 부탁드려요~
Forums:
인용:제 편집기가
애시당초 기존의 편집기로는 안되는 기능을 가진 에디터를 만들기 시작하신거아니었나요? 그럼 당연히 다른 편집기에서 착한아이님의 에디터가 가진 기능이 동작할리가 없지 않나요?
뭐에 필적한다는 뜻인가요? 벤치마킹할 에디터가 필요한 거라면 적으시거만 해도 충분할테고, 착한아이님의 에디터에 필적한다는 거라면, 착한아이님의 에디터를 공개하지 않으셨으니 알수가 없구요...
듣고보니 제가 질문을 잘못한듯 싶네요..
인용:애시당초 기존의 편집기로는 안되는 기능을 가진 에디터를 만들기 시작하신거아니었나요?
답변: 기존의 편집기로는 안되는 기능이 있긴 하지만, 기존의 편집기로는 안되는 기능만 있는것은 아니고, 기존의 편집기로도 되는 기능도 많이 있을거라 생각해요..
인용:그럼 당연히 다른 편집기에서 착한아이님의 에디터가 가진 기능이 동작할리가 없지 않나요?
답변: 그런 기능은 당연히 다른 편집기에서 저의 에디터가 가진 기능이 동작하기 어렵겠지만, 기존의 편집기로도 되는 기능은 비교해보고 싶었어요.. 죄송하고요..
인용:뭐에 필적한다는 뜻인가요? 벤치마킹할 에디터가 필요한 거라면 적으시거만 해도 충분할테고, 착한아이님의 에디터에 필적한다는 거라면, 착한아이님의 에디터를 공개하지 않으셨으니 알수가 없구요...
답변: 본인이 선호하는 편집기에 필적할만한 또 다른 편집기를 여쭙는 말이었어요.. 제가 전문프로그래머도 아니고, 이쪽 분야에 종사하기 있지 않고, 위 편집기 목차는 줏어 들은것들이어서, 제가 모르는 좋은 편집기가 또 더 있는지 알고 싶었을 뿐이었어요..
제가 논지를 올릴 때는 논지에 관련된 의견을 듣고자 함이지, 논지의 여부를 논쟁하기 위함이 아니예요.
논지의 취지를 이해하지 못한 의견에는 가급적 답글 달지 않겠어요. :P
emacs 를 예로 들면..
Emacs 로 CSS 파일 구조를 간단하고 빠르게 바꾸는 모습입니다.
http://derekslager.com/blog/posts/2007/02/screencast-formatting-a-css-file-with-emacs.ashx
전 쓰레드에서 vi, emacs 보다 적은 키입력 이라고 하셨는데,
그렇다면 보시다시피 regex 기능은 꼭 넣어보세요.
Emacs 에서 ruby 파일 편집하는 동영상입니다.
http://platypope.org/yada/emacs-demo/
왼쪽에 탐색창이 뜨며. 이 프레임에서 diff 명령 등을 쉽게 부릅니다. 원하는 줄에서 자동으로 indent 되고
def, if 등의 키워드를 입력하면 그에 맞는 템플릿이 출력됩니다.
커서 밑에 있는 클래스나 함수의 자세한 설명을 확인할 수 있습니다.
커서 밑에 있는 줄의 결과물을 자동으로 주석에 추가합니다.
등등등...
대부분의 편집기들은,
특히 이 동영상에서의 emacs는 다양한 기능들과, keystroke 등을 사용자 입맛에 맞게 고칠 수 있습니다.
또 원하는 기능을 추가할 수도 있구요. 이것이 장점입니다.
위에 나열하신 편집기들은 기능이 수없이 많습니다.
편집기 목록 이전에 그 목록에 나열된 편집기들의 기능들을 알아아보세요.
.
그리고 아시겠지만,
php 에서는 case 문에서 문자열을 쓸 수 있지만, c 에서는 불가능합니다.
그리고 어떤 언어에서든 기본 함수가 없으면 언어라 할 수 없습니다.
c 에서 printf 를 쓰면 php 에서는 print 가 나와야겠죠.
그런데 c 에는 python 의 m = re.compile(....) 을 바꾸기 쉽지 않습니다.
또는 print
또, 예를 들어서
c 에서 for (i=0, j=100; is_sth(i,j); i++, j--) 와 같은 문장은
delphi 에서는 불가능하므로 if 문등으로 쪼개야 할 겁니다. (아마도...)
또, 파이썬에서
for n in range (1, 100):
..cnt = str(n).count('1')
와 같은 문장은 다른 언어로 대체하도록 만들기 쉽지 않을 것 같습니다.
그리고, 함수 안에서만 고려해도, 어쨌든 언어마다 추구하는 것이 다르기 때문에,
간단히 if, for, while 등의 형태를 고치는 건, 실제로 처음 언어를 배울 때,
오히려 그 언어의 특징들을 배우는 것을 놓칠 수 있다고 생각합니다.
제 소견이었습니다.
친절한 소견 감사하고요..
네.. 생각보다 제가 탑재하려던 기능들이 이미 많이들 동작중인듯 싶네요.. 제것을 좀 일찍 시작했었어야 했다는 안타까움도 좀 있고요.. ^^; 소견주신부분들은 데모 영상에 포함하도록 해볼께요..
>> Emacs 로 CSS 파일 구조를 간단하고 빠르게 바꾸는 모습입니다.
네.. 좀 다른 방법이긴 하지만 구조를 바꾸는건 가능한데, 동영상 예만큼 간단하고 빨리 바꿀수 있을지는 저도 만들어봐야 알듯하네요..
>> 전 쓰레드에서 vi, emacs 보다 적은 키입력 이라고 하셨는데, 그렇다면 보시다시피 regex 기능은 꼭 넣어보세요.
네.. 당장 제 편집기에서는 regex가 그리 필요해 보이진 않지만, 언젠가 regex 편집기도 내장해볼까 싶어요..
>> Emacs 에서 ruby 파일 편집하는 동영상입니다. 왼쪽에 탐색창이 뜨며. 이 프레임에서 diff 명령 등을 쉽게 부릅니다. 원하는 줄에서 자동으로 indent 되고 def, if 등의 키워드를 입력하면 그에 맞는 템플릿이 출력됩니다. 커서 밑에 있는 클래스나 함수의 자세한 설명을 확인할 수 있습니다. 커서 밑에 있는 줄의 결과물을 자동으로 주석에 추가합니다. 등등등...
탐색창: 현재 만드는것에는 없지만 그냥 달면 될듯하고요.
diff : 이건 아직 별 아이디어가 없어서 굉장히 나중에 추가될것 같고요..
자동index: 이건 되고 있고
키워드템플릿: 이것도 되고 있고
description: 이것도 되는데, 제것엔 2가지 더 있죠.
현재라인결과: 이것도 되지요.
>> 대부분의 편집기들은, 특히 이 동영상에서의 emacs는 다양한 기능들과, keystroke 등을 사용자 입맛에 맞게 고칠 수 있습니다. 또 원하는 기능을 추가할 수도 있구요. 이것이 장점입니다.
네.. 제 편집기에서는 keystroke을 고쳐야 할 필요는 없다고 생각하고 있어요.. 일관성도 유지할겸..
제한적으로 원하는 기능추가가 가능은 할텐데 이것도 API가 만들어져야하기 땜시 좀 상당히 나중에 탑재되지 싶네요.. ^^;
>> 위에 나열하신 편집기들은 기능이 수없이 많습니다. 편집기 목록 이전에 그 목록에 나열된 편집기들의 기능들을 알아아보세요.
네.. 나열한거 이외에 다른 편집기의 기능도 알아볼까 싶어 이 쓰레드를 열었네요..
>> 그리고 아시겠지만,php 에서는 case 문에서 문자열을 쓸 수 있지만, c 에서는 불가능합니다.
네.. 불가능하긴 한데, 대신 else if 로 보여지면 코드는 동작할듯 싶네요.
>> 그리고 어떤 언어에서든 기본 함수가 없으면 언어라 할 수 없습니다. c 에서 printf 를 쓰면 php 에서는 print 가 나와야겠죠. 그런데 c 에는 python 의 m = re.compile(....) 을 바꾸기 쉽지 않습니다. 또는 print
제가 c 랑 python은 잘 몰라서.. ^^;
>> 또, 예를 들어서 c 에서 for (i=0, j=100; is_sth(i,j); i++, j--) 와 같은 문장은 delphi 에서는 불가능하므로 if 문등으로 쪼개야 할 겁니다. (아마도...)
네.. 일단 if등을 추가해서도라 동일한 동작을 하는 코드는 가능하므로, 별 문제 없을듯 싶네요..
>> 또, 파이썬에서 for n in range (1, 100): ..cnt = str(n).count('1') 와 같은 문장은 다른 언어로 대체하도록 만들기 쉽지 않을 것 같습니다.
이것도 이해를 잘 못해서.. ^^;
>> 그리고, 함수 안에서만 고려해도, 어쨌든 언어마다 추구하는 것이 다르기 때문에, 간단히 if, for, while 등의 형태를 고치는 건, 실제로 처음 언어를 배울 때, 오히려 그 언어의 특징들을 배우는 것을 놓칠 수 있다고 생각합니다. 제 소견이었습니다.
네.. 조금 다른 시각일수도 있는데요.. 앞서 예를드신 switch 문의 경우처럼 case 문에 문자열이 들어가면 c에서는 else if 로 보여질거예요.. 이 편집기를 통해 이런 상이한 표현을 직접 확인해 보면 오히려 해당 언어의 특성을 더 잘 이해할수 있지 않을까 싶어요.. php를 했던분이 c 에서 case에 문자열을 넣고 에러를 이해못하고 난감해 할수도 있고, c 를 했던분이 php 에서 case에 문자열을 평생 써보지 않는 경우도 있지 않겠어요.. 보통 언어습득은 다른언어와 비교해서 하는게 아니기 때문에, 이 편집기는 이런 비교를 즉시 즉시 알려주는 훌륭한 선생님일수도 있다고 생각해요..
물론 제 편집기가 특정 언어의 표기를 배우는 걸 방해하는 점은 인정해요. 개인적으로는 언어의 표기를 배우기 위해 시간을 소모하거나 그로인한 실행오류에 난감해 하는것보다 알고리즘을 구성하데 집중하는것이 더 중요하다고 생각해요.. 무슨 언어이든, 표현이 어떠하든 원하는 동작만 해내면 이 편집기의 목적은 달성했다고 생각해요..
제가 논지를 올릴 때는 논지에 관련된 의견을 듣고자 함이지, 논지의 여부를 논쟁하기 위함이 아니예요.
논지의 취지를 이해하지 못한 의견에는 가급적 답글 달지 않겠어요. :P