2005년 4월 7일 목요일

Open source

어떤 사람들은 오픈 소스가 만능이라고 생각하는 것 같다.
해결되지 않는 문제가 없어보인다.
버그가 있으면 직접 고치면 된다는 식이다.
이론적으로 틀린 말이 아니긴 하다.
최소한 바이너리 파일보다는 훨씬 분석하기 쉬우니까.


그렇다고 하더라도 개발자의 이해의 수준을 뛰어넘는
복잡도를 가진 코드는 바이너리와 다를 바가 없다.


이해도 부등식


내가 만든 코드 > 남이 만든 쉬운 코드 > 나의 분석 한계
  > 남이 만든 어려운 코드 > 남이 만들다가 자신도 포기한 코드
  > 어셈블리어 > 바이너리


Engineering에서 중요한 것은 복잡도와 시간이다.


미칠듯 복잡한 문제는 이론적으로 해결이 가능할 지 몰라도
다음과 같을 경우가 많다.


1. 개발자에게 그 만큼의 시간과 월급을 줄 바에는
   솔루션을 사는 편이 쌈.
2. 다시 짜는 게 빠름.
3. 만든 사람도 알 수 없음.(어쩌다보니 만들어졌음.)
4. 인간의 능력으로는 유한 시간에 해결이 불가능
   (수학공리의 세계와는 달리 인간의 수명과 두뇌의 용량은 유한하므로)

댓글 없음:

댓글 쓰기