Hola.
En realidad, lo que es un tema para mí no es realmente "thread-safety"
si no la escalabilidad horizontal y vertical. En computación,
usualmente se optimiza en 3 dimensiones: espacio, tiempo y
simplicidad. Dado que utilizar hilos permite disminuir la huella en
memoria me parece importante como opción. ;-) Si la escalabilidad no
fuese un tema importante Facebook no hubiese creado HipHop.
En la actualidad para hacer una aplicación PHP sumamente escalable,
desde mi punto de vista, es necesario utilizar una combinación de
Varnish Cache, Nginx (estos dos en caso de que haya contenido estático
generado de manera dinámica, lo típico con CMS) y G-Wan (únicamente este
si el contenido es todo de naturaleza dinámica -o sea, depende de la
sesión-) sobre algún sistema operativo liviano. ¿Por qué G-Wan en lugar
de HipHop? Porque es PHP estándar.
En fin, usted sabe que en las comunidades de software libre y open
source existen ciertos valores de altruismo y de meritocracia que son
importantes. Si yo viera que Microsoft contribuye a un proyecto libre
aunque sea competencia y lo hace sin esperar ventas a cambio, sólo por
ganar comunidad por mérito, se ganaría mi respeto. Actualmente la lista
wincache, azure, la extensión para SQL Server, el Web Platform
Installer, etc., no me despiertan ese tipo de sentimiento. Sí considero
que facilitan mucho las cosas cuando uno tiene que instalar una
aplicación PHP sobre Windows cuando ese es el requerimiento del
cliente. Sin embargo, yo utilizo PHP desde finales de los 90 e
igualmente lo podía hacer antes, excepto que era un trabajo más "a
pie". De hecho, perfectamente se puede correr APC en Windows, no hace
falta wincache.
Como nota aparte, ya que entramos en el tema de los "caché" de op-codes,
voy a dar una anécdota de por qué Zend es una empresa con prácticas poco
transparentes. Por un lado, muchos desarrolladores PHP no saben que PHP
es compilable a un código intermedio y que puede estar en ese estado
ahorrándose tiempo de análisis sintáctico, etc. Por otro lado, resulta
que cuando una persona programó una de las primeras extensiones PHP para
tener un caché de op-code lo iba a liberar con licencia GPL, sin
embargo, Zend lo convenció de no hacerlo utilizando todo el poder de
convencimiento posible. Durante mucho tiempo la comunidad PHP estuvo
obligada a pagar para tener el rendimiento que permite el estado en
op-codes.
Otra anécdota. Había creado una extensión PHP y quería que fuera
thread-safe. Eso lo estaba haciendo en mi tiempo libre. Necesitaba
tener zonas de exclusión mutua. Eso existe en PHP, sin embargo, no está
documentado.
Estuve leyendo mucho código y me di cuenta que hay archivos con
licencias diferentes a la de PHP. Hay mucha funcionalidad que es
secreta (¿porque quién se va a leer el código?). Hay extensiones
experimentales que han existido y no han salido a la luz por
deficiencias del propio Zend Engine (por ejemplo, una de hilos). PHP 6
fue un fiasco. Zend hace lo posible para mantener una gran control
sobre la evolución del lenguaje (a pesar que el lenguaje no fue creado
por ellos) y para sostener un monopolio en servicios relacionados a PHP.
Me encantaría que una empresa grande entrara en el consorcio del
lenguaje y haga ciertas reformas que son necesarias hacer. Algo como lo
que hizo Facebook con HipHop pero que fuera un esfuerzo comunitario y
que sea compatible con el PHP actual.
:-D
Saludos,
B.
P.S.: agrego dos listas empresariales porque me parece que la discusión
es interesante.
El 08/12/2012 11:44 a.m., Jose Miguel Parrella Romero escribió:
> Me llama la atención que thread safety sea top of mind para ti (en un buen sentido) En general cuando hablo con desarrolladores PHP como los del SNCP de Ecuador que maneja todas las compras públicas, thread-safety no es una prioridad (sobre todo en Linux) y FastCGI es visto solo como un tema de performance (arguably, como consecuencia del hecho de que ahorra procesos)
> Sobre todo, es un buen comentario. Puedo preguntar en OSTC. Ciertamente es muy probable que el enfoque en los últimos tiempos ha sido performance. De ahí salieron cosas como WinCache [1] // el propio hecho de que el framework predeterminado de PHP en Azure usa FastCGI y la versión non-thread-safe es un apuntador. Gracias por el feedback.
> [1]
http://www.iis.net/downloads/microsoft/wincache-extension
>
>> CC:
csluc...@googlegroups.com;
usua...@softwarelibrecr.org;
linu...@googlegroups.com
>> From:
bra...@solsoft.biz
>> Subject: [cslucr-root] Re: Luego del Foro de Software Libre de Ticoblogger Microsoft busca una "revancha"
>> Date: Sat, 8 Dec 2012 11:36:24 -0600
>> To:
csluc...@googlegroups.com
> Para modificar las preferencias o anular la suscripción visite:
>
http://lists.softwarelibrecr.org/mailman/listinfo/usuarios
>
> Para obtener instrucciones para organizar automáticamente los correos que vienen de esta lista visite: