Pergunta

Sendo um desenvolvedor C # desde a versão 1.0, F # capturou meu tempo livre para as últimas semanas. Computadores são vendidos com 2, 4 .. Cores e multi-threading nem sempre é simples de realizar.

No momento eu ver que F # tem um grande potencial para o complicado e ou cargas de trabalho pesadas. Você acha que F # vai (uma vez RTM) tornar-se um importante player no mercado de software corporativo?

Foi útil?

Solução

Eu acho que, independentemente de F # se torna importação for Enterprise Software ser capaz de isolar partes funcionais puras de código em qualquer idioma será a chave para utilizar o potencial dos computadores multi-core. Por exemplo extensões paralelas da Microsoft para .NET são grandes, mas ainda há muito espaço para cometer erros por paralelização código que não pode executar em paralelo. Se o código é na forma de uma linguagem funcional pura ou um subconjunto da sua linguagem que é puramente funcional, então você está certo de que você pode executá-lo em paralelo. O truque é, então, descobrir a maneira mais eficiente para atribuir o trabalho.

O papel que F # jogar Neste Eu diria que seria mais como um catalisador para obter os pés das pessoas molhar e começar a pensar de uma forma mais declarativa.

Outras dicas

Eu acho que F # tem grande oportunidade de fazer incursões algumas das áreas de nicho de aplicações empresariais, tais como modelagem matemática (por exemplo, para a banca / aplicações comerciais). Removendo efeitos colaterais de funções também leva a grandes oportunidades para paralelismo e memoization. É difícil dizer se estas línguas nunca vai decolar para o desenvolvimento mainstream é difícil dizer, mas na minha opinião os problemas são mais propensos a ser orientada humana (ou seja, falta de competências e de alta curva de aprendizado para pessoas familiarizadas com linguagens mais típicos como c # / java / c ++) em vez de técnicos.

O que eu penso que nós estaremos vendo é que algumas coisas funcional irá migrar para C #, como o aumento de uso de tipos imutáveis ??e as funções de marcação como pura etc. eu não posso ver F # ter um papel mais amplo no desenvolvimento da empresa a sua demais mistificando para o desenvolvedor média.

C # / VB serão sempre os principais idiomas, mas F # é melhor para problemas complexos. C # é o propósito mais geral, enquanto F # é melhor em IA, estatística, ciência (encontrar a cura do câncer, por exemplo), etc. F # nunca irá substituir o C #, mas vai permitir .NET para competir em mais campos de ciência da computação. Quanto à mineração de dados e processamento de grandes ammounts de dados, você é melhor fora desenvolvendo diretamente no banco de dados -. Como SQL Server ou Oracle

Como para F # sendo difícil de aprender, é só porque temos "corrompido" pela forma como imperativo de pensar em outras linguagens. É difícil desaprender algo que você faz para 5 anos! Além disso, na minha experience, ocaml e F # é uma alegria para uso. A única queixa que eu tenho para F # / Ocaml é que a maioria das vezes as pessoas overuse a inferência tipo que torna o código ilegível. Eu prefiro declarar tipos de variáveis ??para torná-lo mais fácil de manter.

Eu acho que F # será sempre uma linguagem de nicho, em comparação com VB / C # / Java, porque ele requer mais de um fundo ciência matemática ou computador. No entanto, o próprio fato de que é um meio de linguagem CLR que ele terá muito maior exposição do que as linguagens funcionais anteriores.

Eu trabalho em um banco de investimento e já estamos usando F # para alguns fins de script ad-hoc, estamos muito ansiosos para ver uma versão lançada do F # para que possamos considerar a integração mais formal em nossos sistemas (embora eles são susceptíveis permanecer fundamentalmente C # baseado).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top