IE 지원에 대한 생각

개인적으로 뭔가를 만들 때 난 브라우저 하나하나에 대해 따로 신경쓰지 않는다. 그나마 신경 쓰는 정도라면 X-UA-Compatible 관련 meta 태그를 넣어주는 것, 그리고 PrefixFree라는 JS 라이브러리를 가져다 쓰는 것 정도다. IE에 어떤 JS 함수가 없다거나 CSS를 지원 안한다거나 해서 그걸 신경써서 분기점을 만들거나 하지 않는다.

예를 들어서 HTML, CSS, JS를 이미지 파일이라고 치고 웹브라우저를 이미지 뷰어라고 생각해보자. 음원파일과 음원 재생기라고 봐도 상관 없다. 디자이너가 이미지를 뽑을 때, 프로듀서가 음원 파일을 뽑을 때 특정 이미지 뷰어, 음원 재생기가 그 파일을 읽지 못할 때를 대비하여 파일 헤더에 분기점을 넣는다던지 하는 행동을 할까? 보통은 그런 이미지 뷰어, 음원 재생기가 업데이트 될 때까지 기다리거나 그냥 버리고 다른 프로그램을 쓴다. (물론 모든 뷰어에서 안열린다면 그 파일을 뽑아낸 프로그램의 버그일것이다.)

하지만 대부분의 웹 디자이너/프로그래머들은 이런 행위를 한다. 심지어 브라우저들도 웹 표준에 맞지 않는 파일을 읽어들인다. 웹프라우저가 표준에서 살짝 벗어난 파일을 읽는 것은 잘 한 행동이라고 생각하지만 IE를 고려해서 분기점을 만들거나 CSS hack을 사용하면 안된다고 생각한다. 계속 구버전의 IE에서도 정삭 동작하도록 웹 어플리케이션을 만든다면 멍청한 사용자들은 자신들의 브라우저가 괜찮은 줄 알고 업그레이드를 하지 않는다. 2000년대 중반에 여러 포털사이트에서 IE6을 그만쓰자면서 IE8 업그레이드 링크를 뿌리고 IE8로 업그레이드를 하면 추첨을 통해 상품을 주는 등의 이벤트를 진행했다. 하지만 소용이 없었고 Google Chrome의 등장으로 IE의 사용자가 줄었다. 차라리 IE8로 업그레이드를 하면 혜택을 주는 것보다 IE6 지원을 끊어버렸으면 좋았을것이다.

예전엔 Firefox에서 돌아가지 않는 웹사이트를 보면 사용자들은 Firefox보다 IE가 좋다며 Firefox를 비난했지만(대부분의 문제는 ActiveX였다.) 요즘은 Chrome에서 안돌아가는 사이트를 보면 IE만 지원하는 사이트를 비난한다. 이정도의 생각을 할 정도로 사용자가 달라졌는데 아직도 IE의 표준 미지원에 대해 고민을 하면 안된다고 생각한다. 사용자느 얼마든지 브라우저를 바꿀 준비가 되어있다.

한국의 일부 높은 사람들은 구버전의 IE에 대한 지원을 끊으면 사용자가 급격하게 줄어서 매출에 영향이 올 것이라고 생각한다. 하지만 내 생각은 그 반대다. IE에 대한 지원을 할 인력으로 최신 웹 기술을 이용하여 사이트를 만들면 IE를 쓰지 않는 사용자가 유입되어 오히려 사용자가 늘것이다.

vim에서 자바스크립트 인덴트 제대로 하기.

을vim에서 html 코딩을 하다보면 정렬이 잘 안되서 짜증난다. 각종 플러그인을 받아서 해 봐도 script 태그 내부의 스크립트가 정렬이 잘 된다 싶으면 html 태그 자체가 정렬이 하나도 안되고 function을 작성한 후에는 그 밑의 줄이 줄의 처음으로 가서 정렬이 안되는 등 아주 불편하다.

게다가 jquery등을 하다 보면 아래처럼 되버리는 경우도 많다.

이렇게 중간에 쓸데없이 들여쓰기가 두 번 되고 끝부분은 정렬이 안된다.

그래서 몇 달간 계속 찾아다니다가 결국 발견한 플러그인이다.
html파일 내부의 script태그에서도 잘 동작하고 .js파일에서도 잘 동작한다.

http://www.vim.org/scripts/script.php?script_id=3081

혹시 모르니 첨부파일로도 넣겠지만 왠만하면 저 링크를 타고 받길 바란다.

cfile6.uf.1518973850EFEE922D306C.gz

2013/01/25 수정:
저 플러그인은 인덴트 기능 자체는 엄청 좋지만 canvas 태그를 지원 안하기도 하고 자동으로 인덴트를 해주지 않는다(gg=G를 항상 저장 전에 해줘야 한다.)
그래서 Youcef Mamar라는 사람이 알려준 플러그인(https://github.com/othree/html5.vim)을 써봤는데 이것도 다른 플러그인과 마찬가지로 script 태그의 function 인덴팅이 문제가 있다.
그래서 직접 잘 되는 부분만 합쳐서 완벽한 플러그인을 만들었다. 아래는 내가 vim 커뮤니티에 쓴 글이다.

I solve this problem.
open html.vim (at https://github.com/othree/html5.vim)
in line 264, change this
return cindent(a:lnum)
to
GetJsIndent(a:lnum)

and line 31, add this
if exists(“g:js_indent”)
    so g:js_indent
else
    ru! indent/javascript.vim
endif

finaly, install javascript.vim (at http://www.vim.org/scripts/script.php?script_id=3081)

perfectly auto indented, and no problem with <script> tag
thx for all

완성된 플러그인은 여기에 올린다.

cfile10.uf.20482E4B5101D6382E2845.tgz