it-swarm.it

Scrivere programmi senza grafica IDE

Non sono sicuro che ciò sia possibile, ma ho visto alcuni video con esempi di programmazione in cui sembra che il programma sia stato scritto in una sorta di comando Prompt piuttosto che in un IDE grafico piacevole. Sono solo curioso di sapere cosa potrebbe succedere in questi video. È possibile scrivere un programma senza un IDE?

ecco due esempi: http://www.youtube.com/watch?v=hFSY9cWjO8o (@ 6 min) http://www.youtube.com/watch?v=tKTZoB2Vjuk (@ 5 min)

Qualcuno potrebbe spiegare come è fatto?

Grazie a tutti per l'ottimo feedback!

19
Matt

Tutto ciò di cui hai bisogno per scrivere un programma è un editor di testo e un compilatore (o un interprete se stai scrivendo in un linguaggio non compilato). Il codice è di solito solo testo semplice. In realtà, potresti scrivere qualsiasi programma immaginabile usando Windows Notepad e un compilatore C da riga di comando.

Molti programmatori non usano nemmeno gli IDE. Personalmente ho usato Gedit (un editor di testo Linux di base con l'evidenziazione della sintassi) per il tempo più lungo prima di passare finalmente a Eclipse.

In effetti, io uso ancora Gedit quando voglio scrivere un semplice programma. A volte userò anche nano se voglio creare uno script veloce, perché sono troppo impaziente per aspettare un IDE da caricare.

22
Charles Salvia

@Matt, è più semplice di quanto sembri. Diamo un'occhiata al secondo video: Stanno scrivendo un python. Python è un linguaggio interpretato - il che significa che un programma scritto in python non deve essere compilato, deve solo essere interpretato per essere eseguito.

Se hai un semplice editor, come blocco note (windows) o nano (linux) puoi scrivere un semplice file di testo, chiamarlo, diciamo, diciamo, "program.py" ed esegui l'interpretazione dalla riga di comando, come di seguito:

python program.py

Se vuoi programmare in Lua per esempio, puoi scrivere un semplice file di testo chiamato "program.lua" usando blocco note o nano e scrivi una singola riga sul tuo file di testo come di seguito:

print("my first program in lua")

Quindi vai al prompt dei comandi (cmd su Windows, terminale in Linux) ed esegui il comando:

lua program.lua

I concetti chiave:

  • Un programma non elaborato è un file di testo. Tutto ciò di cui hai veramente bisogno per scrivere un programma è un editor di testo;
  • Se la scelta della lingua è interpretata, sarà necessario l'interprete per eseguire il programma (Lua, Basic, Python, ecc ...). Questo interprete deve essere installato sul tuo computer;
  • Se la tua scelta della lingua è compilata, avrai bisogno di un toolchain installato (principalmente un compilatore e un linker) per tradurre il tuo codice sorgente in un codice binario comprensibile e eseguibile dalla macchina. Ogni lingua (C, Java, C++, C #, VB.Net, ecc ...) ha la sua toolchain.

Spero che aiuti.

11
Machado

Gesù, ora mi sento vecchio e non ho mai dovuto fare casino con le schede perforate o l'elaborazione in batch. Diavolo, ho dovuto usare un terminale cartaceo solo una o due volte nel corso della mia carriera universitaria.

Ecco come abbiamo fatto le cose nel tardo Cretaceo (circa 1986). Stavo lavorando su VAX/VMS tramite un terminale VT220 basato su caratteri ambra-nero che poteva essere visualizzato in 80x24 o 132x24.

Innanzitutto, hai avviato l'editor di testo:

$ EDIT/EDT HELLO.C

EDT era l'equivalente VMS di vi, che era in qualche modo in funzione tra DOS edlin e Notepad. Hai digitato il testo del tuo programma

#include <stdio.h>

int main(void)
{
  printf("Hello, Stupid\n");
  return 0;
}

salvato nel file e quindi uscito dall'editor.

Quindi hai eseguito il codice tramite il compilatore:

$ CC HELLO

Questo ha tradotto il codice sorgente in HELLO.C e ha generato il file oggetto HELLO.OBJ. Il file oggetto conteneva il codice macchina per il programma, ma non era ancora in una forma eseguibile. Per prima cosa, il codice binario effettivo per la chiamata printf non è presente; c'è solo un segnaposto per questo. Dovevi ancora eseguire il file oggetto attraverso un linker, che incorporava il codice binario dalla libreria standard (e tutte le altre librerie di cui hai bisogno) e formattava il file in modo che potesse essere riconosciuto come eseguibile:

$ LINK HELLO

Il risultato di questo passaggio è il file HELLO.EXE, che è la versione eseguibile del programma.

La procedura è praticamente la stessa su qualsiasi sistema moderno; è solo che le toolchain specifiche sono diverse. Ad esempio, la sequenza di comandi su un tipico sistema Linux sarebbe

$ vi hello.c
$ gcc -o hello hello.c 

o

$ vi hello.c
$ gcc -c hello.c 
$ ld -o hello hello.o -lc

Da quando sono cresciuto in questo ambiente, non ho mai capito come qualcuno potesse bisogno an IDE solo per scrivere il proprio codice. Tuttavia, all'inizio di quest'anno ho iniziato a lavorare in Java, e mentre Eclipse ha molti, molti difetti, posso capire come qualcuno può fare affidamento su un IDE per svolgere il proprio lavoro. Dal momento che Java è un linguaggio così grande rispetto a C, e poiché Sto ancora cercando di ridurre i punti più fini della sintassi, aiuta ad avere un ambiente di sviluppo intelligente che sappia in quali pacchetti si trovano determinati tipi e mi aiuta a organizzare le importazioni.

10
John Bode

Editor? Non ho bisogno di nessun editor puzzolente o IDE a scrivere codice:

cat << EOF > hello.c
/* This IS an example of writing code from the command line */
#include <stdio.h>

int main(void)
{
    puts("Hello, World!");
    return 0;
}

EOF

Tuttavia, è bello avere qualcosa per modificare il file in un secondo momento. IDE (ambienti di sviluppo integrati) sono stati in giro molto più a lungo di quanto molte persone suggeriscano nelle loro risposte. L'unico IDE che mi sia mai piaciuto davvero era quello che è venuto con Turbo C , che girava su DOS. Era come l'ossigeno per le persone che erano state costrette a passare in giro con edlin .

Ho provato molti IDE "suite" su consigli di amici che non potevano smettere di delirare su quanto tempo risparmiano e quanto conveniente fanno tutto. Ogni volta che mi siedo per provare ad usare uno, trovo che lo combatto più che usarlo.

Per la maggior parte, uso solo il più semplice editor di testo. Il mio preferito sembra essere KATE, che viene fornito con KDE. Queste sono le caratteristiche che mi piacciono:

  • Ottima evidenziazione della sintassi
  • Codice pieghevole
  • Ricerca/sostituzione basata su regex semplice
  • Finestra Shell integrata
  • Finestra del compilatore/debugger incorporata
  • Galleria di frammenti
  • Visualizzatore di simboli
  • Ingombro di memoria estremamente leggero (alcuni dei miei progetti hanno diverse centinaia di file sorgente)
  • Schede semplici/finestre divise
  • Sessioni semplici anziché complessi "progetti"
  • Architettura plug-in (semi) semplice

Con solo quelle funzionalità di base, mi sento quasi viziato.

In realtà sono meno produttivo quando lavoro con IDE ricchi di funzionalità e sono grato di non aver mai sviluppato una dipendenza da uno.

6
Tim Post

Si si lo è.

Così come è possibile fare il caffè senza schiumare contemporaneamente il latte, andare al lavoro senza nemmeno parlare al telefono e fare le tasse o guardare le stelle senza ascoltare il "volo del calabrone" su un sistema audio surround, è possibile per compilare il codice senza anche eseguire un editor, un debugger, un sistema di analisi del codice e un gioco serpente.

Ma ... chi vuole davvero guardare le stelle in silenzio ?!

6
Shog9

An IDE non è un compilatore, un debugger o qualcosa di simile, è in realtà un front-end che ti consente di accedere a tutti questi, che sono in genere programmi separati. Dietro le quinte di Visual Studio c'è un compilatore a cui puoi accedere come programma separato, compilando i tuoi programmi dal prompt dei comandi, e probabilmente c'è un debugger che è anche accessibile separatamente e così via - Non ho troppa familiarità con la sua infrastruttura perché non la uso .

A seconda di chi chiedi, un IDE è molto utile o tende ad ostacolarti. Dipende anche da cosa stai scrivendo, dalle sue dimensioni, dal tuo stile di codifica e così via Io, per esempio, non sento davvero il bisogno di usare un IDE troppo, ma penso che alcune attività siano meglio gestite da esso (o, a seconda di come la guardi , che sono troppo pigro per scrivere script/macro per quelli stessi).

4
donkey_lz

Certamente è. Nel primo video, si tratta della programmazione C. Per scrivere programmi C, è necessario quanto segue:

  • qualche tipo di file sorgente in cui è scritto il codice
  • una toolchain per trasformare questo file sorgente in un file binario, che è l'unica cosa che una CPU può capire alla fine.

A rigor di termini, non è necessario il file, ma non conosco alcun ambiente che non utilizza file per C/C++. Pertanto, è necessario un editor per modificare il codice sorgente. Anche se qualcosa di semplice come il blocco note funziona, vuoi davvero qualcosa di più elaborato per fare la codifica (evidenziazione del codice, apertura di più file contemporaneamente, ecc ...).

Per il secondo punto, è necessario un compilatore (codice sorgente -> codice oggetto) e un linker (codice oggetto unito + supporto minimo per avviare il programma).

Anche con un IDE, la maggior parte delle attività eseguite dietro la scena può essere eseguita dalla riga di comando: ad esempio, in Visual Studio, il IDE utilizza ancora i file e chiama i compilatori dalla riga di comando per te , ma potrebbe funzionare in un altro modo (e forse lo fa per una maggiore integrazione).

Quindi perché non usare un IDE? Alcune persone sono piuttosto anali riguardo al loro editor di codice, perché lo sanno davvero. Ad esempio, sono abbastanza produttivo con l'editor di codici vi. IDE sono anche limitati se è necessario interagire con cose per le quali IDE non è stato progettato per. C'è un compromesso qui che dipende dall'abilità del programmatore, dal progetto, dai linguaggi/strumenti di programmazione , ecc ... Alcune lingue non hanno nemmeno un IDE decente, altre sono quasi inutilizzabili senza una. Anche se non uso IDE me stesso, un'area in cui penso che siano molto utile è l'integrazione del debug per C e C++.

3
David Cournapeau

Puoi sicuramente scrivere programmi senza un IDE grafico. Per i linguaggi compilati (ad esempio C o C++) il processo dovrebbe andare in questo modo:

  1. Scrivi il programma nel tuo editor di testo preferito.
  2. Dalla riga di comando, invocare il compilatore e/o il linker che convertirà il programma in codice macchina eseguibile e richiamerà le librerie esterne richieste. (Sono un po 'confuso sull'ordine di collegamento e compilazione qui, ma sono sicuro che qualcuno mi correggerà in pochissimo tempo :) :))

Per linguaggi interpretati come PHP o Python, scrivi il codice nel tuo editor di testo preferito (o una shell interattiva come quella Python viene fornita) e il codice è eseguito da un programma interpretato. Ad esempio, per invocare uno Python, avresti eseguito qualcosa come python.exe myScript.py.

Python non è un linguaggio puramente interpretato, dal momento che viene compilato per primo, ma quel modulo compilato è gestito dall'interprete Python, quindi si adatta ancora alla definizione. Altri linguaggi come PHP sono interamente interpretati.

2
Adam Lear

Non hai nemmeno bisogno di un editor di testo. :) :)

Se sei in Windows prova questo:

more > hello.c 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
Ctrl-C

Se sei in UNIX

cat > hello.c <<. 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
.

E poi compilalo semplicemente con il tuo compilatore di riga di comando preferito. :)

Ovviamente devi scriverlo bene la prima volta.

Ricorda che i veri programmatori usano le farfalle: http://xkcd.com/378/

1
OscarRyz

Devi davvero pensare che un IDE è solo un editor + compilatore + (una sorta di) Makefile + Debugger (a volte) + UI Builder grafico (a volte), quindi ovviamente puoi scegliere di non usa un IDE a tutti, e li sostituisci con un editor a tua scelta (vim, emacs, gedit, notepad ++, [insert_others_here]), un compilatore (jdk per Java, gcc, piattaforma SDK o [insert_Cpp_toolchain_here] per C++, python o qualunque toolchain abbia la tua lingua), una sorta di makefile (come autoh ... tools, cmake, ant, maven, ecc.), alcuni una specie di debugger (che di solito è incluso con il compilatore) e se vuoi un bui builder grafico (mi viene in mente glade), e lì ce l'hai il tuo IDE senza un IDE. l'approccio migliore dipende da te (e penso che oggi gli IDE siano leggermente sopravvalutati)

1
Coyote21

Sì, puoi scrivere il codice senza un compilatore e senza un IDE. Tutto ciò che sta scrivendo. Testo.

1
Matthew Read

Penso che ti riferisca all'Integrated Development Environment (IDE). Forniscono suggerimenti sul codice e l'evidenziazione della sintassi tra le altre cose. Un compilatore prende semplicemente i file e li compila in codice macchina o codice byte. Un compilatore viene generalmente utilizzato da un IDE inviandogli un comando per compilare i file.

È possibile scrivere senza un compilatore. Queste lingue usano un "interprete" ed elaborano lo script in fase di esecuzione.

1
Ross

Tutto un IDE è fornire diversi strumenti in un unico posto conveniente e quindi automatizzare alcuni dei processi. Questi strumenti sono generalmente ...

  • Un editor di testo
  • Un compilatore
  • Un debugger
  • Un visualizzatore di documentazione

Per scrivere la tua fonte puoi usare qualsiasi editor di testo che produca testo semplice, ad es. NotePad, Word o un editor di testo in codice appositamente costruito.

Una volta che hai la tua fonte in un file di testo, puoi avviare il compilatore tramite la riga di comando passando il tuo file di prova, ad esempio cc my_program.c Questo produrrà un file oggetto che puoi eseguire.

Per eseguire il debug del programma si avvia il debugger tramite la riga di comando che passa nel programma, ad es. gdb my_program È quindi possibile impostare punti di interruzione, scorrere il programma, ispezionare roba ecc.

Con un IDE tutto ciò accade con la pressione di un pulsante dietro le quinte e il IDE inserisce un'interfaccia di fantasia in cima a tutto.

PS. I veri programmatori usano la riga di comando

1
Henry

Scrivo il mio codice di tutti i giorni in un editor VIM (editor di testo di base) e posso assicurarti che procede senza intoppi (la maggior parte del mio codice è PHP). Soprattutto perché il mio dev env è una distribuzione Linux di base Dev e approfitto abbastanza degli strumenti Shell. Ho programmato in questo modo per un anno ormai e questo mi ha aiutato molto quando ho a che fare con l'implementazione di applicazioni remote e modifiche di produzione in cui in genere hai avuto accesso a una console * Nix tramite ssh.

1
guiman

Hai davvero bisogno solo di un editor di testo (l'inferno, il blocco note funzionerà) e un compilatore/interprete (la cosa più importante).

Hai detto qualcosa su come farlo tramite la riga di comando? La merda sembra folle, ma è molto ben possibile. Voglio dire solo usando il comando integrato di Windows Chiedi di "scrivere" su un file tramite echo "some codez" > target_file.sauce ma dovresti

A) Sii davvero bravo in quello che stai facendo

B) Scrivere un programma semplice

C) Sii pazzo di merda

1
user7007

lampeggia

Sta usando Pico, un nano clone. Lo uso di tanto in tanto. Di solito uso emacs, che è leggermente meno utile, ma più in primo piano.

Non utilizzo gli IDE come regola empirica. Di tanto in tanto mi sono imbattuto in loro per il debug o perché la toolchain della riga di comando era un dolore da trovare (ti guardava Xilinx). Li uso anche per disegnare C # nelle rare occasioni in cui eseguo una GUI. Ma gli IDE non sono ottimi editor per la mia esperienza: accordi di carattere strano, bizzarri, non molto facili da usare, non molte lingue supportate, occupano troppa memoria.

Preferirei usare emacs.

Dovresti esaminare la storia dell'informatica. È scritto in modo abbastanza accessibile e ti darà una prospettiva meravigliosa sul nostro lavoro.

1
Paul Nathan

i computer con programmi memorizzati digitali sono in uso dagli anni '50, mentre le interfacce grafiche per l'utente hanno iniziato ad apparire solo alla fine degli anni '60 (e per gli utenti finali negli anni '80). Le persone dovevano usare - e programmare - i computer in qualche modo prima di allora.

Sebbene contenga alcune inesattezze (non tutte le interfacce utente della piattaforma sono un livello sopra un sistema a riga di comando) probabilmente dovresti leggere il breve pezzo di Neal Stephenson In Beginning Was the Command Line.

Ti farà davvero pensare alle cose sul tuo computer sotto il cofano, e come sia "possibile" programmare senza un IDE, fare un vero lavoro con una riga di comando e così via.

1
Chris Hanson

Per il funzionamento del database, è sufficiente un editor di testo (notepad ++) e un client della riga di comando come osql o sqlcmd. Neanche un compilatore.

0
gbn

Ultimamente ho aggiornato a Vim. Mi piace come evidenzia le parole chiave in qualsiasi lingua sto scrivendo. Sospiro, solo quando riesco ad accedere a un vero sistema operativo e non uso il blocco note.

Mia moglie ha scritto COBOL usando edlin. Ho pensato che fosse abbastanza divertente.

Un tale miglioramento rispetto alle carte keypunch che usavamo e le 24 ore passano dalle operazioni solo per scoprire che avevamo un errore di battitura.

Ho dei moduli di codifica da qualche parte in soffitta.

Hai avuto 1 e 0? Abbiamo dovuto tracciare una linea attraverso i nostri 0.

Ma oggi lo dici ai giovani e loro non ti crederanno.

j.

0
jp52

Non è solo possibile , ma - almeno una volta nella vita - tu devi programmare senza IDE. Ti aiuterà a capire il processo di compilazione, l'uso delle librerie - forse questo ti aprirà gli occhi su cosa significhi davvero programmare.

Inoltre, penso che un buon editor di testo sia migliore di un IDE. Per MS-Windows ti consiglio PSPad (era un flash così forte, come MultiEdit era nell'era MS-DOS), per GNU/Linux prova Geany (forse è in repo della tua distro).

0
ern0

Programmare senza un IDE è un ottimo modo per imparare cosa sta succedendo.

Abbiamo iniziato a programmare a scuola con un semplice editor di testo colorato in sintassi. La compilazione è avvenuta con il comando Prompt (o tramite un semplice script batch).

Solo quando abbiamo capito le basi della programmazione siamo passati a editor più potenti come Eclipse o Visual Studio.

0
Carra

Come previsto, tutte le risposte dicono la stessa cosa: "certo che puoi! È solo testo! Testo testo testo testo!" Questo è vero, in generale, ed è la migliore risposta alla tua domanda. La maggior parte degli IDE manipola semplicemente il testo.

Ma non è sempre vero, e in alcuni casi l'allontanamento da un modello di solo testo comporta grandi progressi. Questi progressi sono di solito respinti dai puristi del solo testo (che è quasi tutti, perché com'è stato è anche come dovrebbe essere ... non è una coincidenza ?!). IBM Visual Age è stato un esempio davvero interessante che è morto di una morte orribile.

Un altro esempio che viene in mente e prende a calci in culo ed è molto popolare è Interface Builder per la creazione di prodotti Mac e iOS. Il suo output NON sono programmi di testo ma piuttosto oggetti serializzati, quindi non è possibile creare NIB senza usare IB o scrivere il proprio IB.

I puristi diranno "sì, ma Interface Builder è scritto in codice di testo!" Così?

Credo davvero che CS come campo avanzerebbe notevolmente se potessimo andare oltre il paradigma del solo testo. Oltre a ciò, penso che alla fine andremo in questa direzione, ma ci vorranno decenni. Per prima cosa dovremmo capire quale sia meglio, vi o emacs....

0
Dan Rosenstark

Uso un taccuino da 99 centesimi con la mia fidata Pilot Gel Pen per scrivere programmi.

Ho appena riscritto il codice in Visual Studio.

Scrivere un programma e scrivere codice sono due cose diverse (per me).

0
Pablo

Ecco cosa è divertente: Harvard Extension School sta insegnando la programmazione con no IDE ... a meno che telnet + pico sia ciò che intendi per IDE.

Il modo più semplice è utilizzare un editor di testo di base per scrivere i tuoi Java, quindi trasferire i file sul sistema FAS utilizzando un programma FTP, connettersi tramite telnet, compilarli ed eseguirli su FAS (fas .harvard.edu - Java è già installato lì). DEVONO essere in FAS per poterli inviare per i compiti. Per usare questo metodo, potresti voler imparare abbastanza su uno dei Gli editor di testo Unix sono in grado di apportare eventuali correzioni rapide necessarie ai tuoi file o pianificare di aggiornare il file localmente e trasferirlo nuovamente. Ulteriori informazioni sul trasferimento dei file sono disponibili nella pagina FAQ.

NON utilizzare un elaboratore di testi, ad es. Word o WordPerfect! Aggiungono molti caratteri di formattazione che non vedi, ma che impediranno ai tuoi programmi di essere mai compilati. Su Windows, è possibile utilizzare Blocco note o Wordpad e assicurarsi di salvare i file come "Documento di testo" con l'estensione .Java. Se il sistema tenta di aggiungere un suffisso ".txt", inserire virgolette attorno al nome del file e all'estensione nella casella Salva per evitarlo. Puoi anche provare uno qualsiasi degli editor nella sezione Download utili (uno che consigliamo vivamente per PC è Programmers File Editor). Sul Mac, utilizzare BBEdit Lite (anch'esso collegato nella pagina Risorse) o uno degli editor Unix integrati disponibili in una finestra Terminale. È possibile ottenere un programma Telnet sicuro o utilizzarne uno esistente, Telnet nel sistema FAS e scrivere e modificare i programmi sul sistema. Ci sono tre editor Unix che puoi provare: pico, emacs e vi. Dopo aver scritto il programma e averlo salvato, quindi, come sopra, puoi compilarlo ed eseguirlo su FAS

http://www.fas.harvard.edu/~libe50a/homework.html http://www.fas.harvard.edu/~libe50a/faq.html http://www.fas.harvard.edu/~libe50a/Java.html

Se me lo chiedi, stanno torturando i bambini, ma va bene. Ci sono più spartani, figuriamoci Mothakes, Perioikoi ed Helot di quanti Harvard possa ammettere in un dato anno.


Sì, è possibile. Suppongo che qualcosa come Notepad sia un no-IDE, ma emacs e Textpad (ho usato entrambi per C, Java) sono considerati un IDE. Ora ... dopo aver codificato in C # in VS2010, con WinForms e tutto il resto, non vorrei tornare agli editor di testo al lavoro - sarei urlato per non fare cazzate.

Per i progetti accademici, tuttavia, quando gli esempi sono piccoli, ha senso non utilizzare IDE. Ricorda: nelle lezioni di programmazione introduttiva, molti problemi del mondo reale non sono presenti. Probabilmente non dovrai aggiungere file .xml come risorse a una dll; Probabilmente non avresti bisogno di eseguirne il debug, non dovrai utilizzare i contratti di codice o passare da un C++ non gestito a C++/ClI, quindi a C # e viceversa. I compiti accademici non devono necessariamente essere disordinati perché possono essere svolti da zero e sono misurati in giorni-uomo/settimana. Tutti i file possono far parte di un solo progetto (anche per un compilatore o una classe OS). Un IDE come Visual Studio può effettivamente ostacolarti quando lo farà un semplice makefile. Pensa alle miriadi di opzioni che devi configurare. Lo stesso con Eclipse - è un editor ingegnerizzato che è infinitamente infinito personalizzabile. Un semplice makefile e due semplici file C. potrebbero essere tutto ciò di cui hai bisogno. In effetti, tendi ad avere un maggiore controllo in quel modo, quando specifichi tu stesso ogni bandiera. Ho codificato una volta così in un laboratorio universitario. È divertente , ma uno dei computer "incorporati" (nel senso che doveva essere così piccolo da adattarsi a un aeroplano) non aveva una GUI e nessun mouse :) Ero ancora in grado di accedere, modificare, compilare ed eseguire il debug di un C programma, oltre ad aggiungere driver e ricompilare il kernel.

0
Job