Not sad at all
Antony Satyadas, on a blog entry at developerWorks, said something that I find interesting.
It's interesting because it reflects a pervasive, and incorrect, point of view regarding past performance of Microsoft.
The entry is here and refers to two other articles with the second one creating somewhat of a stir among those interested in our craft. I won't quote much (because there isn't), but I'll comment on a few of his quotes:
"The future of America is presently in peril, not just because of the
shadowy ways of the "banksters," but because of a sputtering innovation
engine that's had the fuel choked off"
Gordon T. Long, former IBM and Motorola exec
I am not surprised, and I kind of agree with his point. Far too much is made elsewhere and the knowledge to design stuff is not that much important (or relevant) if you lose the capacity to build the stuff you design. Manufacturing capacity is not something you rebuild overnight. Although it seems true the US has a serious problem at hand, that's not my point (I don't even live in the US, I just like you guys and wish you the best). My point is far less important, but, I hope, much more interesting.
"But the much more important question is why Microsoft, America’s most
famous and prosperous technology company, no longer brings us the future"
Dick Brass, former Microsoft VP
I am not shocked Dick Brass thinks Microsoft used to bring "us" the future. He worked there after all bringing whatever passed for the future to whoever passed for customers. What I am surprised is how easily one forgets the past. Microsoft's first product was a version of the BASIC programming language (something that already existed) for 8-bit microcomputers (something someone else built). Mind you - the only future they were bringing was a smaller, less capable version of something mini-computer owners already had. For a couple years.
Microsoft's only true paradigm-shifting early moment I can remember is Bill Gates' "open letter to hobbyists" that complained about people sharing software (some of it copyrighted and not targeted for sharing, but for selling). While he was right people should not pirate the software he wanted to sell, I like when people share what they do. Actually, I am using the end result of such sharing right now. And, if you are reading this, so are you.
One could think of the Z-80 SoftCard (I have two of them in working condition) as innovative, because it allowed an Apple II to run CP/M software (the OS that ran most of Microsoft's offerings). It was good, but was it "innovative"? Remember: at that time, computing was much more diverse (less boring) and machines with more than one processor, if not the majority, were not uncommon.
Then one could think of MS-DOS, except for the fact that it was not created by Microsoft. And, while we are at it, it's more or less a CP/M knock-off written for 8086 processors. It was also horrible to use (but, in that regard, CP/M was not very impressive either). Even at that early age, mostly silent Apple IIs humiliated bulky and noisy PCs in terms of ease of use. Apple's DOS 3.3 had long (33 character) file names. In 1978, IIRC. PC users had to persevere until the early 90's to finally have them.
MS-DOS beget Windows, which was more or less a cheap knock of of various concepts (the Xerox Alto family, the PERQ, the Lisa and the Macintosh) that ran on lesser computers. If a PC was "legacy" in 1984 (Windows was eventually a hit because it ran on computers people already had), the fact I am writing this on one (even if it's a multiprocessor sub-notebook running Unix) is inexcusable. This legacy held back progress in ways far too disgusting for me to properly discuss here.
"Microsoft has become a clumsy, uncompetitive innovator. Its products are lampooned, often unfairly but sometimes with good reason."
Sorry. It never was anything but clumsy and uncompetitive. Their first market breakthrough, with MITS BASIC, was achieved through bundling a copy of BASIC with every MITS computer. They made one sale: to Ed Roberts. Their next one, was with MS-DOS coming bundled with IBM PCs. They achieved market dominance through deals with manufacturers, not by providing superior value to customers (although they do provide some value - mostly comedic, IMHO). Microsoft has always followed the safe path first traversed by others and then taking the easy short-cut, usually through the boardroom.
"Microsoft is no longer considered the cool or cutting-edge place to work. There has been a steady exit of its best and brightest."
I am embarrassed I did, in the late 80's and 90's, entertain such fantasies. I really thought Windows was cool. That NT was cutting edge (it was, after all, one of the first products to announce - but, IIRC - not to deliver - multi-processor support with multi-threading) and that Microsoft could be the right place for me. But at that very same time, I was getting enlightened. I saw Alto (in BYTE issues, at leat), Smalltalk (I bought the blue book), Lisp (it felt funny at first), and various unixes, from AIX to Solaris. How liberating for a computer guy to arrive at the simple idea that something is ready not when there is nothing more to be added, but when there is nothing more to be removed. Form and function in perfect elegance.
Because Microsoft is seen as a successful company, many people feel compelled to revise the past (to be fair, not everybody has been hanging around since the mid 70's) to make it more brilliant than it was. They were good. Not, perhaps, as good as the Bell Labs folks. Not nearly as good as Xerox. Certainly not Jobs-and-Wozniak good. But good does not translate into dominating the market and dominate the market they do. You don't have to be that good. Being clever and relentless and adequately connected will, eventually, be enough.
And so, I am not surprised Microsoft is now perceived un-cool and un-innovative. Like its products, it has become bloated and slow, as any monopolist is, and even more reluctant to innovate than it ever was, as any monopolist is expected to be. When your strategy is winning, you don't change it on a whim.
This will, eventually, bring its demise, as it brought it to IBM before (by the hands of none other than Microsoft - oh the irony).
In the meantime, I have popcorn and I am watching.
Programação como arte performática
O "Dueto das Flores", parte do primeiro ato de Lakmé, nunca deixou de me comover.
A busca da beleza deve sempre fazer parte da nossa vida e do nosso trabalho. Foi pensando nisso que eu resolvi colocar aqui esse vídeo que mostra uma performance pouco usual. Talvez muitos nunca tenham pensado em programação de computadores como uma arte, muito menos como uma arte performática. Para muitos, programar é apenas um trabalho como qualquer outro.
Não é.
Ou, pelo menos, não precisa ser.
Prime Factors Kata in Ruby, Flower Duet, Lakme' por unclebob no Vimeo.
Sempre que programamos, estamos, como na poesia, buscando aquele ponto preciso entre concisão e expressividade, como no design, entre minimalismo e funcionalidade, ou como nas artes marciais e na dança, onde buscamos o movimento e o equilíbrio harmônicos e perfeitos. É o exercicio da precisão na manifestação de idéias.
O original do vídeo você encontra aqui, explicações de como e porque foi feito, aqui. A primeira versão do Dueto das Flores que se ouve no vídeo é a do grupo inglês All Angels, a segunda, do East Village Opera Company, mas eu, pessoalmente, prefiro uma interpretação menos pop-music.
IRC para trabalhadores oprimidos
Para muitos, IRC é uma tecnologia quase esquecida.
IRC, para quem nunca soube (ou já esqueceu), é uma sigla para Internet Relayed Chat. Uma rede IRC é composta de servidores (nós) aos quais você se conecta usando um cliente IRC. Nessas redes você encontra usuários, que estão se comunicando em um ou mais "canais".
Essas redes de IRC têm um papel central em muitos projetos distribuídos. Uma das mais importantes é a freenode. É nos canais dela que os usuários e criadores de vários (na casa de centenas) produtos se encontram para trocar idéias, tirar dúvidas e sugerir alterações. É muito mais rápido do que perguntar algo numa lista de e-mails. Foi no canal "#httpd" (do pessoal do Apache) que eu resolvi um problema de configuração em que eu esbarrei hoje de manhã. Não é exagero dizer que as redes de IRC são um dos pilares do desenvolvimento de software de código aberto. Sem elas, a comunicação seria muito mais complicada.
É, por isso mesmo, um recurso extremamente valioso.
Infelizmente, por questões as mais variadas, muitas empresas bloqueiam as portas por onde passa o tráfego de IRC nos seus firewalls, isolando seus usuários. Quem trabalha nesses lugares acaba até mesmo esquecendo que redes IRC existem ou acaba com a falsa noção de que ninguém mais usa. Acaba sendo obrigado a resolver seus problemas pelas listas de discussão por e-mail. Lento, doloroso e ineficiente.
Para nossa sorte, o bloqueio das portas do IRC não quer dizer que esses proletários oprimidos precisem viver em isolamento, incapazes de se mobilizar: algumas dessas redes - a freenode entre elas - têm fronts HTTP. Para usar o front HTTP da freenode, você só precisa digitar o endereço http://webchat.freenode.net/ no seu navegador, escolher um nickname e um canal no qual entrar. Daí em diante, é como se você estivesse usando um cliente IRC no seu próprio computador. Para saber mais sobre como se usa o IRC (e etiqueta é importante), eu recomendo o IRC Primer.
De resto, se você está lendo isso de dentro de uma rede em que não consegue usar um cliente IRC de verdade, não pense duas vezes: saia explorando, aprenda e converse. Há um monte de gente lá esperando por você.
O Plone Symposium e porque você devia ir
Eu sempre recomendo que coisas importantes recebam a devida atenção.
É por isso que não me incomodo muito em ver sites descartáveis sendo feitos com tecnologias como ASP, JSP ou PHP naquele modelo antigo que mistura apresentação com lógica. É como na construção de cenários - você não vai usar madeira se isopor e lycra resolverem. Concreto armado, nem pensar. Site descartável é como aqueles escritorios que são erguidos para vebder apartamentos na planta: ele só precisa ficar lá até vender unidades suficientes para começar a obra. Depois disso, vai ser derrubado. Ele nunca vai desenvolver uma goteira ou ganhar mais um piso.
Com sites, a situação é parecida.
Se seu site for só um cartão de visitas feito pra dar seu e-mail de contato ou telefone, tudo bem você montá-lo com qualquer coisa. HTML estático está bom demais.
Por outro lado, se você precisa viver com um site, é bom fazê-lo direito. É importante separar a aparência dele (que pode mudar radicalmente a qualquer tempo) do conteúdo (que tende apenas a aumentar) e de eventuais aplicações que rodem dentro dele (se seu CMS deixar você fazer esse tipo de coisa).
É por conta disso que eu gosto tanto do Plone. Ele traça uma linha muito nitida entre conteúdo e forma e, por conta de como é construído, em torno de um banco de objetos (e não um banco relacional, como a maioria dos concorrentes) ele torna ridiculamente simples fazer aplicações de workflow ou de gestão de conhecimento.
E quando eu digo ridículo, é porque, tipicamente, você só precisa gerar alguns diagramas UML e entregá-los a uma ferramenta que faz o resto.
Uma digressão rápida: no meu livro, guardar documentos dentro de um BD relacional, como faz o SharePoint, é motivo para justa-causa. Guardar ponteiros para um sistema de arquivos é apenas marginalmente melhor. Mas isso é material para outro artigo, não para esse.
E aí eu entro na parte realmente importante: se você tem problemas com sua intranet e gostaria que ela fosse mais manejável, compatível com mais navegadores (diga a verdade - é um porre quando a empresa padroniza em IE 6 porque fez a burrada de crira aplicações importantes que não rodam nem mesmo nas versões posteriores dele, quanto mais em navegadores mais modernos), que pudesse guardar seus documentos do Office (ou do OpenOffice, ou do iWork, se você tem Macs), que tivesse uma busca que funciona (porque você quer encontrar os documentos que colocou lá), que tenha undo sem nunca precisar de um restore do banco de dados (porque todo mundo erra de vez em quando) e que, no geral, envelheça mais graciosamente do que aquelas coisas com que você está acostumado, dê uma olhada no Plone.
Eu sei... Eu sou - e assumo - um fanboy do Plone. O dieblinkenlights é feito em Plone. Por vários anos o Plone pagou - não paga mais - minhas contas. O DBL é feito em Plone porque eu sou muito preguiçoso e não quero ter dores de cabeça com o site. Ele simplesmente funciona e tem sido assim desde que ele existe. E é assim que um CMS tem que ser.
Na semana que vem acontece em São Paulo o Plone Symposium South America. É a primeira edição do evento e vale a pena você ir. Vale a pena, não importando se você usa ou não Plone. Mesmo que você seja um usuário de Joomla, Drupal ou, coitado, de Sharepoint, vale a pena ir. Vale a pena para saber o que o outro CMS, aquele que você não usa, tem para oferecer.
Na pior das hipóteses, você sai com uma lista de features para serem implementados no seu que deve manter seu pessoal de desenvolvimento ocupado por algum tempo.
Mas, se você tiver mesmo sorte, você sai de lá um usuário de Plone.
Seus usuários vão agradecer.
Nota: este artigo também foi publicado no Webinsider, em http://webinsider.uol.com.br/index.php/2009/11/19/em-defesa-do-plone/.
