2011-01-04 5 views
5

Powershell은 일반적으로 Windows 용 IT 관리 언어로 간주되지만, 왜/언제 F #을 선택하겠습니까? 강력하게 입력되고 'Intellisensed'입니까?IT 작업 : F # 스크립트 대 Powershell 스크립트

+0

스크립팅과 프로그래밍을 다시 염두에 두지 않아도됩니다. –

+5

@Filip 필자는 실제로 스크립팅 대 스크립팅이라고 생각합니다. 나는 개인적으로 이런 문제를 해결하기가 어렵다. –

+1

@Conrad, F # 스크립트가 afaik가 아닙니다. –

답변

5

필자는 F #이 내가 일하고있는 회사, 그 팀을 사용하고있는 팀, 그리고 당면한 작업에 더 적합 할 때를 선택했습니다. 그렇지 않으면 나는 다른 것을 선택할 것입니다.

나는 자세한 내용은없는 것보다 더 구체적으로 할 수없는,하지만 난 당신이 물어 봐야 몇 가지 질문에 제안 할 수 있습니다 :

  1. 당신이 문제를 어떻게 해결하고있다를?
  2. 어떤 언어로 문제를 해결하기가 더 쉬울까요?
  3. 기존 직원이 F # 개발자입니까 (학습 곡선이 포함 된 것으로 생각하십니까?)?
  4. 이 코드를 유지 관리하는 사람은 관리자 일 수 있습니까? (보통 Powershell에 익숙하지만 &은 F #에 익숙하지 않습니다)?

관련 힌트 : 프로덕션 코드 및 인프라에서 많은 언어가 개발되지 않도록하십시오.

모든 문제를 해결하기위한 최상의 언어를 찾는 실험을합니다. 그러나 누군가가 더 이상 이해할 수없는 언어로 솔루션의 핵심 구성 요소를 작성한 지 5 년이 지난 경우 회사에서 심각한 문제가 발생할 수 있습니다.

내 개인적인 경험 법칙 (물론 예외가 있습니다)은 프로젝트에 핵심 언어와 스크립트 언어를 모두 포함해야한다는 것입니다. & 문제 도메인에 맞게 먼저 언어를 선택해야합니다. 두 번째로 팀 전체의 숙련도를 극대화합니다. '애완 동물 언어'는 이어야합니다. 생산 코드 또는 인프라 스트럭처에서 낙담 한입니다.

2

귀하의 문제와 스크립트 유지 관리 담당자에 따라 다릅니다.

PowerShell은 파일, 활성 디렉토리, csv/xml, 컴퓨터 등으로 작업하는 관리 영역이 매우 강하지 만 프로그래밍 기능이 매우 제한되어 있습니다 (예 : 일반적인 경우). PowerShell의 스레딩은 그렇게 쉽지 않습니다. 그러나 아무도 관리자가 스레드를 사용할 것으로 기대하지는 않습니다. 대신 관리자의 요구를 충족시키는 백그라운드 작업이 있습니다.

반면에 F #은 실제 프로그래밍 언어이므로 매우 낮은 수준이므로 자세한 정보 (PowerShell과 비교)를 의미합니다. PowerShell로 작성된 일부 작업은 한 줄짜리이지만 F #에서는 많은 코드를 작성합니다. 그 외에도 - 원격 컴퓨터에서 명령을 실행하는 방법은 무엇입니까 (Invoke-Command -computer myserver ...)?

귀하의 문제에 따라 다릅니다.
스크립트를 유지 관리하는 사람은 매우 중요합니다. 휴가 중이므로 동료가 스크립트를 편집해야합니다. 두 언어 모두 배우기 위해 약간의 시간이 필요합니다. IMHO PowerShell을 배우는 것이 더 쉽습니다. 기능적 스타일로 사고하는 것은 머리를 숙일 필요가 있습니다.

1

현재로서는 자신이 아닌 다른 사람이 필요로하는 경우 F #에 스크립트를 작성하는 것을 선택하는 것은 좋지 않은 생각입니다.

  1. F #을 사용하는 사람들의 간부는 매우 적으므로 아주 소수의 사람들 만 읽고 편집 할 수있는 스크립트를 작성하고 있습니다.
  2. fsi 실행 파일은 .Net Framework와 함께 제공되지 않으며 F # 런타임 재배포 패키지의 일부도 아닙니다 (알 수있는 한). 즉, F # 도구가있는 Visual Studio가 설치된 위치에서만 스크립트를 실행할 수 있습니다. 당신이이을 중요한 모두 실행하고 편집 할 수 있다는 것을 의미하기 때문에 개발자가, F 번호가 기본 언어 프로젝트에서 작업하는 경우

명백한 예외은 물론, 귀하의 스크립트.

그러나, 나는이 이상/예외적 인 경우도 생각 말해야한다, 아마 스크립팅 작업이 PowerShell의 기존의 cmdlet가하는 작업이 포함됩니다 경우 F 번호 를 사용하는 더 많은 작업 것 (예 : 파일 시스템 작업, 레지스트리, 데이터베이스 유지 관리, 활성 디렉토리, 교환, 목록 등). 물론이 스크립트를 언어를 배우는 기회로 사용한다면 1 & 2 ;-)

관련 문제