OT: php te daña la cabeza
Claudio Baeza R
claudio en ing-mat.udec.cl
Mar Jul 25 17:22:07 CLT 2006
Muy buenos argumentos, pero hay una cosa que parece ser mas importante
"el sentido practico".
Que quiero decir, si funciona en el presente y corto plazo, es
suficiente.
La analogia a lo anterior es la importancia de la programacion en la
creacion sw software. A los informaticos se nos ense~na a modelar,
dise~nar, construir, documentar, planificar, etc., pero si uno hecha una
mirada a las empresas que desarrollan software, sobre todo las
consultoras, generan codigo sin ninguna tecnica de desarrollo de
software, la unica tecnica que ocupan, es programar, crear codigo,
probar y si funciona listo.
Un ejemplo es la consultora DMR, me han contado tantas historias que no
entiendo como una empresa asi puede sobrevivir en el mercado, crean
software sin emplear tecnicas de desarrollo de software, osea
practcamente ponen gente a programar, gente recien titulada es mandada
como "experta" a las empresas o en su defecto, les hacen un curso de una
semana para calificarlos de expertos.
Eso me responde a una pregunta que siempre me he hago, cuando voy a CTC,
a algun banco, Isapre, AFP, alguna tienda comercial, etc. me encuentro
con que me dicen "hay problemas con el sistema", "el sistema se cayo",
"el sistema esta lento", etc., y a la gente le parece "normal", todos
esperan entre 5 y 30 minutos sin reclamar ni nada, yo no acostumbro
mucho ir a esos lugares (ya que tiempo es lo que menos me sobra), pero
de las pocas veces que voy, en varias oportunidades me ha tocado "perder
tiempo" debido a problemas con los "sistemas informaticos".
Concluyo que a veces es mas importante el sentido practico en el
ambito temporal (presente, corto plazo), ejemplo, php es facil, pero
conceptualmente tiene un mal dise~no, pero permite hacer cosas en
periodos de tiempo cortos, a la persona no le intersa que
conceltualmente sea malo, le importa que pueden crear cosas.
Las empresas quieren un sistema informatico, que buscan, alguien
que les cree un sistema lo mas rapido posible, no le sinteresa si para
crear el software se emplean tecnicas sofisticadas de desarrollo de
software , mas bien, ni siquiera le interesa si se emplean tecnicas
informaticas de desarrallo de sotfware, solo le interesa tener un
software que puedan utilizar lo mas rapido posible, pero las
consecuencias son en el mediano y largo plazo, cuando se requiere de
cambios o el software a dejado de ser util.
Ya me desahogue...
claudio
On Tue, 2006-07-25 at 15:59 -0400, Alvaro Herrera wrote:
> Juan Martínez escribió:
>
> > Cada herramienta para lo que sirve y punto.
>
> O sea PHP para el tacho de la basura y punto.
>
> > Nadie critica a un carpintero por que solo martilla y atornilla, ni a un
> > electrico por que solo pela cables... :-) Pero ambos se necesitan para
> > edificar casas o hasta edificios de ultima generacion.
>
> Si un carpintero solo martillea y atornilla, yo diria que es un muy mal
> carpintero. Si un electrico solo pela cables, es muy mal electrico.
> Ambos *deben*, para hacer bien su trabajo, ser capaces de llevar a cabo
> labores mucho mas complicadas. Las herramientas que ambos usan van
> mucho mas alla que las que has puesto de ejemplos, y el que uno solo
> conozca esas es un buen indicador de que no tiene idea de esos oficios.
>
>
> > PHP es bueno para la web, y al que le interesa solo hacer web-devel bien
> > por el.
>
> PHP no es bueno para la web. Para lo unico que es bueno PHP es para que
> gente que no tiene idea de programar se ponga a hacer tonteritas que
> funcionan en la web.
>
> PHP es un lenguaje tremendamente inconsistente. Para observar eso, nada
> mas fijate que los argumentos de algunas funciones no tienen un orden
> logico; incluso funciones dentro de las mismas familias tienen cierto
> tipo de argumentos primero, otros despues. Para poder hacer cualquier
> cosa es necesario tener el manual abierto: "como era para las
> sustituciones con expresiones regulares?" "como era el orden de
> substr()"? etc.
>
> Por otro lado, mira el exito que tuvo Perl en su tiempo como procesador
> de strings -- cual era su ventaja principal? Debe ser obvio de
> inmediato que el hecho de tener expresiones regulares como constructo de
> primerisimo nivel es tremendamente importante. Como se las arregla
> PHP? De la peor manera posible, es decir igual que C: usando funciones
> para hacer cada operacion. De esta manera es igual de verboso que C,
> igual de incomodo. Cual es la ventaja que tiene sobre C entonces?
>
> Luego puedes observar las distinciones entre los distintos tipos de
> asignacion en PHP. Que es =, que es =&? En que casos debes usar cada
> uno? Como se comportan? Yo tuve que modificar un sistema usando eso;
> quise hacerlo usando OOP porque el problema se adaptaba naturalmente a
> eso. Pero! El gran problema era saber cuando usar = y cuando usar =&,
> y realmente el soporte que el lenguaje le da a esos constructos es tan
> incomodo que la unica manera de saber si realmente lo estabas haciendo
> bien era probar con uno y luego probar con otro y ver que partes del
> programa funcionaban y cuales no.
>
> Mira Ruby. Cual es la _gran_ ventaja de Ruby? Te lo puedo decir sin
> ser un programador Ruby: la enorme potencia que tiene al poder construir
> sentencias potentes pero simples. Con PHP no puedes hacer nada de eso,
> porque el parser de PHP es tremendamente tonto. Un ejemplo trivial:
> (http://www.loudthinking.com/arc/000205.html)
>
> doc = REXML::Document.new(File.new("articles.xml"))
>
> doc.elements.each('articles/item/title') { |title|
> puts title.text
> }
>
>
> El manejo de OOP en PHP es espantoso. Un metodo que retorna un objeto,
> en cualquier otro lenguaje lo puedes usar como objeto e invocar un
> metodo sobre el. En PHP esto no es posible, nuevamente porque el parser
> es demasiado tonto.
>
>
> Por otro lado, cuando fue la ultima vez que simplemente por instalar una
> nueva version menor del paquete del lenguaje, la mitad de los scripts de
> tu sistema dejo de funcionar? O porque cambiaste una configuracion?
> Con PHP esto es normal. Y los desarrolladores dicen "ah, bueno, es que
> no lo estabas usando como estaba documentado asi que lo unico que tienes
> que hacer es rehacer tus programas enteros de nuevo". Con eso lo unico
> que reafirman es que hace algunos años cuando hicieron el lenguaje no
> tenian realmente idea de lo que estaban haciendo.
>
>
> > Preferible PHP antes de Perl...para la web, o no?
>
> No! Prefiero Perl a PHP. Otros prefieren Python a Perl. Otros, Ruby.
> Los que prefieren PHP es simplemente porque no conocen ninguna otra
> cosa (o porque no tienen alternativa, como sucede cuando recibes un
> sistema que ya estaba hecho).
>
>
> Si alguien quiere defender a PHP me gustaria oir sus *argumentos*.
> Ojala sea mas que solo llanterio eso si.
>
Más información sobre la lista de distribución Linux