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.

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




 





 

Comentarios

  1. 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.

    ResponderEliminar
  2. tambié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.

    ResponderEliminar
  3. Excelente informacion tambiem comentamos que existen lenguajes backend más populares este último año han sido los siguientes en base a topologías:

    Lenguajes 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)

    ResponderEliminar
  4. Saludos, el desarrollo backend tiene mayor complejidad que el fronted por eso las empresas pagan mucho mas por este tipo de desarrollo.

    Su 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.

    ResponderEliminar
  5. 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.

    ResponderEliminar
  6. Los 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.
    Y 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.

    ResponderEliminar
  7. Ricardo Huggines
    15174537

    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).

    ResponderEliminar
  8. Reciban un saludo cordial Profesor Rodolfo y compañeros de clase.
    Por 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.

    ResponderEliminar
  9. Richard Ramirez
    15620917
    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.

    ResponderEliminar
  10. Online Casino Sites in South Africa - Lucky Club
    Online 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

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Unidad 4: Manejadores de Versiones

Unidad 1: Definición del FRONTEND & BACKEND

Unidad 2: Lenguajes,Framework & Librerias Frontend