Unidad 3: Lenguajes,Frameworks Backend
Lengujes de Programación Backend
Python
Es un lenguaje de scripting independiente de plataforma y
orientado a objetos, preparado para realizar cualquier tipo de programa,
desde aplicaciones Windows a servidores de red o incluso, páginas web.
Es un lenguaje interpretado, lo que significa que no se necesita
compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas
como la rapidez de desarrollo e inconvenientes como una menor velocidad.
En los últimos años el lenguaje se ha hecho muy popular, gracias a varias razones como:
- La cantidad de librerías que contiene, tipos de datos y funciones incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas habituales sin necesidad de tener que programarlas desde cero.
- La sencillez y velocidad con la que se crean los programas. Un programa en Python puede tener de 3 a 5 líneas de código menos que su equivalente en Java o C.
- La cantidad de plataformas en las que podemos desarrollar, como Unix, Windows, OS/2, Mac, Amiga y otros.
- Además, Python es gratuito, incluso para propósitos empresariales.
Python aplicado a Data Science
Aquí nos encontramos con una de las principales claves del crecimiento
exponencial del interés sobre Python en estos últimos años. De la mano de Data
Science como una de las profesiones mejor valoradas, cuya base se asienta en
lenguajes matemáticos como R y con Python gracias a librerías y framework como PyBrain,
NumPy o PyMySQL.
Utilizando estas herramientas podemos hacer muchas más cosas que recolectar
y clasificar información, creando scripts para automatizar procesos, además de
preparar dashboard con esa información.
El punto de entrada para comenzar a trabajar en Data Science es
tener una buena base de Python. Muchos de los cursos que podemos
encontrar en Coursera o Udacity giran entorno a Python: Python for Data Science
ofrecido por IBM en Coursera o el nanodegree programa Become a Data Analyst en
Udacity.
Machine Learning de la mano de Python
El auge del Deep Learning
con algunos framework como Tensor
Flow también ha motivado a muchos desarrolladores a aprender Python.El
carácter exploratorio de machine learning se ajusta a la perfección a
Python, así nos podemos encontrar librerías como Keras, PyBrain o
scikit-learn
para realizar tareas de clasificaciones, regresión, clustering,
preprocesamiento o generación de modelos de algoritmos.
Al igual que ocurre con los cursos propuestos para comenzar con data
science, en machine learning ocurre bastante similar, aunque podemos utilizar
Java o Scala, Python sigue siendo un lenguaje dominante en el ámbito academico
ya que se ajusta a la perfección a la hora de implementar las bases de machine
learning.
Podemos echar un vistazo a un amplio número de cursos relacionado en Coursera
o Udacity en los que comenzamos con las bases de Python.
Desarrollo web con Python
Sobradamente conocido nos encontramos con Django, el framework de
aplicaciones web gratuito y open source escrito en Python. Tampoco es un recién
llegado y es utilizado en producción por empresas con Instragram, Pinterest o
The New York Times. A este framework de Python le podemos sumar algunos igual de interesante
como el minimalista Flask o Pyramid. Además de estos framework podemos destacar
la importancia para crear APIs Restful o graphql con librerías
como Graphene.
Python para Devops
La accesibilidad y flexibilidad de Python también es una de las razones para
preferir este lenguaje en DevOps. Es estupendo para realizar scripts y
automatizar proceso. El hecho de que herramientas como Ansible y SaltStak
estén escritas en Python demuestran las capacidades del lenguaje para tareas de
automatización y orquestación. Al igual que hablamos de los cursos de data
science o machine learning, también podemos destacar cursos para System Admin
utilizando Python 3.
Referencias
Java
Es un lenguaje de
programación de propósito general, concurrente, orientado a objetos, que fue
diseñado específicamente para tener tan pocas dependencias de implementación
como fuera posible. Su intención es permitir que los desarrolladores de
aplicaciones escriban el programa una vez y lo ejecuten en cualquier
dispositivo (conocido en inglés como WORA, o "write once, run
anywhere"), lo que quiere decir que el código que es ejecutado en una
plataforma no tiene que ser recompilado para correr en otra. Java es, a partir
de 2012, uno de los lenguajes de programación más populares en uso,
particularmente para aplicaciones de cliente-servidor de web, con unos diez
millones de usuarios reportados.
PHP
Es un lenguaje que fue desarrollado puntualmente para diseñar
páginas web dinámicas programando scripts del lado del servidor. El lenguaje
PHP siempre va incrustado dentro del HTML y generalmente se le relaciona con el
uso de servidores linux. En un comienzo, PHP sólo estaba compuesto por algunas
macros que permitían trabajar más fácilmente en la creación de páginas web. En
el año de 1995 Rasmus Lerdorf le añadió el analizador sintáctico y se llamó
PHP/F1 Versión 2, sólo reconocía texto HTML y algunas directivas de mSQL.
Después de esta fecha la contribución al código fue pública. Este lenguaje se
caracteriza por ser un lenguaje gratuito y multiplataforma. Además de su
posibilidad de acceso a muchos tipos de bases de datos, también es importante
destacar su capacidad de crear páginas dinámicas, así como la posibilidad de
separar el diseño del contenido de una web. Esta es la solución para la
construcción de Webs con independencia de la Base de Datos y del servidor Web,
válido para cualquier plataforma.
Ruby
Es un lenguaje de programación interpretado,
reflexivo y orientado a objetos, creado por el programador japonés Yukihiro
"Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y lo
presentó públicamente en 1995. Combina una sintaxis inspirada en Python y Perl
con características de programación orientada a objetos similares a Smalltalk.
Comparte también funcionalidad con otros lenguajes de programación como Lisp, Lua,
Dylan y CLU. Ruby es un lenguaje de programación interpretado en una sola
pasada y su implementación oficial es distribuida bajo una licencia de software
libre.
Node
Node.js es un entorno Javascript
del lado del servidor, basado en eventos. Node ejecuta javascript utilizando el motor V8, desarrollado por
Google para uso de su navegador Chrome. Aprovechando el motor V8 permite a Node proporciona un entorno de
ejecución del lado del servidor que compila y ejecuta javascript a velocidades
increíbles. El aumento de velocidad es importante debido a que
V8 compila Javascript en código de máquina nativo, en lugar de interpretarlo o
ejecutarlo como bytecode. Node es de código abierto, y se ejecuta en Mac OS X,
Windows y Linux.
FRAMEWORKS
Django
Es un framework de desarrollo web de código
abierto, escrito en Python, que respeta el patrón de diseño conocido como Modelo–vista–template.
Fue desarrollado en origen para gestionar varias páginas orientadas a noticias
de la World Company de Lawrence, Kansas, y fue liberada al público bajo una licencia
BSD en julio de 2005; el framework fue nombrado en alusión al guitarrista de
jazz gitano Django Reinhardt. En junio de 2008 fue anunciado que la recién
formada Django Software Foundation se haría cargo de Django en el futuro. La
meta fundamental de Django es facilitar la creación de sitios web complejos.
Django pone énfasis en el re-uso, la conectividad y extensibilidad de
componentes, el desarrollo rápido y el principio No te repitas (DRY, del inglés
Don't Repeat Yourself). Python es usado en todas las partes del
framework, incluso en configuraciones, archivos, y en los modelos de datos.
Spring
Escrito inicialmente por Rod Johnson, fue lanzado
por primera vez en el mes de Junio del año 2003 bajo la licencia Apache
2.0, siendo una plataforma Java de código abierto. Convirtiéndose
desde entonces en el framework más popular para Java empresarial, para crear código
de alto rendimiento, liviano y reutilizable. Ya que su finalidad es
estandarizar, agilizar, manejar y resolver los problemas que puedan ir
surgiendo en el trayecto de la programación. Spring, ofrece
como elemento clave el soporte de infraestructura a nivel de aplicación,
brindando un completo modelo tanto para la configuración como para la
programación de aplicaciones empresariales desarrolladas bajo Java, sin
discriminación en cuanto al despliegue de la plataforma.Todo esto trae consigo
una gran ventaja, ya que permite que los equipos de desarrollo puedan enfocarse
directamente en la lógica empresarial que requiere la aplicación, haciendo el
proceso más corto, rápido y eficaz, ahorrando líneas de código evitando tareas
repetitivas. Spring se puede considerar como el padre del los frameworks Java,
ya que da soporte a varios frameworks como: Hibernate, Struts,
Tapestry, EJB, JSF, entre otros.
Laravel
Es uno de los frameworks de código abierto más
fáciles de asimilar para PHP. Es simple, muy potente y tiene una interfaz elegante
y divertida de usar. Fue creado en 2011 y tiene una gran
influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.
El
objetivo de Laravel es el de ser un framework que permita el uso de una
sintaxis refinada y expresiva para crear código de forma sencilla, evitando el
«código espagueti» y permitiendo multitud de funcionalidades. Aprovecha todo lo
bueno de otros frameworks y utiliza las características de las últimas
versiones de PHP. La mayor parte de su estructura está formada por
dependencias, especialmente de Symfony, lo que implica que el desarrollo de
Laravel dependa también del desarrollo de sus dependencias.
Características Generales
- Sistema de ruteo, también RESTful
- Blade, Motor de plantillas
- Peticiones Fluent
- Eloquent ORM
- Basado en Composer
- Soporte para el caché
- Soporte para MVC
- Usa componentes de Symfony
- Adopta las especificaciones PSR-2 y PSR-4
Ruby on Rails
Ruby on Rails, también conocido como RoR
o Rails, es un framework de aplicaciones web de código abierto escrito
en el lenguaje de programación Ruby, siguiendo el paradigma del patrón Modelo
Vista Controlador (MVC). Trata de combinar la simplicidad con la posibilidad de
desarrollar aplicaciones del mundo real escribiendo menos código que con otros
frameworks y con un mínimo de configuración. El lenguaje de programación Ruby
permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una
sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye
a través de RubyGems, que es el formato oficial de paquete y canal de
distribución de bibliotecas y aplicaciones Ruby.
Express
Es un framework web transigente, escrito en
JavaScript y alojado dentro del entorno de ejecución NodeJS. El
modulo explica algunos de los beneficios clave de este framework,
como configurar tu entorno de desarrollo y como realizar
tareas comunes en desarrollo y publicación web.
Referencias
Los lenguajes programación Backend nos permiten desarrollar todos sus componentes dinámicos en el sitio web. La programación de los diferentes componentes del sitio (páginas, formularios, funcionalidades, bases de datos) y la estructuración de documentos, que deberá enmarcarse a diferentes estándares. Además es totalmente invisible al usuario debido a que solo se ejecuta del lado del servidor.
ResponderEliminartambién es importante acotar que los programadores Backend no solo deben dominar los lenguajes y los framework, ya que toda aplicacion web debe almacenar datos, por esto es importante que un desarrollador Backend debe estar familiarizado con base de datos, algunas de las mas comunes son SQL server, PostgresSQL, MySQL y Oracle.
ResponderEliminarExcelente informacion tambiem comentamos que existen lenguajes backend más populares este último año han sido los siguientes en base a topologías:
ResponderEliminarLenguajes de scripting:
Python
Ruby
JavaScript (Nodejs)
PHP
Lenguajes funcionales:
Elixir
Scala
Java
Clojure
Otras opciones:
Golang
Rust
En función del lenguaje existen diferentes frameworks que permiten el desarrollo a gran escala, los más populares en la actualidad son:
Phoenix (Elixir)
Meteor (JavaScript Nodejs)
Ruby on Rails (Ruby)
Django (Python)
Flask (Python)
Spring Boot y Spring Cloud (Java)
Saludos, el desarrollo backend tiene mayor complejidad que el fronted por eso las empresas pagan mucho mas por este tipo de desarrollo.
ResponderEliminarSu complejidad se debe a que deben manejar y controlar la seguridad y el flujo de la información. Se estima que un desarrollador backend con experiencia puede cobrar desde 1200 a 2300 $ mensuales.
El desarrollo del backend no es tarea fácil. Necesita crear arquitecturas seguras (no vulnerables) y robustas sin comprometer el rendimiento. Para agregar una funcionalidad diversa, debe integrar las API y los scripts externos. Todo esto debe hacerse mientras se observan las mejores prácticas de desarrollo y escritura de código.
ResponderEliminarLos lenguajes de programación son el pan diario del programador, en mi opinión el programar es un arte, y lo que reflejamos en el código es nuestra lógica, es el como por medio del lenguaje afrontamos la resolución de un problema, y esta solución la que es única, es nuestro cuadro de picaso de programador.
ResponderEliminarY el boceto de este cuadro si lo hacemos bien y según la complejidad del problema son los diagramas UML y Los algoritmos que encontremos para la resolución del mismo.
Los lenguajes son herramientas muy importantes pero debemos entrenar nuestras mentes para encontrar las mejores soluciones a los problemas que enfrentemos, suele buscarse la menor cantidad de lineas de código, la simplicidad en la solución del problema y por sobre todo que la solución y sea correcta y lo mas exacta posible si implica resultados cuantitativos, ademas que la información de salida sea de fácil entendimiento, esto son los atributos que no son fáciles de desarrollar en un programador y que solo el ejercitar nos permiten alcanzar ademas de el permanente roce con otros programadores para asi compartir distintos enfoque para la solución del mismo problema.
Ricardo Huggines
ResponderEliminar15174537
A pesar de la gran cantidad de Tecnología Backend que existe debemos considerar muchos aspectos al momento de elegir con cual vamos a trabajar, creo que existen dos tipos de prioridades en un equipo de trabajo, rendimiento y productividad.
Me parece que en las grandes empresas como Microsoft o Google, la prioridad debe ser el rendimiento ya que mantienen aplicaciones que son usadas por miles de millones de usuarios, el presupuesto es ilimitado y los proyectos son elaborados por grandes equipos de desarrollo.
En empresas pequeñas debe ser la productividad su mayor prioridad. Esto no quiere decir que el rendimiento no es importante, tal como la productividad no deja de ser importante en una empresa grande, pero, se pueden hacer sacrificios en rendimiento en pro de utilizar una tecnología orientada a convención, un lenguaje expresivo, etc.
Desde mi punto de vista se debe considerar un lenguaje de programación expresivo y un framework de convención cuando se trabaja en equipos pequeños, deadlines constantes o un presupuesto limitado, de acuerdo a lo consultado en la web es recomendable utilizar en estos casos leguajes como:
1. Ruby y Ruby on Rails.
2. Python y Django.
3. JavaScript y Algún framework de los existentes (Sails, Adonis, etc.)
4. PHP y Laravel.
Por otra parte para empresas como Facebook, Google, Twitter entre otras, cuyos presupuestos son altos, cuentan con equipos de trabajo amplios y especializados, o el rendimiento es crítico, se deben considerar tencologías como:
1. Elixir y Phoenix.
2. Go y Algún framework web (Gorilla por ejemplo).
3. JAVA y Algún framework (usualmente son orientados a configuración).
Reciban un saludo cordial Profesor Rodolfo y compañeros de clase.
ResponderEliminarPor qué usamos Frameworks:
Porque con esta herramienta podemos tener un desarrollo más rápido usando buenas prácticas y evitamos escribir código repetitivo. Pero lo más importante, enfocamos nuestro tiempo en solucionar problemas propios del desarrollo, en lugar de solucionar problemas que otros ya han solucionado.
Aquí les comento algunos puntos clave al momento de escoger un frameworks o una librería:
Disponibilidad y calidad de la documentación, Problemas que puede solucionar, Flexibilidad
Complejidad, Compatibilidad con las otras herramientas que usarás.
Richard Ramirez
ResponderEliminar15620917
Como ya hemos hablado en la unidad I referente a Back-End donde se indicó que el mismo trabaja en la rama de la programación, y programación web con el apoyo de aplicaciones, librerías, lenguajes y framework, el mismo se encarga de la seguridad de la información, y del manejo de los datos, todo esto de la mano del servidor, o servidor web. Por lo tanto en el lado del Back-End se utilizan lenguajes muy variados por nombrar los más populares PHP, Python, NodeJS, Java, C#, Ruby, etc. Indagando sobre el tema en cuestión me parece interesante la tendencia y el protagonismo que está adquiriendo en estos tiempos el desarrollo basado en API REST. Llámese API (siglas de 'Application Programming Interface'), y REST es cualquier interfaz entre sistemas que use HTTP para obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como XML y JSON. Por lo cual es un tipo de arquitectura de desarrollo web que se apoya totalmente en el estándar HTTP. REST se compone de una lista de reglas que se deben cumplir en el diseño de la arquitectura de una API. Cuyas bondades son Protocolo cliente/servidor sin estado, los objetos en REST siempre se manipulan a partir de la URI, posee una Interfaz uniforme, sistema de capas: arquitectura jerárquica entre los componentes, y el uso de hipermedios. Debido a su gran versatilidad hoy dia grandes empresas tales como Twitter, YouTube utilizan este medio de desarrollo web ya que es el estándar más lógico, eficiente y habitual en la creación de APIs para servicios de Internet.
Online Casino Sites in South Africa - Lucky Club
ResponderEliminarOnline casino sites 카지노사이트luckclub in South Africa - Lucky Club! Live Casino; Live Baccarat; Jackpot Bingo; Roulette; Video Poker. All South African casinos can host one or two