IT이야기/입코딩2017. 5. 3. 19:59

-프로그래밍의 정의에 대해서알아보겠습니다.

"

진정으로 재능 있는 프로그래머에게 있어, 코드를 짜는 것은 사고의 부산물에 지나지 않는다.

For a truly gifted programmer, writing code is a side effect of thought.

-Paul Ford 원문보기

"



확실히 제 생각도 그렇습니다. 제가 재능있는 프로그래머는 아니지만, 코드를 짜는건 사고의 부산물에 불과하다고 생각합니다.

우선 Programming이라 함은 프로그램을 만드는 것을 뜻합니다. 그리고 여기에서의 프로그램은 대체로 컴퓨터에서 동작하는 프로그램을 말합니다. 

일반적으로 프로그래밍이라고 하면 대개 컴퓨터 프로그래밍을 뜻며 기술을 다루는 기술이라고 하기도 합니다.


프로그래밍을 하는 도구를 개발자 도구 또는 개발환경이라고 부르고 (IDE는 그 중 하나입니다) 프로그래밍 언어는 프로그래밍을 하는 방식 또는 절차를 말하며 프로그래밍을 하는 사람이 프로그래머입니다. 

단순히 개발자라고 해도 되지만 이건 범위가 너무 넓습니다.

프로그래밍의 프로그래밍인 메타프로그래밍(대표적으로 컴파일러 자체의 프로그래밍, C macro 작성, C++11 template 작성)이 코드를 자동 생성하는 경우를 제외하면, 프로그래밍은 결국 사람이 해야 합니다. 심지어 메타프로그래밍도 결국은 사람이 해야 하므로 프로그래밍이란 결국 사람의 일입니다. 


이론적으로도 그 유명하신 괴델의 "On Formally Undecidable Propositions of Principia Mathematica and Related Systems"을 적용하면 결국 프로그래밍의 완전 자동화란 불가능하다는 결론을 내릴 수 있습니다. 간략히 설명하면, 모든 명제에 대해 완전 자동화된 증명 시스템이 불가능함을 괴델이 보였고, 그러한 증명 시스템 또한 하나의 컴퓨터 프로그래밍에 속하므로, 모든 프로그램을 자동으로 만들 수 있는 컴퓨터는 존재하지 않는다고 합니다. 그렇다고 이게 영원할 일자리냐 하면 일단 인간에 의해 메타프로그램이 만들어지기만 하면 완벽히 인간의 개입이 없는 것은 아나지만 더 이상의 추가적인 개입은 필요가 없어진다고 합니다.

인공지능의 발달로 인해 프로그래머가 더이상 필요로 하지 않느니 마느니 라는 떡밥중에 자주 나오는 이야기입니다. 단순히 웹화면 짜는정도는 이제 프로그래머가 필요없을수도 있겠죠.

언제 밥줄 끈어질지도 모르니 계속 새로운 기술을 공부해야겠지요.


예전에는 사람이 수동으로 프로그래밍하던 어셈블리어를 이제는 컴파일러가 자동으로 만들어 줍니다. 그러나 사람이 할 일은 줄어들지 않았고 그저 능률만 늘었는데, 이는 구현보다 디자인에 더 집중할 수 있게 돼서 더 대규모의 소프트웨어 프로젝트가 가능해졌기 때문입니다. 물론 여전히 디자인에만 몰두하고 구현은 무시해도 될 정도로 프로그래밍 언어의 세계는 호락호락하지 않은데, 디자인 패턴이라는 것들이 결국은 디자인을 구현으로 옮기는 표준적인 기교들을 소개하고 있다는 것부터가 이를 반증합니다.


대부분, 아니 자주 사용되는 모든 프로그래밍은 라틴 문자를 그 기반에 둡니다. 쉽게 말해 유럽의 알파벳(주로 영어 알파벳)이 프로그램에 쓰인다. 한글이나 한자 등으로 프로그래밍할 수 있는 도구는 극소수에 불과합니다. 이 말은 한글 데이터를 뜻하는 게 아니고 한글 코드를 뜻합니다. 한글데이터는 지금 보는 이화면에서도 잘만 나오고 있습니다.

근데 이런 걸 지원하는 건 기술적으로 '전혀 대단한 것도 없고 정말 바람직하지 않은 시도' 라고 합니다. 

어느 나라 사람이든지 영어 잘 못 한다고 남이 짠 코드를 못 읽진 않지만, 한글이나 한자로 코드를 짠다면 재앙은 정말 끔찍하군요.


아폴로 계획 당시의 소프트웨어 제작 영상이라고 합니다.



이때도 참 프로그래밍이란게 후덜덜하네요.


프로그래밍 언어로는 절차적 언어, 객체지향적 언어 등등 여러 종류가 많습니다.

사람들이 흔히 사용하는 java, c, c++ 외에 웹언어로 php도 있고, javascript 등등 아주 많지요.

이 언어들 덕분에 제가 아직까지 먹고 살고 있습니다. 웹이 무슨 프로그래밍이냐 라는 커뮤니티의 글들을 한번씩 볼수 있는데, 페이스북도, 아마존도 다 웹언어라고 말씀드리고 싶네요.


출처 : 나무위키, 내 생각


Posted by Joseph514