Pregunta

Comencé a programar en Básico en ZX81 , luego BASICA , GW-BASIC , y QBasic . Pasé a C (Ah, Turbo C 3.1, apenas te sabía ...)

Cuando empecé con los microcontroladores regresé con el Sello BÁSICO de Parallax. Sin embargo, BASIC es / fue increíble porque era tan fácil de entender y tan difícil cometer un error. Pasé al ensamblado y C finalmente porque necesitaba la potencia adicional (velocidad, capacidad, recursos, etc.), pero sé que si la barra fuera mucho más alta, muchas personas nunca entrarán en la programación de los microcontroladores.

Sigo sintiendo ganas de hacer mi propio intérprete BASIC en el chip, pero me pregunto si es necesario BASIC ahora que Lua y Python son fácilmente integrables, y tan accesibles como BASIC.

  • ¿Cuáles son las ventajas que BASIC tiene sobre otros idiomas, si las hay?
  • ¿Por qué sigue ahí?
  • Si decido hacer una placa de microcontroladores de propósito general con un intérprete, ¿hay alguna razón para hacer una versión de BASIC?

Un montón de otros idiomas se consideran muertos, pero BASIC sigue colgando.

¿Fue útil?

Solución

Como arquitectura, el principal reclamo a la fama de BASIC es que puedes hacer que los intérpretes de BASIC sean muy pequeños, solo unos pocos KB. En los días de una DG Nova esto fue una victoria, ya que podría usar sistemas como Business BASIC para crear una aplicación multiusuario en una máquina con 64K de RAM (o incluso menos).

BASIC (VB en particular) es un sistema heredado y tiene una gran base de código existente. Podría decirse que VB es realmente un lenguaje (algunos dirían que es una envoltura delgada sobre COM) que tiene una sintaxis similar a BASIC. En estos días, veo pocas razones para mantener el lenguaje al margen de la familiaridad de las personas con él y para mantener el código base existente. Ciertamente, no recomendaría un nuevo desarrollo (tenga en cuenta que VB.Net no es realmente BÁSICO, sino que solo tiene una sintaxis similar a la de un VB. El sistema de tipos no está dañado de la forma en que lo fue el VB).

Lo que falta en el mundo de la computación es un lenguaje relevante que es fácil de aprender y manipular y tiene en la mente en el desarrollo de aplicaciones generales. Crecí en los días de las máquinas de 8 bits, y la barrera de entrada para la programación en esos sistemas era muy baja. La arquitectura de las máquinas era muy simple, y se podía aprender a programar y escribir aplicaciones más o menos relevantes en estas máquinas con mucha facilidad.

Las arquitecturas modernas son mucho más complejas y tienen una gran cantidad de cosas por aprender. Puede ver a las personas pontificando sobre cómo los niños no pueden aprender a programar tan fácilmente como lo hicieron en los tiempos de las computadoras BÁSICAS y de 8 bits, y creo que ese argumento tiene algún mérito. Queda un agujero que hace que la programación sea un poco más difícil de ingresar. Los lenguajes de juguete no son muy útiles aquí: para que la programación sea atractiva, debe ser posible aspirar a construir algo relevante con el lenguaje que estás aprendiendo.

Esto conduce al problema de un lenguaje que es fácil de aprender para los niños pero que aún les permite escribir programas relevantes (o incluso juegos) que realmente podrían querer. También debe ser ampliamente percibido como relevante.

Lo más cercano que puedo pensar de esto es Python. No es el único ejemplo de un lenguaje de ese tipo, pero es el que más comparte la mente, y (IMO) es necesario tener una percepción de relevancia para jugar en este nicho. También es uno de los idiomas más fáciles de aprender que he experimentado (de los 30 que he usado a lo largo de los años).

Otros consejos

[Esto puede parecer más negativo de lo que realmente es. No digo que Basic sea la raíz de todo mal, otros han dicho eso . Estoy diciendo que es un legado que podemos dejar atrás.]

"porque era muy fácil de entender y muy difícil de cometer un error", es ciertamente discutible. He tenido algunas malas experiencias con los básicos totalmente opacos. Material profesional - productos comerciales - código perfectamente horrible. Tuvo que renunciar y rechazar el trabajo.

" ¿Cuáles, si las hay, son las ventajas que Basic tiene sobre otros idiomas? " Ninguna, en realidad.

" ¿Por qué sigue existiendo? " Dos razones: (1) Microsoft, (2) todos los departamentos de TI que comenzaron a hacer VB y ahora tienen millones de líneas de código heredado de VB.

" Muchos otros idiomas se consideran muertos ... " Sí. Básico está al lado de COBOL, PL / I y RPG como legados que a veces tienen más costo que valor. Pero debido a que " si no está roto, no lo arregles " política de TI grande, allí se sientan, absorbiendo recursos que fácilmente podrían reemplazarla con algo más pequeño, más simple y más económico de mantener. Excepto que no ha fallado " " - Es simplemente desproporcionadamente caro.

El COBOL de 30 años es una situación horrible para volver a trabajar. A partir de 2016, veremos MS Basic de 30 años que no podemos entender, no queremos vivir sin, y no podemos decidir cómo reemplazarlo.

" pero lo básico sigue colgando " Parece que a algunas personas les gusta Basic. Otros lo ven como otro lenguaje mal diseñado; Sus ventajas son llegar temprano al mercado y contar con el respaldo de grandes proveedores (inicialmente, IBM). De diseño deficiente, los primeros en el mercado solo nos dejan con un legado con el que estaremos sufriendo durante décadas.

Todavía tengo mi manual de Dartmouth Basic de la edición de 1965. No añoro los viejos tiempos.

¿Por qué no prueba Jumentum y ve cómo funciona para usted?

http://jumentum.sourceforge.net/

es un BASIC de código abierto para microcontroladores

El proyecto elua también es lua para microcontroladores

http://elua.berlios.de/

BASIC persiste, particularmente en la implementación de STAMP, porque es de nivel más bajo que la mayoría de los otros lenguajes de programación muy fáciles de aprender. Para la mayoría de las implementaciones BASIC integradas, las instrucciones BÁSICAS se asignan directamente a instrucciones simples o de grupos de máquinas, con muy poca sobrecarga. Los mismos programas escritos en " nivel superior " lenguajes como Lua o Python serían mucho más lentos en esos mismos microcontroladores.

PS: las variantes BASIC como PBASIC tienen muy poco en común con, por ejemplo, Visual Basic, a pesar de la similitud de nombres. Han divergido de maneras muy diferentes.

Buena pregunta ...

Básicamente (sic!), no tengo respuesta. Yo diría que Lua es muy fácil de aprender, probablemente tan fácil como Basic (que fue uno de mis primeros idiomas también, usé dialectos en muchas computadoras de 8 bits ...), pero es más poderoso (permitiendo OO). o estilos funcionales e incluso mezclándolos) y de alguna manera más estrictos (no goto ...).

No sé bien Python, pero por lo que he leído, es tan fácil, poderoso y estricto como Lua.

Además, ambos están " estandarizados " de facto, es decir. no hay dialectos (aparte de las distintas versiones), a diferencia de Basic, que tiene muchas variantes.

También ambos tienen VM bien elaborada, eficiente, (en su mayoría) sin errores. Si creas tu propio interpretador, deberías tomar una máquina virtual existente y generar un código de bytes para ella desde la fuente básica, o crear la tuya propia. Claro, cosas divertidas, pero que consumen mucho tiempo y son propensas a los errores ...

Entonces, solo dejaría que Basic tuviera un buen retiro ... :-P

PS .: ¿Por qué está colgando? Quizás Microsoft no sea ajeno a eso ... (VB, VBA, VBScript ...)
También hay muchos dialectos alrededor (RealBasic, DarkBasic, etc.), con algo de público.

A riesgo de sonar como dos veteranos en sillas mecedoras, permítanme decirles que "los niños de hoy no aprecian lo BÁSICO" y luego, paradójicamente, diga "No saben lo bueno que lo tienen".

La mayor fortaleza de

BASICs fue siempre su comprensibilidad. Era algo que la gente podía obtener . Eso fue ignorado por mucho tiempo por académicos y desarrolladores de lenguaje.

Cuando hablas de querer implementar BASIC, asumo que no estás hablando de BASIC con números de línea, sino de una forma estructurada. El problema con eso es que tan pronto como empiezas a moverte a la programación estructurada: funciones, '¿por qué no puedo simplemente OBTENGO ese lugar?', Etc. - realmente no queda claro qué ventajas, si hubiera alguno, BASIC tendría que haber terminado, por ejemplo, Python.

Además, una de las razones por las que BASIC era " tan fácil de entender " era que en esos días las bibliotecas no eran tan importantes como lo son hoy. Las bibliotecas implican una programación estructurada si no orientada a objetos, por lo que, nuevamente, se encuentra en una situación en la que un lenguaje de scripting dinámico más moderno se ajusta a " La realidad de lo que la gente hace hoy mejor.

Si la pregunta real es " bien, quiero implementar un intérprete y así se reduce el retorno de la inversión, " entonces se convierte en un problema de una gramática que es realmente fácil de implementar. Yo sugeriría que BASIC realmente no tiene tantas ventajas en ese sentido (a menos que realmente vuelva a los números de línea y una gramática muy limitada).

En resumen, no creo que debería invertir su esfuerzo en un intérprete BÁSICO.

Bueno, estas personas parecen pensar que no solo el básico aún tiene un lugar en el espacio móvil, sino que también pueden ganar dinero con él:

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

También empecé con una ZX81. Pero como dijo Tony Hoare , la programación en BASIC es como intentar hacerlo división larga usando números romanos.

  

Muchos otros idiomas son   Considerado muerto, pero básico solo se mantiene.   colgando.

Lamentablemente si. Culpo a Bill Gates por esto ... BÁSICO estaba en una camilla con un sacerdote diciendo los últimos ritos para eso, y luego MS lo trajo de vuelta como Viruela.

Solía ??programar en BASIC en los días de QBasic. QBASIC tenía subrutinas, funciones, estructuras (solían llamarse tipos), y supongo que eso es todo. Ahora, esto parece limitado en comparación con todas las características que Python tiene: OO, lambdas, metaclases, generadores, listas de comprensión, solo para mencionar algunas de las que están más arriba de mi cabeza. Pero esa simplicidad, creo, es una fortaleza de BASIC. Si está viendo un lenguaje incrustable simple, apostaría a que QBasic será más rápido y más fácil de entender. Y un lenguaje de procedimientos es probablemente más que suficiente para la mayoría de las aplicaciones de incrustación / scripting.

Yo diría que la razón más importante por la que BASIC aún existe es en Visual Basic. Durante mucho tiempo, en los años 90, VB fue la única forma de escribir GUI, COM y DB para Windows sin caer en uno de los tarpits de Turing de C ++. [Tal vez Delphi también era una buena opción, pero desafortunadamente nunca se hizo tan popular como VB]. Creo que es debido a todo este código de VB y VBA que todavía se usa y mantiene que BASIC aún no está muerto.

Dicho esto, diría que hay una buena razón para escribir el intérprete de BASIC (tal vez incluso un compilador que use LLVM o algo similar) para BASIC hoy. Obtendrá un lenguaje limpio, simple, fácil de usar y rápido si implementa algo que se parece a QBasic. No tendrá que resolver ningún problema de diseño de idiomas y la mejor parte es que las personas ya sabrán su idioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top