2009-07-30 17 views
13

Per qualcuno che sta appena iniziando a programmare, consiglieresti di usare vim/emacs o dovresti usare qualche IDE? Come sono vim/emacs più adatti per utenti più avanzati rispetto ai principianti? Mi sto solo chiedendo perché sto cercando di far programmare alcuni dei miei amici.Consiglieresti vim/emacs ai programmatori principianti?

+0

Che lingua stai pensando? – JasonFruit

+0

Mm probabilmente Java, più facile per i principianti di C++ – Lucky

+1

vecchia domanda, comunque il mio +1. Per favore insegna loro Python. Preferirei sempre insieme all'apprendimento di un linguaggio di programmazione, i problemi di programmazione sono davvero necessari per essere risolti affinché diventino bravi ingegneri. Quindi Python è molto appropriato per imparare come lingua grazie alla sua sintassi semplice e puoi quasi fare tutto con Python. – asyncwait

risposta

16

Se stanno iniziando a programmare, mi piacerebbe non consigliare VIM per iniziare.

  1. avranno abbastanza nel loro piatto per cominciare imparare i pro ei contro di programmazione
  2. a seconda della lingua/piattaforma, penso che farebbe piacere un IDE con il completamento del codice, supporto per la lingua in generale, ecc . (So che puoi farlo in VIM, ma è molto più semplice in un IDE).

Nota. Sono un fan di VIM e gestisco i miei IDE con i plugin VIM, quindi non ho nulla contro VIM in quanto tale.

Ho notato che nei tuoi commenti stai imparando ad insegnare loro Java. BlueJ è un IDE Java orientato all'apprendimento di Java e può essere un utile strumento introduttivo.

+0

Aggiungo anche che la maggior parte degli IDE hanno una scorciatoia semi-VIM/semi-emacs o plug-in pronti per essere aggiunti una volta che si desidera aumentare ... Prendete ad esempio Visual Studio, la maggior parte delle persone semplicemente non sapeva nemmeno che VS ha un sacco di macro di emacs già attivate dall'inizio ... e poi pensano che alcune scorciatoie fantastiche siano quelle di VS ... – chakrit

+0

D'altra parte, rovinerà la loro percezione della programmazione irreparabilmente. –

+1

Ho trovato usando vim quando ho iniziato il programma, ho imparato a non usare un ide in quanto tale. Posso apprezzarli, ma so anche come guardare i documenti e trovare informazioni, che trovo molti programmatori allentati se hanno iniziato su un IDE, specialmente con Java. – icco

1

VI e gcc, nient'altro

+3

cosa ne pensi di fare? – chakrit

+0

Non credo che make sia utile per i principianti. Quello che un nuovo programmatore deve imparare è "come pensare" e quindi la relazione tra il programma e gli O.S. Lascialo scrivere un programma rapido (il classico ciao mondo: D) compilare e rendersi conto che non ha bisogno di conoscere altri strumenti per migliorare le sue conoscenze di programmazione. Quindi si concentrerà solo sulla codifica e non più sullo strumento. Forse cambia vi per un editor grafico, ma senza l'assistente del codice per favore: D. –

1

editori sembrano essere un argomento delicato. Sembra davvero una preferenza personale. L'unica ragione per cui ho imparato Vim è stato a causa del posto di lavoro richiesto. L'unica ragione per cui ho usato Emacs era a causa della scuola. Detto questo, penso che usare gli strumenti di sviluppo disponibili (VS per .net framework, Eclipse/NetBeans per Java, ecc.) Sia la cosa migliore secondo me, ma, di nuovo, la sua preferenza decisamente personale.

9

Evitando la questione soggettiva di scelta editoriale, non è tanto il livello avanzato/principiante quanto l'apprendimento troppo in una volta. Probabilmente è una buona idea separare la curva di apprendimento della codifica dalla curva di apprendimento dell'editor. Se sei impegnato a imparare a programmare, usa un editor con cui ti senti già a tuo agio (non deve essere un IDE, potrebbe essere gedit, ecc.). Una volta che hai dimestichezza con il codice, puoi passare a un editor di tua scelta se non sei soddisfatto di ciò che già sapevi. Un programmatore avanzato potrebbe ancora preferire un semplice editor, e chi non ha imparato troppo potrebbe ancora voler lavorare più velocemente e passare a Vim.

1

Dipende da quale piattaforma e lingua si intende avviare e quindi si riduce alle preferenze individuali. Se capita di essere Windows e hai intenzione di fare C#/VC++/VB allora Visual Studio IDE è il migliore.

Ho usato emacs quando ho iniziato su Scheme e python e l'ho trovato utile.

applausi

2

Io sono in alcun modo un mago emacs, ma in termini di imparare le basi di un nuovo linguaggio penso che sia handy.An IDE può essere una distrazione da quello che si sta cercando di imparare (Così finisci col passare il tempo ad imparare un IDE piuttosto che un linguaggio) ed emacs fornisce sia un buon indentismo e evidenziazione della sintassi, sia un facile accesso per la compilazione, il debug e l'accesso alla shell.

+1

Pensi che sia più difficile imparare un IDE piuttosto che imparare Emacs ?? –

+0

Niente affatto, sto dicendo che inizialmente evitando un IDE ti permette di concentrarti maggiormente sulla lingua stessa. Gli IDE riguardano la produttività, non l'abilità linguistica. Quanto più a fondo comprendi la lingua, tanto più puoi sfruttare l'IDE. – cmsjr

3

Indipendentemente dall'editor scelto, il foglio di calcolo deve essere incollato accanto allo schermo.

3

Le persone amano vi (o emacs) o lo odiano indipendentemente dal loro livello di abilità come programmatori.

5

Dal momento che dici di suggerire loro Java, Eclipse è probabilmente la strada da percorrere. Se tu suggerissi Common Lisp, direi Emacs senza esitazione.Per Python e simili, direi di usare qualsiasi editor di testo che conoscono ora; vi, vim, Emacs, Geany, qualunque cosa. Ma per Java Eclipse è una scelta standard piuttosto buona.

2

So che ho intenzione di essere votato in modo diverso dalla legione di emacs/vi persone qui, ma in termini di apprendimento di una lingua, un IDE con intellisense (o qualsiasi altra cosa venga chiamata la versione generica) è assolutamente indispensabile. Ad esempio, se utilizzi Visual Studio, non trascorrerai quasi nessun tempo a giocare con l'IDE. Il completamento automatico mostra chiaramente le relazioni delle variabili membro e fa in modo che tu non debba ricordare minutia. Anche la portata e la risoluzione del tipo sono inestimabili per il principiante. La cosa più importante, tuttavia, è che qualsiasi cosa tu stia utilizzando contiene un debugger di livello industriale. La registrazione con le stringhe in un file di testo non è un modo per passare attraverso la vita. Anche la legione di amanti di emacs probabilmente ammetterà che qualcuno è molto più produttivo con un IDE professionale e un principiante è molto meno probabile che si senta frustrato. Ora, se stai andando con qualcosa di opensource/gratuito, la tua esperienza può variare.

+2

Sono un po 'duro, e penso che quanto sopra sia sul denaro. Mi ci sono voluti anni per passare a un IDE e la mia produttività è aumentata quando l'ho fatto. Uso un plugin vim con Eclipse per ottenere il meglio da entrambi i mondi, ma se insisti a lavorare con Vim di fronte alla potenza dei moderni IDE (es. Eclipse o Intellij per Java), allora penso che ti stai rendendo un disservizio . –

+2

Penso che dipenda molto dalla lingua, e quanto strettamente e le sue strutture di progetto siano legate a un particolare IDE. Non scriverei C# .NET senza Visual Studio, ma non ho mai visto un vantaggio nel provare a utilizzare un IDE per Python, PHP o simili.Io uso Emacs per quelli, ma non lo sognerei per Java o C# .NET. – JasonFruit

+1

No, se stanno davvero iniziando a programmare l'intellisense non è la strada da percorrere. Probabilmente confonderebbe un nuovo utente con tutto l'aiuto che gli dà. Certo, potrebbero scrivere un programma "Hello world" creando un nuovo progetto, ma non è una programmazione. –

12

Quando insegnavo C & commercialmente, alla fine degli anni '80/primi anni '90, facevamo tutto il nostro insegnamento su scatole UNIX, con vi come editor. Molti dei nostri clienti erano utenti MSDOS (e successivi a Windows). Questi ragazzi erano abituati, al primo giorno di un corso di 5 giorni, a imparare le basi di UNIX e le basi di vi, nello stesso momento in cui stavano imparando C e C++. Tutti si sono comportati da pazzi (e non potevo biasimarli) ma ci sono riusciti tutti.

Forse ci aspettavamo molto di più l'un l'altro allora. Tuttavia, non siamo cambiati geneticamente in quel breve periodo, quindi se potessero imparare facilmente vi, i programmatori oggi possono anche impararlo, senza troppi problemi.

+0

+1 Sto usando vi da tanto tempo che non ricordo nemmeno * di impararlo. Ma l'ho sicuramente usato per inciso, per fare il vero lavoro. Non ricordo di aver sentito * che * sopraffatto. Una volta che impari come muoverti, come premere "escape" e come premere "i" puoi usare Vim. – JasonSmith

+0

Inoltre, molti anni dopo, per un corso di formazione ho dovuto usare una volta il vero 'vi' sull'effettivo Unix per un corso di formazione. Avendo usato solo Vim, ero davvero terribile con me stesso. – JasonSmith

+0

Ho fatto uno di quei corsi - se non avessimo dovuto imparare vi e tutto l'orrendo cambio di modalità forse avremmo potuto imparare di più C piuttosto che sprecare mezza giornata nell'editor. – Mark

2

Se stai appena iniziando e stai imparando Java, sceglierei uno degli IDE grafici. Sì, qualcosa come Eclipse o Netbeans è abbastanza gonfio, ma non cambia il fatto che rendono la barriera di ingresso molto più bassa con correzioni di errori suggerite e simili.

vi o emacs in combinazione con gcc sono fantastici, ma vorrei iniziare con qualcosa di più adatto ai principianti.

2

Se stanno iniziando a imparare a programmare, è meglio iniziare con un editor di testo simplae come gedit o geany. Ma imparare a usare emacs o vi lungo la strada sarà un'esperienza illuminante. Potrebbe essere una buona idea imparare Emacs usando file di testo normale (note, liste di cose da fare), quindi non c'è la distrazione nell'apprendimento delle specifiche del linguaggio.

1

Ho imparato Java utilizzando una combinazione di DrJava, BlueJ e Eclipse. Ho iniziato con DrJava poiché aveva una shell Java interattiva. Poi ho suonato con BlueJ e infine con Eclipse, una volta pensavo di saperne abbastanza.

Ora che "conosco" un paio di lingue, uso solo Vim.

0

Non so su emacs, ma consiglierei di imparare Vim per un principiante in un batter d'occhio. Il programma vimtutor è un ottimo modo per raccogliere le basi. È un po 'impegnativo, ma ci si abitua presto.

Ho iniziato a utilizzare Vim mentre stavo imparando l'HTML ed è stato un enorme miglioramento rispetto a qualcosa come Blocco note. Presto rimpiazzò Nano come il mio editor di testo da riga di comando in Ubuntu poiché è facile navigare velocemente con Vim. Poi, ho deciso di imparare Python e ho scoperto che era facile iniziare con questo perché conoscevo già Vim. Ora sto imparando C ed è bello avere un editor che conosco già, perché significa che non devo preoccuparmi di abituarmi a un nuovo IDE o editor di testo. Questo significa che c'è meno lavoro da fare per me.

ho trovato saper utilizzare Vim mi dà un significativo aumento della produttività rispetto a qualsiasi altro editor che ho usato. L'unico lato negativo è che i legami chiave vengono bruciati nel tuo cervello, nella misura in cui continuo a raggiungere Fuga quando voglio spostarmi in un documento Word!

1

Suggerire Vim a chiunque lavori con un editor di testo, ma non allo stesso tempo della programmazione di apprendimento.

2

Eseguire il comando vimtutor. È un modo interattivo per imparare molte basi utili su Vim. Vim è molto potente ed efficiente. Non imparerai tutto ciò che c'è da sapere subito. Imparerai continuamente più funzionalità utili mentre continui a utilizzarlo. Se ottieni le nozioni di base, inizierai a passare più tempo in modalità comando. Non usare i tasti freccia. Può sembrare imbarazzante in un primo momento usando i tasti hjkl per muoversi, ma presto sembrerà naturale e diventerà più veloce perché le tue mani non lasciano homerow sulla tastiera. Una delle grandi cose di Vim è che l'utente non ha quasi mai, se non mai, la possibilità di togliersi le mani da homerow.

Come per Java, Netbeans prende il culo con IMO. Perché non dovrebbe? È fatto dalle stesse persone che hanno sviluppato il linguaggio Java. Quindi, quando sto usando Netbeans, lo uso con il plugin jVi che mi permette di lavorare con esso proprio come se stessi usando Vim.