La programación en Web es muy diferente de la de escritorio, para la programación en Web hay que aprender varios lenguajes y formas de trabajar, todo cambia y puede costar un poco para los que no estamos acostumbrados. En escritorio tomas un PC, eliges un lenguaje, programas y ejecutas, no hay mas, pero cuando estamos en Web hay dos máquinas implicadas, el servidor aloja las páginas, las prepara y las envía a tu ordenador donde se visualizan.Y unos cuantos lenguajes que aprender, no se puede usar uno solo.
HTML
Inicialmente las páginas eran siempre estáticas, el HTML es un
lenguaje de marcado de documentos, en el viajan los textos a mostrar junto a los formatos en que se visualizan. El servidor no hace mas que almacenar las páginas HTML, y cuando el navegador le solicita una se la envía tal cual. Es el propio navegador el que monta la página con los formatos que contenga. No hay interactividad alguna, una vez montada la página no se puede modificar, es completamente estático, pero aun así siempre se pueden poner enlaces a otras páginas, que lanzarán estas al llamarlas, pudiendo hacer que el sistema parezca un poco mas interactivo.
La página cuando se lanza tiene un estado, y puede contener campos que sean editables, por ejemplo un formulario de contacto. Cuando se le da el botón de enviar la página se recarga, enviándose a si misma los datos de los campos, en una acción que se denomina POST. Podemos tomar esos datos y enviarlos en un mail por ejemplo tras el Post, esto es lo mas interactivo que puede ser una página web.
CSS
Hemos dicho que junto a los textos viaja el formato, lo que lo hace poco flexible, por ello se idearon las Hojas de Estilo en Cascada (
Cascading Style Sheets). En ellas no hay textos, solo las especificaciones de los formatos en que presentarlos, tamaños, colores, márgenes, alineación, todo atributo que se puede cambiar se puede establecer en el elemento o en la Hoja de Estilo. Las hojas de estilo pueden viajar dentro del propio documento o en uno aparte, por lo que el navegador al leer el HTML y encontrar que se llama a una hoja externa, le pide al servidor el fichero y lo procesa.
Las hojas permiten modificar el aspecto de las páginas colo cambiando los estilos, lo que has hace útiles para definir de manera sencilla el aspecto, y han llegado a ser imprescindibles si quieres hacer algo con la misma apariencia en todas las hojas. Se denominan en cascada porque son acumulativas, un atributo de un elemento puede redefinirse parcialmente en otro, por ejemplo podemos establecer un tamaño de letras general, y para ciertos elementos cambiar ese tamaño, manteniendo los mismos colores, alineaciones, márgenes, etc.
LENGUAJES DE SCRIPT
Las páginas no son interactivas, por lo que para mejorarlas se idearon una serie de lenguajes denominados de script, que permiten alterar las páginas antes o después de enviarlas al navegador. Así por ejemplo podemos cargar una lista de registros de una base de datos en el lado del servidor, y montar la página con ellos. Una vez enviada la página el servidor se desentiende, a nuestro navegador le llega una página que puede variar en cada llamada. Esto son script del lado del servidor, la interacción se produce cuando se pide la página, enviando tras el nombre una serie de parámetros, o en el Post al recibir los datos de los campos escritos en la página. Los mas usados son
PHP y
ASP.
Cuando se ha recibido la página en el cliente, otros lenguajes de script se pueden ejecutar en el mismo, aquí no se puede acceder por ejemplo a la base de datos, pero si es posible cambiar elementos de las páginas, cambiar aspectos y colores, hacer visibles o presentar zonas, o cosas similares. Cada día son mas potentes, el mas usado es
JavaScript, en el está escrito por ejemplo
Ajax que es una forma de poder refrescar una parte de la página, sin necesidad de volver a enviar toda al servidor.
PHP
El lenguaje PHP permite mezclarse junto al HTML, lo que le hace a veces un poco mas complicado de seguir si no se hace adecuadamente, es
un lenguaje con sintaxis de C, en el que podemos definir Objetos y Clases, montando toda la lógica de negocio en el servidor. Cuando se procesa la página se ejecuta el programa en PHP, generándose una página HTML normal, que es enviada al navegador, en ese momento se ha perdido toda interacción. Cuando la página se procesa, se envía una orden POST al servidor, que monta de nuevo la página, pero ya podemos leer datos de ese Post y procesar la página o los datos de la misma.
Las variables no son necesario definirlas, lo que puede ser una fuente de problemas, y su nombre siempre empieza por un signo de dolar, y es débilmente tipado, lo que si no controlamos puede causar problemas. Si el script da un error al montar la página, dará un error que se presentará en el navegador si es grave, pero es complicado seguir el programa ya que se ejecuta en el servidor, y en el cliente se ve solo el resultado, aunque hay sistemas para poder depurar los programas.
JAVASCRIPT
Los script en Java se ejecutan en el navegador, usan la sintaxis del Java pero no es Java, por tanto no necesitan la máquina Java para su ejecución, por lo que también es
un lenguaje con sintaxis de C, aunque es Orientado a Objetos no permite definir Clases sino prototipos, aunque lo suyo es usar pequeñas funciones y no grandes programas. Una de sus características es que no necesita definir las variables, y que no es tipado, es sencillo y rápido. Cuando se produce un error no se presenta, solo se ignora el script, por lo que es difícil seguir los fallos, pero al estar en el navegador se pueden ver el código.
Programación en Web
Para hacer un programa en Web necesitamos manejar una Base de Datos y por tanto el
lenguaje SQL, las páginas se montarán usando
HTML,
CSS,
PHP y
JavaScript, por tanto debemos conocer 5 lenguajes diferentes, y una forma no habitual de interactuar con las páginas, y esto sin pensar en otras tecnologías como ASP.NET, que tienen la ventaja de que incluye casi todo en un solo sistema, y puedes programar sin necesidad de ver lo que hay por debajo.
Ultimamente estoy probando Node Webkit, para hacer aplicaciones de escritorio usando mis conocimientos de aplicaciones web.
ResponderEliminarYo en escritorio no tengo problemas, uso Visual Studio. El problema lo tengo en la Web, que solo he echo algo para ASP.NET, y nada en PHP, pero voy avanzando, como soy un tanto especial, en lugar de usar MVC, y repetir n veces el mismo modelo casi, las mismas vistas casi, y los mismos controladores casi, quiero hacer algo diferente, definir la base de datos y que el sistema cree los elementos para mantenerla, sin tener que reescribir nada si añado o quito campos.
EliminarNo es que quiera hacer algo muy grande y complicado, sino algo pequeño y sencillo, por lo que quiero seguir adelante con mi idea a ver que sale.
Quieres hacer que en la definicion de la base de datos esté todo y que se generen los ABM de forma automática, me suena que vi algo asi en PHP hace mcuho, pero nunca los he usado!
EliminarParecido, ya se que no es la mejor manera ni la mas rápida, y que luego es difícil de mantener, pero es la que quiero usar para esto y así no dependo de ningún framework, aunque por lo que he ido leyendo me gustaba codeigniter por ser sencillo, pero luego me entero que no se mantiene ya.
EliminarCodeIgniter sigue activo. Yo uso la version 2, que lleva años ya pero hace relativamente poco sacaron la 3, que es cosa del nuevo grupo/empresa que se hizo cargo del framework.
Eliminar