Quali sono alcune applicazioni ben note scritte in F #? [chiuso]


13

Come parte di una continua ricerca di conoscenza, questa settimana trascorro un po 'di tempo a imparare le basi di F # come introduzione alla programmazione funzionale. Penso di capire la costruzione del software con questo modello e alcuni dei vantaggi proposti, ma sono ancora un po 'confuso sui casi d'uso del mondo reale.

Speravo che le storie di successo di F #, o almeno alcune applicazioni con cui avrei avuto familiarità, potessero rendere un po 'più chiaro quando F # (o qualsiasi linguaggio di programmazione funzionale) sarebbe appropriato per un progetto.

Quindi, tornando alla domanda, quali sono alcune applicazioni ben note che usano F # o un linguaggio di programmazione funzionale simile?

A proposito: sono anche aperto a sentir parlare di alcune app meno conosciute, ma se ne citi una, ti preghiamo di fornire le basi di ciò che l'app è e perché la lingua utilizzata è stata la scelta appropriata.


Sono curioso di questo. Ho pensato che F # fosse un linguaggio MS Research Dept orientato alla matematica. Sarebbe interessante vedere se ci sono programmi là fuori che lo utilizzano sono riconoscibili. Dubito che ci siano programmi "ben noti" che sono interamente F # però.
Kavet Kerek,

1
Questa domanda sembra essere fuori tema perché è una domanda basata sul sondaggio.

jet.com, la startup e-commerce inizialmente scritta in F # è stata acquistata da Walmart un paio d'anni fa per $ 3 + miliardi
KolA

Risposte:


8
  • L'intero sistema F # (compilatore, librerie e strumenti)
  • IronJS (già menzionato)
  • L'algoritmo XBox Live TrueSkill, nonché l'intero sistema Achievements, il sistema di classificazione e il sistema di matchmaking che lo circonda

Immagino che il motivo principale per cui non ci sono applicazioni "ben note" scritte in F #, è perché ci vogliono anni, persino decenni per diventare "ben noti" e F # semplicemente non è ancora così vecchio.

Tuttavia, la stragrande maggioranza delle applicazioni non sono "ben note". C'è solo un PowerPoint, ma ci sono letteralmente milioni di piccole e personalizzate app per le buste paga personalizzate scritte a mano.

E F # è certamente usato internamente in molte società finanziarie, facendo calcoli scientifici e numerici, diciamo, biotecnologici o greentech, facendo statistiche che dio sa dove e così via. Queste applicazioni non sono ben note, o semplicemente perché non sono "sexy" o spesso perché le aziende considerano F # la loro arma segreta che conferisce loro un vantaggio competitivo. (OCaml, Smalltalk e APL ricoprono ruoli simili. Molte società finanziarie usano APL, ad esempio, ma non lo pubblicizzano ampiamente. In effetti, spesso gli utenti APL non sono nemmeno programmatori e quindi non sanno nemmeno dove e come pubblicizzarlo anche se lo volessero.)


1
Secondo Wikipedia, F # ha 8 anni. PHP, Java, C # erano tutti usati in applicazioni ben note molto prima che raggiungessero quell'età. C #, per esempio, è uscito nel 2001. E il suo F # abbastanza chiaro è più di un anno indietro rispetto a C # in termini di utilizzo.
GrandmasterB,

5
@GrandmasterB: Potrebbe non essere esattamente una valutazione corretta. F # era solo un progetto sperimentale fino a quando non è stato prodotto in VS2010, anche se era praticabile nel 2008. Quindi non lo chiamerei esattamente 8 anni.
Robert Harvey,

3

Ci sono tabelle . Un file manager e organizzatore, con molte funzionalità. Fornisce un sistema di tag che puoi persino condividere con altri. È un prodotto commerciale.


1

Mi chiedevo la stessa cosa per un po 'lo so. Mi piace molto F # ma non ho visto nulla nel regno di un'app commerciale. Quello che ho sentito (e abbastanza frequentemente) è che F # è stato usato molto nel regno finanziario.

Quali decenti framework web esistono per la programmazione funzionale? ha alcuni esempi di framework Web per linguaggi di programmazione funzionale e so che http://cs.hubfs.net/blogs/tomasp/archive/2010/05/09/14050.aspx è un articolo su come scrivere un ASP.Net MVC 2 App Web in F #.

Mentre stavo cercando articoli su F # e molti esempi e le lodi della gente sono arrivate sotto forma di parser di log. Ma ciò è sempre seguito da un avvertimento di qualcosa del tipo "Non mi è permesso usare la lingua al lavoro" (parafrasato ovviamente). Proverò a trovare altri esempi.

Ho giocato con l'idea di creare un MUD (Multi-User Dungeon) basato su testo in F # ma non mi sembra di avere mai tempo.


MUD == Dungeon multiutente?
Robert Harvey,

@Robert Harvey - sarebbe corretto. Lo modificherò per quelli che non lo sanno.
Jetti,

Ho dimenticato di aggiungere WebSharper. Consente agli sviluppatori di creare siti Web interamente in F #.
Jetti,

0

Ho guardato brevemente F # quando volevo scrivere un parser SQL, che ho finito per implementare in Haskell. Detto questo, potresti usare F # ovunque tu voglia usare C #, ma ne varrebbe la pena? Se farai molta programmazione funzionale, sarà utile usare F #, poiché la sintassi per costrutti funzionali è più amichevole. Se stai facendo principalmente OO, probabilmente è meglio attenersi a C #.


Sono d'accordo con Larry Coleman. Perché qualcuno dovrebbe fare qualcosa in F # quando può farlo in C #? Penso che sia sicuro affermare che la maggior parte delle volte che F # è vantaggioso su C # non è in una situazione di app commerciale.
Jetti,

1
Penso che questa sia in gran parte anche la prospettiva della SM. C # e VB.NET sono stati presentati come / o tra loro, ma penso che l'obiettivo con F # (e, in misura minore, linguaggi come IronPython e Boo) sia di incoraggiare la programmazione poliglotta: usare linguaggi diversi con caratteristiche uniche per risolvere diversi tipi di problemi.
CodexArcanum,

@Jetti F # è ottimo per qualsiasi tipo di elaborazione dei dati, per l'analisi e per qualsiasi campo pesante di calcolo dove conta la correttezza. La programmazione funzionale in generale offre un livello di espressività che rende molto facile scrivere molti tipi di programmi. Niente di tutto ciò è molto visibile, cose front-end come un sito Web o un'applicazione GUI, aree in cui C # eccelle. Puoi usare LINQ per ottenere un po 'di FP in C #, ma F # è un linguaggio più naturale per esprimere tale codice.
CodexArcanum,

@CodexArcanum - Sono completamente d'accordo con te. Immagino di aver fuorviato "App commerciale", avrei dovuto dire "Applicazione quotidiana per i consumatori (ovvero Office, Firefox, ecc.)"
Jetti,

1
@Jetti: consiglierei Haskell su F # se sei interessato ad apprendere la programmazione funzionale. Lo imparerai più velocemente perché non sarai in grado di fare procedurale o OO in esso.
Larry Coleman,

0

Iron JS .

Personalmente penso che sia strano che l'unica applicazione che conosco sia scritta in F # sia qualcosa che ti permetta di scrivere in una lingua diversa da F #.

Per me, questo dice molto sul vero valore della programmazione funzionale. Le persone possono celebrare quanto "bello" sia tutto ciò che vogliono - se fosse così bello, le persone lo userebbero di più.


Non sono d'accordo con la tua ultima affermazione. Le persone usano F #, infatti, lo usano così tanto che è diventato parte di Visual Studio 2010. F # è stato adottato nel settore finanziario proprio come Erlang è stato adottato nelle telecomunicazioni. Solo perché posso scrivere un'app in F # non significa che lo farò solo. La lingua (e le lingue FP in generale) hanno i loro punti di forza e di debolezza e quindi saranno ampiamente utilizzate in aree che possono trarre beneficio dalla loro forza!
Jetti,

@Jetti, certo. Sono passati più di 30 anni da quando è stata concepita la programmazione funzionale, ma sono sicuro che è destinato a buttare giù la programmazione procedurale dal suo piedistallo da un giorno all'altro. Non sto dicendo che non ha alcuni meriti - alcune cose possono essere fatte in modo abbastanza elegante con funzionale. Quello che sto dicendo è che non dominerà mai.
riwalk

@ Stargzer712 - Concordo sul fatto che non dominerà mai e anche per buoni motivi.
Jetti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.