17.9.05

Video Games Reloaded

A tecnologia evolui. E com a evolução, as grandes "revoluções" do passado viram brinquedo. Que tal um remake do Super Mario todo em Javascript/html? Ou quem sabe, Lemmings DHTML Edition!

15.9.05

C#: uma linguagem funcional?

Há algum tempo que eu digo que várias inovações em linguagens de programação que surgiram da pesquisa com linguagens funcionais estão se tornando mainstream. Nos últimos anos a comunidade C++ vem namorando cada vez mais com a programação funcional, como prova a existência de bibliotecas de templates como FC++ e boost.lambda. Agora a linguagem C# está adicionando várias características antes conhecidas apenas em linguagens funcionais, como detalhado nesta página na MSDN. Alguns destaques (via PLNews):

  • Implicitly typed local variables, which permit the type of local variables to be inferred from the expressions used to initialize them.
  • Extension methods, which make it possible to extend existing types and constructed types with additional methods.
  • Lambda expressions, an evolution of anonymous methods that provides improved type inference and conversions to both delegate types and expression trees.
  • Object initializers, which ease construction and initialization of objects.
  • Anonymous types, which are tuple types automatically inferred and created from object initializers.
  • Implicitly typed arrays, a form of array creation and initialization that infers the element type of the array from an array initializer.
  • Query expressions, which provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.
  • Expression trees, which permit lambda expressions to be represented as data (expression trees) instead of as code (delegates).
Inferência de tipos apareceu com a linguagem ML original, na década de 70. Expressões lambda vêm do cálculo-lambda de Alonzo Church, mas foram incorporados pela primeira vez numa linguagem de programação com a Lisp original de John McCarthy. As expressões de consulta fazem parte do LINQ, a tentativa da MS de integrar uma sub-linguagem de consulta e acesso a bancos de dados dentro de C# e Visual Basic. Sobre esse projeto, veja este post de Erik Meijer no Lambda the Ultimate para se ter uma idéia de como a teoria está indo direto para a prática. Resta saber se a salada toda, no final, vai ser boa ou não.

12.9.05

AtomChip® Quantum® II

O primeiro computador solid-state - i.e., sem HD ou outras peças mecânicas móveis que possam quebrar facilmente. Todo o armazenamento é feito em memória flash (como os cartões de memória de câmeras digitais). A "coisinha" será lançada no começo do ano que vem, e tem preço sugerido de aproximadamente 10.000 dólares.

Processor: 6.8GHZ CPU (AtomChip® Quantum® II processor / System Compliance: Two Operating Systems with Voice Command (Microsoft® Windows® XP Professional and Linux®)
Memory: 1TB Quantum-Optical non-volatile RAM (NvIOpSRAM-SODIMM 200-pin)
Storage: 2TB non-volatile Quantum RAM (NvIOpRAM-ATA IDE)
Optical Drive: DVD Super Multia
LCD Display: 12.1” WXGA (1280 x 800, 16:10) TFT Glare Type LCD display with 1.3 Mega pixel CMOS camera
Video & Graphics: Two Integrated graphic controllers [Intel®855GME internal graphics, support Intel® DVMT (Dynamic Video Memory Technology) and AtomChip® DVM (Dynamic Video Memory)]
Communication: 10/100 Base-T LAN on board, MDC Fax/Modem V.90/V.92 on Board, 802.11a/802.11b/802.11g WLAN, Intel® PRO/Wireless 2100/2200BG/2915ABG network connection, WiFi, Bluetoth, GPRS -with Bluetoth antena, CMOS camera with USB