¿Qué tan maduro es FreeBASIC? [cerrado]

10

Un amigo mío está considerando usar FreeBASIC en un entorno de producción crítico. Actualmente usan GWBasic, y quieren hacer una transición suave hacia lenguajes más modernos. Solo me preocupa que pueda haber errores no detectados en el software. Veo que su número de versión es 0.22.0, lo que indica que aún no está maduro. También leí esta discusión, sin poder concluir. También en sus páginas de Sourceforge no hay indicación de si es Alfa o Beta (lo que de todos modos no es un muy buen indicador). ¿Alguien tiene experiencia propia sobre la madurez, ideas sobre cómo juzgar la madurez o sabe de empresas que usan FreeBASIC en un entorno de producción crítico?

David
fuente
23
Si están usando GWBasic, cualquier cosa es una mejora.
Craig
1
Los foros de FreeBASIC parecen un mejor lugar para hacer esta pregunta.
Matt Ellen
2
@David ¿Tienen un entorno de prueba? Puede valer la pena ejecutar uno y contratar como consultor a uno de los desarrolladores del proyecto, para que pueda corregir los errores encontrados en la ejecución de la prueba.
Vitor Py
44
Sospecho que la transición de GWBasic a otro dialecto BASIC no será tan "suave" como piensas. La ley de Hofstadter se aplica especialmente a las reescrituras.
Rein Henrichs
1
Los números de versión son cosas muy específicas del proyecto. Algunos proyectos reservan el dígito principal para algo muy especial y siguen acelerando las versiones menores y micro.
Lars Viklund

Respuestas:

8

Espero que no sea demasiado tarde para desenterrar un hilo viejo.

He usado FreeBASIC en un entorno industrial durante más de 5 años, y he descubierto que es sólido como una roca. En realidad, funcionó muy bien alrededor de 0.1, con una creciente compatibilidad con QuickBASIC, y ha crecido lentamente para superar esas raíces y volverse más "grave", pero se le puede decir que trabaje en un modo compatible con QB cercano al 100%. Las versiones bastante grandes solo ven el número de versión aumentar en 0.01.

Sugiero que su amigo lleve el GWBASIC a MS QuickBASIC, lo cual debería ser bastante fácil (lo he hecho antes, ¿no está diseñado para una compatibilidad del 100%?). FreeBASIC le ofrece una opción del 'siglo XXI' para ejecutar de forma nativa como una aplicación de 32 bits en caso de que alguien sienta la necesidad. De lo contrario, con Windows 7, etc., está atascado usando una VM que ejecuta DOS o algo así.

Antonio
fuente
10

PureBasic es probablemente su mejor opción en lugar de FreeBASIC, pero si fuera usted, probablemente cambiaría a un lenguaje más moderno y robusto como C # o Python.

Gary Willoughby
fuente
3

En mi opinión, el mejor BASIC para usar para actualizar desde GWBASIC es PowerBasic (www.powerbasic.com). Muchos lo han hecho antes, por lo que hay bastante experiencia en la comunidad de usuarios de Powerbasic si necesita ayuda allí.

Además, Powerbasic es un producto de alta calidad con casi ningún problema / error y desarrollado activamente. No es gratis ($ 199) pero vale cada centavo.

FYI: No estoy afiliado a ellos y uso VB.NET yo mismo (por razones profesionales; de lo contrario, sería Powerbasic ...).


fuente
3

Powerbasic es bastante maduro, y lo recomendaría encarecidamente, especialmente si la confiabilidad y el gran apoyo son importantes para usted. Personalmente, ya no lo uso porque no está realmente diseñado para la programación de juegos, para lo cual uso (y recomiendo) el BlitzMax multiplataforma.

Dicho esto, Freebasic no debería ser un gran obstáculo si vienes de GWBasic, y parece ser razonablemente estable también. La documentación y el soporte del foro son mejores que el promedio también.

Aún así, si fuera una empresa (en lugar de un individuo) que buscara una solución que esté allí y que sea compatible en el futuro previsible, elegiría algo como Powerbasic. Aquí hay un programa que puede convertir QBasic a Powerbasic: http://www.powerbasic.com/support/downloads/files/QB2PBv2.zip

¡Espero que esto ayude! Russell

Russell
fuente
3

Estos son los siguientes dialectos básicos que son buenos tanto como compilador como script incrustable:

1) gambas

Estos son los siguientes dialectos básicos que son buenos solo como compilador pero pueden incorporar otros scripts:

2) jabaco

3) objetivobasic

4) freebasic

5) chipmunkbasic

Estos son los siguientes dialectos básicos integrables que son buenos y pueden integrarse en otros dialectos básicos según los marcos:

6) scriptbasic

7) maven-sb4j

8) ajbasic

Todos estos también se pueden usar para crear aplicaciones de interfaz gráfica de usuario que difieren entre sí, herramientas de conexión de bases de datos y en el área de aplicaciones integrables (páginas de servidor web), scriptbasic y gambas-gbs3 ya están allí, mientras que si puede obtener fb-curl y fb-simplewebserver e integrarlos en freebasic framework, luego también freebasic-server-pages (si no están allí, entonces puede que tenga que descargar y copiar y pegar la biblioteca y los archivos de encabezado en la biblioteca e incluir el directorio de freebasic respectivamente). Incluso Jabaco puede incrustar maven-sb4j, o objectbasic y chipmunkbasic pueden incrustar applecript y scriptbasic respectivamente. Por lo tanto, es probable que tengan una solución para la mayoría de los requisitos.

Si eres muy particular con la compatibilidad de gwbasic, elige bwbasic (gwbasic mejorado para freebsd y linux), pero no creo que haya mucha diferencia con otros.

Sin embargo, para los gráficos con bwbasic, debe lidiar con las opciones basadas en x11 o esperar hasta que agregue soporte para tk, fox y otros kits de herramientas conocidos.

Si estás dispuesto a buscar:

Entorno de desarrollo robusto tipo vb + páginas de servidor básicas, luego elija gambas o jabaco con maven-sb4j.

Un intérprete robusto compatible con una idea delgada pero buena: freebasic, y si puede obtener fb-curl y fb-simplewebserver e integrarlos en el marco freebasic, entonces también freebasic-server-pages.

Motor web robusto para páginas de servidor básicas, luego scriptbasic y thinbasic.

Por lo tanto, todos estos son robustos y pueden ser utilizables al menos después de agregar algunos módulos.

Prestó algunas características menores de python / perl / ruby: scriptbasic (y también yabasic3)

Sintaxis fácil y muy estándar: sería básico (openbasic) en el futuro, actualmente freebasic y scriptbasic son dos sabores variados o básicos tradicionales, mientras que gambas y jabaco son dialectos vb6 variados.

kaushikkg
fuente
2

¿Cuál es exactamente su caso de uso? O más bien el caso de uso de tu amigo. Los dirigiría hacia Python (o cualquiera de los otros lenguajes ampliamente utilizados pero también simples) pero tal vez hay alguna razón específica por la que necesitan usar un dialecto BÁSICO.

Estoy a favor de jugar con varios idiomas en proyectos personales, pero para fines de producción críticos, generalmente me limito a los idiomas que son ampliamente conocidos, ampliamente compatibles y muy probados en batalla.

jhocking
fuente
3
Esta no es una respuesta, pero es más adecuada como comentario. El caso de uso es que se utiliza para el cálculo crítico de negocios de costos de materiales, costos de mano de obra, generación de modelo 3D, etc. El programa GWbasic actual tiene alrededor de 30,000 líneas de código (creadas por un solo desarrollador), razón por la cual se prefiere la reescritura en comparación con ir a Python, lo que requeriría una reescritura completa.
David
55
No estoy personalmente familiarizado con FreeBASIC o GWBasic, pero sospecho que no es una pequeña reescritura. La mayoría de los dialectos BÁSICOS que he encontrado son en realidad bastante diferentes entre sí. Pure Basic, Real Basic, Blitz Basic, GL Basic, etc. Son conceptualmente muy similares (por ejemplo, no orientados a objetos) pero la sintaxis es completamente diferente.
jhocking
Tentado a despreciar a cualquiera que favorezca el código "bonito" sobre el código de trabajo. Parece que tienen un gran cuerpo de GWBASIC probado y probado, están contentos con su funcionalidad, les gustaría pasar a un lenguaje más moderno sin tener que volver a escribir o rediseñar todo, lo cual es perfectamente sensato. ¡Reescribir un gran sistema heredado es una de las tareas más arduas que puedas emprender!
James Anderson el
Pasar a un lenguaje más moderno sin reescribir todo es un primer instinto sensible, pero no realmente práctico en esta situación. Si la única razón para reescribir todo es obtener un código "bonito", sí, es una gran pérdida de tiempo, pero esa es una razón para no cambiar de idioma. Sin embargo, si tiene una necesidad real de cambiar de idioma (este es un hilo antiguo, así que no recuerdo si lo hizo), entonces cambiar de idioma lo obliga a reescribir todo.
jhocking
0

Luego está el soporte java-api o japi para scriptbasic, yabasic2 y jabaco, que es multiplataforma.

Pero, por supuesto, hoy en día muchos dialectos básicos también tienen otros juegos de herramientas multiplataforma, que pronto pueden allanar el camino para aplicaciones de calidad en el futuro.

kaushikkg
fuente