Một số ứng dụng nổi tiếng được viết trong F # là gì? [đóng cửa]


13

Là một phần của quá trình tìm kiếm kiến ​​thức, tôi dành một chút thời gian trong tuần này để tìm hiểu những điều cơ bản về F # như là một giới thiệu về lập trình chức năng. Tôi nghĩ rằng tôi hiểu việc xây dựng phần mềm theo mô hình này và một số lợi ích được đề xuất, nhưng vẫn còn một chút mờ nhạt trong các trường hợp sử dụng trong thế giới thực.

Tôi đã hy vọng rằng một câu chuyện thành công của F #, hoặc ít nhất một vài ứng dụng mà tôi quen thuộc có thể làm cho nó rõ ràng hơn một chút về việc khi nào F # (hoặc bất kỳ ngôn ngữ lập trình chức năng nào) sẽ phù hợp cho một dự án.

Quay trở lại câu hỏi, một số ứng dụng nổi tiếng sử dụng F # hoặc ngôn ngữ lập trình chức năng tương tự là gì?

BTW: Tôi cũng sẵn sàng nghe về một số ứng dụng ít được biết đến, nhưng nếu bạn đề cập đến một ứng dụng, xin vui lòng cung cấp những điều cơ bản về ứng dụng nói về điều gì và tại sao ngôn ngữ được sử dụng là lựa chọn phù hợp.


Tôi tò mò về điều này tốt. Tôi nghĩ F # là một ngôn ngữ MS Research Dept theo định hướng toán học. Thật thú vị khi xem liệu có bất kỳ chương trình nào ngoài đó sử dụng nó có thể nhận ra được không. Tôi nghi ngờ rằng có bất kỳ chương trình 'nổi tiếng' nào hoàn toàn là F #.
Kavet Kerek

1
Câu hỏi này dường như lạc đề vì đây là câu hỏi dựa trên cuộc thăm dò ý kiến.

jet.com, startup thương mại điện tử ban đầu được viết bằng F # đã được Walmart mua vài năm trước với giá 3 tỷ đô la
KolA

Câu trả lời:


8
  • Toàn bộ hệ thống F # (trình biên dịch, thư viện và công cụ)
  • IronJS (đã được đề cập)
  • Thuật toán XBox Live TrueSkill, cũng như toàn bộ hệ thống Thành tựu, hệ thống xếp hạng và hệ thống mai mối xung quanh nó

Tôi đoán lý do chính tại sao không có ứng dụng "nổi tiếng" nào được viết bằng F #, là bởi vì phải mất nhiều năm, thậm chí nhiều thập kỷ để trở nên "nổi tiếng" và F # đơn giản là chưa cũ.

Tuy nhiên, phần lớn các ứng dụng không "nổi tiếng". Chỉ có một PowerPoint, nhưng thực sự có hàng triệu ứng dụng biên chế một lần tùy chỉnh viết tay.

Và F # chắc chắn được sử dụng nội bộ trong nhiều công ty tài chính, làm máy tính khoa học và số, nói, công nghệ sinh học hoặc greentech, làm thống kê thần biết ở đâu và vân vân. Các ứng dụng này không nổi tiếng, vì đơn giản là chúng không "gợi cảm" hoặc thường bởi vì các công ty coi F # là vũ khí bí mật của họ mang lại cho họ lợi thế cạnh tranh. (OCaml, Smalltalk và APL có vai trò tương tự nhau. Ví dụ, nhiều công ty tài chính sử dụng APL, nhưng họ không công khai rộng rãi. Thật vậy, đôi khi người dùng APL thậm chí không biết lập trình viên để công khai nó ngay cả khi họ muốn.)


1
Theo Wikipedia, F # 8 tuổi. PHP, Java, C # đều đã được sử dụng trong các ứng dụng nổi tiếng từ lâu trước khi chúng đạt đến độ tuổi đó. C #, ví dụ, xuất hiện vào năm 2001. Và F # khá rõ ràng của nó chậm hơn C # một năm về mặt sử dụng.
GrandmasterB

5
@GrandmasterB: Đó có thể không chính xác là một đánh giá công bằng. F # chỉ là một dự án thử nghiệm cho đến khi nó được sản xuất trong VS2010, mặc dù nó khả thi vào năm 2008. Vì vậy, tôi sẽ không gọi nó là 8 tuổi.
Robert Harvey

3

Tables . Một trình quản lý và tổ chức tập tin, với rất nhiều tính năng. Nó cung cấp một hệ thống gắn thẻ mà bạn thậm chí có thể chia sẻ với người khác. Đó là một sản phẩm thương mại.


1

Tôi đã tự hỏi điều tương tự cho một lúc biết. Tôi thực sự thích F # nhưng chưa thấy gì trong lĩnh vực ứng dụng thương mại. Điều tôi đã nghe (và khá thường xuyên) là F # đã được sử dụng rất nhiều trong lĩnh vực tài chính.

Những khung web tốt nào tồn tại cho lập trình chức năng? có một số ví dụ về khung web cho các ngôn ngữ lập trình chức năng và tôi biết http://cs.hubfs.net/bloss/tomasp/archive/2010/05/09/14050.aspx là một bài viết về cách viết một ASP.Net MVC 2 Ứng dụng web trong F #.

Như tôi đã tìm kiếm các bài viết trên F # và rất nhiều ví dụ và lời khen ngợi của mọi người đã xuất hiện dưới dạng các trình phân tích cú pháp nhật ký. Nhưng điều đó luôn được theo sau với một lời cảnh báo về điều gì đó dọc theo dòng chữ "Tôi không được phép sử dụng ngôn ngữ tại nơi làm việc" (tất nhiên là được diễn giải). Tôi sẽ cố gắng tìm thêm ví dụ.

Tôi đã từng đùa giỡn với ý tưởng tạo ra một MUD dựa trên văn bản (Dungeon nhiều người dùng) trong F # nhưng dường như tôi không bao giờ có thời gian.


MUD == Dungeon nhiều người dùng?
Robert Harvey

@Robert Harvey - điều đó sẽ đúng. Tôi sẽ chỉnh sửa nó cho những ai không biết.
Jetti

Tôi quên thêm WebSharper. Nó cho phép các nhà phát triển tạo các trang web hoàn toàn trong F #.
Jetti

0

Tôi đã xem xét F # một cách ngắn gọn khi tôi muốn viết một trình phân tích cú pháp SQL, mà cuối cùng tôi đã thực hiện trong Haskell. Điều đó nói rằng, bạn có thể sử dụng F # bất cứ nơi nào bạn sẽ sử dụng C #, nhưng nó có đáng không? Nếu bạn sẽ thực hiện nhiều chương trình chức năng, sử dụng F # sẽ có giá trị, vì cú pháp cho các cấu trúc chức năng là thân thiện hơn. Nếu bạn chủ yếu làm OO, có lẽ tốt hơn là gắn bó với C #.


Tôi đồng ý với Larry Coleman. Tại sao ai đó sẽ làm một cái gì đó trong F # khi họ có thể làm điều đó trong C #? Tôi nghĩ thật an toàn khi nói rằng phần lớn F # có lợi hơn C #, đó không phải là trong tình huống ứng dụng thương mại.
Jetti

1
Tôi nghĩ rằng đây phần lớn là quan điểm của MS quá. C # và VB.NET được trình bày là / hoặc cho nhau, nhưng tôi nghĩ mục tiêu với F # (và ở mức độ thấp hơn, các ngôn ngữ như IronPython và Boo) là để khuyến khích lập trình polyglot: sử dụng các ngôn ngữ khác nhau với các tính năng độc đáo để giải quyết khác nhau các loại vấn đề.
CodexArcanum

@Jetti F # rất tốt cho mọi loại xử lý dữ liệu, để phân tích cú pháp và cho bất kỳ trường nặng tính toán nào khi tính chính xác. Lập trình hàm nói chung cung cấp một mức độ biểu cảm làm cho nhiều loại chương trình rất dễ viết. Không có cái nào trong số đó là thứ hiển thị rõ ràng, như một trang web hoặc ứng dụng GUI, những lĩnh vực mà C # vượt trội. Bạn có thể sử dụng LINQ để lấy một số FP trong C #, nhưng F # là ngôn ngữ tự nhiên hơn để diễn đạt mã như vậy.
CodexArcanum

@CodexArcanum - Tôi hoàn toàn đồng ý với bạn. Tôi đoán rằng tôi đã hiểu nhầm "Ứng dụng thương mại", tôi nên nói "Ứng dụng tiêu dùng hàng ngày (ví dụ: Office, Firefox, v.v.)"
Jetti

1
@Jetti: Tôi muốn giới thiệu Haskell trên F # nếu bạn thích học lập trình chức năng. Bạn sẽ học nó nhanh hơn vì bạn sẽ không thể thực hiện thủ tục hoặc OO trong đó.
Larry Coleman

0

Sắt JS .

Cá nhân tôi nghĩ rằng thật kỳ lạ khi ứng dụng duy nhất tôi biết được viết bằng F # là thứ cho phép bạn viết bằng ngôn ngữ khác ngoài F #.

Đối với tôi, điều đó nói lên rất nhiều về giá trị đích thực của lập trình chức năng. Mọi người có thể ăn mừng "đẹp" như thế nào là tất cả những gì họ muốn - nếu nó thật đẹp, mọi người sẽ sử dụng nó nhiều hơn.


Tôi không đồng ý với tuyên bố cuối cùng của bạn. Mọi người DO sử dụng F #, trên thực tế, họ sử dụng nó rất nhiều đến nỗi nó đã trở thành một phần của Visual Studio 2010. F # đã được áp dụng trong lĩnh vực tài chính giống như Erlang đã được áp dụng trong viễn thông. Chỉ vì tôi có thể viết một ứng dụng trong F # không có nghĩa là tôi sẽ chỉ làm như vậy. Ngôn ngữ (và ngôn ngữ FP nói chung) có điểm mạnh và điểm yếu và vì vậy chúng sẽ được sử dụng rộng rãi trong các lĩnh vực có thể hưởng lợi từ sức mạnh của chúng!
Jetti

@Jetti, Chắc chắn rồi. Đã hơn 30 năm kể từ khi lập trình chức năng được hình thành, nhưng tôi chắc chắn rằng nó buộc phải loại bỏ lập trình thủ tục ra khỏi bệ của nó bất cứ ngày nào. Tôi không nói rằng nó không có một số giá trị - một số điều có thể được thực hiện khá thanh lịch với chức năng. Những gì tôi đang nói là nó sẽ không bao giờ thống trị.
riwalk

@ Stargzer712 - Tôi đồng ý rằng nó sẽ không bao giờ thống trị và vì lý do chính đáng.
Jetti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.