기술에있어서는 과거의 기술이 현재의 문제도 해결할 것이라는 굳은믿음을 버리는것

그것을 버리는것은 쉽지 않습니다.  

그 믿음을 버리기위해서는 과거도 이해하고, 현재의 새로운것도 배워야기때문입니다.


더 똑똑한 언어

초창기의 컴퓨터 언어는 컴퓨터를 사용해 어떤 일을 쉽게 하기 위한 목적으로 고안됐다. 최신 언어의 초점은 정상적인 작업 이외의 다른 일은 하기 어렵거나 거의 불가능하도록 하는 데 있다. 프로그래밍 커뮤니티는 오랜 시간에 걸쳐 사람들이 어떻게 실수를 해서 프로그램을 망치는지를 학습했다. 그렇게 해서 나쁜 습관 목록을 작성했고, 이제 몇몇 언어 설계자들은 아예 가드레일을 치고 구속복을 입혀가며 프로그래머들이 널 포인터 역참조 또는 경합 조건과 같은 과거 세대의 실수를 반복하지 않도록 하기 위해 애쓰고 있다.

예를 들어 러스트(Rust)에는 변하지 않는 변수 클래스가 있다. 변할 수 없는 변수라니 이상하게 들리겠지만, 경합 조건을 차단하고 코드 실행 속도를 더 빠르게 하기 위한 유일한 방법이다. 이와 같은 수백 가지의 혁신 덕분에 프로그래머들은 더 좋은 코드를 작성할 수 있다.

물론 이러한 제약은 완벽하지 않으며, 나쁜 습관을 반사적으로 피해가는 유능한 프로그래머에게는 오히려 성가신 요소가 되기도 한다. 그러나 많은 프로그래머들이 새로운 언어들의 엄격한 규율과 부가적인 구조를 반갑게 받아들이는 중이다.


원본 :http://www.itworld.co.kr/news/105902?page=0,0


과거(개인적 경험기준)

  • 어셈블리를 알아야하며 필요하면 이것으로 성능해결해야한다.
  • 메모리를 직접 할당하고 해제해야만 고효율 서버를 작성할수가 있다.
  • TCP모델 정확하게는 IOCPSOCK을 제어해야지 대규모 처리를 할수가 있다.
  • 성능해결위해 다양한 멀티스레드 모델을 알아야하고,동시성 대규모 처리역시 이것을 통해 이루어낼수있다.


현재

  • 디자인패턴을 통해 문제를 해결 해야하며 실제로 더 많은것을 공부하고 어렵습니다.
  • 가비지 컬렉트 이해는 어려우며, 플래폼(JVM/CLR)마다 많은 차이가 있습니다.
  • 하나의 서버에서 고효율을 내는것보다, 분산처리개념이 더 중요해졌으며 이것역시 목표달성하기 어렵습니다.
  • 스레딩을 처리를 직접안하지만 동시성 프로그래밍모델도 과거를 이해 해야하며 어렵습니다.

IT용어 정리

 IT에  한해서 어떠한 단어에대한 정의를 내리는것은 아주 어려운일인듯합니다. 10년동안 어떠한 기술을 사용을 해도

그것의 본질을 정확하게 파악하고 정의 내리기란 어렵습니다.

대부분 추상적이며 다른 경험에의해 새로운 속성을 붙이기 때문입니다.

과학은 모든 사람이 그 뜻에 동의하는 전문용어를 제공한다. 비록 그 전문용어가 어디에 쓰이는지에 대해서 반드시

모두 합의된건 아니지만 , 예를 들자면 '빅뱅'이론은, 그 이론이 우주의 탄생을 설명하기에 적합한 내용인지

모든 천문학자가 동의하는 건 아니지만, 천문학자라면 이해는 한다. 하지만 소프트웨어 공학 분야에서는

모든 사람이 동의한는 전문용어가 없다. 비지니스 환경에서 우리 분야를 원래 '데이터 처리' 라고

불렀지만 지금은 '정보처리'라고 부른다. 공학 환경에서는 '컴퓨팅'이라고 부른다. 우리가운데 일부는

이제 우리 분야의 이름을 '지식처리'라고 바꿔 부르기를 원하기도 한다

..... 고약한문제 합당할 해결 p.29

소프트웨어에 있어서 '서버','비동기','분산처리' ,'객체지향 프로그래밍'등  모두가 동의하는 정의를 어떻게 내려야할까요?  


개인의 용어정리활동 : Terminology

  • No labels