이럴수가, 왜 이걸 이제야 발견한거지?!

Monad: The Future of Windows Scripting.

c|net News.com인지 Slashdot Review의 며칠 지난 Podcast를 듣다가 Monad에 대해서 얼핏 듣게 되었고, 훌륭한 인터뷰 비디오를 찾아서 볼 수 있었다. Jeffrey가 셸을 사용하는 관리자들의 "automation"을 너무나도 멋지게 설명하는 바람에 완전히 몰입했다. 전통적인 셸 스크립팅이 온통 parsing에만 시간을 쏟게 만든다는 점에 크게 동감했다. Unix의 도구들이 왜 그토록 간단한 일만 하는 대신, pipe 따위로 composition을 통해서 사용하는 모델을 쓰는가에 대한 견해도 들어볼만 하다. msh는 text stream이 아닌 object stream으로 pipe를 만든다는 설명을 할 때, 예전에 분석결과 통계처리 시스템을 구현하면서, 재황이형이랑 셸처럼 생긴 strongly typed functional language를 만들면 좋겠다고 이야기를 나눴던 생각이 떠올랐다. 사실, 처음에 Monad란 이름을 보고는 FP에서 말하는 monad를 바탕으로 혹시 effect를 전부 값으로 다룰 수 있는 셸인가 기대하면서 지켜봤는데, 별로 심각한 프로그래밍 언어 이론들에 바탕을 두지는 않은 것 같았다. 그냥 GUICLI 등의 구별 없이 모든 일을 "하나"로 다 할 수 있게 한다는 의미에서 "Monad"란 이름을 붙인 것 같다.

Monad가 소개된지 1년도 넘었다는 사실을 보면서 경악을 금치 않을 수 없었다. Slashdot만 계속 보고 있었으면 작년에 이미 알 수 있었을텐데.. 요즘엔 PowerShell이라고 불리는 것 같기도 하고, Microsoft에 Script Center란 곳도 있구나. 물론 MS를 비웃는 이야기들도 있지만.

아무튼 윈도우즈도 드디어 좀 쓸만한 껍데기를 갖게 될 모양이다. 물론 Vista에 들어가냐마냐로 떠들썩한 것 같긴 하지만. .net 기반이라하니 mono project에서도 그대로 쓸 수 있을지도 모르겠다. 근데 얼핏 syntax만 살펴보기에는 너무 복잡한 것 같기도 하고.

Scheme shell이라든지 Perl shell 등도 살펴보면서 셸 프로그래밍의 미래에 대해서 좀 생각해봐야겠다.


sh pgmg

daybreaker

윈도우즈 쉘도 윈도가 계속 버전업되면서 많이 발전했죠. 사실 예전부터 VB 스크립트를 이용한 자동화 관리는 존재했는데 윈도우즈 쉘 자체도 상당히 쓸만해진 것 같아요. (IIS의 admin 스크립트가 대부분 VB 스크립트 파일)

일전에 친구 토끼군의 소개로, 단순한 DOS Prompt라고 생각했던 곳에 for 문까지 등장하는 걸 보고 경악했더랬습니다.;;

pcpenpal

자 이제 할 일은 POSIX OS에서 쓸 그런 셸을 만드는 일인가요. 하하...

netj

Windows에는 드라이브, 레지스트리, 내 컴퓨터, 제어판 등등..
너무 많은 이질적인 이름공간들이 존재하기 때문에
이들을 한꺼번에 정리하지 않는 한, 진정 쓸만한 셸이 있을 수 없지.
Monad는 셸 언어 자체 보다도 이런 이름공간 통합에 더 의미를 두고 있는 것 같다는 생각.

Unix는 이름의 유래에서부터 모든 것이 "파일"이고 하나의 이름공간에 들어있는
제법 uniform한 design이라 몇 십년이 지난 지금까지 POSIX로 잘 쓰고 있는게 아닐까.. :)

/bin/sh를 개선하는 일도 큰 의미가 있고,
윈도우즈의 탐색기 따위의 GUI를 programmable하게 만드는 것도 흥미진진한 일일 것 같다.
잘은 모르지만, 이미 MacOS X의 Apple Script 따위가 그런 목표에 접근하고 있을지도..

DBMwS

> mono project에서도 그대로 쓸 수 있을지도 모르겠다. 
Mono project을 사용하여 PowerShell을 돌리기에는 제가생각하기엔 아직 무릴것 같습니다.  PowerShell을 INstall할때에, Core technology 중에 하나인 SnapIn은 Windows Registry를 사용하여 PowerShell에 어떤 snapin들을 사용할 수 있는지 씁니다.  그리고 많은 PowerShell Provider은 Windows에서만 사용할 수 있는 것이라...

> 근데 얼핏 syntax만 살펴보기에는 너무 복잡한 것 같기도 하고
아, 처음 보기에는 약간 엄두가 나지 않으시겠지만, 2주 정도는 적어도 헤매 셔야만 되실겁니다.  PowerShell documentation for RC1(http://www.microsoft.com/downloads/details.aspx?FamilyId=B4720B00-9A66-430F-BD56-EC48BFCA154F&displaylang=en)을 Download하셔서 읽어 보시면(약간 길음) 별로 어렵지 않으 실겁니다.

그리고 http://del.icio.us/powershell에서 더 많은 PowerShell link를 찾아 보실수잇습니다.