[Off-Topic] Uma Nova Era para a Microsoft

2016 March 31, 16:10 h - tags: microsoft off-topic

Atualização 07/04: o preview já saiu antecipando o lançamento em Junho. Se você for membro do programa Insider, baixe e teste já. Deixe suas impressões nos comentários.

Ontem foi um dia histórico para a Microsoft, eu acho que pode ser um divisor de águas - na minha visão pessoal, pelo menos. Desde ontem estou tentando pensar em como deixar isso registrado para a posteridade.

Prólogo - 1995 a 2005, 1a Década

Digo isso para nós, desenvolvedores de software. Conhecemos alguns divisores assim na história. Por exemplo, o lançamento do Turbo Pascal em 1983, o lançamento do Visual Basic em 1991, o lançamento do Java em 1995, as primeiras distros de Linux como o Slackware a partir de 1993, o lançamento do OS X em 2000 e a transição de PowerPC para Intel em 2005.

Os anos 80 e 90 foram conturbados, uma época de crescimento acelerado, tudo ficava obsoleto muito rápido. Numa década, de 1989 até 1999, eu passei de Basic, pra dBase, pra Clipper, pra Fox Pro, pra Visual Basic, pra Delphi, pra Java, pra multimídia (Flash, Director/Shockwave), pra Internet (HTML, Javascript, ASP, PHP, Perl). Nunca experimentei uma década onde as coisas andaram tão rápido. Fui de um computador XT de 4Mhz pra Pentium III de quase 1Ghz nessa 1 década.

Chegamos ao final do século, ao ápice da Bolha da Internet, tivemos 9/11 em 2001 e o crash. Mas a Internet chegou para ficar e dispositivos começaram a despontar com os Palms e iPods. Em 2001 a Microsoft lançou seu Windows XP e amargaria a próxima década levando seu legado nas costas. Ao contrário, um ano antes a pequena Apple iniciara seu levante, os novos iMac, iBook e iPod, o novo OS X baseado em BSD UNIX e um passo de cada vez em criar um sistema perfeito para consumidores e desenvolvedores, a promessa da NEXT criando forma uma década depois de sua incepção.

Então, em 2005 a Apple forjaria aliança com uma das mais antigas companheiras da Microsoft, a Intel e finalmente Macs rodariam no mesmo processador que o Windows, dando um salto estratosférico em adoção. Esse salto ainda possibilitaria mais: já que o OS X foi feito agnóstico de processador, era questão de tempo até rodar em processadores ARM, menores e mais eficientes, e foi o que aconteceu em 2007 com o lançamento dos iPhones, o resto é história.

2005 a 2015 - 2a Década

Enquanto isso a Microsoft ficou pra trás, teve o fracasso com a promessa do Windows Vista, um Windows 7 até competente com a sequência do controverso Windows 8. Finalmente, com o lançamento do Windows 10 no final de 2014 é que as coisas começaram a mudar. Os efeitos da morte de Steve Jobs no final de 2011 começaram a ficar mais aparentes: a Apple parou.

De 2011 até hoje tivemos novas versões, apenas. Nada significativo. Nada novo. O último grande iPhone foi o 5 de 2012. O último grande felino do OS X foi o Mountain Lion de 2011. Enquanto isso o Google passou à frente no mundo mobile quando o KitKat foi lançado em 2013, pra mim a primeira versão que ficou em nível de igualdade com os iOS.

Em resumo, de 1999 até 2005, no geral, havia 2 opções para desenvolvedores de software enterprise: Java e .NET. Sim, PHP tinha boa adoção mas na maioria como customizações de Wordpress e Magento, não para a mesma categoria que Java ou .NET e o resto era nicho. Mas a partir de 2006 iniciou uma nova geração de desenvolvedores para a chamada Web 2.0, o mundo pós-Google, SEO, UX, iterações rápidas, Agilidade com "A" maiúsculo. Foi onde Ruby, Python, depois Node aceleraram exponencialmente.

A partir de 2010 a mundo mobile acelerou e, em particular, um tipo de desenvolvimento integrado: baseado em "Cloud" onde uma "app" nativa fala com serviços em servidores remotos, particularmente da Amazon AWS, que estreou não fazia muito tempo, em 2006.

A Microsoft ficou de fora desse movimento e teve que gastar os 10 anos seguintes à ressaca do Vista correndo atrás. Mantendo a liderança em mercados puramente enterprise com licenças de SQL Server, Office, mas à margem do "cutting-edge" do desenvolvimento de software.

Na verdade eu diria que o divisor de águas veio em 2013, com a saída de Ballmer e o fim da "Era Extendida de Gates" com a entrada de Satya Nadella. Obviamente a Microsoft é uma entidade gigante e muitos cérebros já pesquisavam fazia alguns anos e muito disso só veio aparecer agora. Mas digo "Eras" mais no sentido simbólico, o fim da cultura Highlander da Microsoft "there can only be one".

A profecia de 1995 de que a Internet destruiria a hegemonia do Windows aconteceu. E no mundo pós-Moore onde a computação se tornou não só acessível como ubíquita. Pense nisso: em 1995, ter acesso a um cluster de "super" computadores para realizar computação distribuída de alto processamento era algo apenas acessível em universidades ou grandes corporações. Hoje? Crie agora mesmo um cluster de quantas dúzias de computadores quiser no EC2 por um mês pelo equivalente a um videogame.

Eu fui usuário de DOS desde 1988, mudei para Windows 95 logo que foi lançado e passei quase 10 anos primariamente desenvolvendo em Windows em ambiente corporativo. Passei de Visual Basic para ASP para .NET ao mesmo tempo que fazia Java, PHP. Mas eu queria poder usar Perl, PHP, Python, Ruby nativo de Linux. Mas também não queria abrir mão de Office, Photoshop.

A resposta que já esperávamos era o OS X. Com o lançamento do Tiger a coisa ficou séria. Eu mesmo experimentei com o Mac Mini G4 em 2004. Era excepcional ter uma usabilidade muito melhor que Windows XP e acesso a tudo de UNIX que queria numa única máquina.

Quando a Intel lançou o Core Duo e depois o Core 2 Duo de 64-bits e o Tiger passou a rodar em Intel em 2005, não havia o que pensar: era hora de migrar. Agora eu passaria a década seguinte em ambiente puramente OS X e desenvolvendo em outro tipo de plataforma, com outros tipos de ferramentas e outro tipo de cultura de desenvolvimento. Foi toda minha história com Ruby e OS X nos últimos 10 anos, que vocês devem conhecer bem se acompanham este blog.

2015 em diante, Epílogo

2015 chegou. 4 anos depois da morte de Steve Jobs. Foi um gap importante porque deu tempo para as outras plataformas não-Mac finalmente se equipararem e superarem em muitas áreas. Estamos definitivamente na Era do Software como Serviço. Não "compramos" mais nada, "assinamos" serviços.

Passamos da Era Pós-PC. Passamos da Era Smartphone. Estamos na Era Serviços. Tudo é um serviço. Nossa identidade é um perfil do Facebook. Nossa voz é o Zap Zap. E tudo que fazemos gera dados. Estamos na Era Big Data. Um monte de dados inúteis que nenhum SQL Server do mundo é capaz de manter.

Precisamos de coisas novas que consigam lidar com esse novo paradigma: Cassandra, Riak, Hadoop, HBase, Spark, Elasticsearch, Go, Rust, Elixir. Todos eles "rodam" em Windows. Alguém tem que gastar tempo fazendo ports, criando patches de compatibilidade, empacotando instaladores, e - o principal - a maioria dos desenvolvedores de cada uma dessas tecnologias está ou em Linux ou em OS X, quase nenhum está ativamente desenvolvendo essa nova geração de ferramentas dentro do Windows. Todos estão usando Emacs, Vim ou Sublime Text, quase ninguém quer usar Visual Studio.

E isso volta ao início do meu post: é uma nova Era para a Microsoft. Ela sofreu os últimos 10 anos correndo atrás e, pela primeira vez, parece que ela tem chances reais de dar a volta por cima e voltar a ser relevante para desenvolvedores não-.NET novamente.

Para isso 2 coisas aconteceram ontem.

2016 - O Ano do Linux no Desktop

Primeiro, o anúncio do "Bash está chegando ao Windows". Que na verdade é muito mais do que simplesmente o Bash no Windows. É uma associação com a Canonical - que já se iniciou com o anúncio do SQL Server rodando em Linux - que na prática é um subssistema Linux rodando paralelamente à kernel do Windows e traduzindo chamadas de sistema Linux para Windows. A idéia original veio no falecido Projeto Astoria ou Windows Bridge for Android, cuja idéia na época era pra permitir apps Android de rodar em Windows. Tecnicamente o Android é um tipo de Linux, daí foi um salto para ontem.

Assim será possível pegar um binário feito para rodar em Ubuntu e rodá-lo no Windows sem modificar nada!

Desde que começamos a desenvolver com Ruby, muitos que utilizam Windows gostariam de poder rodar Ruby nativamente no Windows. Existe uma distribuição mas não é boa, e não é culpa dos mantenedores. O Ruby, assim como Python, PHP e tudo mais, foi feito para funcionar em Linux. Para portar para Windows é preciso fazer "wrappers" e fora nao ter um ambiente com compiladores como GCC por exemplo, para compilar pacotes de extensões. Tudo isso é trivial no Linux mas uma verdadeira dor de cabeça no Windows. Não vale o trabalho, portanto a única solução era rodar uma máquina virtual (como Virtual Box) e usar algo como Vagrant para facilitar o trabalho e usar o verdadeiro Ruby de Linux.

Tudo de Linux que "funciona" em Windows, seja Python ou PHP mesmo, nunca funcionou 100%, e nós simplesmente nos acostumamos a isso.

O que a Microsoft vai lançar no Anniversary Update não é uma máquina virtual, um hypervisor, é uma camada muito fina de tradução no nível mais baixo: de uma kernel Linux "virtual" para a kernel do Windows. Tudo vai pensar que está rodando no Linux. É o que o projeto Wine vem tentando fazer para rodar aplicações Windows no Linux, só que ao contrário. Também não é a mesma coisa do Cygwin, que exige recompilar tudo do Linux para ter um ambiente semi-Linux sobre o Windows.

Provavelmente não haverá ambiente gráfico secundário num primeiro momento, portanto nada de X, então nada de GNOME ou KDE. E nem precisa, estamos num mundo Web: nosso ambiente gráfico agora é HTML e Javascript e Chrome e Firefox todos existem nativos em Windows. Para coisas como compilar gems com extensões nativas, até mesmo o GCC vai funcionar! Não é uma adaptação é exatamente o mesmo binário, no mesmo ambiente, podendo contar com tudo que estamos acostumados em ambientes UNIX. Ter o Bash, ter o SSH, no Windows, é só a ponta do Iceberg.

O segundo anúncio é o lançamento das ferramentas Xamarin gratuitamente e como open source! A Microsoft adquiriu a Xamarin de Miguel De Icaza recentemente, eles desenvolveram o .NET open source por pura engenharia reversa, reimplementando tudo como open source e agora a Microsoft finalmente fez a coisa inteligente. Não somente os adquiriu como abriu suas ferramentas. A última coisa que poderia segurar um desenvolvedor em Mac seria a necessidade de desenvolver para iOS usando o XCode que já vem no OS X, mas agora você pode fazer isso em Windows gratuitamente!

Portanto, a conta ficou bem mais simples agora. O Windows 10 finalmente é a primeira versão respeitável de Windows desde o breve intervalo que foi o 7. Vamos esquecer o que 8 existiu da mesma forma que já esquecemos do Vista. O XP finalmente morreu, levou mais de uma década pra isso, junto com os horrorosos Internet Explorer 6, 7, 8. O Google nos fez o favor de tornar o Chrome ubíquito e serviços como Facebook obrigaram os usuários a migrar mais rápido também.

Com o Windows 10 Anniversary Update provavelmente vamos poder fazer:

1
2
3
4
apt-get install build-essential
\curl -sSL https://get.rvm.io | bash
rvm install 2.3.0
bundle install

E tudo deve funcionar!

No mesmo ambiente ainda poderemos usar Xamarin Studio e com um pouco de esforço pra relembrar os músculos de C# vamos poder criar apps iOS e Android. Poderemos usar Office 365 nativo, todas as ferramentas mais recentes do Adobe CS6 e poderemos até mesmo jogar The Division, tudo na mesma máquina!

De uma só vez, o Windows 10 será a escolha com o melhor custo-benefício tanto do ponto de vista de comodidade de uso, opções de desenvolvimento, e hardware competente na forma de Surface Book, Lenovo Yoga 3, Razer Blade Stealth que finalmente alcançaram e ultrapassaram o lendário acabamento dos Macbook.

2016 finalmente é o famigerado Ano do Linux no Desktop, só que não como o povo de Free Software gostaria que fosse. Não se pode ter tudo.

Comments

comentários deste blog disponibilizados por Disqus