Jakie są dobrze znane aplikacje napisane w języku F #? [Zamknięte]

13

W ramach ciągłego poszukiwania wiedzy spędzam w tym tygodniu trochę czasu na nauce podstaw języka F # jako wstępu do programowania funkcjonalnego. Myślę, że rozumiem budowę oprogramowania w tym modelu i niektóre z proponowanych korzyści, ale nadal jestem trochę rozmyślany w rzeczywistych przypadkach użycia.

Miałem nadzieję, że historie sukcesu F # lub przynajmniej kilka aplikacji, które znam, mogą nieco wyjaśnić, kiedy F # (lub dowolny funkcjonalny język programowania) będzie odpowiedni dla projektu.

Wracając do pytania: jakie są dobrze znane aplikacje, które używają F # lub podobnego funkcjonalnego języka programowania?

BTW: Jestem również otwarty na informacje o mniej znanych aplikacjach, ale jeśli wspomniasz o jednej, podaj podstawy tego, o co chodzi w aplikacji i dlaczego wybrany język był właściwym wyborem.

JohnFx
źródło
Ciekawi mnie to dobrze. Myślałem, że F # to język MS Research Dept zorientowany na matematykę. Byłoby ciekawie sprawdzić, czy są dostępne programy, które są rozpoznawalne. Wątpię jednak, czy istnieją jakieś „dobrze znane” programy, które są całkowicie w języku F #.
Kavet Kerek
1
To pytanie wydaje się nie na temat, ponieważ jest oparte na ankiecie.
jet.com, startup e-commerce początkowo napisany w języku F # został kupiony przez Walmart kilka lat temu za 3 + miliardy dolarów
KolA

Odpowiedzi:

8
  • Cały system F # (kompilator, biblioteki i narzędzia)
  • IronJS (już wspomniany)
  • Algorytm XBox Live TrueSkill, a także cały system Osiągnięć, system rankingowy i otaczający go system dobierania graczy

Wydaje mi się, że głównym powodem, dla którego nie ma „dobrze znanych” aplikacji napisanych w języku F #, jest to, że potrzeba lat, a nawet dekad, aby stać się „dobrze znanymi”, a F # po prostu nie jest jeszcze tak stary.

Jednak przeważająca większość aplikacji nie jest „dobrze znana”. Istnieje tylko jeden program PowerPoint, ale istnieją dosłownie miliony ręcznie napisanych, niestandardowych, niewielkich, jednorazowych wewnętrznych aplikacji płacowych.

I F # jest z pewnością stosowane wewnętrznie w wielu firmach finansowych, wykonując obliczenia naukowe i numeryczne, powiedzmy w biotechnologii lub greentech, wykonując statystyki, których bóg wie gdzie i tak dalej. Te aplikacje nie są dobrze znane, albo dlatego, że po prostu nie są „seksowne”, albo często dlatego, że firmy uważają F # za swoją tajną broń, która daje im przewagę nad konkurencją. (OCaml, Smalltalk i APL pełnią podobne role. Na przykład wiele firm finansowych korzysta z APL, ale nie rozpowszechniają go szeroko. Rzeczywiście, często użytkownicy APL nie są nawet programistami i dlatego nawet nie wiedzieliby, gdzie i jak opublikować to, nawet gdyby chcieli).

Jörg W Mittag
źródło
1
Według Wikipedii F # ma 8 lat. PHP, Java, C # były używane w dobrze znanych aplikacjach na długo przed osiągnięciem tego wieku. C #, na przykład, pojawił się w 2001 roku. I jego dość wyraźny F # jest ponad rok za C # pod względem użytkowania.
GrandmasterB
5
@GrandmasterB: To może nie być do końca uczciwa ocena. F # był tylko projektem eksperymentalnym, dopóki nie został wyprodukowany w VS2010, chociaż był opłacalny w 2008 roku. Więc nie nazwałbym go dokładnie 8-letnim.
Robert Harvey
3

Jest Tabbles . Menedżer plików i organizator z wieloma funkcjami. Zapewnia system tagowania, który można nawet udostępniać innym. To produkt komercyjny.

Kaveh Shahbazian
źródło
1

Od jakiegoś czasu zastanawiałem się nad tym samym. Naprawdę lubię F #, ale nie widziałem niczego w dziedzinie aplikacji komercyjnych. To, co słyszałem (i dość często), to fakt, że F # był często używany w dziedzinie finansów.

Jakie przyzwoite ramy sieciowe istnieją dla programowania funkcjonalnego? ma kilka przykładów ram internetowych dla funkcjonalnych języków programowania i wiem, że http://cs.hubfs.net/blogs/tomasp/archive/2010/05/09/14050.aspx to artykuł na temat pisania ASP.Net MVC 2 Aplikacja internetowa w F #.

Kiedy szukałem artykułów na temat F # i wiele przykładów i pochwał ludzi pojawiło się w postaci analizatorów dzienników. Ale zawsze następuje to z zastrzeżeniem czegoś w rodzaju „Nie wolno mi używać języka w pracy” (oczywiście parafrazowane). Spróbuję znaleźć więcej przykładów.

Pomyślałem o stworzeniu opartego na tekście MUD (Multi-User Dungeon) w F #, ale nigdy nie mam czasu.

Jetti
źródło
MUD == Dungeon dla wielu użytkowników?
Robert Harvey,
@Robert Harvey - to byłoby poprawne. Zmienię to dla tych, którzy nie wiedzą.
Jetti,
Zapomniałem dodać WebSharper. Umożliwia programistom tworzenie stron internetowych w całości w języku F #.
Jetti
0

Spojrzałem krótko na F #, kiedy chciałem napisać parser SQL, który ostatecznie zaimplementowałem w Haskell. To powiedziawszy, możesz użyć F # gdziekolwiek byś użył C #, ale czy byłoby warto? Jeśli będziesz dużo programować funkcjonalnie, warto skorzystać z F #, ponieważ składnia dla funkcjonalnych konstrukcji jest bardziej przyjazna. Jeśli robisz głównie OO, prawdopodobnie lepiej trzymać się C #.

Larry Coleman
źródło
Zgadzam się z Larrym Colemanem. Dlaczego ktoś miałby robić coś w F #, skoro może to robić w C #? Myślę, że można bezpiecznie powiedzieć, że w większości przypadków F # jest korzystniejszy niż C #, nie jest to aplikacja komercyjna.
Jetti
1
Myślę, że jest to również w dużej mierze perspektywa państw członkowskich. C # i VB.NET zostały przedstawione jako / lub dla siebie nawzajem, ale myślę, że celem F # (i w mniejszym stopniu języków takich jak IronPython i Boo) jest zachęcanie do programowania w poliglocie: używanie różnych języków z unikalnymi funkcjami do rozwiązywania różnych rodzaje problemów.
CodexArcanum,
@Jetti F # jest bardzo dobry do wszelkiego rodzaju przetwarzania danych, do parsowania i do każdego pola obciążonego obliczeniami, gdzie ważna jest poprawność. Programowanie funkcjonalne ogólnie oferuje poziom ekspresji, który sprawia, że ​​wiele rodzajów programów jest bardzo łatwych do napisania. Nic z tego nie jest bardzo widoczne, takie jak strona internetowa lub aplikacja GUI, obszary, w których wyróżnia się C #. Możesz użyć LINQ, aby uzyskać część FP w C #, ale F # jest bardziej naturalnym językiem do wyrażania takiego kodu.
CodexArcanum,
@CodexArcanum - Całkowicie się z tobą zgadzam. Chyba mylę się z „Aplikacją komercyjną”, powinienem był powiedzieć „Aplikacja do codziennego
użytku
1
@Jetti: Polecam Haskell ponad F #, jeśli chcesz nauczyć się programowania funkcjonalnego. Dowiesz się go szybciej, ponieważ nie będziesz w stanie robić w nim procedur ani OO.
Larry Coleman,
0

Iron JS .

Osobiście uważam, że to dziwne, że jedyna znana mi aplikacja napisana w języku F # to coś, co pozwala pisać w języku innym niż F #.

Według mnie wiele mówi o prawdziwej wartości programowania funkcjonalnego. Ludzie mogą świętować, jak „piękna” jest wszystkim, czego chcą - gdyby była tak piękna, ludzie używaliby jej częściej.

riwalk
źródło
Nie zgadzam się z twoim ostatnim oświadczeniem. Ludzie używają F #, w rzeczywistości używają go tak bardzo, że stał się częścią Visual Studio 2010. F # zostało przyjęte w sektorze finansowym, tak jak Erlang został przyjęty w telekomunikacji. To, że mogę napisać aplikację w języku F #, nie oznacza, że ​​po prostu to zrobię. Język (i ogólnie języki FP) mają swoje mocne i słabe strony, dlatego będą szeroko stosowane w obszarach, które mogą skorzystać z ich siły!
Jetti
@Jetti, jasne. Minęło ponad 30 lat, odkąd opracowano programowanie funkcjonalne, ale jestem pewien, że z pewnością zrzuci programowanie proceduralne z piedestału każdego dnia. Nie twierdzę, że nie ma to pewnych zalet - niektóre rzeczy można zrobić dość elegancko dzięki funkcjonalności. Co ja mam powiedzieć, że nigdy nie będzie dominować.
riwalk
@ Stargzer712 - Zgadzam się, że nigdy nie będzie dominować i nie bez powodu.
Jetti