[PHP-ES] Re: [PHP-ES] Antes y despĂșes

[email protected] (Pablo Siciliano) Mon, 20 Oct 2025 10:10:27 -0300
Newsgroups php.general.es
Message-ID <CADQBSUNkn5u0yBKPW46Vrq=BnOPBoeTFxf2tmkBXhpKYxrD2wg@mail.gmail.com>
--00000000000072643f064196cfaf
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hola. Antes que nada, que bueno ver a alguien de "aquella vieja guardia"
por aca.

Complementando tu analisis que me parece excelente, creo que hay que poner
no solo el foco en la utilizaci=C3=B3n de cada pieza de tecnolog=C3=ADa que=
 usamos,
sino tambi=C3=A9n un para qu=C3=A9 hist=C3=B3rico: Hist=C3=B3ricamente la g=
ran mayor=C3=ADa  de los
desarrolladores web (Al menos medidos por el n=C3=BAmero) evoluciona en su
trabajo hasta un punto donde considera que "ya sabe" y no sigue
evolucionando ni en cuanto a tecnolog=C3=ADa ni en cuanto a desaf=C3=ADos q=
ue buscan.

Por eso es tan com=C3=BAn la discusi=C3=B3n por ejemplo acerca de si son =
=C3=BAtiles las
matem=C3=A1ticas: Una vez me dijeron en un foro "Yo para centrar un div no
necesito matem=C3=A1ticas y con eso gano un mont=C3=B3n de dinero al a=C3=
=B1o".

Tu "depende para que" debe necesariamente incluir que quiz=C3=A1s el 80% de=
 los
programadores sigan el hype tecnol=C3=B3gico no por necesidad real, que imp=
lica
un an=C3=A1lisis puntual de las cosas que vas a hacer sino porque no se qui=
eren
"quedar a fuera del mercado". Todo ese mecanismo sociocultural termina en
un c=C3=B3digo caro, con muchos recursos innecesarios, generalmente mal usa=
dos y
muy dif=C3=ADcil de mantener. Muchas veces con c=C3=B3digo que si fue escri=
to muy
r=C3=A1pido (Lo cual es una obvia ventaja) porque utiliza en general soluci=
ones
ya standard para problemas de moda ... Que as=C3=AD queda! (Y que no resist=
e el
avance de las bibliotecas que lo formaron, cualquiera de los presentes que
halla tenido que actualizar un sitio hecho con Laravel o Angular de mas de
cinco o seis a=C3=B1os de hecho puede avalar lo que digo)

La verdad toma muchos a=C3=B1os de pr=C3=A1ctica formar a alguien que en se=
rio pueda
pasar verdaderamente r=C3=A1pido de una tecnolog=C3=ADa en otra y usarlas c=
omo
corresponde. Ojala ahora estemos usando para eso la IA.

Slds.
Pablo.

On Sun, Oct 19, 2025 at 1:14=E2=80=AFPM Satyam <[email protected]> wrote=
:

>
> On 10/19/25 08:33, Narcis Garcia wrote:
>
> El 19/10/25 a les 6:30, Alma Guevara Castro ha escrit:
>
>
> *Fuente: Naiker.codes*
> /"Cada d=C3=ADa tengo m=C3=A1s claro que hemos complicado demasiado algo =
que antes
> era sencillo. Programar una p=C3=A1gina web en PHP (s=C3=AD, el de toda l=
a vida)
> sigue siendo, a d=C3=ADa de hoy, una de las formas m=C3=A1s r=C3=A1pidas,=
 estables y
> eficaces de levantar un proyecto funcional./
> /No hace falta un stack de 10 tecnolog=C3=ADas ni un curso intensivo de
> dependencias para mostrar datos en pantalla o conectar con una base de
> datos. Pero parece que ahora todo tiene que pasar por React, Node, Webpac=
k,
> NPM, Typescript, Redux, Vite ... con el respeto que se merecen./
> /Y en muchos casos, no aporta valor real al usuario, solo complica el
> desarrollo, la curva de aprendizaje y el mantenimiento. No se trata de
> rechazar la innovaci=C3=B3n, sino de recordar que la tecnolog=C3=ADa debe
> simplificar, no enredar. A veces lo m=C3=A1s eficiente sigue siendo lo m=
=C3=A1s
> simple. /*/=C2=A1PHP vive!/*/"/
>
>
> Celebro la vi=C3=B1eta.
>
> =C2=BFQu=C3=A9 factores podemos encontrar que han encaminado el desarroll=
o a este
> problema?
> =C2=BFComponentes de terceros, gratuitos pero con =C3=A1nimo de lucro?
> =C2=BFPereza de escribir c=C3=B3digo?
> =C2=BFUso de plantillas para el aspecto visual?
>
> Hola Narcis, interesantes preguntas.
>
> Creo que, como todo en la vida, la respuesta suele ser "depende".   Es
> obvio que PHP sigue siendo una alternativa muy v=C3=A1lida, en las encues=
tas de
> Stack Overflow muestran que todav=C3=ADa casi un 19% de quienes completar=
on la
> encuesta usa PHP:
> https://survey.stackoverflow.co/2025/technology/#most-popular-technologie=
s
> .  La encuesta muestra muchos lenguajes, muchos de ellos no necesariament=
e
> relacionados con los desarrollos para WEB as=C3=AD que, excluyendo los qu=
e no
> son aplicables, PHP no est=C3=A1 tan mal ubicado.  Pero, como dec=C3=ADa,=
 cu=C3=A1l
> lenguaje usar "depende".
>
> JavaScript surgi=C3=B3 para ofrecer interactividad del lado del cliente. =
 Sin
> JavaScript, Google Maps no existir=C3=ADa ni toda la familia de aplicacio=
nes
> on-line de Google: Mail, Docs, Sheets, Slides.
>
> Tampoco habr=C3=ADan existido utilitarios como JQuery que nos ofrecieron =
por
> primera vez acceder a esas posibilidades de interacci=C3=B3n que antes no
> ten=C3=ADamos. Por ejemplo:
>
>    - Validar campos de datos del lado del cliente (aunque, por seguridad,
>    debamos tambi=C3=A9n hacerlo del lado del servidor).   Nadie quiere ha=
cer un
>    *submit* de un formulario de 100 campos para, despu=C3=A9s de unos
>    segundos, enterarse de que hab=C3=ADa un error en el segundo campo.
>    - Llenar un <select> basado en otro, por ejemplo, llenar el de
>    municipio en base a la provincia seleccionada.
>    - Activar o desactivar campos opcionales seg=C3=BAn otras opciones en =
el
>    formulario.
>
> Todo esto es posible hacerlo del lado del cliente en JavaScript sin que
> haya necesidad de enviar todos los datos al servidor y esperar una
> respuesta del mismo.
>
> La cosa creci=C3=B3, paso a paso, a partir de all=C3=AD.  Veamos algunas =
de las
> tecnolog=C3=ADas listadas m=C3=A1s arriba.
>
> Era muy habitual programar en PHP en el servidor y JavaScript en el
> cliente.  NodeJS permiti=C3=B3 que el mismo lenguaje se usara en ambos la=
dos.
> De pronto no fue necesario tener alguien en el equipo que supiera los
> trucos de PHP y otro que supiera los trucos de JavaScript.  Surgi=C3=B3 t=
ambi=C3=A9n
> la posibilidad de que el mismo c=C3=B3digo se usara en ambos lados.  Por
> ejemplo, una librer=C3=ADa de validaci=C3=B3n de datos.  Ya no era necesa=
rio tener
> dos funciones en dos lenguajes distintos para validar, digamos, una fecha
> est=C3=A9 entre ciertos l=C3=ADmites, o que una cantidad sea positiva y m=
enor a,
> digamos, 1000.   Las mismas funciones de JavaScript se pod=C3=ADan usar e=
n el
> cliente y en el servidor.
>
> Al popularizarse muchos de estos 'paquetes' de funciones, apareci=C3=B3 e=
l NPM
> que no es un lenguaje de programaci=C3=B3n sino un sitio de web
> https://www.npmjs.com/ con una biblioteca de estos programas y un
> utilitario que permite bajar estos utilitarios e instalarlos en la m=C3=
=A1quina
> del desarrollador en un lugar convenido donde NodeJS los pueda encontrar
> con facilidad.
>
> WebPack, el veterano de los empaquetadores, surgi=C3=B3 porque no es acep=
table
> transmitir enormes programas a trav=C3=A9s de l=C3=ADneas de comunicaci=
=C3=B3n de baja
> velocidad. Para ello es importante 'minimizarlo'.  Si nosotros enviamos
> JQuery a nuestros clientes, lo hacemos con la versi=C3=B3n minimizada, no=
 el
> fuente completo, que ocupa mucho m=C3=A1s espacio.  WebPack ofrece lo mis=
mo para
> nuestros programas. Pero, tambi=C3=A9n ofrece mucho m=C3=A1s.
>
> Por ejemplo, separar la aplicaci=C3=B3n en lo que llaman "chunks" (pedazo=
s) de
> tal manera que, por ejemplo, no se cargue cierta funcionalidad (por
> ejemplo, validaci=C3=B3n de datos) en una p=C3=A1gina que no la necesita.=
  La
> aplicaci=C3=B3n, en lugar de ser monol=C3=ADtica se separa en "chunks" m=
=C3=A1s peque=C3=B1os
> que se cargan bajo demanda.
>
> Tambi=C3=A9n ofrece "tree-shaking", literalmente "sacudir el =C3=A1rbol" =
 esto es,
> analizar el c=C3=B3digo fuente para ver cu=C3=A1les funciones de las libr=
er=C3=ADas
> cargadas (gracias al NPM) se usan y cuales no.  Lo del =C3=A1rbol viene a=
 cuenta
> de que las dependencias de unas funciones con otras se pueden diagramar
> como un =C3=A1rbol donde a partir del punto de entrada principal de la
> aplicaci=C3=B3n, la ra=C3=ADz del =C3=A1rbol, se desprenden las funciones=
 que se usan y
> las que esas funciones usan, formando as=C3=AD un =C3=A1rbol.  Si se carg=
an varios
> utilitarios, va a haber funciones que no se usan.  Estas funciones quedan
> desconectadas del =C3=A1rbol principal y, por ello, al "sacudir el =C3=A1=
rbol", estas
> ramas se caen.
>
> Obviamente, nada de esto es necesario en un programa que se ejecuta en el
> servidor, el int=C3=A9rprete de PHP tiene acceso directo a todos los recu=
rsos en
> el servidor, pero cuando el c=C3=B3digo ha de enviarse a trav=C3=A9s de c=
onexiones de
> internet al cliente, que puede no tener un buen ancho de banda, reducir e=
l
> tama=C3=B1o de lo que se transmite importa, y mucho.
>
> Vite es una versi=C3=B3n m=C3=A1s moderna del WebPack, mucho m=C3=A1s efi=
ciente y con
> varias opciones extra.  Nuevamente, al igual que NPM, o WebPack, Vite no =
es
> un lenguaje de desarrollo, es un utilitario para facilitar el desarrollo.
> Por ejemplo, le ofrece al desarrollador una suerte de mini-servidor de
> donde probar la aplicaci=C3=B3n que est=C3=A1 programando y, al detectar =
un cambio en
> cualquier archivo, inmediatamente transmite el cambio al navegador y
> efect=C3=BAa los cambios sin que el desarrollador tenga que refrescar la
> pantalla.  Esto no se aplica s=C3=B3lo a JavaScript.  Si un desarrollador=
 est=C3=A1
> trabajando con doble monitor, puede desarrollar en una pantalla y ver la
> p=C3=A1gina de web en el otro.  Si cambia un atributo de CSS en el fuente=
, que
> puede ser en puro CSS, SASS, SCSS, LESS o tantos otros, ver=C3=A1 el camb=
io en
> el navegador de inmediato, habi=C3=A9ndolo convertido a puro CSS de ser
> necesario.
>
> React/Redux es uno de tantos paquetes de manejo de la interfaz gr=C3=A1fi=
ca en
> el cliente y los datos que muestra.  Est=C3=A1 perdiendo adeptos pues hay
> actualmente opciones mucho m=C3=A1s simples, compactas y, por ello m=C3=
=A1s r=C3=A1pidas.
> De la misma manera que tradicionalmente el JQuery nos salvaba de los
> peligros de manipular el DOM directamente, React (o Vue, Svelte, HTMX,
> Angular, Solid y un largo etc) nos ofrece una forma de codificar la
> interfaz de usuario y su relaci=C3=B3n con los datos (Redux) que facilita=
 un
> alto grado de interactividad.
>
> El conjunto React/Redux es, quiz=C3=A1s, lo m=C3=A1s cuestionable y si se=
 quiere
> prescindible de todo lo mencionado.  Cuando se lanz=C3=B3, cubr=C3=ADa un=
a gran
> cantidad de agujeros en performance y compatibilidad que ten=C3=ADan los
> navegadores. Ya no existe la pelea entre Internet Explorer y NetScape y s=
us
> muchas versiones que hac=C3=ADa temblar al desarrollador ante la posibili=
dad de
> qu=C3=A9 se pod=C3=ADa hacer y qu=C3=A9 no con cada uno.  Ahora, la compa=
tibilidad est=C3=A1
> casi asegurada y las facilidades propias de los navegadores aumentan d=C3=
=ADa a
> d=C3=ADa.  Qui=C3=A9n habr=C3=ADa so=C3=B1ado hace unos a=C3=B1os escribi=
r, por ejemplo,
>
> <input type=3D"number" placeholder=3D"1.0" step=3D"0.01" min=3D"0" max=3D=
"10" />
>
> Finalmente, TypeScript, un lenguaje basado en el JavaScript pero que
> agrega la posibilidad de declarar los tipos de los datos (de all=C3=AD el
> prefijo Type) en el nombre. Un grave problema del JavaScript es que
> cualquier variable puede aceptar cualquier clase de datos.  Esto abre la
> posibilidad de que una variable pueda contener un tipo de dato imprevisto=
,
> por ejemplo, un texto en lugar de un n=C3=BAmero.  TypeScript permite dec=
larar
> los tipos de las variables y los tipos de los par=C3=A1metros de las func=
iones y
> el tipo de valor que devuelve.  Esto permite detectar errores en el
> programa cuando se est=C3=A1 desarrollando y no cuando se est=C3=A9 proba=
ndo o, peor
> a=C3=BAn, cuando est=C3=A9 en producci=C3=B3n.   Esto es particularmente =
=C3=BAtil en el caso
> del uso de paquetes de terceros, cargados, por ejemplo, de NPM donde uno
> puede tener la duda de si tal par=C3=A1metro de una funci=C3=B3n acepta o=
 no un
> string num=C3=A9rico, o cu=C3=A1les par=C3=A1metros son opcionales.   Edi=
tores como el
> VsCode interpretan los archivos de tipos que genera el TypeScript para el
> Intellisense, que provee ayuda inmediata mientras se escribe el c=C3=B3di=
go.
>
>
> Creo que todos coinciden en que la enorme variedad de lenguajes (JSX,
> TypeScript) y utilitarios (WebPack, NPM) es abrumadora para el
> desarrollador, pero tienen su raz=C3=B3n de ser y, dependiendo del tipo d=
e
> aplicaci=C3=B3n, la envergadura del equipo de programaci=C3=B3n y la ampl=
itud del
> mercado a que est=C3=A1 destinada, muchas de estas herramientas, o sus
> descendientes, est=C3=A1n justificadas, como tambi=C3=A9n lo est=C3=A1 el=
 PHP en muchas
> otras.
>
> Saludos
>
> Satyam
>
>
>
>

--00000000000072643f064196cfaf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hola. Antes que nada, que bueno ver a alguien de &quot;aqu=
ella vieja guardia&quot; por aca.<div><br></div><div>Complementando tu anal=
isis que me parece excelente, creo que hay que poner no solo el foco en la =
utilizaci=C3=B3n de cada pieza de tecnolog=C3=ADa que usamos, sino tambi=C3=
=A9n un para qu=C3=A9=C2=A0hist=C3=B3rico: Hist=C3=B3ricamente la gran mayo=
r=C3=ADa=C2=A0 de los desarrolladores web (Al menos medidos por el n=C3=BAm=
ero) evoluciona en su trabajo hasta un punto donde considera que &quot;ya s=
abe&quot; y no sigue evolucionando ni en cuanto a tecnolog=C3=ADa ni en cua=
nto a desaf=C3=ADos=C2=A0que buscan.</div><div><br></div><div>Por eso es ta=
n com=C3=BAn la discusi=C3=B3n por ejemplo acerca de si son =C3=BAtiles las=
 matem=C3=A1ticas: Una vez me dijeron en un foro &quot;Yo para centrar un d=
iv no necesito matem=C3=A1ticas y con eso gano un mont=C3=B3n de dinero al =
a=C3=B1o&quot;.</div><div><br></div><div>Tu &quot;depende para que&quot; de=
be necesariamente incluir que quiz=C3=A1s el 80% de los programadores sigan=
 el hype tecnol=C3=B3gico no por necesidad real, que implica un an=C3=A1lis=
is puntual de las cosas que vas a hacer sino porque no se quieren &quot;que=
dar a fuera del mercado&quot;. Todo ese mecanismo sociocultural termina en =
un c=C3=B3digo caro, con muchos recursos innecesarios, generalmente mal usa=
dos y muy dif=C3=ADcil de mantener. Muchas veces con c=C3=B3digo=C2=A0que s=
i fue escrito muy r=C3=A1pido (Lo cual es una obvia ventaja) porque utiliza=
 en general soluciones ya standard para problemas de moda ... Que as=C3=AD =
queda! (Y que no resiste el avance de las bibliotecas que lo formaron, cual=
quiera de los presentes que halla=C2=A0tenido que actualizar un sitio hecho=
 con Laravel o Angular de mas de cinco o seis a=C3=B1os de hecho puede aval=
ar lo que digo)=C2=A0=C2=A0</div><div><br></div><div>La verdad toma muchos =
a=C3=B1os de pr=C3=A1ctica formar a alguien que en serio pueda pasar verdad=
eramente r=C3=A1pido de una tecnolog=C3=ADa en otra=C2=A0y usarlas como cor=
responde. Ojala ahora estemos usando para eso la IA.=C2=A0=C2=A0</div><div>=
<br></div><div>Slds.</div><div>Pablo.</div></div><br><div class=3D"gmail_qu=
ote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Oc=
t 19, 2025 at 1:14=E2=80=AFPM Satyam &lt;<a href=3D"mailto:[email protected]=
m.ar">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,2=
04,204);padding-left:1ex"><u></u>

 =20
   =20
 =20
  <div>
    <p><br>
    </p>
    <div>On 10/19/25 08:33, Narcis Garcia wrote:<br>
    </div>
    <blockquote type=3D"cite">El
      19/10/25 a les 6:30, Alma Guevara Castro ha escrit:
      <br>
      <blockquote type=3D"cite">
        <br>
        *Fuente: Naiker.codes*
        <br>
        /&quot;Cada d=C3=ADa tengo m=C3=A1s claro que hemos complicado dema=
siado algo
        que antes era sencillo. Programar una p=C3=A1gina web en PHP (s=C3=
=AD, el
        de toda la vida) sigue siendo, a d=C3=ADa de hoy, una de las formas
        m=C3=A1s r=C3=A1pidas, estables y eficaces de levantar un proyecto
        funcional./
        <br>
        /No hace falta un stack de 10 tecnolog=C3=ADas ni un curso intensiv=
o
        de dependencias para mostrar datos en pantalla o conectar con
        una base de datos. Pero parece que ahora todo tiene que pasar
        por React, Node, Webpack, NPM, Typescript, Redux, Vite ... con
        el respeto que se merecen./
        <br>
        /Y en muchos casos, no aporta valor real al usuario, solo
        complica el desarrollo, la curva de aprendizaje y el
        mantenimiento. No se trata de rechazar la innovaci=C3=B3n, sino de
        recordar que la tecnolog=C3=ADa debe simplificar, no enredar. A vec=
es
        lo m=C3=A1s eficiente sigue siendo lo m=C3=A1s simple. /*/=C2=A1PHP=
 vive!/*/&quot;/
        <br>
        <br>
      </blockquote>
      <br>
      Celebro la vi=C3=B1eta.
      <br>
      <br>
      =C2=BFQu=C3=A9 factores podemos encontrar que han encaminado el desar=
rollo a
      este problema?
      <br>
      =C2=BFComponentes de terceros, gratuitos pero con =C3=A1nimo de lucro=
?
      <br>
      =C2=BFPereza de escribir c=C3=B3digo?
      <br>
      =C2=BFUso de plantillas para el aspecto visual?=C2=A0<br>
      <br>
    </blockquote>
    <p>Hola Narcis, interesantes preguntas.=C2=A0=C2=A0</p>
    <p>Creo que, como todo en la vida, la respuesta suele ser
      &quot;depende&quot;.=C2=A0 =C2=A0Es obvio que PHP sigue siendo una al=
ternativa muy
      v=C3=A1lida, en las encuestas de Stack Overflow muestran que todav=C3=
=ADa
      casi un 19% de quienes completaron la encuesta usa PHP:
<a href=3D"https://survey.stackoverflow.co/2025/technology/#most-popular-te=
chnologies" target=3D"_blank">https://survey.stackoverflow.co/2025/technolo=
gy/#most-popular-technologies</a>
      .=C2=A0 La encuesta muestra muchos lenguajes, muchos de ellos no
      necesariamente relacionados con los desarrollos para WEB as=C3=AD que=
,
      excluyendo los que no son aplicables, PHP no est=C3=A1 tan mal
      ubicado.=C2=A0 Pero, como dec=C3=ADa, cu=C3=A1l lenguaje usar &quot;d=
epende&quot;.</p>
    <p>JavaScript surgi=C3=B3 para ofrecer interactividad del lado del
      cliente.=C2=A0 Sin JavaScript, Google Maps no existir=C3=ADa ni toda =
la
      familia de aplicaciones on-line de Google: Mail, Docs, Sheets,
      Slides.</p>
    <p>Tampoco habr=C3=ADan existido utilitarios como JQuery que nos
      ofrecieron por primera vez acceder a esas posibilidades de
      interacci=C3=B3n que antes no ten=C3=ADamos. Por ejemplo:</p>
    <ul>
      <li>Validar campos de datos del lado del cliente (aunque, por
        seguridad, debamos tambi=C3=A9n hacerlo del lado del servidor).=C2=
=A0
        =C2=A0Nadie quiere hacer un <i>submit</i> de un formulario de 100
        campos para, despu=C3=A9s de unos segundos, enterarse de que hab=C3=
=ADa un
        error en el segundo campo.</li>
      <li>Llenar un &lt;select&gt; basado en otro, por ejemplo, llenar
        el de municipio en base a la provincia seleccionada.</li>
      <li>Activar o desactivar campos opcionales seg=C3=BAn otras opciones =
en
        el formulario.</li>
    </ul>
    <p>Todo esto es posible hacerlo del lado del cliente en JavaScript
      sin que haya necesidad de enviar todos los datos al servidor y
      esperar una respuesta del mismo.</p>
    <p>La cosa creci=C3=B3, paso a paso, a partir de all=C3=AD.=C2=A0 Veamo=
s algunas de
      las tecnolog=C3=ADas listadas m=C3=A1s arriba.</p>
    <p>Era muy habitual programar en PHP en el servidor y JavaScript en
      el cliente.=C2=A0 NodeJS permiti=C3=B3 que el mismo lenguaje se usara=
 en
      ambos lados.=C2=A0 De pronto no fue necesario tener alguien en el
      equipo que supiera los trucos de PHP y otro que supiera los trucos
      de JavaScript.=C2=A0 Surgi=C3=B3 tambi=C3=A9n la posibilidad de que e=
l mismo
      c=C3=B3digo se usara en ambos lados.=C2=A0 Por ejemplo, una librer=C3=
=ADa de
      validaci=C3=B3n de datos.=C2=A0 Ya no era necesario tener dos funcion=
es en
      dos lenguajes distintos para validar, digamos, una fecha est=C3=A9
      entre ciertos l=C3=ADmites, o que una cantidad sea positiva y menor a=
,
      digamos, 1000.=C2=A0 =C2=A0Las mismas funciones de JavaScript se pod=
=C3=ADan usar
      en el cliente y en el servidor.</p>
    <p>Al popularizarse muchos de estos &#39;paquetes&#39; de funciones,
      apareci=C3=B3 el NPM que no es un lenguaje de programaci=C3=B3n sino =
un
      sitio de web <a href=3D"https://www.npmjs.com/" target=3D"_blank">htt=
ps://www.npmjs.com/</a> con una biblioteca de estos
      programas y un utilitario que permite bajar estos utilitarios e
      instalarlos en la m=C3=A1quina del desarrollador en un lugar convenid=
o
      donde NodeJS los pueda encontrar con facilidad.</p>
    <p>WebPack, el veterano de los empaquetadores, surgi=C3=B3 porque no es
      aceptable transmitir enormes programas a trav=C3=A9s de l=C3=ADneas d=
e
      comunicaci=C3=B3n de baja velocidad. Para ello es importante
      &#39;minimizarlo&#39;.=C2=A0 Si nosotros enviamos JQuery a nuestros c=
lientes,
      lo hacemos con la versi=C3=B3n minimizada, no el fuente completo, que
      ocupa mucho m=C3=A1s espacio.=C2=A0 WebPack ofrece lo mismo para nues=
tros
      programas. Pero, tambi=C3=A9n ofrece mucho m=C3=A1s.=C2=A0=C2=A0</p>
    <p>Por ejemplo, separar la aplicaci=C3=B3n en lo que llaman &quot;chunk=
s&quot;
      (pedazos) de tal manera que, por ejemplo, no se cargue cierta
      funcionalidad (por ejemplo, validaci=C3=B3n de datos) en una p=C3=A1g=
ina que
      no la necesita.=C2=A0 La aplicaci=C3=B3n, en lugar de ser monol=C3=AD=
tica se
      separa en &quot;chunks&quot; m=C3=A1s peque=C3=B1os que se cargan baj=
o demanda.=C2=A0=C2=A0</p>
    <p>Tambi=C3=A9n ofrece &quot;tree-shaking&quot;, literalmente &quot;sac=
udir el =C3=A1rbol&quot;=C2=A0
      esto es, analizar el c=C3=B3digo fuente para ver cu=C3=A1les funcione=
s de
      las librer=C3=ADas cargadas (gracias al NPM) se usan y cuales no.=C2=
=A0 Lo
      del =C3=A1rbol viene a cuenta de que las dependencias de unas funcion=
es
      con otras se pueden diagramar como un =C3=A1rbol donde a partir del
      punto de entrada principal de la aplicaci=C3=B3n, la ra=C3=ADz del =
=C3=A1rbol, se
      desprenden las funciones que se usan y las que esas funciones
      usan, formando as=C3=AD un =C3=A1rbol.=C2=A0 Si se cargan varios util=
itarios, va
      a haber funciones que no se usan.=C2=A0 Estas funciones quedan
      desconectadas del =C3=A1rbol principal y, por ello, al &quot;sacudir =
el
      =C3=A1rbol&quot;, estas ramas se caen.=C2=A0 =C2=A0</p>
    <p>Obviamente, nada de esto es necesario en un programa que se
      ejecuta en el servidor, el int=C3=A9rprete de PHP tiene acceso direct=
o
      a todos los recursos en el servidor, pero cuando el c=C3=B3digo ha de
      enviarse a trav=C3=A9s de conexiones de internet al cliente, que pued=
e
      no tener un buen ancho de banda, reducir el tama=C3=B1o de lo que se
      transmite importa, y mucho.</p>
    <p>Vite es una versi=C3=B3n m=C3=A1s moderna del WebPack, mucho m=C3=A1=
s eficiente
      y con varias opciones extra.=C2=A0 Nuevamente, al igual que NPM, o
      WebPack, Vite no es un lenguaje de desarrollo, es un utilitario
      para facilitar el desarrollo.=C2=A0 Por ejemplo, le ofrece al
      desarrollador una suerte de mini-servidor de donde probar la
      aplicaci=C3=B3n que est=C3=A1 programando y, al detectar un cambio en
      cualquier archivo, inmediatamente transmite el cambio al navegador
      y efect=C3=BAa los cambios sin que el desarrollador tenga que refresc=
ar
      la pantalla.=C2=A0 Esto no se aplica s=C3=B3lo a JavaScript.=C2=A0 Si=
 un
      desarrollador est=C3=A1 trabajando con doble monitor, puede desarroll=
ar
      en una pantalla y ver la p=C3=A1gina de web en el otro.=C2=A0 Si camb=
ia un
      atributo de CSS en el fuente, que puede ser en puro CSS, SASS,
      SCSS, LESS o tantos otros, ver=C3=A1 el cambio en el navegador de
      inmediato, habi=C3=A9ndolo convertido a puro CSS de ser necesario.</p=
>
    <p>React/Redux es uno de tantos paquetes de manejo de la interfaz
      gr=C3=A1fica en el cliente y los datos que muestra.=C2=A0 Est=C3=A1 p=
erdiendo
      adeptos pues hay actualmente opciones mucho m=C3=A1s simples, compact=
as
      y, por ello m=C3=A1s r=C3=A1pidas.=C2=A0 De la misma manera que tradi=
cionalmente
      el JQuery nos salvaba de los peligros de manipular el DOM
      directamente, React (o Vue, Svelte, HTMX, Angular, Solid y un
      largo etc) nos ofrece una forma de codificar la interfaz de
      usuario y su relaci=C3=B3n con los datos (Redux) que facilita un alto
      grado de interactividad.=C2=A0 =C2=A0</p>
    <p>El conjunto React/Redux es, quiz=C3=A1s, lo m=C3=A1s cuestionable y =
si se
      quiere prescindible de todo lo mencionado.=C2=A0 Cuando se lanz=C3=B3=
,
      cubr=C3=ADa una gran cantidad de agujeros en performance y
      compatibilidad que ten=C3=ADan los navegadores. Ya no existe la pelea
      entre Internet Explorer y NetScape y sus muchas versiones que
      hac=C3=ADa temblar al desarrollador ante la posibilidad de qu=C3=A9 s=
e pod=C3=ADa
      hacer y qu=C3=A9 no con cada uno.=C2=A0 Ahora, la compatibilidad est=
=C3=A1 casi
      asegurada y las facilidades propias de los navegadores aumentan
      d=C3=ADa a d=C3=ADa.=C2=A0 Qui=C3=A9n habr=C3=ADa so=C3=B1ado hace un=
os a=C3=B1os escribir, por
      ejemplo,</p>
    <pre>&lt;input type=3D&quot;number&quot; placeholder=3D&quot;1.0&quot; =
step=3D&quot;0.01&quot; min=3D&quot;0&quot; max=3D&quot;10&quot; /&gt;</pre=
>
    <p>Finalmente, TypeScript, un lenguaje basado en el JavaScript pero
      que agrega la posibilidad de declarar los tipos de los datos (de
      all=C3=AD el prefijo Type) en el nombre. Un grave problema del
      JavaScript es que cualquier variable puede aceptar cualquier clase
      de datos.=C2=A0 Esto abre la posibilidad de que una variable pueda
      contener un tipo de dato imprevisto, por ejemplo, un texto en
      lugar de un n=C3=BAmero.=C2=A0 TypeScript permite declarar los tipos =
de las
      variables y los tipos de los par=C3=A1metros de las funciones y el ti=
po
      de valor que devuelve.=C2=A0 Esto permite detectar errores en el
      programa cuando se est=C3=A1 desarrollando y no cuando se est=C3=A9 p=
robando
      o, peor a=C3=BAn, cuando est=C3=A9 en producci=C3=B3n.=C2=A0 =C2=A0Es=
to es particularmente
      =C3=BAtil en el caso del uso de paquetes de terceros, cargados, por
      ejemplo, de NPM donde uno puede tener la duda de si tal par=C3=A1metr=
o
      de una funci=C3=B3n acepta o no un string num=C3=A9rico, o cu=C3=A1le=
s par=C3=A1metros
      son opcionales.=C2=A0 =C2=A0Editores como el VsCode interpretan los a=
rchivos
      de tipos que genera el TypeScript para el Intellisense, que provee
      ayuda inmediata mientras se escribe el c=C3=B3digo.</p>
    <p><br>
    </p>
    <p>Creo que todos coinciden en que la enorme variedad de lenguajes
      (JSX, TypeScript) y utilitarios (WebPack, NPM) es abrumadora para
      el desarrollador, pero tienen su raz=C3=B3n de ser y, dependiendo del
      tipo de aplicaci=C3=B3n, la envergadura del equipo de programaci=C3=
=B3n y la
      amplitud del mercado a que est=C3=A1 destinada, muchas de estas
      herramientas, o sus descendientes, est=C3=A1n justificadas, como
      tambi=C3=A9n lo est=C3=A1 el PHP en muchas otras.</p>
    <p>Saludos</p>
    <p>Satyam</p>
    <p><br>
    </p>
    <p><br>
    </p>
  </div>

</blockquote></div>

--00000000000072643f064196cfaf--