(Reblogged from hongminhee)
만약 다른 무엇보다 더 긴요하게 개정을 필요로 하는 헌법의 원리가 있다면 그것은 사상의 자유 — 우리가 지지하는 것에 대한 사상의 자유가 아니라 우리가 증오하는 사상에 대한 자유일 것이다.

1929년에 있었던 미합중국 대 슈치빔메르 소송에서 재판관 올리버 웬델 홈즈 2세가 제기한 반대 의견 중에서 인용.

평화주의자였던 로시커 슈치빔메르는 미국에 귀화하기를 원했지만, 인터뷰 도중 “나라를 지키기 위해 개인적으로 무기를 집어들 것”을 자신의 신념에 의해 거부했고, 그 결과 위 소송이 제기되게 되었다. 올리버 홈즈의 의견에도 불구하고 최종 판결은 슈치빔메르에게 미국 시민권을 부여하는 것을 거부하기로 결정되었지만, 이 판결은 훗날 1946년 기로워드 대 미합중국 소송에서 다시 뒤집어지게 된다.

참조: 파리13구님의 이글루 — 사상의 자유란?

2014-03-07 수정: 인용문을 좀 더 매끄러운 문장으로 고침

그건 다들 틀려먹었기 때문이다. GUI 라이브러리를 일반화하려면, 창이나 위젯보다는 좀 더 높은 수준에서 해야 한다. 다시 말해, 작업 흐름을 플랫폼별로 연관된 관례에 맞게 해석한다는 관점으로 라이브러리를 구성해야 한다.

문제는 이 방법으론 라이브러리의 유연성을 상당수 버리게 된다는 거고, 그러면 그 애플리케이션은 솔직히 둔하고 단조로운 게 될 수밖에 없게 된다. 이게 바로 훌륭한 크로스 플랫폼 GUI 라이브러리가 존재하지 않고, 앞으로도 존재할 수 없는 이유이다.

/r/programming 서브레딧에 올라온, Xwt라는 라이브러리를 소개하는 글에 달린 댓글, “나는 모든 플랫폼에 딱 어울리는 크로스 플랫폼 GUI 라이브러리를 본 적이 없다”고 쓴 댓글에 덧붙여서.

위에서는 크로스 플랫폼에 대해서만 언급했지만, 나는 이 문제가 GUI 일반에 대해서도 여전히 유효한 문제라고 본다. 내가 봤을 때 아직도 대부분의 GUI 애플리케이션들은 커맨드라인 인터페이스로 치면 모든 글자를 터미널 화면 기준으로 어느 좌표에 찍을지 애플리케이션이 일일이 계산해서 출력하고, 다른 프로그램은 그걸 도로 일일이 어디까지가 같은 줄이고 어디서 줄이 끊기는지 계산해서 입력으로 받는 꼴과 비슷한 수준으로 만들어진다. 상식적인 커맨드라인 프로그램은 이런 짓을 하는 대신 표준 입출력을 쓰지 않는가? ‘창과 위젯’들은 물론 픽셀보다는 훨씬 추상화된 단위임이 틀림없지만, 대다수 애플리케이션엔 너무 큰 단위일뿐더러, 애플리케이션 사이의 협업을 돕는 도구가 되기에도 적합하지 않다. 물론 어떤 프로그램들은 여전히 픽셀 수준의 도구가 필요할 것이다. 게임이 그런 것처럼. 하지만 그런 프로그램들마저도 핵심을 제외한 나머지 부분들은 충분히 일반화된 작업 흐름을 뽑아낼 부분이 있다고 본다.

(Reblogged from bahamund)

윈도가 세상을 지배하던 시절엔 하루가 멀다고 MS 욕을 하는 편에 있었던 나였지만, 돌이켜보면 그 시절에는 그래도 내 하드웨어와 내 데이터에 대한 권한쯤은 오롯이 내 손아귀에 놓여 있었다. 아니, 적어도 내가 통제할 수 있는 여지가 지금보다는 훨씬 많았었다고 본다. CPU를 바꾸고 싶다면 그렇게 했다. 최신 게임을 하고 싶다면 그래픽 카드를 바꿀 수 있었다. 대기업 PC에 번들 프로그램이 깔려 있는 게 못마땅해서, 깨끗하게 포맷하고 새로 윈도를 설치해서 쓰는 건 아주 쉬운 일이었다. 없애야 하는 데이터가 있다면 하다못해 하드를 떼어 망치로 깨부수고 불구덩이에 던져 버릴 수도 있었다. 윈도가 싫어서 굳이 리눅스를 깔겠다고 해도 말리는 사람은 아무도 없었다.

월드 와이드 웹의 시대가 오고, 리눅스 얹은 OS와 유닉스 얹은 OS가 나란히 세상을 지배하는 기묘한 시대가 왔지만, 나에겐 오히려 MS의 압제 밑에 있던 시절보다도 내 장비에 대한 통제권이 없다. 모처럼 받은 게임이 버벅대는가? 아마 핸드폰을 통째로 갈아치워야 할 것이다. 맘에 안 드는 번들 앱 몇 개 없애는 데에 핸드폰이 벽돌이 되거나 A/S 권리가 날아갈 각오를 해야 하는 데다, 심지어 그냥 같은 OS를 최신으로 업그레이드하는 것조차 제조사가 넘겨주지 않는 이상 똑같은 각오를 해야 한다. 어디서나 웹 브라우저를 통해 내 데이터에 접근할 수 있다는 건 분명 편리한 일이지만, 정작 그 데이터들은 내 손아귀를 벗어나 저 바다 건너일지 어디일지 모를 곳에서 누군지도 모르는 이가 지켜보는 곳에 널브러져 있을 것이다. 네이티브 앱이라고 해도 상황이 별로 달라지지는 않는다. 클라우드 속 어딘가에 구름처럼 흩뿌려져 있거나, 운이 없으면 나조차도 접근할 수 없는 플래시 메모리 어딘가에 처박혀 있거나. 표준화되고 공개된 웹과 잘 정리된 서비스 API 덕분에, 이전에는 생각조차 못 했던 방법으로 데이터를 다뤄서 멋진 웹 서비스를, 심지어 혼자서라도 그런 것을 만들어낼 수 있게 되었지만, 그런 걸 할 수 없는 사람들에게는 결국 자유란 없는 것이다.

일찍이 IBM은 메인프레임을 고수하려다 MS와 윈도에게 깨진 전적이 있지만, 기묘하게도 세상은 IBM의 꿈으로 회귀하고 있는 것만 같다. 구글이나 페이스북은 전세계급 메인프레임이 되어 가고, HTML5는 21세기의 tty가 되었고, 그 터미널은 얇디얇은 500g짜리 판때기가 되어 오늘도 열심히 새를 쏴 날린다.

신은 프로그래머에게 함수를 주었고, 악마는 Ctrl+C와 Ctrl+V도 같이 주었다.