script nombre guardian game for python scripting lua interpreter basic

python - nombre - lua script roblox



Con Lua y Python integrables, ¿hay un lugar para Basic? (9)

Empecé programando en Basic en el ZX81 , luego en BASICA , GW-BASIC y QBasic . Pasé a C (Ah, Turbo C 3.1, casi no sabía ...)

Cuando comencé con los microcontroladores retrocedí con el BASIC Stamp de Parallax. Sin embargo, BASIC es / era increíble porque era tan fácil de entender y tan difícil de cometer un error. Pasé a ensamblar y C eventualmente porque necesitaba la potencia adicional (velocidad, capacidad, recursos, etc.), pero sé que si la barra fuera mucho mayor, muchas personas nunca entrarían en la programación de microcontroladores.

Sigo teniendo 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áciles de integrar, y tan abordables como BASIC.

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

Muchos otros lenguajes se consideran muertos, pero el BASIC sigue aguantando.


A riesgo de sonar como dos veteranos en mecedoras, permítanme decir de mal humor que "Los niños de hoy no aprecian el BASIC" y luego, paradójicamente, dicen "No saben lo bien que lo tienen".

La mayor fortaleza de BASIC siempre fue su comprensibilidad. Era algo que las personas podían obtener . Eso fue ignorado durante mucho tiempo por académicos y desarrolladores de lenguaje.

Cuando hablas de querer implementar BASIC, supongo que no estás hablando de BASIC con número de línea, sino de una forma estructurada. El problema es que tan pronto como comienzas a pasar a la programación estructurada (funciones, ''¿por qué no puedo obtener GOTO ese punto?'', Etc.) realmente no está claro qué ventajas, si las hubiera, BASIC tendrían sobre , por ejemplo, Python.

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

Si la verdadera pregunta es "bueno, quiero implementar un intérprete y todo se reduce a un retorno de la inversión", entonces se convierte en un problema de una gramática que en realidad es fácil de implementar. Sugeriría que BASIC tampoco tiene muchas ventajas en ese sentido (a menos que realmente regrese a los números de línea y tenga una gramática muy limitada).

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


Buena pregunta...

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

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

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

También ambos han creado VM cuidadosamente, eficiente, (la mayoría) sin fallas. Si crea su propio intérprete, debe tomar una máquina virtual existente y generar un código de bytes desde la fuente básica, o hacer la suya propia. Cosas divertidas, pero lentas y propensas a errores ...

Entonces, dejaría que Basic tenga una buena jubilación ... :-P

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


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

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


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 por nombrar algunas de las más importantes. Pero esa simplicidad, creo, es una fortaleza de BASIC. Si estás viendo un lenguaje simple incrustable, apostaría a que QBasic será más rápido y fácil de entender. Y un lenguaje de procedimiento es probablemente más que suficiente para la mayoría de las aplicaciones de tipo de incrustación / scripting.

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

Dicho esto, diría que hay bastante buen fundamento para escribir el intérprete BASIC (tal vez incluso el compilador que usa LLVM o algo similar) para BASIC hoy. Obtendrá un lenguaje limpio, simple, fácil de usar y rápido si implementa algo que se asemeje a QBasic. No tendrá que resolver problemas de diseño de idiomas y la mejor parte es que las personas ya conocerán su idioma.


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

"porque era tan fácil de entender y tan difícil cometer un error" Eso es ciertamente discutible. He tenido algunas malas experiencias con básicos completamente opacos. Cosas profesionales - productos comerciales - código perfectamente horrible. Tuve que darme por vencido y rechazar el trabajo.

"¿Cuáles son, si las hay, las ventajas que Basic tiene sobre otros idiomas?" Ninguno, realmente.

"¿Por qué todavía está aquí?" 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á junto a COBOL, PL / I y RPG como legados que a veces tienen más costo que valor. Pero debido a la política de "si no está roto, no lo arregles" de las grandes TI, allí se sientan, absorbiendo recursos que fácilmente podrían reemplazarlo por algo más pequeño, más simple y más barato de mantener. Excepto que no ha "fallado", es desproporcionadamente caro.

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 él, y no podemos decidir cómo reemplazarlo.

"pero básico sigue a la expectativa" Parece que a algunas personas les encanta 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 (IBM, inicialmente). El diseño deficiente y el lanzamiento temprano al mercado solo nos deja con un legado que sufriremos durante décadas.

Todavía tengo mi manual de Dartmouth Basic de 1965-edición. No anhelo los buenos viejos tiempos.


Como arquitectura, la principal 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 era una ganancia, ya que se podían usar sistemas como Business BASIC para construir 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 un envoltorio delgado sobre COM) que tiene una sintaxis similar al BASIC. En estos días, veo pocas razones para mantener el lenguaje aparte de la familiaridad de las personas con él y para mantener la base de códigos existente. Ciertamente, no recomendaría un nuevo desarrollo en él (tenga en cuenta que VB.Net no es realmente BÁSICO, sino que simplemente tiene una sintaxis similar a la VB. El sistema tipográfico no está roto en la forma en que lo era VB).

Lo que falta en el mundo de la informática es un lenguaje relevante que es fácil de aprender y de jugar, y que comparte la mente en el desarrollo de aplicaciones convencionales. Crecí en la época de las máquinas de 8 bits, y la barrera de entrada a 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 joroba más grande que aprender. Puedes ver a gente pontificando sobre cómo los niños no pueden aprender a programar tan fácilmente como lo harían en los tiempos de las computadoras BASIC y de 8 bits y creo que ese argumento tiene algún mérito. Hay algo de un agujero que hace que la programación sea un poco más difícil de lograr. 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 idioma que está aprendiendo.

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

Lo más cercano que puedo pensar a esto es Python. No es el único ejemplo de un lenguaje de ese tipo, pero es el que tiene la mayor cantidad de personas que comparten la mente, y (IMO) es necesaria 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 o más que he usado a lo largo de los años).



BASIC persiste, particularmente en la implementación de STAMP, porque es un 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 incorporadas, las instrucciones BASIC se asignan directamente a instrucciones individuales o grupales de la máquina, con muy poca sobrecarga. Los mismos programas escritos en lenguajes de "nivel superior" como Lua o Python serían mucho más lentos en esos mismos microcontroladores.

PD: las variantes BÁSICAS como PBASIC tienen muy poco en común con, digamos, Visual BASIC, a pesar de la similitud de nombres. Han divergido de maneras muy diferentes.


Empecé en un ZX81 también. Pero como dijo Tony Hoare , programar en BASIC es como tratar de hacer una división larga usando números romanos.

Muchos otros lenguajes se consideran muertos, pero lo básico sigue aguantando.

Por desgracia, sí. Culpo a Bill Gates por esto ... BASIC estaba en una camilla con un sacerdote diciéndole los últimos ritos, y luego MS lo trajo de regreso como Smallpox.