PHP o JAVA?

Guillermo O. Burastero linux.gb en gmail.com
Mar Oct 25 10:18:48 CLST 2005


claudio en ing-mat.udec.cl escribió:

>es que tu lo vees de otro punto de vista, yo me refiero a la genesis de un 
>paradigma, no estoy diciendo que los que la crean no sean informados ...
>
>Lo que digo y no has deducido, es que no hay  una solucion universal para todo, 
>
gracias por tu análisis sobre mi capacidad de entendimiento...  :-( pero 
nunca dije ni creo haber dado a entender eso.

>no existe una receta aplicable para todo problema, 
>
cuando en alguna ciencia se hecha mano, a falta de métodos formales, a 
métodos no rigurosos para la solución de algún tipo de problemas, como 
por tanteo o *reglas empíricas*, es lo que se llama *"heurística" *no 
paradigma.

>los paradigmas se forman por desconocimiento, 
>
ya contesté eso antes, y como no veo nuevos argumentos al respecto no 
voy a repetirme aquí.
Voy a tratar de ser más claro. Paradigmas, en las ciencias informáticas, 
pueden ser por ejemplo "la programación estructurada" o "la programación 
orientada a objetos" o "el modelo relacional en bases de datos" o 
"método de Jackson para el diseño de reportes" o la "programación por 
contratos" o "la programación funcional" o "la programación lógica por 
cálculo de predicados", etc. etc. Ni Java ni PHP, son en este sentido, 
paradigmas informáticas, son "lenguajes de programación." ninguno fue el 
primero en programación orientada a objetos o ambientes interpretados 
(ahora está de moda decirle "máquina virtual"), o programación 
procedural, etc.

>en el sentido que es mas facil aceptar lo que un grupo de personas acepta 
>
eso habitualmente se llama *moda*

>como unica solucion sin analizar el porque es la unica o mejor solucion. 
>
Lamentablemente como dice el dicho, si la única herramienta a mano es un 
martillo, se tiende a ver muchas cosas como clavos y arreglar todo a 
martillazos.

Frecuentemente no existe, una única o mejor solución en términos 
absolutos. A veces un mismo problema se puede resolver empleando 
diferentes paradigmas, sus dominios de solucion no son disjuntos (se 
solapan) y está en el buen criterio del analista responsable de la 
selección primero: ponderar cuales atributos de cada paradigma son 
importantes *para ese caso concreto*, como ser adecuación del paradigma 
a ese tipo de problemas, experiencia de los desarrolladores con ese 
paradigma, mantenibilidad,  robustez, eficiencia, velocidad de 
desarrollo, compactación del código, portabilidad, escalabilidad, etc.

Un método para decidir entre soluciones alternativas aplicables es el 
siguiente:

   1. Volcar en una matriz una cifra de mérito para cada paradigma
      (filas) con cada atributo relevante seleccionado (columnas)
   2. Calcular la cifra de mérito para cada paradigma Qp = Sumatoria
      (Vpi * Pi),  donde  Vpi  es el valor  que en el paradigma p tiene
      el atributo i y Pi es la importancia relativa (Peso o Ponderación)
      del atributo i en la resolución de ese problema (0<= Pi <=1).
   3. Finalmente seleccionar el paradigma con mayor cifra de mérito Qp.
      Dejo al lector como resolver la indeterminación en caso de que la
      cifra optimal sea compartida por más de un paradigma. En ese caso
      hay "una superficie de soluciones optimales" en el lenguaje propio
      de la "Investigación Operativa".

También está el interesante concepto de *"programación 
multi-paradigmática"* que es aplicable a sistemas complejos que tienen 
sub-problemas que caen claramente en dominios de aplicación de 
paradigmas diferentes. Por ejemplo un sistema experto que requiera algo 
de inteligencia artificial, naturalmente implementado dentro del 
paradigma de la programación funcional (Lisp) o lógica (Prolog) y que a 
su vez deba resolver distintos problemas numéricos importantes con un 
alto grado de velocidad de cómputo, lo que caería dentro de la órbita de 
un buen lenguaje procedural compilado (C u otro. -me autoreprimo de 
mencionar Fortran aquí para no recibir una catarata de críticas...)

>Un paradigma se crea porque necesariamente debe existir un grupo de personas que se ponga de acuerdo, 
>
¿De acuerdo para qué? Es independiente la creación de un paradigma por 
uno (ej. Codd con el modelo relacional de bases de datos) o varios 
autores con su popularidad de seguimeinto o sea que lo sigan ninguna, 
una, varias o muchas personas.

>es una opinion subjetiva, 
>
Toda opinión es subjetiva, ¿no?

>no es necesariamente que alguien demuestre formalmente que es 
>la mejor solucion o la unica, es decir, se forma por desconocimiento :P y 
>necesarimente tiene su genesis por razones empiricas u otro tipo de 
>evidencia que hacen que un grupo de  personas lleguen a un concenso... 
>Cuesta entenderlo, lo mismo que cuesta entender que a veces el caos induce 
>al orden :P 
>  
>
Cuesta entender cuando hay confusión. Si te interesa tener una visión 
más ordenada y general acerca de los problemas del conocimiento y su 
generación o descubrimiento, te sugiero algunas lecturas de gnoseología 
(rama de la filosofía que se ocupa de la teoría del conocimiento) o 
epistemología que es la doctrina de los fundamentos y métodos del 
conocimiento científico (RAE). Ver un poco de empirismo, racionalismo, etc.

>En el caso se java, en un tiempo se apuntaba a que era lo mejor, 
>  
>
Lo mejor para qué ? para quiénes ? en cuáles contextos ? Java es un 
lenguaje orientado a objetos de propósito general. Como habitualmente 
corre interpretado sobre una "máquina virtual" (aunque hay compiladores 
del mismo que generan código de máquina ejecutable) por lo que en ese 
sentido es multiplataforma o sea corre en cualquier ambiente que, como 
es obvio, tenga la "máquina virtual" Java instalada. Java soporta 
grandes desarrollos, modularidad, etc.

>independiente de la plataforma, 100% compatible, orientado a objetos...
>Despues, para paginas dinamicas php comenzo a suceder los mismo.
>  
>
PHP (viene de Personal Home Page) es un lenguage de guiones de propósito 
general (general-purpose scripting language) habitualmente empleado para 
escribir guiones embebidos en páginas HTML y ejecutado -interpretado- en 
el lado del servidor (Hipertext Preprocessor). Posee soporte para 
conectarse con muchos DBMS, etc.

Por lo expuesto tienen características "muy distintas" Java y PHP.

>Lo que yo digo, es que hay que estudiar el problema que se quiere resolver 
>y buscar la mejor forma de solucionarlo, tomando en cuenta las ventajas y 
>desventajas de cada herramienta y no aceptar de antemano de que JAVA, PHP 
>o algun paradigma como la _unica_ solucion...  
>  
>
Por fin, estoy absolutamente de acuerdo contigo en esto que es lo 
principal, al fin y al cabo.

Saludos,

-- 

Guillermo O. Burastero - Linux Counter User 84879, http://counter.li.org
Córdoba 171 - B8000IFC - Bahía Blanca - Buenos Aires - Rep. Argentina
Tel +54 (291) 454-6132 - ICQ 97148268 - email: linux.gb en gmail.com



Más información sobre la lista de distribución Linux