ProgramingTip

F #은 어떤 영역에서 "사용에있어 전혀 의미가 없습니까?"

bestdevel 2020. 12. 7. 20:28
반응형

F #은 어떤 영역에서 "사용에있어 전혀 의미가 없습니까?"


Don Syme는 SPLASH 강연에서 F #이 일반적인 기능을 가지고있는 것이 아니라 C #을 대체하기 때문입니다. 그는 계속해서 F #을 사용할 때 의미가 없지만 논문을 확장하지 않는 영역이 있습니다.

  1. F 누군가 #을 사용하는 동안 피해야 할 영역을 말해 줄 수 있습니까?
  2. C #이 빛나는 영역을 참조 할 수도 있습니다.

관련 질문 :

C #보다 F # 사용이 더 많은 영역은 무엇입니까?


제 생각은 C #만큼 풍부하고 언어를 교체하는 매우 비싸다는 것 입니다. 예를 들어, 현재 Visual Studio WinForms 디자이너를 사용하면 이점이 있습니다. C #이 WinForms 개발에 절대적으로 최선의 선택입니다. F #에는 WinForms 디자이너가 없습니다.

C #은 현재 더 나은 LINQ-to-SQL 지원을 제공합니다. 이 라인을 따라 다른 많은 예가 확신합니다.

그런 다음 전체 C # 확장 된 인력이 자신의 기술을 F #으로 업데이트하는 자신의 응용 프로그램 유지 관리를 C # C 기술을 유지해야합니다.

마지막으로 C #은 많은 훌륭한 기능을없고 우수한 언어이며 일부 F #에는 co / contra variant generics와 같은 기능도없고 DLR에 대한 동적 프로그래밍에 대한 기본 지원도 없습니다 (F # 구현에는없는 연산자 만 있음).

따라서 F #이 C #을 대체 할 것으로 기대하지 않습니다. F #은 이미 잘 덮힌 영역을 잡기 위해 모든 시간을 소비하는 새로운 방식으로 발전 할 수 있습니다.


자격이 충분하지 않기 때문에 까다로운 질문입니다. 당신은에 대해 얘기하는 일반적인 언어 , 또는 당신은 현재의 IDE를 지원하는 언어 함께 얘기합니까? 아니면 사용 가능한 라이브러리를 고려하여 F #을 사용하는 것에 대해 이야기하고 있습니까?

  • 일반적으로 언어 -F #을 사용하는 것이 절대적으로 말도 안되는 영역은 생각합니다. 완전히 관리되는 OS (예 : Singularity)의 시스템 프로그래밍에 적합하고 기능적 프로그램이 공식적으로 확인하는 것이 더 쉬울 생각합니다 (OS에 큰 문제가 될 수 있음). 저수준 구축 시스템의 경우 메타 프로그래밍 및 언어 지향 기능을 사용할 수 있습니다 (예 : 하드웨어의 신호 흐름 모델링 등).

  • 현재 IDE를 사용하는 언어 -현재 F # IDE에는 몇 가지 제한이 있습니다. WinForms 디자이너에서는 작동하지 않지만 Blend 및 WPF에서는 잘 작동합니다.

  • 개발자 교육에 따른 언어 -C # 프로그래머를 고용하는 것보다 F # 프로그래머를 고용하는 것이 더 어렵습니다. 복잡한 코어 (예 : 일반적인 "데이터베이스 용 인터페이스")가없는 일부 응용 프로그램을 만드는 경우 C #으로 개발하는 것이 더 성능 할 것입니다 (좋은 F # 개발자를 고용 할 수있는 능력이 더 빨리 완료 할 수 있습니다. 이 들지 않을 수 있습니다.)

  • 사용 가능한 언어 제공 라이브러리 -잘 작동하는 라이브러리만으로 F #을 사용하도록 제한 예측 도메인이 조금 더 축소됩니다. 예를 들어 LINQ to SQL 및 ASP.NET MVC는 F #과 함께 사용할 수 있습니다 완벽하게. 그러나 많은 프로젝트에서 자체 라이브러리를 개발하는 것이 합리적이며 F # 은이를위한 훌륭한 언어가됩니다.


좋은 질문. 개발자, 관리자 및 고객 측에서 언어 적 이유가없고 불행한 기술, 적성 및 태도 이유가 많이 말하고 싶습니다.


WPF와 같은 Microsoft의 많은 UI 기술은 데이터 바인딩에 대한 지원을 제공합니다 . 효과적인 데이터 바인딩은 양방향 바인딩 을 사용하여 사용자가 UI와 상호 작용할 때 기본 개체를 업데이트합니다. 이것은 데이터 바인딩에 변경 가능한 객체가 필요함을 의미 합니다 .

변경 불가능한 유형에 대한 둔 F # 은 해당 유형의 데이터 바인딩 모델과 상당히 일치하지 않습니다. F #에서 변경 가능한 형식을 만들 수는 이렇게하면 언어에서 많은 이점이 제거됩니다. 변경 가능성이 더 자연스러운 언어 (예 : C #)를 사용하는 것이 더 타당합니다.


운영 단계에서 개발 또는 저수준 사회 시스템에 사용하는 것에 대해 두 번 생각할 수 있습니다. :-)


C # 최소한의 도구를 포기하고 적용 가능한 비용을 지불 할 의향이 있습니다. F #이 C #이 능력이없는 특정 영역은 없습니다.


프레임 워크 (예 : ASP.NET MVC)가 C #에 더 많은 웹 애플리케이션. "절대 무의미하다"는 극단적 인 것입니다. "정상적인 상황에서"라고 말하고 싶습니다.

물론 웹 애플리케이션이 참조하는 라이브러리에는 사용할 수있는 실제 애플리케이션 자체 사용할 수 없습니다.


글쎄요, 당연한 얘기지만 F #은 무엇이며 함수형 프로그래밍 언어이며 F #의 OOP 프로그래밍은 목에 고통을 줄 수 있습니다. 따라서 OOP로 가장 잘 표현되는 문제로 작업하는 경우 C #을 사용하는 것이 더 합리적이라고 생각합니다.

상호 재귀 유형과 인터페이스의 명시 적 구현은 F #의 OOP가 번거로울 수있는 이유에 대한 첫 번째 예입니다.

"OOP로 가장 잘 표현되는 문제"의 (자주 인용되는) 예는 UI 라이브러리를 만드는 것입니다. 자신의 상태를 캡슐화하는 위젯이 많고 다형 적으로 "자신을 그려라"와 같은 몇 가지 작업을 수행하도록 요청하고 싶습니다 (단어일까요?).


Visual Studio (ASP.NET, WebForms, WPF 등) 및 모든 도구에서 지원할 때까지 #은 항상 두 번째 클래스 시민이됩니다.

현실을 직시하자면, 언어 선택은 일반적으로 즉 라이브러리 (.NET, c # 및 f # 모두에서 사용 가능-여기서는 이점이 없음), IDE (지능형, 구문 색상 지정 등)와 때 생산성에 큰 차이가 없습니다. . (예 : Razor 지원 없음) 및 도구 (예 : resharper).

따라서이를 염두에두고 모든 도구가 f # 용으로 늘릴 때까지 C #의 완전한 대체를 권장 할 수 있다고 생각합니다. 좋은 절충안은 클래스 라이브러리에서 f #을 사용하고 엔드에서 계속 C #을 사용하는 것입니다.

참고 URL : https://stackoverflow.com/questions/5282782/in-what-areas-does-f-make-absolute-no-sense-in-using

반응형