티스토리 뷰

반응형

어느 프로그래머의 C언어에 대한 비판

C언어는 구식이다.
안되는게 많다.
C언어로 짜여진 프로그램이라서 문제가 많다.

네, 구식 맞습니다.

안되는거 많습니다.
=> 그러나, 그 프로그래머는 할려고 노력이나 해봤을까요?

C언어로 짜여진 프로그램이라서 문제가 많다.
=> C언어로 짜서 문제가 많은게 아니고, C로 짠 사람이 문제가 많게 짠거죠.

명필이 붓을 탓한다더니...
아니죠. 명필은 어떤 붓을 줘도, 글을 잘씁니다.
물론, 현실에서는 그래도 쓸만한 붓을 줘야죠.

C언어가 나쁜게 아니고, C언어로 작성한 사람의 실력이 나쁜거죠.
물론 C++이나 다른 언어에 비해 노력이 더 많이 들어가는건 맞습니다.

C++이나, C#, 파이썬등은 C에 비하면 최근에 만들어졌고, 라이브러리도 훨씬 많습니다.
그래서 빨리 프로그램 작성이 가능한거죠.
C언어도 사용할 수 있는 라이브러리가 많다면, 하나도 안어렵습니다.
물론, C언어를 잘 사용한다는 조건에서요.

C언어는 사용자가 잘사용해야하는 언어입니다.
잘못 사용하면, 알 수 없는 버그들이 생깁니다.

그러나, C언어로 작성된 프로그램은 C++, C#, 파이썬 등에 비해 실행속도가 월등히 빠릅니다.

C언어는 상속을 못한다
=>C언어가 지원하지는 않지만, C언어로도 상속이되는 코드를 작성할 수 있습니다.
어셈블러로도 상속을 할 수 있게 작성하기도 합니다.
대부분의 사람들이 몰라서 그렇죠.

거꾸로 얘기하면, C++,C#,파이썬으로 작성한 프로그램은 최종적으로 기계어로 동작이 됩니다.
C언어는 거의 모든 기계어코드를 C언어로 작성가능합니다.
더 정학히 말하면, C언어로 다른언어가 생성한 기계어와 거의 유사하게 작성이 가능합니다.
왜냐면, C언어는 고급어와 기계어의 중간적 성격을 가지기 때문입니다.
심지어, C언어에서 어셈블러코드를 그대로 넣을 수 도 있습니다.
물론, 기계어를 C언어로 100%변환은 매우 어렵고, 노력이 많이 필요한 비효율적인 작업입니다.

C++도 C언어와 비슷하게 빠르지만, 거의 대부분을 클래스를 사용하면, 그 속도는 C언어에 비해 2~20배까지도 느려지기도 합니다.
옛날에 윈도우 xp시절에 비해 PC/노트북의 성능은 2~10배이상 좋아졌습니다. CPU속도도 빨라졌고, 특히 하드디스크의 속도는 수십배~백배까지도 빨라졌습니다.
그런데, 예전에 비해서 빨라진것을 느끼기 어려운 경우도 있습니다.
윈도우와 오피스 같은 프로그램들이 C++로 작성되면서부터 눈에 띄게 느려졌습니다
물론 기능이 많아지기도 했지만, PC/노트북의 성능이 비약적으로 향상된것에 비해 매우 느립니다.
물론 윈도우의 쓸데없는 짓거리가 엄청나게 늘어나기도 했습니다.
(뭔 쓸데없는 짓을 어찌나 많이하는지...)

C++의 클래스는 시작부터 변수 초가화 같은 일을 거의 필수로 합니다.
클래스가 종료될때도 마찬가지죠.
이런 일들이 함수 한번 호출할때마다 반복되기도 합니다.
이런 함수를 1초에 수백만번 호출하기도합니다.
당연히, C언어에 비해 속도가 눈에 띄게 느려집니다.

C언어는 사람이 필요한곳만 초기화합니다.
사람의 능력에 따라, 프로그램 속도차이가 클 수 있습니다.

C언어도 잘 사용하면, 훨씬성능 좋고, 작고 빠른 프로그램 적성이 가능합니다.

파이썬, 자바 같은 프로그램은 실행시 번역되어 실행되기도합니다.
이런 종류의 인터프리터 프로그램은 C언어로 작성한 프로그램에비해 약 70배가 느리다고 합니다.
어떤 기능을 사용하는지에 따라 편차가 큽니다.

최악의 경우에는 C언어로 10초면 될 일을 몇시간씩 해야하는 경우도 있을 수 있습니다.

요약 : C언어는 전력소모가 적고, 빠른 프로그램을 생성하는 친환경 언어이다.
단, 잘 사용해야한다.


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함