IDE 개발툴 입개발 1화
기존에 만들어 놓은 소프트웨어를 개발/유지보수하면서 여러 IDE 를 사용하였는데 수년간 참다 참다
결국 뻥 터짐. 그래서 신규 IDE 를 만들기로 결심함.
https://gall.dcinside.com/mgallery/board/view/?id=github&no=7167&page=1
https://gall.dcinside.com/mgallery/board/view/?id=github&no=7173&page=1
c 로 개발이 어렵다고 java, python, ruby 같은 실행 속도 느리고 메모리 많이 잡아 먹는 언어로
만드는 꼼수 안 쓰고, 대학 때 교과서에서 배운데로 c 로 만들기로 함.
c 언어의 특징은 문법이 간결하고 쉽다는 점. 그리고 기본적으로 빠름.
IDE 의 핵심 기능은 뭐니 뭐니해도 편집 기능임.
기능이 엄청 많은 한컴오피스, 리브레오피스도 편집 기능 자체만 보면 gedit, netbeans, eclipse,
atom, vscode 보다 100배는 빠른 것 같음.
요새 하드웨어 속도가 좋다고 이런 기본적인 편집기능까지 막 만들면 안 된다는 입장임.
왜냐하면 편집 기능에는 Undo, Redo, Search 기능도 기본적으로 있어야 하는데, 이런 것까지 느리면
편집기로써의 기본 기능에 문제가 있다고 보는 입장임. 옛날에 DOS 편집기도 이 정도까지는 아니었던거
같은데 요새 어플들 너무 쉽게 막 만든다는 생각이 강하게 듬. 개발비 아끼려는 개발사 사장 탓이겠지.
(자유소프트웨어 진영에서 만드는 거는 힘든 여건에서 만드는거고 까방권이 있으니까 욕하기 뭐하구.)
교과서에 나오는 기본만 지켜도 c+python 으로 만들었다고 하더라도 속도가 gedit 처럼 느리지는 않음.
eclipse 는 메모리를 기가급으로 잡어먹는 괴물이고(2016년 확인), 입력 버그가 있어서 입력 컨텍스트를
수백개, 수천개 만드는 버그가 있음(2016년 확인). gedit 는 입력 컨텍스트를 7개 만드는 버그가 있음.
gedit 는 용량 큰 파일을 열고 Undo, Redo, Search 를 하면 수 분 동안 좀비가 되는 버그 있음.
가상 페이징 기법을 적용하지 않는 것으로 추정됨.
sublime 은 엔터키, 화살표 등의 키값을 그대로 입력기에 전달해야 하는데, key release 이벤트 때만
값만 전달하는 버그가 있음. Code Block 은 파일 찾기 중에 죽는 버그가 있고, vscode 는 메모리 소비량
너무 많고 캐시 파일이 수백메가 잡아 먹고, 사용 시간이 한시간 두시간씩 늘어날 수록 점점 계속 느려짐.
vscode 내장 terminal 창으로 전환할 때, 실제 사용에 지장이 생길 정도로 0.5초~1초 정도 딜레이가
발생. 이러한 버그는 이벤트 루프에 문제가 있거나 메모리 누수가 클 때 발생하는 버그인데, vscode 에
그러한 버그가 있을 것으로 추정하고 있음.
제트브레인사의 IDE 를 테스트 용도로 잠시 사용해 본 적이 있는데, 사용하다보면 얼어버리는 버그
있고(2018년 확인), 로그 파일을 보니 XIM 입력 관련 버그로 인하여 jvm 자체가 죽어버리는
버그였음. 아마 제트브레인의 얼어버리는 버그는 스레드 관련 버그일 것으로 추정됨.
현대에 유행하는 유명 IDE 들은 이렇듯 기본이 안 되어 있음.
아 맞다... 기본적인거 제대로 되는 IDE 가 있긴 있음. geany 라고 있긴 있음. UI 가 구려서 그렇지.
그래서 내 입맛에 맞는 IDE 를 하나 만들기로 함.
현재 유지보수하는 소프트웨어가 있어서 IDE 개발에 할당할 수 있는 시간이 없어서, 지금 당장 개발
착수는 하지 못하는데, 어떤 알고리즘, 어떤 원리로 IDE 를 만드는지 입개발을 할 거임.
아... 저거 어떻게 구현하지.. 저거 어떤 원리로 만들었을까... 저거 만들기 진짜 어렵겠다...
IDE 보면서 이런 생각한 사람들 많을텐데... 아... 알고보니 안 어렵네... 이 얘기 나올 거임.
다만, 언어를 자유자재로 다룰 수 없는 사람들은 실제 구현하는데 매우 어렵겠지만,
IDE 라는게 쉬운 언어를 사용한다고 해서 쉽게 개발할 수 있는 것은 아님.
어떤 기능이 필요한데, 언어 자체에서 제공하느냐, 만약 없다면 그러한 라이브러리가 있느냐..
이러한 부분에서 개발에 들어가는 시간이 차이가 나는거지. c 로 만드나 루비로 만드나 똑같은 시간 걸림.
루비로 만들면 타이핑 수가 줄어드니까... 그것 때문에 개발 시간이 조금 덜 걸릴 수는 있겠다.
그러나 c 가 어려워서 못 해먹겠다.. 이런 사람들이 링크드 리스트, 가상 페이징 기법 이런 거 다룰 줄
알려나.. 그걸 이용해서 Undo, Redo, 캐싱을 하여 파일 로딩량 줄이고 메모리 소비량 줄이는건데..
c 모르는 사람이 그런 기술을 자바/파이선/루비로 구현이나 할 수 있으려나.. 그러나 IDE 가 그려 터지지.
IDE 같은거 만드려면 적합한 언어는 자바,파이선,루비 이런 언어가 아니라 역설적으로 c 임.
IDE 라는게 c 를 써야 뻘짓 안 하고 만드는데, 자바/파이선/루비 같은 언어 쓰면 개뻘짓 해가면서
만들어야 함. 안그러면 메모리 복사가 매우 빈번히 발생하기 때문에 개느려 터짐.
C로 만든 빠른 vim 쓰자
sudo pacman -S neovim
vim 쓸바에 geany 쓸거임. geany 는 기본 기능에 충실함. UI 가 맘에 안 들어서 그렇지 ㅋㅋ
빔 GUI버전도 있는데
gvim 써봤는데 불편해서, vi 는 터미널에서 작업할 때 밖에 안 씀.
빔이 뭐가 맘에안드는거임 걔도 있을건 다있는데
나 손가락 관절염 있어서 타이핑 많이 하는 걸 별루. vi 는 애용하는 에디터 중에 하나. syntax highlight 끄고 search, replace 속도 진짜 개빠름.
지니 ㄹㅇ 너무 못생겼자너 - dc App
연재로 가야 되는데, 실수로 일반 게시판으로 ㅠㅠ
vscode정도면 꽤 빠르지않음?
프로그램 시작 후 몇 시간 동안은 실사용에 지장은 없는데, 몇 시간 지나면 계속 느려짐. 느린게 눈에 보임. 렉 걸리듯 딜레이 생기구. 나 보통 어플 켜놓으면 안 끄고 12시간 정도는 쓰거든. 다루는 프로젝트 파일 수가 300개 정도, 코드라인은 4만 줄 정도. 그런 작업을 vscode 로 하기엔 무리더라구
CPU는 AMD 3000G, 메모리 8GB, SSD는 WD SN550 (NVMe), Geany 는 빛의 속도로 날라다니고, N4100, J5005 같은 저사양 환경에서도 빠름.
근데 qtcreator 쓰면 되는거 아니냐?;
앜 그 생각 못했네.. kde, qt 랑 담쌓고 살아서
c++ 개발한정이면 나쁘진 않음. 근데 vs보다는 clion이 엄청 가벼운데 글케 느린가;; 난 잘 모르겠음;; 내가 둔한거겠지