[Articulo] En defensa del Basic [The Digital Antiquarian]

Avatar de Usuario
luiscoco
Mensajes: 2414
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 38 veces
Agradecimiento recibido: 59 veces

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor luiscoco » 13 May 2017 18:20

Último mensaje de la página anterior:

explorer escribió:
luiscoco escribió:Hoy día con el VS2015-2017 el basic hace todo lo que hacen los demás lenguajes, aunque no lo crean

Pues no, yo no creo que el basic sea capaz de hacerlo todo. O al menos, no tan sencillo como en otros lenguajes.

Por ejemplo, en Perl 6, esta es la forma de calcular el elemento 234 de la serie de Fibonnaci.

Código: Seleccionar todo

> say (0, 1, *+* … ∞)[234]
3577855662560905981638959513147239988861837901112


Sí que es cierto que en todos estos años va incorporando elementos de otros lenguajes, pero siempre encontrarás algún lenguaje específico mejor que el Basic para realizar una determinada tarea.

No digo funciones específicas, sino, recursividad, diferentes cantidades de parámetros, estructurado, llamadas callback, herencia, apuntadores, constructores, clases, encapsulado, polimorfismo, uniones, multihilo y hasta usar .NET

casi todas las características de C++ o C#, ya el basic las tiene.

Por cierto no conozco el perl, se ve interesante.

Avatar de Usuario
explorer
Mensajes: 701
Registrado: 10 Ene 2016 18:43
Ubicación: Valladolid, España
Agradecido : 24 veces
Agradecimiento recibido: 684 veces
Contactar:

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor explorer » 14 May 2017 19:57

Pues a eso me refería... que sí, que todo se puede hacer, pero cuesta más o menos según el lenguaje. Y quería expresar en mi comentario que el Basic moderno no tiene mucho de "básico" (lenguaje mínimo fácil de aprender). Al contrario, tiene un montón de características que lo aproximan al Pascal (también moderno). Esto no lo invalida como lenguaje generalista, pero no es el BASIC que conocimos hace 30 años.

En cuanto al código Perl que he puesto... si te fijas, verás que en realidad está puesta la secuencia de Fibonnaci (0, 1, y el resto es la suma de los dos anteriores... hasta el infinito. Eso está entre paréntesis, así que ahí tenemos una lista de elementos. Y usamos los corchetes para indicar que solo queremos el 234. Y "say" es... bueno, eso... "decir".

Una característica de los lenguajes de ordenador es su "expresividad". Se refiere a cuántas líneas de C nos hacen falta para obtener la misma funcionalidad que en ese lenguaje. Por ejemplo, Java tiene una expresividad de 1.5. Quiere decir que por cada línea que escribimos en Java, tenemos que escribir 1.5 líneas en C. Perl, Python y otros lenguajes tienen niveles mucho más altos de expresividad, llegando a un valor de 6.
https://en.wikipedia.org/wiki/Compariso ... essiveness

En cuanto al código BASIC que has puesto, hay algún error ;)

Avatar de Usuario
badapower
Mensajes: 536
Registrado: 16 Oct 2012 00:16
Agradecido : 98 veces
Agradecimiento recibido: 133 veces

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor badapower » 14 May 2017 22:04

explorer escribió:En cuanto al código BASIC que has puesto, hay algún error ;)


Seguro, llevo 8 años sin programar en ningún lenguaje y en el basic del Spectrum más de 25 años, mi curro no tiene nada que ver con la informática, por eso pido que alguien ponga el algoritmo optimizado en Basic 8 bits, si el Spectrum solo puede llegar hasta el elemento 185 puedo hacer la matriz de 185 elementos en lugar de 234 y en lugar de usar una matriz se podría hacer con variables, así que alguien que programe habitualmente puede poner el código más óptimo en Basic y C para que veamos las diferencias entre lenguajes, claro, si le apetece y tiene ganas de romperse el coco unos minutos.

El BASIC ha evolucionado tanto que realmente en .NET puedes hacer lo mismo en cualquiera de los lenguajes, cuando los compilas todos generan el mismo Microsoft Intermediate Language (MSIL), se podría dejar uno solo de los lenguajes y punto, pero imagino que por temas de retroactividad y compatibilidad con aplicaciones ya desarrolladas en esos lenguajes se siguen manteniendo, seguramente que con un único lenguaje fuese posible hacerlo todo, por eso siempre he pensado que lo mejor es hacerse especialista en un solo lenguaje de propósito general que siga vivo, conocerlo mejor que a tí mismo y serías capaz de todo, aplicaciones web, aplicaciones de escritorio, bases de datos, en el fondo todo son clases y librerías, si no existen te las haces y listo.

¿Y el perl éste para que se usa?,¿es muy complicado de aprender?.

Avatar de Usuario
explorer
Mensajes: 701
Registrado: 10 Ene 2016 18:43
Ubicación: Valladolid, España
Agradecido : 24 veces
Agradecimiento recibido: 684 veces
Contactar:

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor explorer » 15 May 2017 14:16

badapower escribió:por eso siempre he pensado que lo mejor es hacerse especialista en un solo lenguaje de propósito general que siga vivo, conocerlo mejor que a tí mismo y serías capaz de todo, aplicaciones web, aplicaciones de escritorio, bases de datos, en el fondo todo son clases y librerías, si no existen te las haces y listo.
Sí, así es. Un buen especialista en un determinado lenguaje es capaz de obtener una solución en muy poco tiempo y con un consumo de recursos mínimo. Se suele decir que se necesitan 10 años de experiencia en cualquier lenguaje para decir que eres experto en él. No es del todo cierto (un programador puede haber estado 10 años usando un lenguaje para hacer aplicaciones de bases de datos y no tener ni idea de cómo enfrentarse al tratamiento de cadenas de ADN para resolver un problema de bioinformática).

Pero también, apostar por un lenguaje es peligroso: Ya hemos visto cómo los lenguajes van y vienen, y lo que ahora está de moda, quizás dentro de 10 o 15 años sea algo minoritario.

La recomendación es, que si eres joven, aprendas muchos lenguajes, y a medida que vas adquiriendo experiencia y años, te encontrarás más cómodo con algunos de ellos, así que serán esos en los que te especializarás.

badapower escribió:¿Y el perl éste para que se usa?,¿es muy complicado de aprender?.

Sacado de la documentación oficial (traducción en español), del documento perlintro:
Perl es un lenguaje de programación de propósito general desarrollado originalmente para la manipulación de texto y que, en la actualidad, se usa para una amplia gama de tareas, como administración de sistemas, desarrollo web, programación de red, desarrollo de interfaces gráficas de usuario, etc.

El lenguaje se diseñó para ser práctico (fácil de usar, eficaz, completo), más que estético (reducido, elegante, minimalista). Se caracteriza principalmente por su facilidad de uso (permite programar tanto de manera procedural como orientada a objetos (OO)), su magnífica capacidad para procesamiento de texto y por tener una de las colecciones de módulos de terceros más impresionantes del mundo.

Vamos, en un par de tardes aprendes la sintaxis básica. Dominarlo... quizás un mes. Y con eso ya puedes tirarte toda la vida, pero aún así, apenas has rascado la superficie de algo muy grande.

Casi cada día descubres cosas nuevas. Quiero decir que a muchos programadores les vale con aprender un poquito para hacer cosas administrativas (copias de seguridad, mover archivos entre máquinas, hacer limpieza/estadísticas de registros de actividad).

Pero el lenguaje es lo suficientemente potente como para hacer otras muchísimas cosas. Y además, muchas de ellas YA están hechas, y están disponibles de forma libre en CPAN. Da igual que sea una biblioteca para calcular la presión que necesita un buceador, dónde empieza o termina la zona de sombra de un ascensor espacial, leer el Corán o La venganza de Don Mendo. Todo está allí (bueno, casi todo ;) )

Por si alguien tiene curiosidad, puede empezar con estos enlaces.

Y el próximo 3 de junio, en Madrid, celebraremos el Madrid Perl Workshop 2017, donde pasaremos el sábado escuchando charlas y conferencias.

Saludos.

Avatar de Usuario
wilco2009
Mensajes: 2142
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 202 veces
Agradecimiento recibido: 384 veces

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor wilco2009 » 15 May 2017 18:49

El BASIC es un lenguaje de programación completo equivalente a una máquina de Turing. Es decir, se puede computar todo lo computable.
Otra cosa diferente es si es lento o incómodo de usar, o poco estructurado, pero no tiene limites en cuanto a capacidad de computación.
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
ron
Mensajes: 21878
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3883 veces
Agradecimiento recibido: 4787 veces

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor ron » 16 May 2017 09:19

Ayer mientras ponía en marcha un A500 con el HD restaurado, al instalar el WB 1.3 en el disco de extras estaba el Amiga Basic.

Me hizo gracia recordar que era una versión de Microsoft. ¿ Acaso Commodore no tenía empresas mejores como Metacomco y otras que podían hacer mejores cosas ?

Y esto me hace replantear que desde que los micros se empezaron a lanzar con sistema operativo en ROM o en disco ( no todos ) el BASIC fue el protagonista porque no solo aquellos intérpretes se ocupaban de la ejecución de los programas sino que se usaba el propio PROMPT para desde BASIC acceder a las partes de OS , al I/O y en general todo se hacía o era posible hacerlo desde BASIC.

No podemos olvidar o ignorar que sigue siendo Beginners All-purpose Symbolic Instruction Code y esa es la clave, está diseñado y orientado a principiantes y para aprender. No me imagino en los 80 que los micros tuvieran intérpretes de Pascal o de C, con Forth ya vimos el intento de los Jupiter ACE y no obstante, para casi todos los micros hay lenguajes diversos de programación.

Como comentaba, los 16 bit incorporaban BASIC, ¿ acaso se podían desprender de semejante legado para aprender ? , mirad lo que pasó con el GFA Basic con los Atari ST, se creó toda una industria a su alrededor y los programas que se hacían quitaban el hipo.

Creo que se intenta infravalorar la importancia histórica haciendo comparaciones con otros lenguajes como el Pascal y el C. EL Basic está en la retina de todo aquel que usara un 8 bit de los 80 y por poco que hiciera, seguro que se acuerda.

Avatar de Usuario
Chema
Mensajes: 2667
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 3201 veces
Agradecimiento recibido: 931 veces
Contactar:

Re: [Articulo] En defensa del Basic [The Digital Antiquarian]

Mensajepor Chema » 16 May 2017 11:02

Estoy con ron. El BASIC fue la revolución es su día. ¿Qué opciones había? Fortran, ASM, alguna cosa propietaria... Y llega un lenguaje que te permite de manera muy simple realizar tareas con el ordenador y, además, más o menos estandarizado (con sus cosas, vale). BASIC no solo es simple, sino que además es muy fácil de interpretar, es compacto en el uso de memoria y con un conjunto muy reducido de cosas ya puedes empezar. Si no fijaros en el basic del C64 -507 .

Y es posible usarlo de prompt, cuando no había algo como un SO con su línea de comandos.

Es, efectivamente como dice Wilco, completo. Puede computar todo lo computable. Otra cosa es que sea más fácil o difícil de usar para ciertas cosas.

Yo recuerdo con cariño el Pascal, creo recordar que diseñado para enseñar programación estructurada, pero ya era compilado (tuve el HISOFT Pascal para el speccy) y, por supuesto el C. Lo que pasa es que da la impresión de que todos estos lenguajes procedurales han ido evolucionando en el mismo sentido, creo yo: añadiendo las características de la programación orientada a objetos y empiezan a ser todos bastante parecidos.

Hasta han añadido características de lenguajes funcionales (tipo LISP o HASKEL), fijaros en el C++11 o el C# y algunas de lenguajes orientados a datos (creo recordar que C# con LINQ soporta queries SQL sobre fuentes de datos).

Con Matlab u Octave trabajar con matrices es una delicia. Tengo amigos a los que les encantan los lenguajes funcionales tipo Haskell (para mí es chino) La función para la sucesión de Fibonacci es, en una posible implementación:

Código: Seleccionar todo

fib n = fibs (0,1) !! n
        where fibs (a,b) = a : fibs (b,a+b)


Y luego están los lenguajes esotéricos, creados en plan de coña o en plan exploración. Lenguajes como el Whitespace, Leet, LOLCode o BrainFuck.

Esto es un Hello World! en LOLCode

Código: Seleccionar todo

HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE


Vamos, que son como los cacharros... todos distintos, todos interesantes. Lo mejor es utilizar el que nos resulte más cómodo para cada tarea.

Yo hace tiempo que no aprendo (en el sentido de llegar a dominar) lenguajes nuevos: los uso de manera instrumental. Quiero decir que si tengo que hacer algo en C# voy aprendiendo lo que necesito sobre la marcha, empezando a hacer las cosas como lo haría en C++ y evolucionando. Me da igual tirar de Matlab, que de Python (no lo he hecho nunca), C# o incluso java (que lo he evitado en todo lo posible).

Ahora bien, soy más crítico en cuanto a que sea el lenguaje para aprender como primero o para desarrollar. No lo he pensado nunca, pero se me antoja que hay mejores alternativas. Hoy en día igual Python, Java o incluso C++. Pero vamos, lo digo sin meditar demasiado.


Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados