C #과 F #을 함께 사용해야합니까?


16

같은 프로젝트에서 C #과 F #을 함께 사용할 수 있다는 것을 알고 있지만 좋은 아이디어인지 확실하지 않습니다.

두 가지 매우 다른 코딩 스타일 (기능적 대 OOP)을 혼합하면 디자인에 응집력이 부족할 수 있습니다. 이 올바른지?


1
같은 프로젝트에서 어떻게 사용할 수 있습니까? 같은 솔루션을 의미합니까?
Bryan Boettcher

2
아니 프로젝트의 마이크로 소프트 정의하지만, 더 일반적인 정의
톰 종복

명백한 단점 중 하나는 프로젝트 작업의 적어도 일부가 개발자가 C # 및 F #의 두 섹션과 상호 작용해야하는 경우 (단지 읽기만해도) 두 언어 모두에 대해 잘 알고있는 개발자가 필요하다는 것입니다. 하나의 언어로만 지식을 가진 사람들보다 적은 수의 사람들이 있기 때문에 찾기가 더 어렵고 잠재적으로 더 비싸고 다양성이 적습니다. .
gbr

물론. 예를 들어, 레거시 C # 솔루션에 F #을 점진적으로 도입하는 것이 유효한 시나리오입니다.
KOLA

답변:


23

각 언어를 적절하게 사용하고 서로 "좋아"하는 한 제품에 언어를 혼합하는 데 아무런 문제가 없습니다.

기능적 언어를 사용하여 코딩하는 것이 가장 좋은 프로젝트의 일부가 있으면 F #으로 코딩하는 것이 좋습니다. C #의 경우와 유사합니다.

무의미한 것은 최선을 다해 언어를 혼합하는 것일 것입니다.


0

두 가지 매우 다른 코딩 스타일 (기능적 대 OO)을 혼합하면 디자인에 응집력이 부족할 수 있습니다. 그 맞습니까?

나는 당신이 "응집력 부족"을 얻을 것이라고 생각하지 않습니다. 각 언어에는 강점과 약점이 있습니다. 공용 언어 런타임에 이들을 결합하면 두 세계의 장점을 최대한 활용할 수 있습니다. C #과 F #을 사용하면 솔루션의 두 언어 사이의 인터페이스에서 두 언어의 교차를 사용해야합니다.


0

네, ChrisF에 동의합니다 . 또한 C #은 현재 익명 형식과 같은 F # 원칙을 이미 통합하고 있습니다.

var unitanon = new[]
{
    new { Field1="new car", Field2 = 1},
    new { Field1="old car", Field2 = 20} 
};

즉, 개인적으로 코드 가독성이 한 단계 뒤떨어져 있다고 생각하지만 매우 편리합니다.


2
익명 형식은 실제로 F # 원칙이 아닙니다. 컴파일러가 참조하는 형식을 추측하는 형식 유추 ( var 키워드의 C #에서 수행하는 작업)를 참조 할 수 있습니다. F # 전체에서 사용됩니다.
Mongus Pong

1
쉬운 비동기 기능을 위해 F #을 사용합니다. 그러나 TPL을 사용하면 C # 자체로 쉽게 수행 할 수 있습니다. 그래도 스크립팅을위한 언어를 포함 시키려면 구문 분석에 F #을 사용합니다.
Jetti
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.