DNF LOVE

프로그래밍 언어 발전에 대한 성찰 본문

Daily/ETC

프로그래밍 언어 발전에 대한 성찰

botho 2020. 5. 21. 23:43
반응형

"프로그래밍 언어의 발전, 프로그래머는 후퇴?"

어릴 때 상상해보던 2020년은 정말 미래세계 같았다. 2020년이 마침내 도래했지만 상상한 것과는 많이 다른 것 같기도 하다.

하지만, 어쩌면, 당연하게도 프로그래밍 세계는 시간이 지날수록 크게크게 발전되어 가고 있다.

새로운 기술이 추가되는 것도 많지만 프로그래밍 언어의 발전 방향은 'new' 보다는 이미 존재하는 기술을 좀 더 사용하기 쉽게 'Develop'되는 방향인 것 같다.

2000년대 초반만 해도 C나 C++로 프로그램을 만드는게 대다수였는데 java가 발전되고, .NET 프레임워크를 위한 C# 언어가 나오고 C나 C++의 불편한 점을 지속적으로 보안해가며 발전되고 있다.

예를 들어, 네트워크 시스템은 사실 큰 틀에서 많이 바뀌어 지지 않고 있는데, 여전히 소켓 프로그래밍은 TCP/IP 프로토콜에 따라

Server는 Socket에 IP와 Port를 할당하고, Bind 하고 Client의 Connect를 기다리며 Accept 하고, Receive와 Send를 반복한다.

편리하게 개발하라고 C#에서는 다양한 기능들을 지원해주고 있지만 결국 C#은 C기반 언어이기 떄문에 C++의 IOCP에 의해 만들어 진 것이라던가,,,

개발자들이 편하게 사용하라고 언어가 발전이 되어가고 있는데 결국 그건 C, C++의 기술로 만들어서 발전이 된다고 해야 할까?

결국 C++의 개념과 소켓 프로그래밍의 본질을 모른다면 서버 프로그래머는 성장하기 힘든 것 같다.

그냥 편리한 라이브러리니까~ 이렇게 사용하면 되니까~ 하며 깊게 파고들지 않고 하라는 대로만 구현을 하는 행동이 결코 건강한 프로그래머의 자세라고 할 수 있을까?

C#기반의 라이브러리들이 아무리 발전해도 C의 소켓 프로그래밍을 기초로 한다는 것은 달라지지 않는다. 완전 새로운 프로토콜이 생겨나더라도 결국 C#은 C기반 언어이고 C#보다 C, C++에서 구현하는 것이 더 로우하기 때문에 성능은 훨씬 좋을 것이다.

근데 이 마저도 더 편안하게 사용할 수 있는 언어들이 생겨나가기 시작하고 하드웨어가 발전되면서 성능보다는 편리함을 중시하는 기술? 디자인?이 발전되가고 있다.

그리고 그런 언어들은 보통 습득하기도 쉽고, 개발하기도 편한데 그것이 익숙해진 나 같은 개발자들은 성장하기가 매우 힘들텐데, 이런 프로그래밍 발전이 과연 개발자들에게 좋기만 할까? 라는 생각이 든다.

프로그래밍 언어가 발전이 되면 프로그래머도 다 같이 발전이 되어야 하는데, 점점 컴퓨터가 아닌 사용자와 친근해지는 것 같다고 해야 할까?

나를 비롯한 '개발만 할 줄 아는' 개발자들은 반성을 해야 할 것 같다. 프로그래밍 기술이 발전이 되어서 신 기술을 따라가지 못해도 도태가 될 것이고, 이전 기술을 비롯해서 좀더 컴퓨팅적인 개념을 제대로 공부하지 못하더라도 도태가 될 것만 같다.

편리한 방향으로 가는 건 좋지만, 역시 생각할 줄 아는 개발자가 되려면 C나 C++을 공부하거 더 나아가 어셈블리나 컴파일도 공부해야 할 것 같다.

근데 나는 처음부터 java, c#, js, php 이런 하이레벨의 언어들만 쓰다 보니, bottom-up 으로 공부를 한 사람들은 잘 모르겠지만, 나처럼 Top-down으로 쌓다보니,

이보다 로우한걸 하려고 하니까 너무 어렵고 집중이 안 된다.

어떻게하면 공부를 잘 할 수 있을까? 그리고 성찰만 하지 말고 공부를 해야 할 텐데 말이지ㅠㅠ

 

반응형