Domanda

Ho iniziato a programmare in Basic su ZX81 , quindi BASICA , GW-BASIC e QBasic . Sono passato a C (Ah, Turbo C 3.1, ti conoscevo appena ...)

Quando ho iniziato a utilizzare i microcontrollori, sono regredito con il BASIC Stamp di Parallax. Tuttavia, BASIC è / è stato fantastico perché era così facile da capire e così difficile commettere un errore. Sono passato all'assemblaggio e alla C alla fine perché avevo bisogno della potenza aggiuntiva (velocità, capacità, risorse, ecc.), Ma so che se la barra fosse molto più alta molte persone non entrerebbero mai nella programmazione di microcontrollori.

Continuo a sentire il prurito di creare il mio interprete BASIC su chip, ma mi chiedo se sia necessario BASIC ora che Lua e Python sono facilmente integrabili e altrettanto accessibili come BASIC.

  • Quali sono, se del caso, i vantaggi che BASIC ha rispetto alle altre lingue?
  • Perché è ancora in giro?
  • Se decido di creare una scheda microcontrollore per uso generico con un interprete, c'è qualche motivo per creare una versione di BASIC?

Molte altre lingue sono considerate morte, ma BASIC continua a resistere.

È stato utile?

Soluzione

Come architettura, la principale pretesa di fama di BASIC è che potresti rendere gli interpreti BASIC molto piccoli - solo pochi KB. Ai tempi di una DG Nova questa era una vittoria in quanto si potevano usare sistemi come Business BASIC per costruire un'applicazione multiutente su una macchina con 64 KB di RAM (o anche meno).

BASIC (VB in particolare) è un sistema legacy e ha una base di codice esistente di grandi dimensioni. Probabilmente VB è davvero un linguaggio (alcuni direbbero un wrapper sottile su COM) che ha una sintassi di tipo BASIC. In questi giorni, vedo poche ragioni per mantenere la lingua diversa dalla familiarità delle persone con essa e mantenere la base di codice esistente. Certamente non vorrei sostenere un nuovo sviluppo in esso (si noti che VB.Net non è in realtà BASIC ma ha solo una sintassi simile a VB. Il sistema dei tipi non è rotto come lo era VB.)

Ciò che manca nel mondo dell'informatica è una lingua rilevante che è facile da imparare e armeggiare e ha una mentalità condivisa nello sviluppo di applicazioni tradizionali. Sono cresciuto ai tempi delle macchine a 8 bit e la barriera d'ingresso alla programmazione su quei sistemi era molto bassa. L'architettura delle macchine era molto semplice e si poteva imparare a programmare e scrivere applicazioni più o meno rilevanti su queste macchine molto facilmente.

Le architetture moderne sono molto più complesse e hanno una gobba più grande da imparare. Puoi vedere le persone pontificare su come i bambini non possono imparare a programmare con la stessa facilità che potevano ai tempi dei computer BASIC e 8-bit e penso che questa discussione abbia qualche merito. È rimasto un buco che rende la programmazione un po 'più difficile da affrontare. Le lingue dei giocattoli non sono molto utilizzate qui - per essere attraente la programmazione deve essere possibile aspirare a costruire qualcosa di rilevante con la lingua che stai imparando.

Questo porta al problema di una lingua che è facile da imparare per i bambini ma che consente loro di scrivere programmi pertinenti (o persino giochi) che potrebbero effettivamente desiderare. Deve anche essere ampiamente considerato pertinente.

La cosa più vicina a cui riesco a pensare è Python. Non è l'unico esempio di un linguaggio di quel tipo, ma è quello con la maggior parte della condivisione della mente - e (IMO) è necessaria una percezione di pertinenza per giocare in questa nicchia. È anche una delle lingue più facili da imparare che ho sperimentato (dei 30 o giù di lì che ho usato negli anni).

Altri suggerimenti

[Potrebbe sembrare più negativo di quanto non sia in realtà. Non sto dicendo che Basic è la radice di tutti i mali, altri hanno detto che . Sto dicendo che è un'eredità che possiamo permetterci di lasciarci alle spalle.]

" perché era così facile da capire e così difficile fare un errore " è certamente discutibile. Ho avuto delle brutte esperienze con una base assolutamente opaca. Roba professionale - prodotti commerciali - codice perfettamente orribile. Ho dovuto rinunciare e rifiutare il lavoro.

" Quali sono, se ve ne sono, i vantaggi di base rispetto ad altre lingue? " Nessuno, davvero.

" Perché è ancora in circolazione? " Due motivi: (1) Microsoft, (2) tutti i dipartimenti IT che hanno iniziato a fare VB e ora hanno milioni di righe di codice legacy VB.

" Molte altre lingue sono considerate morte ... " Sì. Di base c'è insieme a COBOL, PL / I e RPG come eredità che a volte hanno un costo maggiore rispetto al valore. Ma a causa del " se non è rotto non aggiustarlo " politica della grande IT, siedono lì, succhiando risorse che potrebbero facilmente sostituirlo con qualcosa di più piccolo, più semplice ed economico da mantenere. Solo che non ha " fallito " - è semplicemente sproporzionatamente costoso.

COBOL, 30 anni, è una situazione orribile da rielaborare. A partire dal 2016 esamineremo MS Basic, 30 anni, di cui non siamo in grado di capire, di cui non vogliamo vivere senza e che non possiamo decidere come sostituire.

" ma Basic continua a resistere " Sembra che alcune persone adorino Basic. Altri lo vedono come un altro linguaggio mal progettato; i suoi vantaggi sono essere presto sul mercato ed essere supportati da enormi fornitori (inizialmente IBM). Il design scadente, i primi sul mercato ci lascia solo con un'eredità di cui soffriremo per decenni.

Ho ancora il mio manuale Dartmouth Basic del 1965. Non desidero i bei vecchi tempi.

Perché non provare Jumentum e vedere come funziona per te?

http://jumentum.sourceforge.net/

è un BASIC open source per i microcontrollori

Il progetto elua è anche lua per i microcontrollori

http://elua.berlios.de/

BASIC persiste, in particolare nell'implementazione STAMP, perché è di livello inferiore rispetto alla maggior parte degli altri linguaggi di programmazione molto facili da imparare. Per la maggior parte delle implementazioni BASIC integrate, le istruzioni BASIC vengono mappate direttamente a singoli o gruppi di istruzioni della macchina, con un sovraccarico minimo. Gli stessi programmi scritti in "livello superiore" lingue come Lua o Python sarebbero molto più lente su quegli stessi microcontrollori.

PS: varianti BASIC come PBASIC hanno ben poco in comune, per esempio, Visual BASIC, nonostante la somiglianza dei nomi. Si sono differenziati in modi molto diversi.

Buona domanda ...

Fondamentalmente (sic!), non ho una risposta. Direi solo che Lua è molto facile da imparare, probabilmente facile come quello di base (che era anche una delle mie prime lingue, ho usato i dialetti su molti computer a 8 bit ...), ma è più potente (permettendo OO o stili funzionali e persino mescolandoli) e in qualche modo più rigoroso (no goto ...).

Non conosco bene Python, ma da quello che ho letto, è facile, potente e rigoroso di Lua.

Inoltre, entrambi sono "standardizzati". di fatto, cioè. non ci sono dialetti (oltre alle varie versioni), a differenza di Basic che ha molte varianti.

Inoltre entrambi hanno macchine virtuali attentamente progettate, efficienti e (principalmente) senza errori. Se dovessi creare il tuo interprete, dovresti prendere una VM esistente e generare bytecode per essa dall'origine Basic, oppure crearne una tua. Sicuramente roba divertente, ma che richiede tempo e incline a bug ...

Quindi, vorrei solo lasciare a Basic una buona pensione ... :-P

PS .: Perché è appeso? Forse Microsoft non è estranea a questo ... (VB, VBA, VBScript ...)
Ci sono anche molti dialetti in giro (RealBasic, DarkBasic, ecc.), Con un po 'di pubblico.

A rischio di sembrare due vecchi su sedie a dondolo, lasciatemi dire scontroso che "i bambini di oggi non apprezzano BASIC" e poi paradossalmente dire " Non sanno quanto sono bravi. "

Il punto di forza di BASIC era sempre la sua comprensibilità. Era qualcosa che le persone potevano ottenere . Ciò è stato a lungo ignorato dagli accademici e dagli sviluppatori di lingue.

Quando parli di voler implementare BASIC, suppongo che tu non stia parlando di BASIC con numero di riga, ma di una forma strutturata. Il problema è che non appena inizi a passare alla programmazione strutturata - funzioni, "perché non posso GOTO quel punto?", Ecc., Diventa davvero poco chiaro quali vantaggi, se del caso, BASIC avrebbe finito, diciamo, Python.

Inoltre, uno dei motivi per cui BASIC era "così facile da ottenere". era che a quei tempi le biblioteche non erano così importanti come lo sono oggi. Le biblioteche implicano una programmazione strutturata se non orientata agli oggetti, quindi di nuovo ti trovi in ??una situazione in cui un linguaggio di scripting dinamico più moderno "si adatta". la realtà di ciò che la gente fa meglio oggi.

Se la vera domanda è "bene, voglio implementare un interprete e quindi si riduce al ritorno sull'investimento," allora diventa un problema di grammatica che in realtà è facile da implementare. Suggerirei che BASIC non ha davvero molti vantaggi a questo proposito (a meno che tu non non torni ai numeri di riga e ad una grammatica molto limitata).

In breve, non penso che dovresti investire i tuoi sforzi in un interprete BASIC.

Beh, queste persone sembrano pensare che non solo il basic abbia ancora un posto nello spazio mobile, ma anche che possono fare soldi con esso:

http://www.nsbasic.com/symbian/

Ho iniziato anche con una ZX81. Ma come diceva Tony Hoare , programmare in BASIC è come provare a fare lunga divisione usando numeri romani.

  

Molte altre lingue lo sono   considerato morto, ma di base continua   resistendo.

Purtroppo sì. Dico la colpa a Bill Gates per questo ... BASIC era su una barella con un prete che gli diceva gli ultimi riti, e poi MS lo riportò come vaiolo.

Programmavo in BASIC nei giorni QBasic. QBASIC aveva subroutine, funzioni, strutture (si chiamavano tipi), e immagino che sia così. Ora, questo sembra limitato rispetto a tutte le funzionalità di Python: OO, lambda, metaclassi, generatori, comprensione delle liste, solo per citarne alcuni dalla cima della mia testa. Ma quella semplicità, penso, è un punto di forza di BASIC. Se stai guardando un semplice linguaggio incorporabile, scommetto che QBasic sarà più veloce e più facile da capire. E un linguaggio procedurale è probabilmente più che sufficiente per la maggior parte delle applicazioni di incorporamento / scripting.

Direi che il motivo più importante per cui BASIC è ancora in circolazione è Visual Basic. Per molto tempo negli anni '90, VB è stato l'unico modo per scrivere GUI, codice COM e DB per Windows senza cadere in uno dei tarp C ++ Turing. [Forse Delphi è stata anche una buona opzione, ma sfortunatamente non è mai diventata così popolare come VB]. Penso che sia a causa di tutto questo codice VB e VBA che viene ancora utilizzato e sostenuto che BASIC non è ancora morto.

Detto questo, direi che c'è una buona logica per scrivere l'interprete BASIC (forse anche un compilatore che utilizza LLVM o qualcosa di simile) per BASIC oggi. Otterrai un linguaggio pulito, semplice da usare e veloce se implementerai qualcosa che ricorda QBasic. Non dovrai risolvere alcun problema di progettazione linguistica e la parte migliore è che le persone conosceranno già la tua lingua.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top