초창기의 컴퓨터 언어는 컴퓨터를 사용해 어떤 일을 쉽게 하기 위한 목적으로 고안됐다. 최신 언어의 초점은 정상적인 작업 이외의 다른 일은 하기 어렵거나 거의 불가능하도록 하는 데 있다. 프로그래밍 커뮤니티는 오랜 시간에 걸쳐 사람들이 어떻게 실수를 해서 프로그램을 망치는지를 학습했다. 그렇게 해서 나쁜 습관 목록을 작성했고, 이제 몇몇 언어 설계자들은 아예 가드레일을 치고 구속복을 입혀가며 프로그래머들이 널 포인터 역참조 또는 경합 조건과 같은 과거 세대의 실수를 반복하지 않도록 하기 위해 애쓰고 있다.
예를 들어 러스트(Rust)에는 변하지 않는 변수 클래스가 있다. 변할 수 없는 변수라니 이상하게 들리겠지만, 경합 조건을 차단하고 코드 실행 속도를 더 빠르게 하기 위한 유일한 방법이다. 이와 같은 수백 가지의 혁신 덕분에 프로그래머들은 더 좋은 코드를 작성할 수 있다.
물론 이러한 제약은 완벽하지 않으며, 나쁜 습관을 반사적으로 피해가는 유능한 프로그래머에게는 오히려 성가신 요소가 되기도 한다. 그러나 많은 프로그래머들이 새로운 언어들의 엄격한 규율과 부가적인 구조를 반갑게 받아들이는 중이다.
과거는 잊어라
기술에있어서는 과거의 기술이 현재의 문제도 해결할 것이라는 굳은믿음을 버리는것
그것을 버리는것은 쉽지 않습니다.
그 믿음을 버리기위해서는 과거도 이해하고, 현재의 새로운것도 배워야기때문입니다.
더 똑똑한 언어
과거(개인적 경험기준)
현재
IT용어 정리
IT에 한해서 어떠한 단어에대한 정의를 내리는것은 아주 어려운일인듯합니다. 10년동안 어떠한 기술을 사용을 해도
그것의 본질을 정확하게 파악하고 정의 내리기란 어렵습니다.
대부분 추상적이며 다른 경험에의해 새로운 속성을 붙이기 때문입니다.
소프트웨어에 있어서 '서버','비동기','분산처리' ,'객체지향 프로그래밍'등 모두가 동의하는 정의를 어떻게 내려야할까요?
개인의 용어정리활동 : 공통 기술용어 정리