ARTÍCULO EN DESARROLLO
Javascript
- Vanilla JS, lado cliente. Es un proyecto que persigue la ejecución de Javascript a pelo sin Frameworks y Librerias tipo jQuery. Es usado por muchas compañías como:
- YouTube
- Yahoo
- Wikipedia
- Windows Live
- Amazon
- MSN
- eBay
- Microsoft
- Tumblr
- Apple
- PayPal
- Netflix
- Stack Overflow
- …
- jQuery, librería para desarrollo en cliente. Aconsejo dejar de usar JQuery gracias al estándar ECMAScript 6. Todo lo que nos ahorraba JQuery con ECMAScript 5, dado que salvaba a los programadores en todos los problemas de compatibilidad que existían, ya no es necesario con ECMAScript 6. Además es una librería muy pesada en cuanto a lo que ocupa y lo que ralentiza la carga de una página web. Todos los Frameworks actuales están eliminando JQuery de sus librerías porque ya no es necesario.
- AJAX, creado por Microsoft y su misión básica es poder obtener información del servidor sin tener que recargar la página.
- JSON (JavaScript Object Notation), vino a sustituir a XML.
- YUI
- Node.js, permite ejecutar Javascript en el lado del servidor. Se pueden crear API REST
Ideado como un entorno de ejecución de JavaScript orientado a eventos asíncronos, Node.js está diseñado para crear aplicaciones network escalables. En el siguiente ejemplo de «hola mundo», pueden atenderse muchas conexiones simultáneamente. Por cada conexión, se activa la devolución de llamada o callback, pero si no hay trabajo que hacer, Node.js se dormirá.
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hola Mundo');
});
server.listen(port, hostname, () => {
console.log(`El servidor se está ejecutando en http://${hostname}:${port}/`);
});
Esto contrasta con el modelo de concurrencia más común de hoy en día, en el que se emplean hilos del Sistema Operativo. Las redes basadas en hilos son relativamente ineficientes y muy difíciles de usar. Además, los usuarios de Node.js están libres de preocuparse por el bloqueo del proceso, ya que no existe. Casi ninguna función en Node.js realiza I/O directamente, por lo que el proceso nunca se bloquea. Por ello, es muy propicio desarrollar sistemas escalables en Node.js.
Si alguno de estos términos no le es familiar, hay un artículo completo en Blocking vs. Non-Blocking.
Node.js es similar en diseño y está influenciado por sistemas como Event Machine de Ruby y Twisted de Python. Pero Node.js lleva el modelo de eventos un poco más allá. Incluye un bucle de eventos como runtime de ejecución en lugar de una biblioteca. En otros sistemas siempre existe una llamada de bloqueo para iniciar el bucle de eventos. Por lo general, el comportamiento se define mediante devoluciones callbacks de llamada al iniciarse un script y al final se inicia un servidor a través de una llamada de bloqueo como EventMachine::run()
. En Node.js, no existe como tal la llamada de inicio del evento de bucle o start-the-event-loop. Node.js simplemente entra en el bucle de eventos después de ejecutar el script de entrada y sale cuando no hay más devoluciones callbacks de llamada para realizar. Se comporta de una forma similar a JavaScript en el navegador – el bucle de eventos está oculto al usuario.
HTTP es un elemento destacado en Node.js, diseñado teniendo en cuenta la transmisión de operaciones con streaming y baja latencia. Esto hace que Node.js sea muy adecuado para la base de una librería o un framework web.
Que Node.js esté diseñado para trabajar sin hilos no significa que no pueda aprovechar múltiples núcleos en su entorno. Se pueden generar subprocesos o procesos hijos utilizando nuestra API child_process.fork()
, la cual está diseñada para que la comunicación entre ellos sea fácil mediante su proceso principal. Desarrollada sobre esa misma interfaz está el módulo cluster
, que le permite compartir sockets entre procesos para permitir el balanceo de carga entre sus múltiples núcleos.
Si deseas aprender más de node.js te recomiendo descargar este PDF para tener las cosas claras.
- Polymer, es una biblioteca JavaScript de código abierto para la creación de aplicaciones web utilizando componentes web.
Frameworks Javascript
- Angular
- React
- Vue.js
- Ember.js
- Prototype JS, framework para desarrollo web cliente.
- MooTools
JSON vs XML
JSON (JavaScript Object Notation), es un formato que almacena información estructurada y se utiliza principalmente para transferir datos entre un servidor y un cliente.
El archivo es básicamente una alternativa más simple y liviana al XML (eXtensible Markup Language – Lenguaje de marcado extenso) que cuenta con funciones similares.
Los desarrolladores usan JSON para trabajar con AJAX (JavaScript asíncrono y XML, por sus siglas en inglés). Estos formatos funcionan bien juntos para lograr la carga asincrónica de los datos almacenados, lo que significa que un sitio web puede actualizar su información sin actualizar la página.
Este proceso es más fácil de hacer con JSON que con XML/RSS. Y hoy, como muchos sitios web están adoptando AJAX, el archivo .json se ha vuelto muy popular.
Gracias al formato JSON, la API REST de WordPress permite a WordPress intercambiar datos con otros sitios web y software escritos en cualquier lenguaje de programación. Por lo tanto, los desarrolladores ya no están limitados a PHP, y pueden usar WordPress para manejar los datos a través de REST API.
El enfoque creciente en la API indica un cambio en cuáles son los lenguajes de programación más relevantes para aprender. Debido a que la API REST está basada JavaScript, pronto nos podríamos encontrar con que JavaScript del lado del servidor es el nuevo PHP.
Esto ya se puede ver en el nuevo software de WordPress.com, Calypso, que se ejecuta completamente en JavaScript y la API REST.
CMS para realizar páginas web
- WordPress (Software Libre, PHP)
- Joomla! (Software Libre, PHP)
- Drupal (Software Libre, PHP)
- TYPO3 (Software Libre, PHP)
- Liferay (Java)
LMS para realizar plataformas de enseñanza online
- Moodle (Software Libre, PHP)
- Google Classroom.
Plataformas para realizar tiendas online
- Magento (Software Libre, PHP) (Propiedad de Adobe).
- Prestashop (Software Libre, PHP)
- Woocomerce (Plugin para WordPress) (Software Libre, PHP)
- Shopify
IDE’s de Desarrollo
- Visual Studio Code, propiedad de Microsoft, actualmente a octubre de 2019 es el favorito de los desarrolladores
- Atom
- Sublime Text
- PhpStorm (pago), aunque tiene una versión gratuita, funciona muy bien con los principales frameworks (Symfony, Zend Framework, Yii, CakePHP, Laravel Doctrine, Smarty) y con los principales sistemas CMS como Drupal, Magento y WordPress .
- Netbeans
- Eclipse
- IntelliJ IDEA
- Zend Studio PHP IDE: entorno de desarrollo integrado para el lenguaje de programación PHP. Está escrito en Java, y está disponible para las plataformas Microsoft Windows, Mac OS X y GNU/Linux