lunes, diciembre 26, 2011

revolucionando paradigmas

un amigo me paso esta nota:

http://www.comercioyjusticia.com.ar/2011/08/09/crea-software-sin-programar-y-en-la-mitad-de-tiempo/

es de una herramienta que ese amigo ya me había contado pero que nunca pude conseguir información concreta como ejemplos concretos.

leyendo el articulo se me prendió el detector de buzzwords muchas veces así que como me siento quejoso hoy voy a hacer un análisis del mismo.

si quieren sacar sus cartones de buzzword bingo :D

http://en.wikipedia.org/wiki/Buzzword_bingo

disclaimer

me encantan las tecnologías nuevas, innovadoras, que prueban cosas distintas.

no creo que el desarrollo de software este en su punto máximo, pero a veces algunas tecnológicas nuevas vienen con mucho discurso de relaciones publicas y pocos ejemplos concretos.

si bien al final explica que ya tiene implementaciones concretas me voy a centrar en la promesa de "hacer software sin programar" que predica el titulo.

hago muchas preguntas y algunas cosas que digo son muy genéricas o pueden ser falacias, solicito a los guardianes de la argumentación que sean cariñosos con migo :D

empecemos

Un nuevo paradigma revoluciona la tradicional forma de desarrollar programas.
http://images3.wikia.nocookie.net/__cb20090909220405/en.futurama/images/thumb/8/8b/ThatGuy.jpg/727px-ThatGuy.jpg

"that guy" en futurama ya lo dijo
"I'll handle this, Fry. You get back to the farm, shift some paradigms, revolutionize outside the box"
luego
OMP es una calculadora que “modela” implementando operaciones.
calculadora podría ser sinónimo de interprete, "modela" podría ser sinónimo de interpreta, implementando operaciones podría ser sinónimo de método/función etc. (muchas asunciones por supuesto)

pareciera que usara sinónimos para que no parezca algún lenguaje de programación o herramienta 4GL tradicional (http://en.wikipedia.org/wiki/Fourth-generation_programming_language)
Resuelve por medio de metamodelos la solución con base en los requerimientos del cliente.
mmm meta (http://en.wikipedia.org/wiki/Metacrap)

osea que son modelos sobre los modelos, simplemente un modelo de indireccion mas?
A famous aphorism of David Wheeler goes: "All problems in computer science can be solved by another level of indirection"; this is often deliberately mis-quoted with "abstraction layer" substituted for "level of indirection". Kevlin Henney's corollary to this is, "...except for the problem of too many layers of indirection."

sigamos

Consultores Pyme se asoció a la firma Onirus, de Tandil,
un poco de publicidad gratis
para promover el uso del Paradigma Semántico de Modelado de Software,
me encanto la conjunción de paradigma y semántico para hacerlo parecer mas cool.

se referirá simplemente a programación declarativa con palabras mas difíciles?

http://en.wikipedia.org/wiki/Declarative_programming
una solución que revolucionará el concepto de construcción de software en las empresas que programan con tecnologías tradicionales.


Se trata de una herramienta innovadora creada por la ingeniera en sistemas Nadia Huebra y su equipo, fundadores de Onirus, una empresa con presencia en Buenos Aires y Mendoza.
mas publicidad
Sobre la base de un paradigma conceptual denominado MORE®
antes era un paradigma semántico, ahora es conceptual.
(propiedad intelectual de Nadia Huebra), se creó una herramienta denominada OMP® (Onirus Modeling Platform) capaz de modelar software sin programar, es decir sin generar código procedural, tal como se conoce.
desde cuando programas "es decir" sin generar código procedural?

podes generar DSLs, programación declarativa, interpretarlo directamente etc.

prolog define hechos y pregunta cosas y sin embargo es un lenguaje de programación y es considerado programar.
“Funciona como una calculadora de procesos funcionales. OMP implementa axiomas, operaciones y argumentos MORE para resolver mediante metamodelos la creación del software. Esto conlleva la mitad del tiempo que se tarda en desarrollar un programa común”, explicó su creadora, quien patentó la idea.
los axiomas no se implementan se definen (creo :D)

se refiere a axiomas como un "fact" en prolog o en un sistema experto?

http://en.wikipedia.org/wiki/Expert_system
Para la creación del software, el profesional responsable de la captura del requerimiento (equiparado al programador en la tecnología tradicional)
osea que cambiaste el nombre del programador-analista.
imparte -en lenguaje natural-, una especificación funcional a partir de la cual se modela el problema funcional.
si se imparte en languaje natural y no un lenguaje formal, como resuelve el requerimiento:

"cuando el valor es entre 1 y 5..."

1 y 5 inclusivo? exclusivo?

si eso se tiene que especificar o esta formalizado que significa entonces no es lenguaje natural, es simplemente un lenguaje de muy alto nivel.

por ejemplo, esto es lisp:

(loop for i from 1 to 10 sum i)

parece lenguaje natural, salvo que si lo cambio un poco ya no anda, entonces
es un lenguaje de muy alto nivel nomas.

otro ejemplo (entre tantos), cucumber: http://cukes.info/ aunque parezca ingles es ruby, o un interprete sobre ruby
La calculadora cuenta con una cantidad definida de modelos y N cantidad de ensambladores, que combinan los modelos con base en las especificaciones de los requerimientos solicitados por el cliente.
cuenta con una cantidad definida de modelos, osea que serian como bibliotecas o patrones prediseniados?

ensambladores como linkers o como glue code entre los modelos? osea que son como bibliotecas?
Luego, los testers funcionales validan las especificaciones del software resultante. “Aquí una de las máximas ventajas es que, no habiendo errores en la calculadora, no hay posibilidad de error de programa, sólo pueden surgir ajustes funcionales”, añadió Huebra.
osea que los testers hacen de compiladores?

si no hay errores en la calculadora es como decir que no haya errores en el interprete de python.

si no hay posibilidad de error en el programa, no importa lo que escriba va a andar bien? para que lo escribo?

un quote de un tal Babbage
On two occasions I have been asked, 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

Read more: http://www.brainyquote.com/quotes/quotes/c/charlesbab141832.html#ixzz1hfJ779dD
por "ajustes funcionales" se refiere a debugging/bug fixing?
“Es un cambio absoluto de paradigma, se trata de un metalenguaje de máximo nivel de abstracción de la semántica del requerimiento funcional”, explicó Huebra, segura de que éste modelo revolucionará el tradicional método de desarrollar software.
otra vez revolucionando los paradigmas

porque metalenguaje y no lenguaje? osea que si es un lenguaje de programacion?

máximo nivel de abstracción? osea que no hay nada mas abstracto? no puedo decir "resolve este problema"?

empiezo a detectar abuso de vocabulario.

ventajas

De lo cambios: OMP incorpora el cambio como variable endógena, es decir, los sistemas son evolutivos y pueden ser oportunos.
ah? sistemas evolutivos? como el software actual basado en metodologías ágiles? o programación evolutiva/genética?

http://en.wikipedia.org/wiki/Evolutionary_programming

menos mal que no son inoportunos :P
Las modificaciones se pueden realizar en los momentos que se necesiten, adecuando los tiempos a la madurez conceptual de los usuarios del negocio; no se requiere compilación.
no se requiere compilación, como un lenguaje dinámico digamos.
Del conocimiento: esta tecnología hace portable el conocimiento del negocio en formato dato. Los modelos de negocios (que serían los módulos si los comparamos con el software tradicionales) son independientes y capaces de funcionar juntos o separados.
conocimiento en formato dato, me suena a homoiconicidad, algo que lisp hace bastante bien desde digamos... 1958

http://en.wikipedia.org/wiki/Homoiconicity

ya que estamos, portable a que otra plataforma?
Del tiempo: en relación con la programación de un software tradicional, la modelación permite reducir los tiempos de un proyecto en 50%.
citation needed, que estudio de campo muestra estos resultados? paper?
Del requerimiento: Huebra asegura que MORE permite captar con alta precisión el requerimiento del cliente, y encarar la solución a su “exacta medida”.
como nos prometieron los de UML con la especificación de casos de uso?
Múltiple Son grandes empresas nacionales las que confían en Onirus. Enarsa, para sus 65 plantas, utiliza un sistema para el procesamiento de datos de despacho térmico. Hidroeléctrica Piedra del Águila, Centrales Térmicas Mendoza, Central Puerto y La Plata Cogeneración lo emplean para facturación de energía eléctrica del mercado a término. “Es aplicable a cualquier tipo de industria; algunas pymes usan sistemas con esta tecnología para administración contable, soluciones agrícolas, trazabilidad vitivinícolas, sanidad equina, entre otros”, agregó la especialista.
osea que es un lenguaje turing completo http://en.wikipedia.org/wiki/Turing_completeness

que bueno que tenga casos de éxito, osea que no es vaporware al menos, pero el lenguaje del articulo le resta bastante credibilidad.

veremos que sale de esto, espero ser probado incorrecto, a nadie le gusta hacer ABMs :)

jueves, diciembre 08, 2011

rst2html5 se mueve

una de las ideas cuando empece rst2html5 era tener la posibilidad de transformar el documento generado despues de transformarlo a html.

recien acabo de empujar los cambios para tener post processors en rst2html5

un ejemplo?

dado el siguiente archivo:

https://raw.github.com/marianoguerra/rst2html5/master/examples/slides.rst

corriendo el comando:

./rst2html5 --deck-js --pretty-print-code examples/slides.rst  > slides.html

se obtiene lo siguiente (hint, apreta enter, la barra espaciadora o las fechitas):

http://marianoguerra.com.ar/rst2html5/slides.html

hacer un post processor no es mas que manipular el elementtree resultante, escucho ideas para mas postprocessors :)

jueves, diciembre 01, 2011

mozilla rhino 1.7R3 javadocs apidocs mirror

hasta que los muchachos de mozilla arreglen sus links rotos y suban de nuevo los javadocs de mozilla rhino este humilde servidor las postea aca

http://marianoguerra.com.ar/docs/rhino-1-7R3/index.html

PD: SEO friendly title :P

Seguidores

Archivo del Blog