Essere dipendenti dall'IDE. Come può farmi del male?


27

Sono uno sviluppatore fortemente dipendente dall'IDE (NetBeans ed Eclipse in quanto sono uno sviluppatore JAVA). Posso codificare correttamente se ho un IDE. Posso contare molto su questo per lo sviluppo, il debug e la distribuzione. Ma senza IDE non posso fare nulla. Posso programmare un semplice programma Hello World o una semplice organizzazione dell'interfaccia utente, ma ho bisogno di un IDE per fare cose complesse o una lunga codifica di cose più semplici.

Pensi che mi danneggi? Alcuni programmatori che hanno più di 6 anni di esperienza nello sviluppo credono fortemente che possa essere dannoso, ma penso che se posso fare alcune cose complesse rapidamente e correttamente perché dovrei attenermi agli strumenti del blocco note e della riga di comando per eseguire un'attività che richiede tempo quando Gli IDE hanno un pulsante per fare questo?


29
Non aggiungerò questo come risposta, ma essere uno sviluppatore (solo) Java è ciò che può farti del male, e molto. Impara una lingua reale, non essere solo un'altra scimmia di codice fuori dai gazillions usando Java solo perché è più economico usare programmatori cattivi. Per favore?
Lacrymology,

5
Questa è una domanda affascinante per me; Non ho mai programmato altro che Emacs o Vi. Di conseguenza non ho idea di cosa ti dia un IDE da cui potresti persino diventare dipendente.
Kasterma,

8
@kasterma Fammi vedere: aiuto del codice, strumenti di refactoring, definizione del codice, debug, debug parametrizzato, traccia dello stack, controllo dei parametri, strutturazione della soluzione, rad, intellisense, frammenti di codice, assistenza per errori di compilazione e compilatore, applicazione degli standard, modelli di avvio rapido, sintassi evidenziando e molto altro ;-)
Syg

2
Penso che @Lacrymology si avvicini ad un altro punto: Java dipende dall'IDE. Prova ad imparare una lingua in cui la maggior parte dei programmatori non usa un IDE, come Python, Scheme o Common Lisp; che ti darà una nuova abilità e ti terrà fuori dall'IDE a volte.
JasonFruit

7
@Lacrymology: Java non dipende dall'IDE e una delle lingue più popolari in circolazione . Trovo scioccante che non pensi che sia "reale" abbastanza.
Josh K,

Risposte:


15

Come altri hanno già detto, va bene essere più veloci nel tuo IDE che senza di esso, è questo il punto. Essere in grado di utilizzare correttamente strumenti complessi per aumentare la produttività è un'abilità importante.

Tuttavia, l'eccessiva dipendenza dagli IDE può causare problemi. Le abilità e le conoscenze che non eserciti più svaniranno e la tua comprensione di alcuni aspetti potrebbe essere superficiale. Un classico esempio è la compilazione e l'esecuzione sulla riga di comando - quasi ogni volta che lo faccio, ottengo qualcosa di sbagliato (di solito legato al percorso di classe), perché il 99% delle volte lascio che Eclipse lo faccia per me.

Questo non ti riguarda solo quando sei fuori dall'IDE - se la tua conoscenza delle complessità che l'IDE ti sta nascondendo è superficiale, allora quando va storto (e andrà storto, a un certo punto) troverai è molto più difficile da risolvere.

Gestisco questi due modi:

  1. Scopri nuovi strumenti nella loro forma più semplice. Ad esempio, sono passato da SVN a Mercurial, ma ho iniziato con il client della riga di comando anziché il plug-in Eclipse. Ciò ha reso la mia comprensione di ciò che stava accadendo molto più in profondità, il che significava che sapevo cosa stava andando storto e come risolverlo quando l'IDE ha lanciato errori.

  2. Esercita le tue abilità di programmazione di base sulla riga di comando. Un bel posto per farlo è CodingBat in cui non si ottiene l'evidenziazione della sintassi, nessuna corrispondenza tra parentesi, nessuna sottolineatura rossa, niente. Non dimenticare di praticare anche quelle abilità da riga di comando java e javac, però! (E qualsiasi altro appropriato per il tuo flusso di lavoro - per me, questo includerebbe anche hg e formica)

Infine, non preoccuparti troppo. È improbabile che dovrai mai fare un grosso lavoro senza NetBeans o Eclipse, quindi finché sarai in grado di codificare senza di loro e capire cosa l'IDE sta facendo per te, non importa che tu ' sei più lento o fai più errori senza di essa.


2
Come hobby, passare il tempo e le cellule cerebrali a conoscere i dettagli di basso livello è divertente. Commercialmente, perde molto valore. Questo è il tempo speso meglio per l'apprendimento del business, quindi l'implementazione con l'efficienza aggiuntiva che l'IDE offre.
Brian Knoblauch,

CodingBat ora ha l'evidenziazione della sintassi.
masterxilo,

29

No. Penso che sia esattamente il contrario. L'IDE ti toglie la necessità di conoscere a memoria un framework (via intellisense) e semplifica attività altrimenti noiose / ripetitive / complesse (debug, distribuzione), cose che davvero non ti interessano. Ciò consente di concentrarsi sulla risoluzione del problema aziendale a portata di mano. Conoscere e IDE e conoscerlo bene può davvero aiutarti a scrivere codice gestibile più velocemente.

E ovviamente essere uno sviluppatore non è solo questo. L'esperienza che hai come sviluppatore ti aiuta ad applicare la soluzione corretta a un problema che attraversa il tuo percorso. Penso che sia la vera abilità.


2
+1 per intellisense! Mi dispiace per le persone quando le guardo digitare ogni personaggio in un programma quando intellisense lo accelererà così tanto.
David,

8
Questo si chiama completamento automatico per il resto di noi :)
mhitza,

4
@ David: È doloroso per me guardare le persone digitare due personaggi, quindi attendere mezzo secondo che il completamento automatico si apra e chieda loro cosa significano effettivamente. Quindi si trasferiranno al mouse e scorreranno le selezioni disponibili fino a quando non verranno infine cliccate su una di esse. No, il completamento automatico non è una manna dal cielo o addirittura veramente utile. È uno strumento per i pigri.
Josh K,

1
@Josh K: È vero. Il completamento automatico può peggiorare i programmatori difettosi, ma può anche aiutare i buoni programmatori a essere più efficienti. :)
David,

2
@Josh Ma sicuramente c'è molto di più di intellisense / completamento automatico che poi finisce il nome del tuo metodo? Che ne dite di descrizioni di metodi inline (che cosa fa e quali parametri prende), sovraccarichi di metodi disponibili, accesso a frammenti di codice, informazioni su quali metodi è possibile ignorare ecc. Lo trova davvero utile, niente a che fare con l'essere pigri ....
Syg,

24

No, non ti "danneggia". Certo, dovresti capire come funzionano le cose senza un IDE (cioè dovresti capire il processo di compilazione di base, ecc.) Ma non essere masochista su questo ... se un IDE ti rende più produttivo di non usarne uno, allora perché non dovrebbe tu?


17

Essere dipendenti dall'IDE comporta i seguenti rischi:

  • finisci per creare una build software che richiede IDE e versione specifici.
  • costringi altre persone del tuo team a usare quell'IDE per costruire il sistema.
  • non puoi automatizzare facilmente la costruzione del tuo software.
  • non hai idea di quali siano le dipendenze del tuo software.

Quindi assicurati di poter costruire il tuo software anche dalla riga di comando. Ad esempio, in Java usa maven o formica. Quindi attenuare i rischi sopra indicati.

Altri rischi di dipendenza IDE:

  • l'IDE contrassegna errori e avvisi nel codice e fornisce soluzioni rapide. Questi potrebbero non essere appropriati - forse c'è un problema di progettazione o requisiti in gioco.
  • dimentichi le basi - devi conoscere le basi della lingua prescelta in modo da poterla padroneggiare e in modo da poter trasmettere competenza durante le interviste.
  • ti ritrovi bloccato in un recinto IDE - hai paura di provare qualcosa di nuovo o qualcosa che non è supportato dal tuo IDE. Ad esempio, il tuo IDE potrebbe avere funzioni piuttosto estese per la ricerca e la sostituzione. Ma questi non sono nulla in confronto alla potenza e alla velocità degli strumenti da riga di comando come grep e sed. Non è possibile eseguire lo sviluppo Android perché l'IDE scelto (ad esempio netbeans) non lo supporta bene.
  • alcuni IDE non sono in grado di gestire file di grandi dimensioni, ad esempio provare ad aprire un file di output di server di grandi dimensioni in eclipse. Ci vuole un'eternità e / o esaurisce la memoria.

3
Sono d'accordo con i tuoi punti, ma non credo che affronti la vera domanda. Ad esempio, chi chiede non dipende solo da Netbeans. Se lui / lei fosse allora, tutti questi punti potrebbero essere veri, ma la domanda, a quanto ho capito, stava solo usando un IDE in generale rispetto a un editor di testo di base e alla riga di comando.
jzd

2
I riferimenti alle istanze IDE nella mia risposta sono solo esempi di come la dipendenza IDE può essere rischiosa. Non sto specificatamente indicando netbeans o eclissi.
Conor,

Uso Netbeans al lavoro, ma ho scritto tutti i miei script Ant a mano in modo che chiunque possa costruire il progetto senza richiedere Netbeans. Mi piacciono le funzionalità dell'editor e la navigazione semplice del codice, ma faccio tutto il possibile per mantenerlo indipendente dall'IDE.
jonescb,

9

Non c'è niente di sbagliato nell'essere più produttivi con il tuo set di strumenti scelto. Ma se non riesci a lavorare senza di essa, sarei molto sospettoso riguardo alla tua conoscenza interiore.

Non abbandonare l'IDE; ma di tanto in tanto prova a fare un paio di lezioni "facili" con solo un editor e documentazione su un browser.

Ricorda che anche più velocemente degli strumenti migliori non è necessario utilizzarli.


Non sono bloccato o stupito (nel 40% dei casi) se non ho un IDE, ma la mia velocità sarà drasticamente ridotta se non ho un IDE in giro. Per svolgere un compito di dieci minuti con IDE, ho passato un'intera giornata con Blocco note e javac quando il mio ide è andato in crash.
Prasham,

bene, il blocco note sta andando troppo in basso. prova l'editor di un programmatore, come notepad ++. Pensalo come un esercizio: non è divertente ma ti migliora se lo fai regolarmente.
Javier,

4

Ma senza IDE non posso fare nulla.

Ho bisogno di un IDE per fare cose complesse o una lunga codifica di cose più semplici.

Puoi sistemarlo, lo sai.

In realtà potresti imparare la lingua e il framework.

Niente ti sta fermando.

A meno che, ovviamente, non ti stia vantando di dipendere dall'IDE.

perché dovrei attenermi agli strumenti del blocco note e della riga di comando per eseguire un'attività che richiede tempo quando gli IDE hanno un pulsante per fare questo?

Non è correlato. "Stick to notepad" non è assolutamente correlato a "senza IDE non posso fare nulla". Non fare nulla nel blocco note non è come attaccare al blocco note. Cos'è questo?


3

Non sei così "dipendente", poiché entrambi i tuoi IDE sono open source, quindi non scompaiono o non vengono "accidentalmente" migliorati fino a diventare inutilizzabili. E la lingua che hai scelto non ti lascia alcuna opzione: sei dipendente da milioni di biblioteche ed è semplicemente stupido provare a ricordare tutte quelle cose non importanti quando c'è un IDE che ti assiste. Java è prolisso, dettagliato e non puoi essere produttivo senza strumenti intelligenti che sfruttano la verbosità ridondante.


diresti lo stesso per un'altra lingua? (sto pensando a PHP nel mio caso) ma non sono sicuro che sia un buon consiglio come regola generale. JAVA potrebbe essere un'eccezione qui
Quamis

1
Direi lo stesso per C #, potrebbe essere anche per PHP. Qualsiasi combinazione di una lingua e un dominio problematico in cui è necessario utilizzare una vasta gamma di librerie diverse richiederà strumenti intelligenti. Alcuni linguaggi sono abbastanza potenti ed espressivi da poter essere utilizzati senza numerose librerie e puoi codificare cose semplici senza IDE. Alcune lingue hanno sempre bisogno di assistenza, anche per le cose più semplici. Quando scrivo in Lisp, sto bene con emacs o anche con un CLPL REPL. Quando codice in C # o Java, non farò nulla senza un IDE decente (msvs o eclipse).
Logica SK

ma la necessità di "intellisense" o "form designer" non dovrebbe essere un avviso per i membri di oggetti mal organizzati (o nominati)? Ho osservato che le persone che usano molto l'intellisense tendono ad usare nomi più lunghi e più dettagliati per oggetti / funzioni / variabili rendendo questi nomi più difficili da ricordare in primo luogo. dovrei capire che anche questa è una buona abitudine?
Quamis,

Quamis: Non è il contrario? Dover digitare ti fa scegliere nomi brevi che non descrivono la classe / il metodo così come farebbe un nome lungo.
DistantEcho

@Niphra: sì, e mi piace pesonalmente di più i nomi più brevi :) secondo me rende il codice più facile da leggere..se il metodo fa qualcosa che non può essere descritto in modo breve, quindi sì, un nome più lungo è accettabile, ma io sto cercando di mantenerlo breve in sostanza, e non vedo nulla di sbagliato in esso.
Quamis,

3

Penso che il danno derivante dall'eccessiva dipendenza da un IDE entri in gioco quando fai affidamento sui maghi per generare codice per te. Sia NetBeans che Eclipse sono abbastanza chiari su quelli, il che è una buona cosa IMO. Un altro danno sarebbe se conosci solo un IDE e non puoi usarne altri. Alcune aziende hanno politiche che determinano ciò che userete. Nel bene e nel male, è quello che è.

Direi che se un IDE non ti rende più produttivo, non ne vale la pena. Ad esempio, sono il più produttivo con JetBrains IDEA, ma Eclipse ha fatto molta strada e posso essere abbastanza produttivo con quello. Eclipse è stato anche adattato per una vasta gamma di usi, il che rappresenta un doppio vantaggio. Mentre posso spostarmi in VIM o in qualche altro editor di testo, ci sono altre funzionalità che trovo insostituibili nella maggior parte degli IDE attuali come il supporto del refactoring.


2

Non credo che ti stia facendo dei favori. Certo, stai usando Eclipse, che è disponibile gratuitamente e funziona ovunque tu abbia una JVM. Ma prima mi sono imbattuto in situazioni in cui dovevo passare in remoto a un'altra macchina tramite una sessione terminale senza server X, il che significa che dovevo usare un semplice editor di testo come vi e compilare sulla riga di comando. Lavoro anche in un ambiente in cui la rete di sviluppo è fisicamente isolata dal resto del mondo e tutti i trasferimenti tra essa e la rete pubblica avvengono tramite supporti fisici. L'unica ragione per cui abbiamo Eclipse su quella rete è perché ha prima superato diversi livelli di approvazione.

Mi sono tagliato i denti su C e Fortran 77 in un ambiente a riga di comando (VAX / VMS), quindi trovo sospetto l'idea di aver bisogno di un IDE. Tuttavia, quelli sono linguaggi minuscoli rispetto alla bestia che è Java; dato che hai bisogno di un carrello elevatore per portare con te l'ultimo libro Java Nutshell, posso vedere come avere l'IDE disponibile semplifichi la vita.


2

Potrebbe non "danneggiarti" davvero, ma guadagneresti se anche tu avessi familiarità con le cose senza l'IDE. Non aver paura di espandere il tuo orizzonte.

Ricorda che la maggior parte degli strumenti di sviluppo sono scritti prima come strumenti da riga di comando. Gli IDE sono ripensamenti, il che va bene. D'altra parte, troverai spesso alcuni "interruttori della riga di comando della gemma nascosta" o "trucchi avanzati" che non potrai mai scoprire se mantieni il punto e fai clic.

Quindi, per rispondere alla domanda "Come può farmi del male?" Penso che ti danneggerebbe quando ti attaccherai così tanto da credere che tutti gli strumenti da riga di comando saranno più lenti dei clic sui pulsanti, al punto da evitare di imparare gli strumenti da riga di comando (che sono le origini).

È proprio come imparare l'assemblaggio come programmatore - pochissimi di noi scrivono l'assemblaggio a mano oggi, ma credo che quelli che comprendono l'assemblaggio siano programmatori migliori in qualunque lingua stiano usando.


2

Essere dipendenti dal computer è già piuttosto dannoso. Programma sempre in un lenzuolo con una grande tavoletta di pietra e un martello. Il codice impiega un po 'a sfondare, ma quando finisci un metodo particolarmente grande, di solito mangi qualcosa. Lì cerco di essere indipendente dal supermercato e da quel genere di cose, quindi coltivo tutto il mio grano a casa e lo mangio solo. Naturalmente, i fornitori di semi di grano e acqua mi hanno praticamente catturato, facendomi pensare che non c'è via d'uscita da questo ciclo di dipendenza.

Scherzi a parte: se <disclaimer>usi un IDE e </disclaimer>ti ritrovi senza un IDE e DEVI programmare, dovresti semplicemente considerare il gioco finito e

  1. Chiama IT o
  2. Risolvi tu stesso il problema se sei IT

Non solo non dovresti programmare senza gli strumenti che ritieni necessari, ma non puoi nemmeno usare il dentifricio come pasta termica.


1

Essere dipendenti dall'IDE non può necessariamente farti del male, ma essere in grado di operare senza il tuo ambiente di scelta è un'abilità vitale.

Gli IDE possono impedirti di apprendere "piccole cose" che in genere sono insignificanti e possono aiutarti a svolgere il lavoro più velocemente perché eviti l'inutile digitazione / boilerplate. In genere è anche possibile risolvere i problemi quando si verificano, ad esempio l'ortografia errata di una funzione.

La mia regola personale nell'apprendimento di qualsiasi lingua / framework / ecc. È di apprenderla prima nel modo più duro. Poi, una volta che l'ho imparato, sono caduto e mi sono guadagnato il diritto di farlo nel modo più semplice. Il fatto è che se non conosci alcuni dei piccoli dettagli chiacchieroni, quando la rete fognaria inizia a vomitare schifo dal lavello della cucina, sarai SOL. Se sai quali operazioni sottostanti potrebbero essere una potenziale causa, puoi probabilmente risolvere il problema o impedire che si verifichi del tutto.


0

Proviamo un buon editor di testo, ad esempio PSPad per MS-Windows (freeware), TextMate per Mac OS X, Geany per GNU Desktop (opensource) o Kate per KDE (opensource).

MultiEdit4.0 per MS-DOS ha cambiato la mia vita diversi anni fa, da allora sono molto sensibile per gli editor di testo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.