O que você ganha programando com Linux?
Com o enorme crescimento na área de TI oferecendo cargos e oportunidades interessantes, cresce a demanda de profissionais capacitados, tendo diversos tipos de cursos presenciais ou à distância via internet, grande parte com ótima qualidade. Aprender programação se tornou algo fácil de aprender, tendo em vista a grande quantidade de material gratuito que encontramos pela internet, seja através de livros, tutoriais, artigos ou vídeo aulas, mas porque muitas pessoas indicam Linux para programação?
O todo poderoso terminal
O terminal é essencial para a vida de qualquer programador, com comandos rápidos para navegação entre pastas, criação de projetos ou até mesmo programando dentro dele através do VI (Vim). O DOS do Windows tem ‘poderes’ semelhantes, mas para se equivaler ao do Linux são necessárias algumas configurações, atrapalhando o processo de aprendizado.
Eu por exemplo comecei realmente a aprender a programar (Python) quando decidi migrar do Windows para o Ubuntu, as facilidades, ferramentas e desempenho foram fundamentais para dar um enorme alavanque na curva de aprendizado.
As quantidades de ferramentas livres
Ferramentas excelentes existem para todas as plataformas, algumas são pagas e outras livres, mas a grande diferença é a quantidade de opções que o Linux oferece gratuitamente, tendo poderosas opções que não deve muito se comparar as opções pagas. Aptana, Geany, NinjaIDE, Bluefish, Gedit, SublimeText, VI, e muitos outros.
Servidores geralmente são Linux
Grande maioria dos servidores tem como o Linux seu sistema padrão, a capacidade de processamento, segurança e estruturação são superiores aos concorrentes, e pelo fato de você criar suas aplicações já em um sistema Linux torna mais fácil de poder fazer deploy.
Suporte da comunidade
Encontrar materiais de estudo sobre tecnologias open source é fácil, existem diversas pessoas que postam em blogs e sites ensinando suas técnicas, processos e dicas.
A cultura open source é sensacional, pois é natural retribuir com outras pessoas o que você aprendeu há algum tempo atrás. Não é a toa que grande parte dos sites e aplicativos mundo afora é construída a partir de tecnologias livres.
Google utiliza Python, Twitter utiliza Ruby on Rails, Instagram utiliza Django, e muitos outros.
O que você ganha programando com Linux? Diga nos comentários compartilhando conteúdo para iniciantes, caso haja dúvidas ou queira informações a respeito das tecnologias citadas, comente que irei logo depois lhe indicar os caminhos para que possa aprender.
Ei Erick, muito bom seu tuto e ou post …rs
Vi no sei perfil (aqui mesmo) que vc trabalha com Flash e AS3, manow, eu gostaria de saber se tem algum software pra poder programar AS com flash no Linux?
Eu tb curto programar com flash e AS, mas infelizmente ainda não encontrei uma IDE similar ou parecida com a da adobe para trabalhar com Flash ¬¬
Temos como IDE de desenvolvimento o FlashDevelop (http://www.flashdevelop.org/) que pode ser utilizado no Linux, porém uma alternativa boa sem ser o Flash não existe. Depende da forma de programação, caso desejar você pode ver Flex, porém não aconselho pois infelizmente a tecnologia está em decaída.
Trabalhar diretamente com o Flash, apenas a IDE flash mesmo. Acredito que não há outra forma além do Flex, isso varia de acordo com o que for desenvolvido.
Abraço!
Eric Hideki, o que você indica para quem quer iniciar na programação? De repente os próximos post´s possam vir umas dicas para iniciantes.
Andre, depende que tipo de indicação. Se for de linguagem ou tecnologia devemos levar em consideração um ponto relevante: “Open source ou empresarial”. Como assim? Open source são tecnologias e linguagens como Python, Ruby, PHP, já as empresariais seriam como .NET ou Java(Java é tanto empresarial como livre, dependendo do ponto de vista).
Todas elas tem material de alta qualidade que pode ser encontrado facilmente através de tutoriais e livros, cabe escolher qual delas se identifica mais e mandar bala.
Dica para aprendizado: Insista, programação é fácil de aprender o básico, porém depois, assim como qualquer outra coisa é necessário aplicação e vontade. Indico para você conhecer lógica de programação e etc, Python ou Ruby, ambas as linguagens tem uma galera fera que está disposto a te ajudar, até eu no caso pois no meu blog pessoal escrevo artigos para iniciantes, você está convidado para dar uma olhada.
E se não souber nada, aconselho um curso, não precisa ser nada caro ou algo do tipo, a curva de aprendizado será menor, mais rápida e com menor sofrimento.
Grande abraço!
Ótimo texto Eric!
Só comecei a programar(ou tentar) quando conheci o mundo Linux, comecei brincando com Shell Script e ai que passei a gostar. A sensação de você criar algo e ver funcionando, por mais que seja simples, é maravilhosa! Hoje uso Ubuntu/Linux para tudo, não só para programar.
Infelizmente para mim eis aí um tema que é um verdadeiro desafio. Nunca consegui programar absolutamente nada e o curioso é que sempre “sonhei” programar e até acredito que como sou muito “meticuloso”, cheio de “frescuras”, possivelmente aquilo que eu “criasse” não seria algo “mal feito”, “porcaria”… Nessa história a única coisa que consegui foi escrever textos usando o LaTex (uma ferramenta tipográfica muito bacana que gera textos visualmente muito bonitos), é o que mais consegui me aproximar da “programação”… infelizmente!
Programar precisa de persistência, já tentei aprender programação diversas vezes João, demorei 1 ano para aprender algo que demoraria 1 semana se tivesse feito curso. Na verdade cada um deve procurar uma forma de estudo que seja eficaz, no meu caso cursos são melhores, mas talvez através de livros e tutoriais possa adquirir conhecimento muito bom.
Não desista cara, tente por exemplo dar uma olhada nisso aqui – http://ericstk.wordpress.com/2013/04/05/aprenda-python-de-forma-simples-e-interativa/ , talvez te ajude.
E também veja esse vídeo, é bem interessante a ideia da Bel Pesce – http://www.youtube.com/watch?v=oDQavr74Exw
Grande abraço!
Já tive dor de cabeça demais com esse bluefish :/
Só uma correção: Twitter não utiliza mais Rails no Front e sim Java.
Na verdade ainda existem algumas aplicações dentro do Twitter que ainda utilizam Rails, por questão de performance foi alterado para Java grande parte, mas como o intuito da frase era mostrar quais tecnologias foram aplicadas para criar as páginas, a ideia fica válida.
Tenho uma vontade enorme de aprender a sério PHP, hj arrisco a arrumar alguns erros no meu ecommerce e é um tesão quando dá certo rsrsrs Seu post serviu pelo menos como uma motivação extra para mim. Vlw!
Cara, esse seu site é demais. Tenho acompanhado desde que encontrei pelo google currents. Parabéns!!
Comecei com linux-ubuntu / python por causa do meu trabalho (bioinformática). Não demorei muito para abandonar de vez o windows. Não troco as soluções livres do linux por mais nada! De vez em quando tenho uma dor de cabeça aqui e ali, mas elas eram muito mais constantes no windows :)
Como era analfabeto em programação, comecei seguindo o conselho de um amigo. Por python! Sensacional! Simples e fácil de começar. Minhas sugestões para o iniciante (ainda sou iniciante) são: Kate/Konsole para escrever, ipython como intérprete e ubuntu como OS :)
Bom, eu comecei no Linux há algum tempo, faço alguns programas em Python e PHP. Ainda estou a procura da IDE perfeita pra mim! Tenho dificuldades em achar uma IDE boa, já usei bastante. Para Python, estou gostando muito do Ninja e do PyCharm. Agora para PHP ainda não achei. Se alguém souber de algo, pode me avisar. Acho que programaçao é bom, ainda mais no Linux, onde você já aprende a utilizar todo o sistema. Ubuntu é construído na base do Python, você consegue criar macros para agilizar o seu trabalho. Eu procuro criar bastante coisas para os jogos que eu anda jogando utlimamente.
A melhor IDE que eu ja usei em toda minha vida foi com certeza o Sublime Text 3.Simples, leve e cheio de plugins e snippets que vão salvar a sua vida.
Aprendi a programar com PHP, mas durante a faculdade fui empurrado para o .NET e então comecei minha vida profissional coisa essa ‘coisa’. A uns 5 anos surgiu a oportunidade de trabalhar com PHP e eu aproveitei. Deste então minha estação de trabalho é Ubuntu, como IDE utilizo sublime-text e o terminal é essencial pra usar git, composer e etc…
Eu acho esse ambiente muito mais prático e produtivo do que um ambiente windows com IDEs classicas e sobrecarregadas
Excelente artigo Eric!
Alex Maximiano, uma ótima IDE para desenvolvimento com PHP que talvez seja a melhor é o NetBeans IDE, ele é excepcional, sua organização com as classes e métodos com boas práticas para Programação Orientada a Objeto.
Até hoje o NetBeans foi a melhor IDE que já utilizei para PHP.
Eu gostaria muito de aprender a programar com o Python. Quais as dicas para iniciar bem? Gostei do que postou. Foi um grande incentivo.
Olá Virgílio, dê uma olhada nessa entrevista que dei falando sobre como começar a programar, acredito que será uma boa maneira de aprender um pouco mais – http://ericstk.wordpress.com/2013/05/30/por-onde-eu-comeco-a-aprender-python/
Cara, a 2 anos programo na linguagem .net, Vb.net, C#, e Asp.net. Ja tentei migrar para o linux, mas é muito dificil achar linguagens a altura e facilidade de uso. o que você me indica?
Dê uma checada em Python ou Ruby, ambas tem uma excelente comunidade que dará ótimo suporte, boa documentação e no Ubuntu roda muito bem.
Li e gostei da iniciativa. Porém, na leitura notei que são usados os termos Sistema Linux, Open Source e Livre. Principalmente para os novatos que estão colhendo as primeiras “falas” sobre linux, devemos nos atentar aos detalhes. Vide fonte: http://www.gnu.org/
Valeu!
Eric, estou aprendendo a linguagem Python agora, e gostaria de uma dica. Python é uma linguagem produtiva para desenvolver software para desktop? Até hoje eu só tenho visto essa linguagem sendo utilizada para WEB.
Desde já agradeço.
Olá Daniel, tudo bom?
Para desenvolvimento desktop, Python também é extremamente produtiva. Temos diversas opções para podermos trabalhar, temos o Kivy que é mais voltado para mobile, porém pode ser usado para desktop, temos o pygtk, e diversos outros. Deixo 3 links que pode te ajudar, caso tenha dúvidas, só falar.
http://kivy.org/#home
http://www.python.org/about/apps/
E o Stoq, projeto open source feito com Python para desktop, só para ter ideia do que pode ser feito:
http://www.stoq.com.br/
Grande abraço!
Obrigado pelas dicas Eric!
Abração.
Olá Eric, obrigado pelo site e pelas dicas. Não sou programador, mas meu sistema preferido é o Linux.
Sobre a questão levantada no título, tenho uma visão particular e polêmica, mas que considero realista:
REVENDO O CONCEITO DE SOFTWARE LIVRE
Live-cd linux, sem java e flash pré instalados, não serve para nada.
Está na hora da sociedade abandonar as ideias, conceitos, filosofias e licenças atrasadas e defasadas, da Fundação do Software Livre do Sr. Stallman e seus admiradores. Programadores são técnicos, não tem visão social, só sabem pensar como programadores.
O Linux não é deles, o Linux é de todos, mas, no desktop, sem os softwares free proprietários, os famosos non-free, funciona de forma prejudicada, e se não fossem necessários, as distribuições não teriam repositórios non-free.
A Fundação do Software Livre (FSL) ou Free Software Fundation (FSF), usando de conceitos “desfasados” e licenças ultrapassadas idealizadas para a realidade do século passado, do qual a honrosa fundação e o Sr. Richard Stallman ainda não saíram, não os aceita, pois tem o código-fonte fechado. Esquecem-se que os free proprietários beneficiam milhões de usuários domésticos, e que o conceito de software livre para estes é completamente o inverso conceitos daqueles.
Há uma solução, mas o Sr. Stallman, Presidente da FSF,apesar de inteligente programador, é socialmente suficientemente tapado para entender os nossos motivos, pois olha simplesmente para o próprio umbigo (de programador); ou talvez alguém o pague bem para manter-se na posição que está, “falsamente” ajudando o Gnu/Linux.
A solução é simples:
a) aceitar como software livre qualquer software que atenda 2 das 4 liberdades conceituadas pela FSL (ver abaixo quais são estas liberdades). Assim, o fato de um programa não ter o código aberto, mas se ele pode ser executado e distribuido livremente não deixaria de ser software livre, pois atenderá a milhões de usuários.
b) continuar a apoiar, como já faz atualmente, o comercio e o lucro do software livre (ver abaixo), desde que observado o item “c”, próximo.
c) para incentivar a abertura do código, criar para o programador uma comissão percentual proporcionalmente à quantidade do seu código reutilizado em softwares livres comerciais.
A adoção de medidas simples como estas permitiriam às distribuições utilizarem os free proprietários livremente, e incentivaria os programadores a abrirem o código para que fossem reaproveitados, gerando comissão.
Duas coisas são absolutamente injustas e precisam ser modificadas:
Milhões de pessoas não podem continuar a ser prejudicadas pelo não uso dos softwares free proprietários no Linux, apenas porque meia duzia de pessoas ditam um licença atrasada e ultrapassada para o mundo inteiro.
Outros milhares de programadores não podem continuar sendo negligenciados, ao verem seus programas de código aberto serem inclusos em distribuições comerciais, que geram lucro, e não receberem por eles nem um centavo.
AS QUATRO LIBERDADES DA FUNDAÇÃO DO SOFTWARE LIVRE
Um programa é software livre se os usuários possuem as quatro liberdades essenciais:
Liberdade 0 – A liberdade de executar o programa, para qualquer propósito
Liberdade 1 – A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades . Para tanto, acesso ao código-fonte é um pré-requisito.
Liberdade 2 – A liberdade de redistribuir cópias de modo que você possa ajudar ao próximo .
Liberdade 3 – A liberdade de distribuir cópias de suas versões modificadas a outros . Desta forma, você pode dar a toda comunidade a chance de beneficiar de suas mudanças. Para tanto, acesso ao código-fonte é um pré-requisito.
http://www.gnu.org/philosophy/free-sw.html
A Fundação do Software Livre diz:
“Na verdade, nós incentivamos as pessoas que distribuem software livre a cobrar o quanto desejarem ou puderem. Se isso parece surpreendente para você, por favor, continue a leitura. http://www.gnu.org/philosophy/selling.htm
Eu comento:
Se um usuário não pode pagar por um software livre, não pode usá-lo.
Se não pode usá-lo, não pode executá-lo, e isto fere a primeira regra do conceito de software livre.
Vejamos o que diz a FSF aqui > (Free Software Fundation):
http://www.fsfla.org/ikiwiki/about/what-is-free-software.pt.html
Não podemos mais conviver e continuar com esta ditadura conceitual hipócrita, da FSF e do SR. Richard Stallman … http://www.gnu.org/philosophy/selling.html
Concordo com você, mas como esses programadores sobreviveriam? Eu sou iniciante em programação. E a respeito disso, acredito que os conceitos de Software Livre deveriam ser revistos.
Erick, se fala muito em programa para linux então por favor: 1ª qual IDE devo usar para modificar GUI tipo gnome ou ate mesmo KDE, tenho os fontes de um desktop que corel fez, para a sua distribuição Corel LInux que Microsoft colocou $$$$ para que a mesma não mais trabalhasse neste projeto o qual tive o prazer de usar tanto em notebook como em pc e ainda tenho os fontes e gostaria de atualizar e gerar um cd/dvd como devo proceder?
bem, queria saber se é possível criar uma plataforma para programar (como o java e o flash por exemplo), e se é difícil de criar, tenho 15 anos e estou muito interessado em fazer algo desse tipo, pois queria fazer uma plataforma leve e rápida para linux.
O problema do Linux para a engenharia são os softwares CAD baseados em raster (linha) em lugar do pixel (ponto), que estão muito atrasados em relação ao Autocad, Intellicad, etc, sendo que estes ainda nem tentaram, até onde sei, em entrar no mundo Linux.