2011년 3월 24일 목요일

자바는 구현하는 언어가 아닌 설계의 언어

흔히들 Java는 메모리 관리를 하지 않아도 되기 때문에 프로그래밍이 참 쉽다고 생각한다.

음.. 뭐 굳이 비유를 들자면 '오토'자동차가 점점 좋아지니 '수동'기어의 운전을 하는 사람들이
점점 드물어 진다고 할까?

그럼 반대로 생각해보자.

'오토'는 나쁘고 '수동'은 좋은가?

여기에 무작정 '그렇다'고 자신있게 대답할 사람은 드물것이다.

만일 여러분이 스포츠 카의 매니아라면 SUV같은 차는 쓰레기 같은 차라고 생각할 지도 모른다.
만일 여러분이 음악에 문외한이라면 세계적인 거장이 지하철에서 연주해도 그냥 지나칠지도 모른다.

즉 모든 판단은 그때 자신이 가진 정보와 상황에 맞출수 밖에 없다고 생각해 볼 수 있다.

Java역시 마찬가지다.

프로그램의 속도와 깊이를 따지는 사람에게 Java는 그냥 오토매틱 자동차이겠지만,

모든 사람들이 프로그램을 모시고 사는 것은 아니지 않은가?


요즘 나오는 언어들을 보면 Java보다 훨씬 더 간단하고 우아하게 코드를 작성한다.
짧은 코드와 간단한 실행..

그렇다면 Java라는 언어는 '빠르지도 않고, 간편하지도 않은' 언어가 되고 만다.


그런 언어가 아직까지 세계에서 가장 많이 쓰이는 언어가 되었을까?



내가 생각하는 것은
Java라는 언어가 설계에 아주 적합한 언어이기 때문이 아닐까 싶다.

즉 Java는 뼈대를 세우고, 여러 명이 협업해야 하는 상황에서 거의 공통적인 코드를 만들어 낼 수 있는 정형화된 방법을 아주 많이 제공하고 있다.

'인터페이스'나 '추상클래스'와 같은 구조의 뼈대에
다른 개발자들이 만들어도 큰 뼈대를 벗어나지 않는 느낌..

Java를 처음 공부하는 사람들은 반드시 생각해 봐야 하는 사실이 바로 이런 점이다.

'내가 왜 Java를 선택했지?'
'그냥 유행따라서?'

제발 대학에서 이런 생각을 좀 가르쳐주면 좋겠다.
뭘 만들기 전에 어떻게 언어를 공부해야 하는지..
어떤 언어가 어떤 특징이 있는지..

가끔은 '뭐 언어가 다 똑같지... '
라고 말하는 개발자들을 본다.
겉으로 그들에게 뭐라고 반기를 들지 않지만..

속으로는 이렇게 말한다.

'람보가 불어로 중얼거리면 얼마나 웃길까?'

적어도 언어를 공부하면 그 언어에 맞게 만들어 내기는 해야 하지 않을까?

2011년 3월 23일 수요일

노력도 재능이다..

예전에 명계남씨가 '노력도 재능이다'라고 하시던 말씀이 생각나네요.

요즘들어 왠지 뭔가 막혀있고, 잘 안풀리는 일들이 많아서
나름 슬럼프에 빠진듯 합니다.

음.. 제네릭 원고도 완성을 못 시키고 있고, 앞으로 강의 쉬는 동안 무얼 할지 고민도
많이 되고..

새로운 분야에 대한 걱정도 됩니다.

그래서 요즘 소원은요..

정말 노력도 재능이면 좋겠다


입니다.

2011년 3월 7일 월요일

Generic에 대해서 정리하려고 합니다.

가능하면 이번주(3월 12일이전까지)까지 정리하려 합니다.

정리할 내용은 다음과 같습니다.


Generic 문법

Generic문법 이전의 기법

다형성의 한계 - java.lang.Object의 사용

Generic문법은 결국은 컴파일러가 체크하는 정확한 타입

컴파일러가 인식하는 Generic문법

Bound/ Unbound  표기법

Wildcard 문자 사용법

Mac에서 Pages로 작성하고 있으니 출판의 형태는  eBook (.epub)의 형태가 될 듯 합니다.