Fabio Akita Report

Às vezes filosofando, às vezes sendo pragmático. Por vezes duro e severo, outras mais diplomático. Eventualmente vendendo, eventualmente realizando. Assim é a vida de um consultor em sistemas de informática de grandes empresas. De esquina em esquina, ouvimos histórias interessantes. Não sei se são interessantes, mas vou reportá-las, mesmo assim.

segunda-feira, janeiro 30, 2006

Macintosh Rendition

Ok, este seria o momento em que Darth Vader retira o capacete e sai do Lado Negro da Força.

Há muitos anos tenho uma grande apreciação pelos produtos da Apple. Em especial após o retorno de Steve Jobs no fim dos anos 90 e o surgimento do projeto Rhapsody, para trazer o NeXT para o Macintosh.

Acompanhei o Mac OS X Cheetah, todos os seus bugs, o surgimento de tecnologias muito interessante como aceleração total baseado em placa de vídeo com o Quartz Extreme.

Com o advento do Mac OS X 10.4.4 Tiger e do Mac Mini, resolvi que era hora de aposentar meu surrado Athlon XP 2100+.

O Mac Mini é exatamente isso: uma boa desculpa para que "pecezeiros" como eu traiam a Microsoft em prol da Apple. E o Mac Mini é um extraordinário feito de engenharia: imagine um notebook (sem tela, claro) encaixotado num volume que não ultrapassa uma pilha de 5 caixas de CD.

O Mac Mini do final de 2005 é o melhor de sua linha, com processador G4 de 1.5Mhz (não se esqueçam do mito do megahertz), placa ATI Radeon 9200 com saída DVI, SuperDrive 8x, HD de 80GB 5400rpm.

Até agora já fiz o download de pelo menos 14GB de software (hurras ao BitTorrent) e tudo que eu preciso já está instalado e funcionando. iLife'06, iWork'06, Office 2004, etc. O Bits on Wheels está se tornando um excelente substituto ao Azureus, o Safari pra mim está sendo até melhor que o Firefox, o Entourage do Office 2004 é um ótimo substituto de Outlook.

Minha esposa está igualmente feliz. Depois de desajeitadas tentativas de se acostumar com a rotina do Windows XP, ela finalmente conseguiu se encontrar no Mac OS X. Impressionante como agora ficou super simples para ela encontrar músicas no Limewire, tocá-las no iTunes, organizar suas fotos no iPhoto e mesmo navegar pelo Safari. Foi como tentar ensinar uma pessoa com barreiras naturais, a dirigir num carro normal, e quebrar essa barreira colocando-a para dirigir um Mercedes.

No fundo é isso que a Apple representa: a Mercedes do mundo do desktop. O Windows XP é um excelente carro, digamos um excelente Gol. Boa mecânica, razoavelmente resistente, manutenção barata, muitas oficinas disponíveis e até muitos desmanches. Mas nada substitui o prazer de dirigir um belo CLK, por mais caro que isso seja. É a diferença de ter um bom televisor comum de 29" ou uma TV de Plasma de 42". Apple é um Life Style.

E mais, a engenharia da Apple é impressionante. Deixo meu Mini ligado o dia todo e ele simplesmente não esquenta. Mais do que isso: não faz barulho. Zero, zip, nada. Só se percebe que ele está ligado pelo discreto led branco abaixo do slot do SuperDrive. Meu apartamento está super silencioso, e minha esposa agradece. Muito diferente da minha antiga torre com fonte ATX e 3 coolers ultra-barulhentos (principalmente depois de velhos, com poeira acumulada). Era praticamente uma britadeira numa obra.

Aconselho a todos que tenham possibilidade, fazer esse test drive. Não há arrependimentos, garantido.

sexta-feira, janeiro 20, 2006

História da Família de Linguagens C

Este blog é muito bom: http://dotnetmasters.com/HistoryOfCFamily.htm

Tão bom que resolvi perder alguns minutos para traduzir. O tom é irônico mas as informações são reais mesmo.

1972 - O precursor do C, a linguagem B, é desenvolvida na Bell Labs. A linguagem B é rápida, fácil de dar manutenção, e útil para todos os tipos de desenvolvimento, de sistemas a aplicações. A equipe toda que projetou a linguagem é imediatamente despedida por comportamento inadequado para um empregado de uma companhia telefônica, e o projeto é repassado para Dennis Ritchie. Ele altera a linguagem para ser incompreensível, difícil de dar manutenção e útil somente para desenvolvimento de sistemas. Ele também desenha um sistema de ponteiros que garante que todo programa com mais de 500 linhas vai ter um ponteiro para dentro do sistema operacional.

1982 - É descoberto que 97% de todas as chamadas de rotina C estão sujeitas a ataques de buffer overrun. Programadores C percebem que inicializar uma variável para qualquer coisa que aconteça de estar perdido na memória não é necessariamente uma boa idéia. Entretanto, como forçar uma inicialização correta quebraria 97% de todos os programas C em existência, nada é feito a esse respeito.

1984 - O número de maus ponteiros em sistemas operacionais parece ter aumentado dramaticamente.

1985 - Um variante do C com capacidades de orientação a objetos, chamado C with Classes, é finalizado para ser lançado comercialmente. Entretanto, o nome C with Classes é considerado muito limpo e fácil demais para as pessoas entenderem, então a versão comercial é chamada C++.

1986 - C se torna tão popular que analistas da indústria recomendam escrever aplicações de negócio com ela. Eles argumentam que aplicações escritas em C serão portáveis para muitos diferentes sistemas. Muitos desses analistas da indústria são suspeitos de estarem sobre influência de alucinógenos.

1988 - Analistas da indústria finalmente acabam com o LSD. Quando as alucinações acabaram, eles percebem que aplicações de negócio escritas em C demoram 5 vezes mais para produzir e ainda não são portáveis. Eles param de recomendar que sejam escritas em C, exceto por uma minoria que mudou para cocaína crack e começam a recomendar que aplicações de negócio sejam escritas em C++ porque "orientação a objetos vai resultar em reuso de código".

1990 - Por esse tempo, todos os compiladores C se tornaram compiladores de C++. Mas, como a maioria dos programas C++ não usa nenhuma das funcionalidades de orientação a objetos da linguagem, significa na prática que estruturas de código engordadas e ponteiros no sistema operacional agora estavam sendo compiladas com um compilador orientado a objetos.

1990 - Depois de contratar alguns analistas da indústria que migraram do crack para solvente, a Sun decide criar uma nova linguagem chamada Oak para programar caixas de TV (set-top-boxes). Como todos os seus programadores tinham sintaxe C emaranhada em seus DNAs nessa época, a nova linguagem pega muita coisa emprestada da sintaxe de C e C++. Entretanto, set-top-boxes não tem um sistema operacional para onde maus ponteiros apontarem, então, ponteiros são eliminados da linguagem.

1994 - Alguém na Sun finalmente entende que idéia estúpida foi essa de desenvolver uma linguagem especial apenas para set-top-boxes. A linguagem foi rebatizada de Java e reposicionada como uma linguagem de "Internet" que deveria ser portável para muitas plataformas. Isso funciona bem como campanha de marketing, porque menos de 3% das pessoas na indústria na época entendiam o que era Internet, e porque analistas da indústria alucinados continuam sendo idiotas pela idéia mística de "portabilidade para diferentes plataformas".

1995 - a Sun oferece cogumelos psicodélicos gratuitos para analistas da indústria que, imediatamente, começam a escrever artigos sobre como Java é o futuro da programação por causa de sua portabilidade e integração com a Internet.

Meio 1996 - 17.468.972 artigos aparecem sobre como Java é o futuro da programação. A era dos applets Java em páginas web começa.

Fim de 1996 - Programadores tentando produzir páginas web reais com applets que realmente funcionam cometem suicídio em massa por causa da frustração e depressão. Analistas da indústria aumentam sua dose de alucinógenos para compensar.

1997 - Aceitando os conselhos dos analistas da indústria alucinados, a Corel decide reescrever todos os seus aplicativos, incluindo WordPerfect, em Java. O resultado final é o primeiro famoso processador de textos que é mais lento que usar uma máquina de escrever.

1998 - Percebendo que essa coisa de applet estava esvaindo rápido, a Sun reposiciona o Java novamente, desta vez como uma linguagem de servidor. Eles roubam o design do Microsoft Transaction Server e convencem todos que foram eles que criaram o design.

1999 - Java 2 Enterprise Edition é apresentado para revisão de bêbados e viciados analistas da indústria. 21.499.512 artigos são escritos sobre isso, mas ninguém de fato o usa porque ainda é muito imaturo e caro.

2000 - J2EE finalmente funciona, mais ou menos. Bem na hora que os fornecedores de Java estão prontos para começar a fazer dinheiro sobre ele, a Microsoft anuncia o .NET, que inclui quase todas as funcionalidades do J2EE exceto o custo absurdo. De fato, a Microsoft decide dar o .NET de graça para usuários Windows. Scott McNeally ficou tão estupefato que abre um novo processo irracional contra a Microsoft.

.NET inclui um novo membro na família C, C#, pronunciado "C-pound", continuando a tradição de linguagens nessa família com nomes estúpidos.

2001 - O departamento de marketing da Microsoft percebe que nenhum deles já falou com um desenvolvedor de produto Microsoft vivo. Eles almoçam juntos e descobrem que a pronúncia correta deveria ser "C sharp".

2002 - C# é apresentado como parte de uma versão de lançamento do Microsoft .NET. Desenvolvedores C++ da plataforma Microsoft regorjizam sobre o conceito de "código gerenciado" (managed code), que significa que eles finalmente receberiam as mesmas funcionalidades de gerenciamento automático de memória que o Visual Basic tem desde 1991 e Java tem desde 1995.

Copyright © 1996-2006 by Bill S. Hollis, originally posted on dotnetmasters.com 13 January 2006.
Traduzido por Fabio Akita, 20/Janeiro/2006.

História da Família de Linguagens BASIC

Este blog é também muito bom: http://dotnetmasters.com/historyofbasic.htm

Tão bom que resolvi perder alguns minutos para traduzir. O tom é irônico mas as informações são reais mesmo.

1964 - Um par de instrutores da Dartmouth College decide que eles têm um grupo de estudantes preguiçosos demais para aprender FORTRAN. Eles produzem uma nova linguagem com apenas 26 nomes de variáveis, que até um programador preguiçoso poderia lembrar.

1966 - Os criadores do BASIC decidem que isso nunca terá nenhuma aplicação comercial porque estudantes preguiçosos demais para aprenderem FORTRAN não poderiam possivelmente escrever nada de valor. Eles colocam a linguagem para domínio público.

1973 - A linha de computadores PDP da Digital Equipment Corporation (DEC) se tornam tão populares que até pessoas preguiçosas demais para programar em FORTRAN começam a comprá-los. A DEC decide colocar uma versão do BASIC em suas máquinas. Como seria demais esperar que usuários preguiçosos demais para aprender FORTRAN entendam o conceito de "compilação", a linguagem é interpretada em vez de compilada.

1974 - Jogos de Star Trek são 82% de todos os programas escritos em BASIC nos sistemas de compartilhamento de tempo da DEC, e consomem 99% do tempo disponível da CPU. Jogadores aprendem o conceito de loop infinito quando os jogos começam a repetir sem parar "Tentativa de contato. Contato não estabelecido. Tentativa Klingon de estabelecer contato. Contato não estabelecido …".

1975 - O computador pessoal Altair é apresentado. Ele é tão descabido de memória e poder de processamento que apenas um programa muito simples poderia caber nele. Como se sabe, várias versões do BASIC foram portadas para o Altair. O primeiro é chamado TinyBASIC, marcando o fato que programas podem ter apenas 27 linhas de código, no máximo.

1977 - Hobistas entendem como colocar um pouco mais de memória no Altair, então novas versões de BASIC se tornaram necessárias para sugar toda essa memória. Um deles é o primeiro produto de uma nova companhia chamada Microsoft, que começa sua tradição de copiar idéias de outros produtos e vender versões que requerem mais memória.

1979 - A Microsoft produziu versões de interpretadores BASIC para dúzias de sistemas. A maioria desses sistemas não duram o suficiente comercialmente para alguém descobrir se a linguagem funciona ou não, então a Microsoft aprende sua primeira lição no valor questionável de garantia de qualidade.

1981 - A IBM apresenta o PC. O interpretador BASIC da Microsoft é codificada na ROM para todos os IBM PC originais. Um erro ortográfico faz o comando para executar o interpretador se tornar "BASICA".

1983 - A Microsoft produz seu primeiro compilador BASIC para o PC. Eles estão tão embaraçados sobre ele que convencem a IBM a vendê-lo sobre a marca IBM. O IBM Basic Compiler 1.0 é lançado. Eles permitem os programas a ter um tamanho máximo de 64kb, que é espaço suficiente para um completo e funcional jogo de Star Trek ser desenvolvido.

1985 - Vendo o sucesso do Turbo Pascal para PC, a Microsoft continua sua tradição de copiar idéias, e criam um ambiente de desenvolvimento à base de mouse para seu compilador BASIC. A IBM começa a ter segundas intenções sobre estarem sendo associados com sua linguagem BASIC, então a Microsoft tem que colocar seu produto sobre outra marca. Eles o chamam de QuickBASIC. Eles batizam seu primeiro produto de versão 2.0 porque é o sucessor para o IBM Basic Compiler, e também porque eles esqueceram que ninguém mais sabia disso além deles. Programas agora tem um espaço para programa de 64kb e um espaço para dados de 64kb, permitindo os mais impressionantes jogos de Star Trek já escritos.

1987 - A Microsoft apresenta uma versão reempacotada do QuickBASIC chamada de Professional BASIC Compiler. É a primeira vez que as palavras "Professional" e "BASIC" são usadas próximas uma da outra.

1990 - Alan Cooper começa a trabalhar em um ambiente de desenvolvimento onde até mesmo o layout das telas de uma interface gráfica à base de janelas é conduzida por um mouse. É intencional para programadores preguiçosos demais para escrever código produzirem uma interface gráfica. Como sabemos, ele decide que a linguagem usada para o produto deveria ser uma variante do BASIC.

1991 - Baseado no trabalho de Alan Cooper, o Visual Basic 1.0 é apresentado. Programadores podem instalá-lo e imediatamente escrever maravilhosos programas Windows que não fazem nada de útil, porque eles não conseguem chegar a nenhum banco de dados. Entretando, VB 1.0 de fato permite que a primeira versão gráfica de um jogo de Star Trek seja escrito.

1991 - PowerBuilder 1.0 é lançado. Ele supostamente inclui uma linguagem BASIC para desenvolvimento back-end. Como leva dois meses para treinamento e uma varinha de condão para fazer seus produtos produzirem um exemplo de "Hello World", pouquíssimos desenvolvedores conseguem usar a linguagem para fazer qualquer coisa que não seja um acesso simples a dados.

1992 - O Visual Basic 2.0 é apresentado. Ele ainda não permite acesso a banco de dados, entrão programadores de negócios continuam a ignorá-lo em favor do PowerBuilder.

1993 - O Visual Basic 3.0 é apresentado, com a adição de capacidade nativa de chegar a bancos de dados relacionais. O Visual Basic finalmente pode fazer alguma coisa útil.

1994 - O Visual Basic ultrapassa o PowerBuilder como a ferramenta de escolha para programação de dados em Windows. Muitos desenvolvedores PowerBuilder acidentalmente quebram suas varinhas de condão em desgosto.

Desenvolvedores Visual Basic inventam uma nova maneira de desenvolver aplicações que ultrapassa completamente a reunião de requerimentos, baseado no princípio que "se você não se importa de onde está indo, não precisa de um mapa". Eles escutam o usuário por uma hora, fazem alguns drag and drop de telas, então vêem se é o que o usuário quer, e então fazem o mesmo ciclo várias e várias vezes até (1) o usuário finalmente dizer "não é o que quero, mas como estou cheio de trabalhar com você, eu aceito isso", ou (2) o usuário ficar sem dinheiro e o projeto ser abandonado.

1995 - O Visual Basic 4.0 é apresentado. Ele inclui capacidades de objetos, se você definir "capacidades de objetos" como "alguma coisa parecida com capacidades de objetos, mas não exatamente". Essa versão também faz o Visual Basic totalmente dependente de COM, chegando na era de programas "Hello World" que precisam de quatro disquetes para instalar.

1996 - O Visual Basic 5.0 é apresentado. A instalação do "Hello World" aumenta para cinco disquetes.

1998 - O Visual Basic 6.0 é apresentado. Percebendo a importância da Internet, uma nova funcionalidade chamada WebClasses é apresentada. Quanto menos falar sobre isso, melhor.

1999 - O Visual Basic ultrapassa o COBOL como a linguagem com a maior quantidade de linhas de código escritas. Infelizmente, metade desse código nunca é executado porque é sobra de ciclos anteriores de prototipação, mas o programador nunca tem certeza se é sobra mesmo e, portanto, tem medo de removê-la.

1999 - A Microsoft decide fazer do Visual Basic uma linguagem verdadeiramente orientada a objetos. De verdade. Eles falam sério desta vez. Entretanto, uma mudança tão monumental requer que o runtime VB seja totalmente reescrito. Como uma atitude benevolente, a Microsoft permite que outra linguagens também usem o novo runtime VB, que eventualmente é rebatizado como Common Language Runtime, ou CLR.

2000 - A Microsoft publicamente anuncia o Visual Basic.NET. Como um troco para seus programadores internos que têm escrito em C por toda suas vidas, eles também anunciam uma versão do VB.NET que usa sintaxe parecida com C e tem um editor quebrado. Seu nome é C#.

2002 - O Visual Basic.NET é lançado. A funcionalidade favorita dos usuários do VB clássico é que o "Option Explicit" agora está como "On" o tempo todo, da maneira como deveria ter sido 6 versões atrás.

2005 - A Microsoft lança Visual Basic 2005, que contém Wizards para geração de código para um jogo totalmente funcional de Star Trek.

Copyright © 1996-2006 by Bill S. Hollis, originally posted on dotnetmasters.com 13 December 2005.
Traduzido por Fabio Akita, 20/Janeiro/2006.