Sendo dependente do IDE. Como isso pode me prejudicar?

27

Sou desenvolvedor altamente dependente de IDE (NetBeans e Eclipse, como sou um desenvolvedor JAVA). Posso codificar corretamente se tiver um IDE. Eu posso confiar muito nisso para desenvolvimento, depuração e implantação. Mas sem o IDE, não posso fazer nada. É possível codificar um programa simples olá mundo ou alguma organização simples da interface do usuário, mas preciso de um IDE para fazer coisas complexas ou uma longa codificação de coisas mais simples.

Você acha que isso me prejudica? Alguns programadores com mais de 6 anos de experiência em desenvolvimento acreditam firmemente que isso pode ser prejudicial, mas acho que se consigo fazer algumas coisas complexas de maneira rápida e adequada, por que devo me ater ao bloco de notas e às ferramentas de linha de comando para executar uma tarefa demorada quando Os IDEs têm um clique no botão para fazer isso?

Prasham
fonte
29
Não vou adicionar isso como resposta, mas ser um desenvolvedor Java (apenas) é o que pode prejudicá-lo, e muito. Aprenda uma linguagem real, não seja apenas outro macaco de código fora dos gazilhões usando Java apenas porque é mais barato usar programadores ruins. Por favor?
precisa saber é o seguinte
5
Esta é uma pergunta fascinante para mim; Eu nunca programei em nada além de Emacs ou Vi. Como conseqüência, não tenho idéia do que um IDE fornece, do qual você pode se tornar dependente.
precisa saber é
8
@kasterma Deixe-me ver: ajuda com código, ferramentas de refatoração, estrutura de código, depuração, depuração parametrizada, rastreamento de pilha, observação de parâmetros, estruturação de soluções, rad, intellisense, snippets de código, assistência para erros de compilação e compilador, aplicação de padrões, modelos de início rápido, sintaxe destacando e muito mais ;-)
SYG
2
Acho que @Lacrymology chega perto de outro ponto: Java é dependente de IDE. Tente aprender uma linguagem em que a maioria dos codificadores não usa um IDE, como Python, Scheme ou Common Lisp; isso lhe dará uma nova habilidade e manterá você fora do IDE algumas vezes.
precisa saber é o seguinte
7
@ Lacrologia: Java não é dependente de IDE e é uma das linguagens mais populares por aí. Acho chocante você não achar que seja "real" o suficiente.
21411 Josh K

Respostas:

15

Como outros já disseram, é bom ser mais rápido no seu IDE do que sem ele, esse é o ponto. Ser capaz de usar ferramentas complexas corretamente para aumentar sua produtividade é uma habilidade importante.

No entanto, a dependência excessiva de IDEs pode causar problemas. As habilidades e conhecimentos que você não exercita mais desaparecerão, e sua compreensão de alguns aspectos pode ser superficial. Um exemplo clássico é compilar e executar na linha de comando - quase toda vez que faço isso, recebo algo errado (geralmente relacionado ao caminho da classe), porque 99% das vezes deixo o Eclipse fazer isso por mim.

Isso não afeta apenas quando você está fora do IDE - se o seu conhecimento das complexidades que o IDE está ocultando é superficial, então quando ele dá errado (e vai dar errado, em algum momento), você encontrará muito mais difícil de consertar.

Eu trato disso de duas maneiras:

  1. Aprenda novas ferramentas em sua forma mais básica. Por exemplo, mudei de SVN para Mercurial, mas comecei com o cliente de linha de comando e não com o plug-in Eclipse. Isso fez com que eu entendesse muito mais profundamente o que estava acontecendo, o que significava que eu sabia o que estava acontecendo de errado e como corrigi-lo quando o IDE gerou erros.

  2. Pratique suas habilidades básicas de codificação na linha de comando. Um bom lugar para fazer isso é o CodingBat, onde você não obtém realce de sintaxe, sem correspondência de colchetes, sem sublinhados vermelhos, nada. Mas não se esqueça de praticar também essas habilidades de linha de comando java e javac! (E qualquer outro apropriado ao seu fluxo de trabalho - para mim, isso também incluiria hg e ant)

Por fim, não se preocupe muito com isso. É improvável que você precise realizar um grande trabalho sem o NetBeans ou o Eclipse, desde que você seja capaz de codificar sem eles e entenda o que o IDE está fazendo por você, não importa que você ' fique mais lento ou cometa mais erros sem ele.

ZoFreX
fonte
2
Como hobby, é divertido gastar tempo e células cerebrais em conhecer os detalhes de baixo nível. Comercialmente, perde muito valor. É um tempo melhor gasto no aprendizado dos negócios e na implementação com a eficiência extra que o IDE oferece.
Brian Knoblauch
O CodingBat tem destaque de sintaxe agora.
masterxilo
29

Não. Acho que é o contrário, na verdade. O IDE elimina a necessidade de você conhecer uma estrutura de cor (via intellisense) e simplifica tarefas chatas / repetitivas / complexas (depuração, implantação), coisas com as quais você realmente não se importa. Isso permite que você se concentre na solução do problema de negócios em questão. Conhecer e IDE e conhecê-lo bem podem realmente ajudá-lo a escrever códigos de manutenção mais rapidamente.

E é claro que ser desenvolvedor não é só isso. A experiência que você tem como desenvolvedor ajuda a aplicar a solução correta a um problema que atravessa seu caminho. Eu acho que essa é a habilidade real.

Syg
fonte
2
+1 para intellisense! Sinto pena das pessoas quando as vejo digitando cada caractere em um programa em que o intellisense acelera tanto isso.
David
8
Isso é chamado de autocomplete para o resto de nós :)
mhitza
4
@ David: É doloroso para mim assistir as pessoas digitando dois caracteres e esperar meio segundo para o preenchimento automático aparecer e perguntar o que elas realmente significam. Em seguida, eles serão transferidos para o mouse e percorrerão as seleções disponíveis até finalmente clicar em uma delas. Não, o preenchimento automático não é uma dádiva de Deus nem é realmente útil. É uma ferramenta dos preguiçosos.
27411 Josh K
1
Josh K: Isso é verdade. O preenchimento automático pode piorar os programadores ruins, mas também pode ajudar os programadores a serem mais eficientes. :)
David
2
@ Josh Mas certamente há mais para o intellisense / autocomplete do que terminar o nome do seu método? Que tal descrições de métodos em linha (o que é feito e quais parâmetros são necessários), sobrecargas disponíveis de métodos, acesso a trechos de código, informações sobre quais métodos você pode substituir etc. É realmente útil, nada a ver com ser preguiçoso ....
Syg
24

Não, isso não "prejudica" você. Obviamente, você deve entender como as coisas funcionam sem um IDE (ou seja, você deve entender o processo básico de compilação, etc.), mas não sejamos masoquistas sobre isso ... se um IDE o torna mais produtivo do que não usá-lo, por que não ' não é?

Dean Harding
fonte
17

Ser dependente do IDE tem os seguintes riscos:

  • você acaba criando uma construção de software que requer um IDE e uma versão específicos.
  • você força outras pessoas da sua equipe a usar esse IDE para criar o sistema.
  • você não pode automatizar facilmente a construção do seu software.
  • você não tem idéia de quais são suas dependências de software.

Portanto, certifique-se de criar o seu software também a partir da linha de comando. Por exemplo, em Java, use maven ou ant. Então você mitiga os riscos acima.

Outros riscos de dependência do IDE:

  • o IDE sinaliza erros e avisos no seu código e fornece correções rápidas. Isso pode não ser apropriado - talvez haja um problema de design ou requisitos em jogo.
  • você esquece o básico - você precisa conhecer o básico do idioma escolhido para poder dominá-lo e transmitir proficiência nas entrevistas.
  • você acaba preso em uma caixa de areia do IDE - com medo de tentar algo novo ou qualquer coisa que não seja suportada pelo seu IDE. Por exemplo, seu IDE pode ter funções bastante extensas para pesquisar e substituir. Mas isso não é nada comparado ao poder e à velocidade das ferramentas de linha de comando, como grep e sed. Você não pode desenvolver o Android porque o IDE escolhido (por exemplo, netbeans) não o suporta bem.
  • alguns IDEs não conseguem lidar com arquivos grandes - por exemplo, tente abrir um arquivo de saída de servidor grande no eclipse. Demora uma eternidade e / ou fica sem memória.
Conor
fonte
3
Eu concordo com seus pontos, mas não acho que isso trate da verdadeira questão. O solicitante não depende apenas do Netbeans, por exemplo. Se ele / ela era, todos esses pontos poderiam ser verdadeiros, mas a pergunta, pelo que entendi, estava apenas usando um IDE em geral, em oposição a um editor de texto básico e à linha de comando.
jzd
2
Referências a instâncias do IDE na minha resposta são apenas exemplos de como a dependência do IDE pode ser arriscada. Não estou apontando especificamente netbeans ou eclipse.
Conor
Eu uso o Netbeans no trabalho, mas escrevi todos os meus scripts Ant manualmente, para que qualquer pessoa possa criar o projeto sem precisar do Netbeans. Gosto dos recursos do editor e da navegação fácil do código, mas faço o que posso para mantê-lo independente do IDE.
jonescb
9

Não há nada errado em ser mais produtivo com o conjunto de ferramentas escolhido. Mas se você simplesmente não puder trabalhar sem ele, ficaria muito desconfiado com o seu conhecimento interior.

Não abandone o IDE; mas, de tempos em tempos, tente fazer algumas aulas 'fáceis' com apenas um editor e documentação em um navegador.

Lembre-se de que ainda mais rápido que as melhores ferramentas não precisa usá-las.

Javier
fonte
Não estou parado ou impressionado (em 40% dos casos) se não tiver um IDE, mas minha velocidade será drasticamente reduzida se não houver um IDE por perto. Para executar uma tarefa de dez minutos com o IDE, passei um dia inteiro com o bloco de notas e javac quando meu ide foi travado.
Prasham
bem, o bloco de notas está indo muito baixo. tente o editor de um programador, como o bloco de notas ++. Pense nisso como um exercício: não é divertido, mas melhora você se você faz isso regularmente.
Javier
4

Mas sem o IDE, não posso fazer nada.

Eu preciso de um IDE para fazer coisas complexas ou codificação longa de coisas mais simples.

Você pode consertar isso, você sabe.

Você poderia realmente aprender a linguagem e a estrutura.

Nada está parando você.

A menos, claro, que você esteja se gabando de depender do IDE.

por que devo me ater ao bloco de notas e às ferramentas de linha de comando para executar uma tarefa demorada quando os IDEs têm um clique no botão para fazer isso?

Não está relacionado. "Atenha-se ao bloco de notas" não tem nenhuma relação com "sem o IDE não posso fazer nada". Não fazer nada no bloco de notas não é como colar no bloco de notas. Qual e?

S.Lott
fonte
3

Você não é tão "dependente", como os dois IDEs são de código aberto, para que não desapareçam ou sejam acidentalmente "aprimorados" a ponto de serem inutilizáveis. E o idioma de sua escolha não deixa nenhuma opção - você depende de bilhões de bibliotecas, e é estúpido tentar se lembrar de todas essas coisas sem importância quando há um IDE para ajudá-lo. Java é prolixo, detalhado e você não pode ser produtivo sem ferramentas inteligentes que aproveitam a verbosidade redundante.

SK-logic
fonte
você diria o mesmo para outra linguagem? (estou pensando em PHP no meu caso), mas não tenho certeza se é um bom conselho como regra geral. JAVA pode ser uma exceção aqui embora
Quamis
1
Eu diria o mesmo para C #, pode ser para PHP também. Qualquer combinação de um idioma e um domínio do problema em que você precise usar um conjunto enorme de diversas bibliotecas exigirá ferramentas inteligentes. Algumas linguagens são poderosas e expressivas o suficiente para serem utilizáveis ​​sem inúmeras bibliotecas - e você pode codificar coisas simples sem IDEs. Alguns idiomas precisam de assistência sempre, para coisas ainda mais simples. Quando eu codigo no Lisp, eu estou bem com o emacs ou até com um CLI REPL. Quando codifico em C # ou Java, não farei nada sem um IDE decente (msvs ou eclipse).
SK-logic
mas a necessidade de "intellisense" ou "designer de formulários" não deveria ser um alerta para membros de objetos mal organizados (ou nomeados)? Eu observei que pessoas que usam muito o intellisense tendem a usar nomes mais longos e mais detalhados para objetos / funções / variáveis, tornando esses nomes mais difíceis de lembrar em primeiro lugar. devo entender que este é um bom hábito também?
Quamis
Quamis: Não é o contrário? Ter que digitar faz com que você escolha nomes curtos que não descrevam a classe / método, assim como um nome longo.
DistantEcho
@ Niphra: sim, e eu pesonally gosto de nomes mais curtos mais :) na minha opinião facilita o código de leitura .. se o método faz algo que não pode ser descrito de uma maneira curta, então sim, um nome mais longo é aceitável, mas eu Estou tentando mantê-lo curto, basicamente, e eu não vejo nada de errado com ele.
Quamis
3

Eu acho que o dano causado pela excesso de dependência de um IDE ocorre quando você confia nos assistentes para gerar código para você. O NetBeans e o Eclipse são bastante claros sobre eles, o que é uma coisa boa para a IMO. Outro dano seria se você conhecesse apenas um IDE e não pudesse usar outros. Algumas empresas têm políticas que determinam o que você usará. Para melhor ou para pior, é o que é.

Eu diria que, se um IDE não o torna mais produtivo, não vale a pena. Por exemplo, sou o mais produtivo com o JetBrains IDEA, mas o Eclipse já percorreu um longo caminho e posso ser bastante produtivo com isso. O Eclipse também foi adaptado para uma ampla variedade de usos - o que é um benefício duplo. Embora eu possa conhecer o VIM ou algum outro editor de texto, há outros recursos que considero insubstituíveis na maioria dos IDEs atuais, como o suporte à refatoração.

Berin Loritsch
fonte
2

Não acho que você esteja fazendo nenhum favor a si mesmo. É verdade que você está usando o Eclipse, que está disponível gratuitamente e é executado em qualquer lugar em que você tenha uma JVM. Mas já tive situações antes em que tive que conectar remotamente a outra máquina através de uma sessão de terminal sem servidor X, o que significa que tive que usar um editor de texto sem formatação como o vi e criar na linha de comando. Também trabalho em um ambiente em que a rede de desenvolvimento está fisicamente isolada do resto do mundo, e todas as transferências entre ela e a rede pública são feitas por meio de mídia física. A única razão pela qual temos o Eclipse nessa rede é porque ela passou por várias camadas de aprovação primeiro.

Eu cortei meus dentes no C e no Fortran 77 em um ambiente de linha de comando (VAX / VMS), então acho a noção de precisar de um IDE um pouco suspeita. No entanto, essas são linguagens minúsculas comparadas à besta que é Java; Como você precisa de uma empilhadeira para transportar o último livro do Java Nutshell, posso ver como a disponibilização do IDE facilita a vida.

John Bode
fonte
2

Pode não realmente "prejudicá-lo", mas você ganharia se também estivesse familiarizado com as coisas sem o IDE. Não tenha medo de expandir seu horizonte.

Lembre-se de que a maioria das ferramentas de desenvolvimento é escrita como ferramenta de linha de comando primeiro. IDEs são reflexões posteriores, o que é bom. Por outro lado, muitas vezes você encontrará algumas "opções de linha de comando de joias ocultas" ou "truques avançados" que você nunca poderá descobrir se continuar apontando e clicando.

Então, para responder à pergunta "Como isso pode me prejudicar?" Eu acho que isso iria prejudicá-lo quando você se tornar tão apegado a isso que acredita que todas as ferramentas de linha de comando serão mais lentas do que clicar nos botões, a ponto de evitar aprender as ferramentas de linha de comando (que são as origens).

É como aprender montagem como programador - muito poucos de nós escrevemos montagem manualmente hoje em dia, mas acredito que aqueles que entendem montagem são melhores programadores em qualquer idioma que estejam usando.

kizzx2
fonte
2

Ser dependente do computador já é bastante prejudicial. Eu sempre programa em um lombo com uma grande tábua de pedra e um martelo. O código demora um pouco para ser quebrado, mas quando você termina um método particularmente grande, geralmente come alguma coisa. Lá, eu tento ser independente do supermercado e esse tipo de coisa, então eu cultivo todo o meu trigo em casa e como isso. É claro que os fornecedores de sementes e água de trigo me atraíram, fazendo-me pensar que não há como sair desse ciclo de dependência.

Sério: se <disclaimer>você usa um IDE e </disclaimer>se encontra sem um IDE e DEVE programar, deve se considerar um game over e

  1. Ligue para a TI ou
  2. Corrija o problema você mesmo, se você é TI

Você não deve apenas programar sem as ferramentas que julgar necessárias, mas também não pode usar creme dental como pasta térmica.

Dan Rosenstark
fonte
1

Ser dependente do IDE pode não necessariamente prejudicá-lo, mas ser capaz de operar sem o ambiente de sua escolha é uma habilidade vital.

Os IDEs podem impedi-lo de aprender 'pequenas coisas' que normalmente são insignificantes e podem ajudá-lo a fazer o trabalho mais rapidamente, porque você evita a digitação / clichê inútil. Você também pode corrigir problemas à medida que ocorrem, por exemplo, com erros ortográficos em uma função.

Minha regra pessoal ao aprender qualquer idioma / framework / etc é aprendê-lo da maneira mais difícil primeiro. Em seguida, uma vez que eu já domina-lo, caí eu ganhou o direito de fazê-lo da maneira mais fácil. O problema é que, se você não conhece alguns detalhes minuciosos, quando a rede de esgoto começar a vomitar na pia da cozinha, você será SOL. Se você souber quais são as operações subjacentes que podem ser uma causa potencial, provavelmente poderá corrigir o problema ou impedir que ele ocorra completamente.


fonte
0

Vamos tentar um bom editor de texto, por exemplo, PSPad para MS-Windows (freeware), TextMate para Mac OS X, Geany para GNU Desktop (código-fonte) ou Kate para KDE (código-fonte).

O MultiEdit4.0 para MS-DOS mudou minha vida há vários anos, desde então sou muito sensível a editores de texto.

ern0
fonte