로즐린 Scripting vs PowerShell

안녕하세요. 이번 post는 어떤 분께서 PowerShellRoslyn scripting 을 비교해 놓으셨길래 그에 대한 제의견입니다.

일단 PowerShell이 할수 있는걸 Roslyn scripting도 다 할수 있습니다. 단지 PowerShell이 간단하게 할수 있는걸 Roslyn으로 하려면 훨씬 복잡하고 많은 코딩이 필요합니다. 이유는 PowerShell은 scripting engine 뿐만 아니라, 여러 PowerShell이 지원 하는 시나리오를 쉽게 할수 있는 많은 툴, API를 제공하는 반면, roslyn scripting은 딱 engine만 제공하기 때문이죠.

이걸 이해를 돕기 위해 소방차와 비교해서 설명하자면, PowerShell은 완전히 완성된 소방차라 할수 있죠. 그 소방차만 있으면 불끄는데 필요한 모든것이 갖추어져 있습니다. 그에 반해, Roslyn scripting은 소방차에 필요한 각각의 파트를 제공해 줍니다. 엔진, 사이렌, 물저장소, 펌프 등등. 이걸 잘 조합하면 소방차가 하는 역할과 같은 일을 다 할순 있겠지만, 소방차 만큼 간단하게 같은 일을 처리 할순 없겠죠.

이걸 또 다르게 비교하자면, Roslyn scripting은 각각의 파트고 PowerShell은 그걸 조합해서 말들수 있는 하나의 결과물이라 하겠습니다.

여기서 제가 말하려고 하는 요점은 Roslyn의 여러 부분중 Scripting API는 또 다른 PowerShell을 제공해 주려는것이 아니라, 자신만의 Shell 프로그램을 만들고 싶어 하는 사람들이 좀 더 쉽게 그런 프로그램을 만들수 있도록 그 엔진을 제공해 주는것입니다. 스포츠카와 버스가 둘 다 A에서 B로 이동이 가능하다고 목적이 같다고 할 순 없듯이, PowerShell과 Roslyn Scripting은 그 타켓을 달리 합니다. Roslyn Scripting은 PowerShell을 만드는 사람이 타켓이라면, PowerShell은 IT professional이나 end user가 target이라 할수 있겠죠.

Roslyn Scripting API에 대해 오해가 좀 있는거 같아 올렸습니다.

수고

- 희제

PS: 여기서 또 하나, Roslyn 프로젝트는 총 4개의 파트 (Compiler, Scripting, Workspace, Service)로 되어 있고, Scripting 파트는 그 중 하나 입니다. 또 그 Scripting이 2가지 역할 (Scripting API, Interactive Environment) 로 나눠지죠. 여기서 말하는 Scripting API는 2개의 역할중 하나를 말하는겁니다. 한국 블러그를 보니까 너무 scripting에만 많은 포커스가 가 있던데, 나머지 파트 또한 한번 봐 주시면 감사하겠습니다.

PS: 질문이 있으시면, 여기를 이용하시던지, 아니면 제 블로그에 올려주시면 제가 답변 드리도록 하겠습니다.