Já sei o que você está pensando. 4.0? É. 4.0.
- Mas eu nem me acostumei com o 3.0 ainda!
Paciência. Mas também não é pra já. A Microsoft fala 2010, mas acho que até Dezembro do ano que vem eles liberam, no finalzinho do ano, como fizeram com o 2008, que na verdade saiu em Novembro de 2007.

Eu não tinha visto direito, mas a máquina virtual com o CTP do Visual Studio 2010 (falei dela aqui) já vem também com o C# 4.0 e o VB X. Pra que… Já estou olhando e estou gostando do que estou vendo. Começa aqui então uma série sobre novidades no C# 4.0. São 4 as grandes novidades do C# 4.0:

  1. Tornar o C# uma linguagem com capacidades de uma linguagem dinâmica;
  2. Trazer variância ao C#, tanto contravariância quanto covariância.
  3. Argumentos opcionais e argumentos nomeados em funções;
  4. Novidades na interação com o COM (incluindo parte das novidades do dinamismo do ponto 1);

Eu gostei muito das novidades, em especial as duas primeiras. A primeira vai deixar o C# muito parecido com o VB, que sempre permitiu late binding, mas ela é mais do que isso. A segunda é sensacional, porque esse lance de o C# ser invariante já me incomodou muito (mais info sobre variância e porque isso é um problema aqui). A solução dada para a variância é muito elegante.

Outra coisa interessante é que finalmente a Microsoft parou com esse negócio de trazer uma feature para o VB e não trazer a mesma feature para o C# e vice-versa. Agora, segundo Anders Hejlsberg, o principal criador do C#, as duas linguagens vão evoluir em paralelo, e o que for adicionado à uma, provavelmente vai ser adicionado à outra. (Será que o VB vai permitir finalmente chamadas unsafe?) Isso significa algo que já venho dizendo a muito tempo: VB e C# são dialetos de uma mesma lingua. Se você quer ver uma linguagem realmente diferente vai dar uma olhada IronRuby ou F#.

Já estudei todos os pontos, mas quero apresentá-los com calma, então no próximo post inicio provavelmente falando de variância, que é um tema que gosto muito. Muito legal também o compilador dinâmico de C# apresentado pelo Anders Hejlsberg em uma palestra no PDC 2008, em que ele demonstra um novo compilador feito em C# (o atual é feito em C++), e o utiliza para compilar código sob demanda. Na boa, o público veio abaixo na hora em que ele fez a demo, muito legal. Só para vocês terem uma idéia das possibilidades, vejam um código simples;

CSharpEvaluator ev = new CSharpEvaluator();
ev.Usings.Add("System");
ev.Eval("for (int i = 0; i < 10; i++) Console.WriteLine(i * i)");

Explicando:

É uma aplicação console. Na linha 1 é criada uma instância do compilador, que é representado por uma classe, como qualquer outra. Na linha 2 ele adiciona uma declaração de using. Na linha 3 ele manda o compilador avaliar uma string, que executa, e, acreditem, escreve na console. Esse é um exemplo simples, o cara cria logo em seguida, com poucas linhas de código, um avaliador direto via console, que avalia o que o usuário escreve e executa, como se fosse um command prompt de C#. Ele chega a criar um form, adicionar um botão, e adicionar o endereçador do botão ao ser clicado, e exibir um Hello World no clique. Lindo lindo lindo. Mas esse não sai tão cedo. Vejam esse trabalho com imagens que tirei do vídeo, com o tal command prompt de C# que ele fez na hora:

Executando uma conta de seno, e um for loop sob demanda:
Executando uma conta de seno, e um for loop sob demanda

Aqui ele declara uma função sob demanda, e chama ela em seguida:
Aqui ele declara uma função sob demanda, e chama ela em seguida

Aqui ele cria um form, coloca uma imagem e um botão:
Aqui ele cria um form, coloca uma imagem e um botão

E por fim ele adiciona um event handler e clica, mostrando o resultado na janela.
E por fim ele adiciona um event handler e clica, mostrando o resultado na janela

Lembrando que isso tudo foi feito a partir de strings, compiladas sob demanda. Muito legal!

Só ficou faltando um toque de Spec#. Será que não vamos ganhar esse brinquedo, nem como opcional?

Mais info sobre tudo isso no blog do Charlie Calvert, neste documento oficial do Word sobre novidades do C#, no video do Anders Hejlsberg do PDC 2008, em dois vídeos (aqui e aqui) com o time do C#, na página do Codeplex sobre futuro do C#, ou aqui, em breve, e em português :) A VM com Visual Studio 2010 e C# 4.0 você baixa aqui (ela tem 8GB de download compactado, e mais de 20GB descompactado).


Postado na(s) categoria(s) .Net pelo giovanni bassi em 7 de novembro de 2008 às 01:08 | Tags: ,

Comentários


novembro 7. 2008 14:52
Rafael Izidoro
A tecnologia está evoluindo muito rápido mesmo... é bom e ruim isso...bom porque cada vez está facilitando mais a nossa vida, e mal porque quando você está se adaptando a algo novo, esse 'algo' já se tornou obsoleto... o jeito é aplicar a técnica de dormir apenas 4 horas para se manter no topo....

abraços

http://raf4.net/http://raf4.net/


novembro 10. 2008 11:58
Giovanni Bassi
Pois é, Rafael. Já aplico esta técnica faz tempo. Não faz muito bem, mas fazer o que?

http://unplugged.giggio.net/http://unplugged.giggio.net/

Comentar


(Vai mostrar seu Gravatar)

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading



Quem é Giovanni Bassi

Giovanni Bassi Sou uma pessoa apaixonada por tecnologia e especificamente por .Net. Sou consultor independente especialista em .Net, focado em arquitetura e melhores práticas. Tenho dezenas de artigos publicados na .Net Magazine, revista da qual sou editor técnico. Ministro palestras e cursos de vez em quando, e quando dá tempo eu respiro um pouco. Mais detalhes nesta página.

Busca

Selos

Eu vou ao TechEd Brasil 2010, e você?

MVP

MCPD

MCSD

.Net Magazine

Abaixo ao if!

Calendário

«  setembro 2010  »
seteququsedo
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
Ver detalhamento de posts no calendário

Blogs interessantes

    OPMLDownload OPML file

    Postagens recentes

    Comentários recentes

    Disclaimer / Aviso
    As opiniões colocadas neste blog são minhas e pessoais e não expressam necessariamente as opiniões de meus empregadores, pareceiros e amigos. Da mesma forma, os comentários feitos por leitores do blog não expressam a minha opinião.

    © Copyright 2010 .Net Unplugged
    Log in