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 :)

4 comentarios:

Pablo Frias dijo...

Jajajaja, durísimo! Pueda ser que aunque sea nos expliquen un poco más acerca de este cambio de paradigmas.

elsurexiste dijo...

Jajajaja. Cuando leí el 50%, también pensé, "Qué osados, quiero ver el paper que lo afirma" XD.

Lo que creo que tiene esta gente: un motor de reglas de negocios como el de ILOG. Posiblemente, está implementado en Lisp, tal vez en Prolog, o incluso en Java (si usaron CLIPS, aunque por las fechas que dan no resulta tan factible). Aparte del BRMS, esta mujer (que tiene un CV más que interesante, por cierto) le metió laburo para identificar elementos estereotípicos en el lenguaje que suele usar la gente común para hablar de lo que quieren que hagan los sistemas, y construyó con eso un lenguaje pseudo-natural, bastante de alto nivel, con el cual describir el sistema con el suficiente nivel de detalle. Apostaría, además, que hay formas de alterar ese lenguaje para agregarle elementos del dominio (DSL básicamente). No es algo tan descabellado: ILOG brindaba esta posibilidad, aunque nunca me gustó la forma en que lo hacía. Eso cumpliría con todo lo que dijo que hace el sistema y con algunas cosas de su LinkedIn.

Lo de innovación sería verdad también, si se piensa en la forma en que trabajan los que hacen sistemas para PyMEs.

El tema es que ILOG (ahora IBM) y JBoss (ahora Red Hat :P ) ya vendían BRMS hace cierto tiempo. Estoy más dispuesto a desconfiar de la capacidad del periodista de transmitir correctamente la entrevista, pero igual hay demasiados buzzwords y mucho circo... ¡Y lo del 50%! ...la verdad es que me falta mucha información. Como dijiste arriba, [[Citation needed]].

Tamara Garcia dijo...

MUY acertados los comentarios de Mariano Guerra sobre esta Nadia Huebra y su supuesta tecnologia de innovación. Son puras palabras de moda, desarrolladas sobre tecnologías anticuadas y que es absolutamente no performante. El tiempo que lleva desarrollar algo es justamente mucho mas que con cualquier tecnología de punta o tradicional, y los supuestos modelos magicos terminan resolviendo con IFs anidados lo que no resuelven ni con seriedad ni con palabras que sufren de inflación tecnologica. Ademas, el costo es altisimo, especialmente dada la poca experiencia y calidad de los empleados. Una pyme sin futuro ni escrupulos. Alcanza con preguntar a un cliente que la haya usado.

Tamara Garcia dijo...

Usan SQL e ifs anidados, muy lejos de un cambio de paradigma. Y muchos misterios para que no se note...

Seguidores

Archivo del Blog