Pregunta

Entonces, estoy escribiendo una especie de programa de estadísticas (en realidad lo estoy rediseñando para que sea más elegante) y pensé que debería usar un lenguaje creado para ese tipo de cosas (que trata con datos enormes de estadísticas, conexiones). entre ellos y algún tipo de programación genética / neural).

Para decirte la verdad, solo quiero una excusa para sumergirme en lisp / smalltalk (¿no es smalltalk / lisp / clojure igual? - como python and ruby? -semantics-wise) pero también quiero un lenguaje para ser fácilmente comprendido por otras personas que les gusta el lenguaje BÁSICO (por eso no elegí LISP - aún: D).

También verifiqué Prolog y parece un lenguaje bastante bueno (fácil de hacer las relaciones entre datos y más fácil que Lisp) pero me gustaría escuchar lo que piensas.

Thx

Editar: Siempre confundo lisp común con Smalltalk. Lo siento por poner estos dos langs juntos. También a lo que me refiero con " otras personas que les gusta el lenguaje BÁSICO " es que no prefiero un lenguaje con semántica como lisp (para personas sin experiencia en CS) y me parece que Prolog es un poco más intuitivo (pero esa es mi opinión después de que me metí un poco con ambos).

¿Fue útil?

Solución

¿Hay alguna razón en particular para no usar R? Es una especie de construcción contra compra ( o en este caso descargar) decisión. Si está realizando un cálculo estadístico, R tiene muchos paquetes listos para usar. Estos incluyen muchas bibliotecas e interfaces para varios tipos de fuentes de datos. También hay bibliotecas de interfaz para incrustar R en otros idiomas como Python, para que pueda crear una aplicación híbrida con una GUI en Python (por ejemplo) y un motor de computación central utilizando R.

En este caso, posiblemente podría reducir el esfuerzo necesario para la implementación y terminar con una aplicación más flexible.

Si tiene todo el corazón puesto en aprender otro idioma, por todos los medios, hágalo. Hay varias buenas implementaciones gratuitas (algunas como en el habla, otras como en la cerveza) de Smalltalk, Prolog y LISP.

Si está colocando una interfaz de usuario en el sistema, Smalltalk podría ser la mejor opción. Si desea crear grandes conjuntos de reglas como parte de su aplicación, Prolog está diseñado para este tipo de cosas. Varias personas han escrito escrito sobre el efifano de LISP que influye en la forma en que piense en la programación pero realmente no puedo responder por esto, solo he usado AutoLISP para escribir scripts de automatización en AutoCAD.

Otros consejos

A riesgo de ofender a algunos, me cuesta mucho conciliar " que otras personas a quienes les gusta el lenguaje BÁSICO entienden fácilmente " con cualquiera de los idiomas que mencionaste. No se pretende que sea una crítica, sino una observación de que cada uno de los idiomas que mencionas tiene un estilo y un lenguaje natural muy diferente al de BASIC.

  • Smalltalk: OO puro desde cero, generalmente (por ejemplo, Squeak) junto con un entorno integrado que es simultáneamente el IDE y el tiempo de ejecución. Por lo tanto, ingresa a la VM Smalltalk y trabaja dentro en lugar de simplemente escribir un texto que es " código fuente " ;.

  • LISP: mucho más cerca de la programación funcional (aunque con matices imperativos); la notación de prefijo es la primera barrera para la mayoría de las personas que " como " otros idiomas, pero el concepto y el uso de macros es mucho más importante.

  • Clojure: la combinación de integración LISP, OO y JVM hace que este sea incluso menos similar a BASIC.

  • Python y Ruby: los agrupo (a riesgo de molestar aún más a los fanáticos de cualquiera ;-) porque ambos son lenguaje OO con notaciones distintas que llevarán a un extraño un poco de curva de aprendizaje. El uso de solo sangrado para el anidamiento de control en Python y el uso similar a Perl de caracteres especiales en Ruby son a menudo puntos de la queja de los recién llegados. Aunque ambos pueden escribirse en un estilo imperativo, eso sería considerado no estándar por los usuarios experimentados.

  • Prólogo: este es el BÁSICO más diferente de todos los idiomas mencionados. Todos los otros idiomas que mencionó se pueden (ab) utilizar en un estilo semi-procesal, pero eso es esencialmente imposible en Prolog. Requiere una comprensión profunda de, y la comodidad con, la recursión para hacer algo no trivial.

Código escrito con un " acento nativo " Básicamente, todos estos lenguajes (pero especialmente Prolog, IMHO) utilizarán modismos y conceptos que están fuera de la norma para la programación BÁSICA convencional. Dicho de otra manera, si elige uno de estos y luego escribe el código " con un acento BÁSICO " ha perdido prácticamente los beneficios que el idioma puede ofrecer.

Creo que vale la pena aprender todos ellos por los conceptos que pueden enseñar (o al menos reforzar, dependiendo de sus antecedentes). Pero la similitud con el Idioma X (para una amplia gama de valores de X) no es lo que obtendrás.

Puedo responderte parcialmente

  

(¿Smalltalk / Lisp / Clojure no son lo mismo? - ¿como python y ruby? -semantics-wise)

No, no lo es. Smalltalk es un lenguaje OO con paso de mensaje en lugar de llamadas de método. Lisp es Lisp ;-) Significa un lenguaje verdaderamente funcional con el potente sistema de macros, soporte OO que nunca se ve en otros idiomas (en CL) y muchas más características. El cierre es un lenguaje similar al de Lisp sin muchas características de Lisp pero buena integración a JVM. No es compatible con la optimización de llamadas de cola, por ejemplo. Y python o ruby ??son lenguajes OO imperativos clásicos con alguna capacidad funcional limitada. Nota palabra limitada. Por ejemplo, a Guido no le gusta la programación funcional y eliminó algunas funciones funcionales en las versiones 2.5 y 2.6.

Si está familiarizado con la programación de procedimientos imperativos como en Python y desea cambiar su paradigma, debe tomar su decisión con cuidado.

Prolog es un lenguaje muy diferente. Puede ser muy difícil de comprender, principalmente porque se basa en gran medida en la recursión para realizar tareas muy básicas. Si está realmente dispuesto, entonces inténtelo. Puede ser muy poderoso porque permite expresar relaciones y resolver problemas complicados de manera simple, los ejemplos típicos son Torres de Hanoi o quicksort. Cambiará su forma de pensar, lo que puede ser difícil si está acostumbrado a los idiomas imperativos.

Si está interesado en Prolog, hay una versión gratuita de Visual Prolog disponible y la La versión comercial tiene un precio razonable.

Es un tipo fuerte de la rama de Prolog, por lo que no es su implementación clásica del lenguaje, pero tiene una historia respetable: Borland comercializó al antecesor del DOS como Turbo-Prolog a fines de los años 80.

También es solo para Windows, pero se puede usar para crear DLL estándar de Windows para que pueda vincular su código a un lenguaje de programación de Windows "normal". Yo mismo nunca he usado el paquete con ira, pero hice un par de cursos de Prolog en Uni, así que lo descargué de vez en cuando para jugar y buscar posibles usos y parece lo suficientemente sólido. Podría ser justo el conjunto de piezas que estás buscando.

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