Olá pessoal. Tudo certo?!
Tenho um MB Air desde o final do ano passado. Entretanto, até agora, só havia usado esta máquina, como desenvolvedor, usando .NET + Visual Studio (salve Parallels). A experiência vem sendo fantástica (a máquina é realmente boa e o Parallels é mais leve do que eu esperava). Entretanto, agora, resolvi “brincar com algo mais natural” para este ambiente.
Conheço Ruby (superficialmente, é verdade) há bastante tempo. Entretanto sei (sabia) bem pouca coisa sobre Rails. Por isso, resolvi que era hora de mudar essa história.
Também é digno de nota que quase todo desenvolvedor que conheço, com um Mac, programa em Ruby (usando Rails). Logo, penso que esse seja o caminho natural.
Para que fique claro: não estou deixando de usar .NET/ASP.net (MVC)/C#. Estou, apenas, estudando um bocado desse “novo mundo” (para mim). Sou agnóstico em tecnologia e acredito que o “mindset” de outras linguagens/plataformas enriquecem meu código.
Confesso que estou “mal acostumado”. Gosto muito de C# e adoro o Visual Studio. Quando comecei a mexer com Ruby, procurei uma IDE – rapidamente, cheguei ao RubyMine. Entretanto, conversando com DEVs mais experientes em Ruby, entendi que poucos usam uma IDE.
Com “pilha” do @giovannibassi e ajuda do @victorhg, abracei o Terminal e o Vim.

Bacana, não?! Obviamente, esse “Vim” é mexido. Estou utilizando o setup do @victorhg - recomendo que você pegue esse setup que está, free, no github.
Ruby, Rails, Vim! Muitas coisas para aprender. Segue pequena relação de livros que estou utilizando como referência:
Você recomendaria mais algum?! Sim, estou lendo todos, ao mesmo tempo.
Programar com Rails está me causando algumas boas primeiras impressões. Vejamos:
Do que não gostei (ainda):
Por agora, é isso.
Você tem alguma dica para me dar?
Sabia que esse dia ia chegar, Elemar. O dia em que eu não concordaria com um post seu.
Não vejo razão para não usar uma IDE. De verdade. Voltar no tempo e usar editor sem modo gráfico não faz sentido nenhum. Como fazer uma refatoração, navegar de um método para outro, ver quem usa seu método, e todas as outras facilidades de QUALQUER IDE um pouco melhor?
Realmente não consigo ver vantagem.
Pois é!
Veja só, estou seguindo recomendação dos mais experientes. Eles estão dizendo para mim fugir das IDEs. Qual você usa?
Talvez haja um pequeno erro de interpretação ai:
- Navegação de código: Significa o q? Sair de uma classe e seguir diretamente para seu teste? Ou estando num controller, que faz referencia a uma classe de domínio, e conseguir acessar diretamente o código daquela classe? Talvez “navegar” pelos diretórios do projeto, ou pelos métodos, de maneira rápida (tal qual o eclipse consegue fazer)? Isso tudo eu tenho no vim…
Vale lembrar que o fato de estar numa linguagem dinâmica traz um certo limite na navegação de métodos (que o proprio rubymine faz, mas está longe de ser perfeito, pq ele precisa inferir a maior parte das chamadas de método). Ver quem usa um método do ponto de vista semântico é ainda mais complexo para uma linguagem dinâmica… mas até consigo algo próximo a isso no vim.
E está longe de ser “voltar no tempo” poder, por exemplo, refatorar um código extraindo o conteúdo de um método para uma classe, como é possível fazer… ou ainda executar os testes de dentro do VI e colher os resultados assim como se executa o JUnit no eclipse… ou ter syntax checking, generators, integração direta com Git, code snippets, bla, bla, bla, bla
Talvez um pouco mais de teste como ambiente possa mudar a sua idéia de retrocesso
Concordo com o VH. Os programadores ficam mal acostumados com a IDE. Eu domino de ponta a ponta o Visual Studio, mas acho incrível não precisar de mais do que o VIM pra programar com Rails. E de fato não precisa. Acho que quem diz que IDE é fundamental precisa tentar. E não basta usar uma tarde, tem que usar alguns meses e ver qual é. Sem essa experiência, estaria falando de algo que não conhece. Posso dizer que sou extremamente produtivo com rails com apenas um editor de texto. Na minha visão isso parte de alguns motivos:
- Sou dedicado: estudo o editor, a linguagem, os frameworks e ferramentas. Aprendo as teclas de atalho, aprendo a programar sem usar o mouse, aprendo a melhor maneira de rodar os testes.
- Ruby on Rails é feito para ser usado dessa forma. Tudo facilita o uso de um editor de texto + linha de comando, e não pede uma IDE. Diferente do que ocorre com Java e C#.
- Tinha mais um mas eu esqueci.
Também desenvolvo .NET com VS, mas já desenvolvi em outras linguagens sem IDE. Python, um pouco (pouco mesmo) com Ruby, e Javascript (web e Node.JS) só com um editor de texto (Notepad++ no Win e agora com o SublimeText).
Apesar de não ser (ainda?) adepto do VI, não sinto necessidade de uma IDE para se trabalhar nessas linguagens. Tendo um bom syntax highlighting, documentação do lado, integração boa com seu source control, já está ótimo.
Mas, não vou dizer que gostaria de programar só com um editor de texto em C#. Ter que ficar adicionando referências de arquivos e libs em arquivos xml (.csproj) é um saco. Ter que ficar decorando parametros do compilador também não é muito minha praia. Prefiro que a IDE cuide disso pra mim.
Bem, minha experiência com Rails não é muito longa quanto .net, mas o que pude perceber é que este Framework antecede muitas soluções que hoje estão no ASP.net MVC. Acho interessante a implementação e maturidade dos testes. Apenas tive alguns problemas com integração de alguns serviços wsdl (o que as IDES dão de capote em simplicidade de implantação). Sobre o VIM, acho que a muito mais uma ideologia por trás do seu uso do que outra coisa. Os desenvolvedores que conheço que usa VIM, instala uma porção de plungin pra poder ter uma produtividade melhor. Para mim, o Rails é bom para projetos de escopo pequeno. Não me inspira confiança num ambiente corporativo.
Outra discussão interessante
No que diz respeito a Rails no Mac, eu to usando o Sublime Text, não é tão old school igual o Vim, mas achei mais tranquilo que o Ruby Mine, para Ruby realmente não senti falta de IDE.
Agora falando em .NET, realmente uso pouco da IDE, claro que os recursos de refatoração são legais, mas vou até mandar um screenshot do meu VS.NET, é só código, sem menus, toolbars, tudo no atalho e o R# ajudando com algumas coisas.
Abraços
Algumas linguagens não requerem IDEs. Simples assim!
Não vejo muita lógica em usar uma IDE para desenvolvimento em PHP, Ruby, Python, entre outras.
Posso dizer que “deixei” de usar uma IDE quando fui trabalhar de Release Engineer numa empresa que tinha um parque tecnologico que circulava em projetos c++, java, groovy, perl e python scripts…
E precisava de uma forma de lidar com todas essas tecnologias sem ter que perder muito tempo abrindo IDEs para cada uma das linguagens. Como todo o processo de build, teste, stagging e deploy dessa aplicação desktop conseguia ser ultra complexo, minha principal forma de lidar com os projetos foi escrever muito script Ant com notepad++/VI para amarrar tudo em 1 único processo.
A partir daí foi fácil mover de uma IDE para um ambiente que eu conseguiria ter tudo ao mesmo tempo, sem grande esforço.
Mas claro, ao começar a fazer aplicacoes pra Android, foi necessário voltar ao Eclipse. Até pq as dependencias se tornaram muito complexas (e eu, velho demais) para administrar tudo sem a IDE… Mas minha impressão desse retorno foi ruim, principalmente pela sensação de “perda de controle”. Existia uma facilidade interessante com JIC e erros de compilação – que convenhamos, tb existe com VI, e acesso direto à API (q uma aba no browser resolveria)… mas nao sei se estou convencido da “praticidade”…
Também comecei a estudar Ruby e Rails recentemente, e também estou usando o Vim.
Não sinto falta de usar uma IDE com Ruby ou Python, só quando estou desenvolvendo em alguma linguagem verbosa como Java ou Actionscript. Não desenvolvo em C#, mas pela similaridade de sintaxe que esta tem com Java acredito que seja melhor mesmo usar o Visual Studio, senão a produtividade fica bem debilitada.
Gostei muito da lista de livros, quero apenas comentar sobre um que estou lendo e gostando muito: Rails In Action(http://manning.com/katz/). Com certeza vou dar uma olhada nesta tua lista.
Abraço
Sou um grande fã de Vim e gosto de usá-lo para programar mas, para mim, ele não está muito longe de uma IDE. Um simples editor de texto não tem integração com ambiente de compilação, navegação baseada em semântica e outras maravilhas que o Vim consegue fazer sem ser um ambiente pesado. Acho que a linha que separa editores de texto de IDEs é tênue.
Outra coisa: no caso de linguagens como Ruby e Python, acho que não faz mesmo sentido ter muito mais do que um Vim ou Sublime para programar, pois eles te dão o máximo de poder possível sobre um código com tipagem dinâmica; não há como ir muito além (não mexi com RubyMine ainda, então posso estar enganado). Já no caso de linguagens estaticamente tipadas, seu editor pode fazer muita coisa a mais, graças às informações extras que os tipos dão. Nesse caso, o Vim (por exemplo) consegue fazer mais do que ele já faz com Ruby, mas não bate o Eclipse para Java, por exemplo. Pelo menos não que eu saiba
Eu acho engraçado que desenvolvimento em ruby sempre está ligado ao uso de macbooks e/ou linux. Como eu dei meu macbook pra minha namorada, eu acabei me virando com windows mesmo.
E podemos ter um ambiente muito bom sem muitos problemas.
Atualmente eu estou estudando ruby e rails em ambiente windows e uso praticamente console2 (muito melhor q o cmd) e vim. Da pra utilizar o git bash tranquilamente também.
Entendo sua observação. O fato é que a maioria dos devs Ruby que conheço usam Linux ou MacOS.
No Windows, sou DEV .net. MEU motivo para mexer com Ruby foi a combinação de curiosidade com oportunidade. Até aqui, estou gostando.
Ruby no Windows fica ruim pra caramba. Várias gems dão pau, e outras simplesmente não existem para a plataforma. E é mais lento.
Fujam, é uma cilada.
Salve Mestre Elemar !!!
O foco do post não é esse, mas vc mencionou usar o parallels no MacBookAir.
Estou usando também e ele funcionou direito com uma vm win2003 e uma win2012, mas com o win8rp32bits não.
Hoje atualizei pro Mountain Lion e não fez diferença. O win8Rtm ainda está baixando e não pude testar ainda com ele.
A pergunta:
Qual versão do OSX e qual versão do Windows na vm do Parallels deu certo pra você ?
Saudações.
Ps: Estou acompanhando as discussões pra ver se me aventuro em algum momento no Ruby on Rails. Mas sei que tenho muito que estudar de C# antes.
Atualizei para o Mountain Lion outro dia. Estou usando Windows 7.
Nunca fui a fundo no Vi, mas já pareei com quem entendia muito disso, e achava um absurdo o cara fazer combinações de teclas malucas para coisas as vezes simples demais.
A IDE não inferir bem o que acontece numa linguagem dinâmica é questão de tempo. E mesmo assim, hoje as IDEs já tem alguma heurística. Ela erra de vez em qdo, mas acerta bastante, melhor que nada.
Quando as pessoas falam que não precisam de muito pra desenvolver em Rails, eu tenho a péssima mania de achar que ela tá fazendo um app web básica pq, bom, essa é a grande sacada do Rails. No momento que vc cria uma app Ruby, que realmente precisa de código flexível e refatoração é constante, acho que vc seria mais fácil com uma IDE decente.
Com certeza que as refatoracoes serão constantes em qualquer que seja a linguagem, afinal, ninguém consegue fazer o melhor de cara, a nao ser se for o Linus. E acho que é nessas horas que faz uma baita diferença.
A grande sacada do Rubymine é ser leve e poderoso. O pessoal da Jetbrains vem sempre me surpreendendo. Vale a pena ver os vídeos e sentir na pele como pode ajudar:
http://tv.jetbrains.net/channel/rubymine
Quanto as IDEs nao conseguirem se virar com linguagens interpretadas isto não é mais uma verdade absoluta. O intelissense do VS para JavaScript, feito pela equipe do scottgu, é tão bom que chega a executar o código para inferir as variáveis, eles chamam de “psudo-executing”. Tem que levar em conta os loops infinitos e outros erros. A programação desse tipo de coisa não é nada trivial. Acho que por isso que por um bom tempo as IDE mais atrapalhavam do que ajudavam pra ruby. Mas, na minha humilde opinião, acho que aos poucos, as IDEs estão ficando muito boas.
Post muito bom!
Também estou iniciando meus estudos em Ruby on Rails. Porém, uso Linux.
Elemar, em seu ambiente, você está utilizando o RVM + gemsets? Estou usando essa combinação com o Rails instalado em um gemset separado da global, mas não consigo de forma alguma utilizar os comandos do rails.vim. O GVim não reconhece os comandos.
Arregacei as mangas e pesquisei um bocado até encontrar uma resposta, que acabou por ser mais simples do que imaginava. É só configurar o $PATH para apontar para os binários desejados no .bashrc (export PATH…). Executar o GVim pelo terminal ao invés do menu tradicional do sistema também ajuda, pois valor do $PATH do GVim é diferente do $PATH do sistema operacional. Abrir o programa pelo terminal faz com que seu $PATH seja igual ao do Linux.