Segunda-feira, 21 de janeiro de 2008 às 08h30

Conheça o F#

Faltam -1 dias! Inscreva-se agora! O maior encontro de profissionais web da américa latina.

Olá amigos! Neste artigo vou introduzir o F#, mas o que vem a ser o F#?

O F# é uma linguagem funcional criada pela Microsoft, que deriva do ML, uma metalinguagem desenvolvida no final dos anos 70s, que possui uma base na matemática.

Linguagens funcionais tratam a computação como funções matemáticas evitando estados ou dados mutáveis, enquanto a linguagem convencional (imperativa) baseia-se em mudança de estados no programa.

O F# pode, por exemplo, retornar uma função como resultado de outra função.

Imaginemos uma planilha do MS-Excel, com muitas células interligadas com funções matemáticas e consultas a outras planilhas. Quando mudamos um valor de uma célula, ele re-processa apenas as células relacionadas com a que mudamos, e não a Planilha toda (o que levaria muito tempo e nos deixaria extremamente insatisfeitos com a ferramenta!!!).

O F# possui um comportamento semelhante, ao alterarmos valores, ele re-processa apenas o necessário, sendo extremamente poderoso quando quisermos fazer programas com um processamento pesado.

Quantas vezes já não tivemos problemas de "lentidão" quando geramos relatórios que envolvem muitos cálculos, ou muito trabalho com textos. O F# pode nos ajudar a otimizar e melhorar a performance das aplicações.

O F# também é muito poderoso com árvores de dados, podendo achar padrões em textos de uma forma mais eficiente do que a expressão regular, sendo muito bem requisitado em sistemas de datamining. Em mercados financeiros, por exemplo, pode ter uma grande contribuição, analisado dados e permitindo sempre tomar uma decisão de investimento mais segura. Pode também ter grande utilização em áreas biológicas, como análises estatísticas que auxiliam no descobrimento de novas curas ou até em análises de comportamento animal.

Todo Poder ao F#

Tomando proveito do processamento em matriz, com diversos núcleos de processamento, e de processamento em paralelo, o F# permite um bom desempenho, podendo ainda interagir diretamente com outras linguagens como o C#, tendo acesso direto a todos os APIs do .net Framework, como Directx, Windows Presentation Foundation, entre outros.

Sabemos que hoje em dia os jogos estão cada vez mais sofisticados, adaptando-se ao modo de jogar do jogador e criam diferentes situações, sendo únicas para cada jogador. Com isso, estamos criando algoritmos cada vez mais complexos, às vezes aproximando-os da inteligência artificial. Com o F#, é possível ganhar vantagem no desenvolvimento de jogos, dando uma melhor experiência para o jogador.

Características

Atualmente, há ferramentas como o MathLab, Mathemática e outras, que possuem grande quantidade de bibliotecas. Estes softwares são muito utilizados em projetos de engenharia, biologia, física, e outros que utilizam muito cálculo.

Semelhante a linguagem dinâmica, como o Ruby, não é necessário declarar explicitamente o tipo de variável. O F# "descobre" o tipo da variável durante o tempo de execução.

Outros exemplos de linguagens funcionais são: CAML (derivado do ML), APL, Erlang, Haskell, Lisp, ML, and Scheme.

O F# incorpora recursos da plataforma .net, e possui algumas características como:

  • Boa performance;
  • Código sucinto;
  • Suporta discovery e reflection.
  • Permite interagir com as classes de acesso a dados da Microsoft.
  • Pode ser utilizado com o Visual Studio;
  • Pode ser compilado por outros compiladores, como o de oCaml;
  • Suporta Genéricos.
  • Integração com o C#

Como exemplo de código em F# temos:

Hello World - Win Form

    open System
    open System.Windows.Forms

    let form = new Form()
    do form.Width  <- 400
    do form.Height <- 300
    do form.Text <- "Hello World Form"

    (* Menu bar, menus *)
    let mMain = form.Menu <- new MainMenu()
    let mFile = form.Menu.MenuItems.Add("&File")
    let miQuit  = new MenuItem("&Quit")
    let _ = mFile.MenuItems.Add(miQuit)

    (* RichTextView *)
    let textB = new RichTextBox()
    do textB.Dock <- DockStyle.Fill  
    do textB.Text <- "Hello World\n\nCongratulations!"
    do form.Controls.Add(textB)    

    (* callbacks *)
    let opExitForm sender args = form.Close ()
    do miQuit .add_Click (new EventHandler(opExitForm))

    (* run! *)  
    do Application.Run(form)

Se você salvar o arquivo como:

\dev\src\helloforms.fs

Assumindo que fsc é o caminho, você pode compilar o código seguindo as linhas abaixo:

cd \dev\src

fsc \dev\src\helloforms.fs

helloforms.exe

Links Relacionados:

Considerações finais

É importante conhecermos outras linguagens, para sempre expandir nossos horizontes. Quanto mais conhecemos, melhor poderá ser a nossa decisão nos projetos, e seremos mais eficientes.

Espero que tenham gostado!

Forte Abraço.

Nenhum comentário até agora

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Thomas Alexander Semple é engenheiro eletrônico com ênfase em telecomunicações. Residiu por mais de dois anos nos Estados Unidos e é líder de projetos da T4W. Com mais de 12 anos de experiência, participa de projetos para empresas dos mais diversos segmentos. A T4W (www.t4w.com.br) é uma empresa de tecnologia, que além de produtos voltados aos mercados de turismo e imobiliário, possui uma área de desenvolvimento que vem atendendo empresas de médio e grande porte em projetos corporativos e especiais. Thomas A. Semple também escreve periodicamente para as revistas .Net Magazine e Web Mobile.
3G

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.