Voltei a usar linux como meu sistema principal e vi que todas as ferramantas que eu uso são multiplataforma. Decidi fazer uma pequena pesquisa sobre como os desenvolvedores usam seus sistemas operacionais e quais seriam suas limitações em usar linux, caso ainda não o usassem.
Para compreender melhor se isso acontecia com desenvolvedores profissionais, e/ou com estudantes, pois o sistema usado para ensino provavelmente será o que os futuros profissionais usarão no mercado de trabalho.
Tive 20 respostas no total. Metade delas foram de estudantes. Apesar da amostra ser bem pequena, pude entender um pouco sobre como os desenvolvedores pensam sobre o assunto. Abaixo estão algumas imagens das respostas das perguntas, juntamente com minhas observações pessoais(e nada científicas) sobre as respostas.
Metade das respostas foram de estudantes. Quando alguém responde a primeira pergunta como estudante, algumas perguntas a mais são mostradas para responder:
A média das classificações está relaticamente alta. Como a pesquisa foi feita com brasileiros, eu arriscaria dizer que a satisfação alta do curso pode acontecer pelo entrevistado não ter conhecimento do que é pedido no mercado de trabalho. Percebo que as faculdades/universidades brasileiras não estão preparando o jovem para o mercado de trabalho... já que os cursos tendem a usar metodologias, tecnologias e exemplos ultrapassados. Não é a toa que muitos estudantes fazem cursos (paralelos à graduação) para aprender programação e conceitos de computação. Falta conteúdo usável e aplicável nas universidades.
Analisando a combinação das duas respostas, eu imagino que os alunos que responderam "não", para a pergunta 3, são aqueles que também deram notas mais baixas para o curso. Eles sabem que o mercado pede muito mais do que a universidade pode oferecer. Como a primeira pergunta permite apenas uma resposta, alguns entrevistados podem ter respondidos como "estudantes", mas também serem desenvolvedores meio período, ou em estágio.
A maioria dos usuários está usando Windows, e isso já era uma resposta esperada.. afinal, Windows é o sistema operacional que tem mais usuários. Me surpreendi com 7 entrevistados usando linux. Eu imaginava que os números seriam menores!
Para os usuários de sistemas operacionais diferente de linux, foram feitas outras perguntas:
As duas perguntas podem ser analisadas em conjunto, para conseguir compreender o motivo das respostas. Quando perguntados sobre o possível problema em trocar de Sistema operacional, os entrevistados podiam escolher diversas opções. Em segundo lugar, ficaram empatadas as opções "Dificuldade em usar o sistema" e "dificuldade em instalar e configurar programas". Estas duas dificuldades estão relacionadas, já que a instalação, configuração, e uso do sistema fazem parte da curva de prendizado do usuário.
Em último lugar, ficaram "Não ter drivers para meu computador" e "outras", com duas respostas personalizadas:
- "O Linux não possui algo relevante a ponto de me fazer migrar do Mac."
- "Programo no trabalho principalmente e toda a empresa usa Windows"
Quanto aos drivers: Falarei sobre a minha relação com Linux e drivers em outro post. Esse assunto rende muito texto...
Quanto as respostas personalizadas:
- Faz sentido o linux não mostrar algo relevante em relação ao mac, afinal os dois tem o mesmo "pai" no unix. Inclusive os dois usam o bash como prompt de comando. Os dois são muito parecidos, por baixo dos panos.
- Quando a empresa usa linux e você precisa usar também, realmente não faz sentido trocar o sistema operacional. Entretanto, quando você não é obrigado a usar um determinado sistema operacional, existem alguas ferramentas que funcionam no linux que podem te ajudar. A montagem de servidores de teste, por exemplo, fica muito mais facil. Além de serem muito mais levez que o windows, no quesito uso de recursos de máquina (Windows 10 usa em torno de 4GB, enquanto uma distribuição linux considerada peso médio usa 1GB ou menos)
Voltando à pesquisa: A resposta que ficou em primeiro lugar: "Não possuir os programas que eu uso diáriamente". Este é o ponto que eu queria chegar. Nesta pesquisa não foi perguntado quais programas são usados, mas pretendo fazer uma nova pesquisa com os entrevistados que permitiram contato posterior para saber sobre o ambiente de desenvolvimento deles.
Por enquanto, podemos apenas imaginar quais as tecnologias usadas que não existiriam fora do ambiente windows. C#, VB, F#, etc.. São as candidatas mais prováveis... Talvez ainda possamos incluir o SQL Server, caso o desenvolvedor/estudante use uma base de dados na própria máquina.
Como um entusiasta de C#, creio que a migração do C# para o C# core (que é multiplataforma) já está acontecendo, mas vai demorar até atingir todas as empresas. A versão 3.0 do "dotnet" já possui suporte para WPF no windows, facilitando ainda mais a mudança. A recomendação da própria Microsoft é usar o C# e .NET core para novos projetos
F# já funciona com o pacote de .net core (dotnet) e portanto já funciona em ambientes linux.
VB não é uma linguagem que eu conheça muito, mas até onde tenho conhecimento ela poderia ser executada via mono. Não sei as implicações para os desenvolvedores, nem quais problemas seriam encntrados ao compilar para um cliente com windows.
Se os programas que faltam são as IDEs usadas..... então creio que apenas o Visual Studio seja o problema. Todas as outras IDEs que conheço são multiplataforma, como o Visual Studio Code, que é a IDE que teve a adoção mais rápida pelos usuários. Ela está em primeiro lugar nos rankings do stackoverflow 2019, com 50,7% de uso. Ela também tem um debugger muito bom, para várias linguagens.
Revendo o linux no primeiro trimestre de 2019
Depois de instalar uma nova distribuição de linux (MX Linux), baseada em Debian, na minha máquina, pude ver que o mundo do linux mudou muito, e mudou para melhor. O meu maior problema sempre foi instalar os drivers da placa de vídeo(NVidia), mas nesta distribuição já veio instalado, e pronta para uso. Não tive tempo de testar em jogos, mas creio que tudo ocorrerá bem.
Para instalar programas, o sistema tem um programa de instalação, para instalar programas que você possa precisar sem precisar abrir o terminal para fazer as instalações (apesar de ser possível). Neste aplicativo eu eoncontrei quase tudo o que eu buscava. Não encontrei o VS Code (Que pode ser instalado facilmente no ubuntu, via snapp),e nodejs, que eu fiz a instalação manual. Skype, OBS Studio, Google Chrome, etc... estavam disponíveis no programa.
Para meu desenvolvimento atual, que inclui C#, javascript, typescript, ionic, e algumas coisas no azure, o linux está funcionando perfeitamente. Eu gostaria de ir mais a fundo nos problemas que os desenvolvedores tem para saber o que pode ser feito para ajudar e incentivar o uso do linux como sistema operacional padrão.