내용 수정

peace7012y의 이미지

내용 수정

kadrians의 이미지

프로그래밍 언어를 사용하는데 있어서는.. 각 언어가 가지는 특성도 있고..
개발자의 취향도 있고.. 그리고 해당 언어가 그 분야에서 이루어놓은 성과에도 많이 의존하기 마련입니다.

C/C++은 시스템 언어로써 다양한 분야에 많이 활용되고, Perl과 Python 같은 언어는 시스템 언어의 보조로 개발의 편의성(스크립트 언어라 컴파일 과정이 없답니다.)을 위해 많이 사용되기도 하지요.
특히 PHP같은 스크립트 언어는 실제 간단한 CGI 프로그램의 경우, 빠르게 제작할 수도 있고, 자원소모가 C나 C++을 이용한 것보다 덜하기 때문에.. 많이들 사용됩니다. ^^

API는 Application Programming Interface라 해서, 해당 프로그램의 기능을 간단하게 구현해 놓은 함수 셋을 말합니다.
주로 운영체제가 지원하는 여러가지 기능들을 사용할 수 있습니다. 이 기능을 전부 구현은 어렵고, 기존의 함수 셋을 잘 활용하여 필요한 프로그램을 만드시는데 유용한 것이지요.
Windows에서는 객체지향의 개념을 포함하여 MFC(WINAPI의 확장개념일까요)라는 함수 셋도 많이 사용한답니다.

프로그램하나도 여러 언어로 개발되는 이유는.. 보통 기능상 분류로 이루어지는 경우도 있고, 최적화 단계에 앞서 유지보수가 간편하고, 기기별 오류가 생길 경우에는 간단한 기능 정도는 스크립트 언어로 구현해서 필요한 경우 수정하고, 핵심 기능 정도만 빠른 처리를 위해 코딩하는 경우가 많아요.

어차피 컴퓨터가 이해하는 언어는 기계어 셋입니다. 컴파일러가 전부 번역해서 주든, 인터프리터가 중간중간 번역해서 주든.. 기계어로 컴퓨터로 전송되죠.
아주 속도나 최적화, 또는 하드웨어를 직접 제어하는 경우가 아닌 바에는.. 웬만한 언어에서는 비슷한 결과를 내보낸답니다.
GUI 처리 부분은... 해당 언어가 강점을 가진 경우도 많지요 ^^ㅋ

어느정도 이해가 되셨으면 좋겠네요.

--------
항상 새로운 꿈꾸기를 바라는 만년 초보자입니다.

lmk378의 이미지

질문이 난해하군요^^;;

[질문1]
다른 언어들의 차이가 그러니까 예를 들어 공을 치는데 목제배트로 치느냐 철제배트, 알루미늄?배트로 치느냐 그런 차이인 것 같다고..현재 인식하고 있습니다. 결국 자기가 쓰고 싶고 편한거 쓰면 그 어떤 언어를 쓰던 같지는 않지만 거의 같은 결과물이 나온다고.
현재 대충 이렇게 이해하고 있는데 이게 맞는지도 모르겠습니다.

비유가 썩 좋지는 않아보입니다만 그렇게 이해하셔도 괜찮다고 생각합니다.^^

[질문2]
c나 c++만 알아서는 안되는 걸까요? c로 시작하는 절차지향, 객체지향 언어만 가지고는 부족한 건가요?
api인가 유틸인가 잘 활용하는 게 더 어렵다고도 하고.

언어는 그냥 도구입니다. 어느정도 수준에 도달하면 언어보단 API에 더 많은시간을 들이게 됩니다.
API가 c로된 API냐 java로된 API냐는 별 상관없습니다. API의 특정 함수가 어떤 기능을 하는지를 알아가는데 더 힘을 들이게 됩니다.

[질문3]
프로그램 하나도 여러 언어를 써서 만들어진다는데 그게 가능한가요? 그리고 그럴 필요가 있는지도.

안드로이드를 예로들면 java와 c/c++을 사용하여 프로그래밍이 가능합니다. 각각의 프로그램도 만들수 있고
jni라는 인터페이스를 사용하여 java에서 c함수를 불러올수도 있고 c에서 java 메소드를 호출할 수도 있습니다.
무조건 c로 짜고싶다 하시면 c로 짜셔도 됩니다. java에서 제공해주는 강력한 클레스를 사용안하시고
직접 구현하시면 됩니다. 반대로 java로만 구현하셔도 됩니다. 다만 c언어가 같는 장점을 포기하셔야 합니다.^^

[질문4]
프로그래밍 언어가 컴퓨터가 알아들으면 되기때문에 중국어로 말하나 프랑스어로 말하나 컴퓨터가 인식하면 된다는 건지 잘 모르겠습니다.

번역기가 있다고 생각해봅시다. c언어를 컴퓨터가 알아들을수 있는 전기적 언어로 바꿔주는...
마찬가지입니다. 중국어든 프랑스어든 상관없습니다. 컴퓨터가 알아들을수 있는 전기적 언어로만 바꿔줄 수 있다면^^

peace7012y의 이미지

자세히 설명해 주셔서 감사합니다.