En este artículo haré una descripción sobre la experiencia acumulada en lenguajes de tipo servidor-escritorio utilizados para el desarrollo de soluciones.
PHP // CURL (SCREEN SCRAPING) // MCRYPT // httpsREQUEST
Años:
Desde año 2010 en adelante, tanto en proyectos personales, como freelance y trabajos por cuenta ajena.
Nivel:
Alto.
Descripción de experiencia:
Php es uno de los lenguajes más populares para escribir soluciones en cuanto a aplicaciones web, aunque también se ha utilizado para realizar scripts, ya que es una faceta menos conocida el uso de php a través de intérprete de comandos. Para los distintos frameworks, y cms presentados en su artículo correspondiente, programando prácticamente a diario en proyectos por cuenta ajena, y para un porcentaje muy elevado de proyectos personales. A ello se une el uso de distintos complementos que provee php, como es el uso de cURL para realizar técnicas de screen scraping, consistentes en captura de páginas web completas para a través de su dom filtrar y recuperar información, (esta técnica fue muy utilizada para el proyecto de análisis bursátil), cURL no solo nos permite capturar tráfico que proviene de protocolos https y httpss también lo hace con FTP, FTPS, TFTP, SCP, SFTP. Otra librería interesante es mcrypt quien nos permite realizar comunicaciones cifradas, útil para las pasarelas de pago entre entre otras muchas funcionalidades. Otro ejemplo de librería muy interesante la encontramos con httpsRequest, para generar y trabajar con objetos https, como ejemplos de aplicación encontramos su uso crucial para realizar la api de comunicaicón entre CakePhp y Django implementada para las 2 plataformas desarrolladas en Glifing. Php como es evidente, por su popularidad y enorme documentación encontrada en la red, se convierte n una opción muy demandada para la realización de soluciones. Además, php nos permite ejecutar comandos en el propio servidor, para ejecutar scripts, u ordenes de terminal, para poder crear pequeñas aplicaciones de gestión de servidores con tareas programadas, por ejemplo. Los campos de aplicación para php exceden ampliamente el objetivo de estos artículos.
Fuente:
(Php) https://es.wikipedia.org/wiki/PHP
(CURL) https://es.wikipedia.org/wiki/CURL
(Php-MCRYPT) https://php.net/manual/es/book.mcrypt.php
(Php-httpsRequest) https://php.net/manual/fa/class.httpsrequest.php
JAVA // SWING // ANDROID
Años:
Desde año 2008 en adelante, tanto en proyectos personales, como freelance y trabajos por cuenta ajena.
Nivel:
Alto.
Descripción de experiencia:
Java supone otro de los lenguajes imprescindibles para disponer de aplicaciones completamente independientes de la máquina donde se ejecuten, es decir, podremos programar soluciones ejecutables a través de su máquina virtual en cualquier sistema que disponga de un intérprete de código intermedio Java, una máquina virtual. Para las aplicaciones de escritorio donde se haya querido dotar de un sistema de ventanas, Guis, se ha hecho uso de la librería Swing, donde se han creado por ejemplo una librería de Guis como proyecto final de carrera para la universidad Uned, con un módulo programado para netbeans que permite crear objetos de tipo ventana, o bien la creación de un terminal de inscripciones deportivas para recoger datos de carreras populares. Por otro lado se han desarrollado soluciones diseñadas para Android de forma nativa, el cual hace uso de Java como lenguaje base. En esta web y en otros artículos se haba sobre los desarrollos para Android con mayor profundidad.
Fuente:
(Java) https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
(Swing) https://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)
(Gui) https://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario
(Android) https://es.wikipedia.org/wiki/Android
PYTHON
Años:
Desde año 2014 en adelante trabajos por cuenta ajena.
Nivel:
Medio.
Descripción de experiencia:
Python es el lenguaje base empleado para el desarrollo de soluciones basadas en el framework Django. Es un lenguaje elegante con una sintaxis peculiar que obliga al programador a disponer de un orden estricto en cuanto a los saltos de línea, y tabulaciones. Aunque existen muchas peculiaridades que los diferencian, Python se asemeja a Php al ser un lenguaje interpretado, aunque supone una evolución considerable sobre el anterior. Python ha permitido, al igual que Php crear scripts personalizados para tareas específicas en servidores.
Fuente:
(Python) https://es.wikipedia.org/wiki/Python
(Django) https://es.wikipedia.org/wiki/Django
C/AL
Años:
Desde año 2007 hasta 2012 trabajos por cuenta ajena. (4 en consultora, 1 en cliente final)
Nivel:
Alto.
Descripción de experiencia:
Lenguaje de programación propietario para Navision y posteriormente al adquirido por Microsoft de Microsoft Dynamics Nav. La experiencia de codificación se describe con mayor detalle en el artículo dedicado a Erps y navision. Se programaron todos los tipos de objetos disponibles dataports, codeunits, forms, reports, tanto para su base de datos propietaria como para bases de datos Sql Server. Además se realizaron procesos de importación a medida sobre ficheros no soportados de forma nativa en las primeras versiones como exportación a pdf, acceso a ficheros access, bases de datos MySql, creación de servicios web a través de xml / json, además de la conexión de periféricos por su interfaz de comunicaciones como las básculas bizerba, realizando .dlls en visual basic para conectarlas, pistolas de lectura de código de barras, impresoras para crear etiquetas o tickets, tvps, pdas con windows mobile para zonas de expedición (actualmente a través de la creación de una Api, se podrían conectar sin problemas sistemas Android), entrada de mercancía, etc...
Fuente:
(C/AL) https://en.wikipedia.org/wiki/C/AL
(Navsion) https://es.wikipedia.org/wiki/Microsoft_Dynamics_NAV
VISUAL BASIC // .NET (VISUAL C# + WPF)
Años:
Trabajos puntuales por cuenta ajena, prácticas universitarias, proyectos personales.
Nivel:
Medio.
Descripción de experiencia:
La experiencia en programación con Visual Studio 6, para visual basic se remonta a proyectos propios pequeños, trabajando con ficheros de texto, aplicaciones con Guis, algunas prácticas universitarias, creación de .dlls para conexión de básculas bizerba en entornos navision. Para aplicaciones .net se ha realizado mantenimiento correctivo para aplicaciones heredadas por cuenta ajena, y algún proyecto personal para aprendizaje con las librerías Windows Presentation Foundation (WPF).
Fuente:
(Visual Basic) https://es.wikipedia.org/wiki/Visual_Basic
(Visual C#) https://es.wikipedia.org/wiki/Microsoft_Visual_C_Sharp
(WPF) https://es.wikipedia.org/wiki/Windows_Presentation_Foundation
PASCAL // FORTRAN // PROLOG // LISP // HASKELL // C // R // WEKA // ENSAMBLADOR
Años:
Trabajos puntuales en general debidos a formación académica universitaria.
Nivel:
Formación.
Descripción de experiencia:
Prácticas realizadas en universidad en general, para probar distintos paradigmas de programación, o bien de forma autodidacta para la propia auto-formación, es el caso de Phonegap. Programación lógica con Prolog, programación funcional con Lisp y Haskell, crear un lenguaje de programación para un micro-controlador, diseñando las distintas etapas desde que un código fuente de alto nivel, hasta su ejecución en un micro-controlador con ensamblador sin olvidar los primeros lenguajes con los que aprendí a programa, Pascal y Fortram para Ms-Dos. Hoy en día además el lenguaje R para análisis estadístico es muy utilizado para análisis de big data, sin olvidar Weka utilizado en algoritmos de aprendizaje automático.
Fuente:
(Pascal) https://es.wikipedia.org/wiki/Pascal_(lenguaje_de_programaci%C3%B3n)
(Fortran) https://es.wikipedia.org/wiki/Fortran
(Prolog) https://es.wikipedia.org/wiki/Visual_Basic
(Lisp) https://es.wikipedia.org/wiki/Lisp
(Haskell) https://es.wikipedia.org/wiki/Haskell
(C) https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)
(R) https://es.wikipedia.org/wiki/R_(lenguaje_de_programaci%C3%B3n)
(Weka) https://es.wikipedia.org/wiki/Weka_(aprendizaje_autom%C3%A1tico)
(Ensamblador) https://es.wikipedia.org/wiki/Ensamblador