Etiqueta: Lenguajes

  • ¿Qué es GO? Descubriendo las Maravillas de Golang, mi experiencia de desarrollo

    ¿Qué es GO? Descubriendo las Maravillas de Golang, mi experiencia de desarrollo

    Cada lenguaje tiene su propio encanto y propósito. Sin embargo, uno que ha ganado popularidad rápidamente en los últimos años es Go, también conocido como Golang. Este proyecto de código abierto ha capturado la atención de desarrolladores por sus características únicas y su enfoque eficiente. En este artículo, nos sumergiremos en el fascinante mundo de Go, explicando por qué deberías considerar aprender este lenguaje de programación, destacando sus características más prominentes y poniendo especial atención en las famosas gorutinas, que para mi fue el gancho que me atrapo.

    Go: Más Allá del Código Abierto

    Go no es simplemente un lenguaje de programación, es un proyecto de código abierto respaldado por algunas de las mentes más brillantes en el mundo de la informática. Su sintaxis, similar a la de C, facilita la transición para aquellos familiarizados con este último. Además, Go emplea tipado estático, proporcionando seguridad y eficiencia en el código.

    ¿Es orientado a objetos?

    En la programación orientada a objetos (POO), la controversia sobre la esencia de la herencia y las clases sigue siendo tema de debate. Algunos expertos sostienen que estos elementos no son fundamentales, sino simplemente herramientas de implementación, por ejemplo Javascript desafían la norma al basarse en prototipos en lugar de clases.

    Por otro lado, Go, el lenguaje de programación desarrollado por Google, adopta un enfoque distinto al permitir un estilo de programación orientado a objetos sin recurrir a clases. En lugar de herencia, Go favorece el patrón de composición, donde las estructuras se utilizan para construir jerarquías sin soporte explícito para subclases. Con conceptos como interfaces de tipo implícito y la flexibilidad de métodos generales, Go redefine la experiencia de la programación orientada a objetos, ofreciendo una alternativa fresca y poderosa a los tradicionales paradigmas de herencia y clases. ¡Explorar estas innovaciones en la POO es todo un viaje; al principio me pareció intimidante pero luego vez la practicidad y logras entender el flujo de trabajo. Así que si esperas clases como tal, aquí no existen, pero se pueden aplicar los principios SOLID sin problema.

    Compilación Cruzada y Eficiencia Nativa

    Uno de los rasgos distintivos de Go es su capacidad de compilación cruzada de manera nativa. Al igual que sus compañeros C y C++, los binarios de Go son portables y se pueden ejecutar en diferentes plataformas sin necesidad de recompilación. Esto no solo facilita la distribución del software, sino que también contribuye a la eficiencia del desarrollo. En otras palabras, implica compilar un programa en el entorno de desarrollo que puede diferir del entorno en el que se ejecutará el programa final, imaginémoslo como generar aplicaciones portables.

    La compilación cruzada es útil en situaciones donde el hardware de destino no es accesible desde el entorno de desarrollo, o cuando se busca optimizar el rendimiento del código para una arquitectura específica. Este enfoque es común en el desarrollo de sistemas embebidos, dispositivos móviles y otros escenarios donde la portabilidad del código es esencial. En mi caso lo he probado para optimizar microservicios, algo que me ha parecido una locura al utilizar la gorutinas, vamos a ver que son.

    Gorutinas: La Magia de la concurrencia en Go

    Una de las razones fundamentales para sumergirse en el mundo de Go es su enfoque único en la concurrencia a través de las gorutinas. Estas son unidades ligeras de ejecución que permiten realizar tareas simultáneas de manera eficiente. A diferencia de otros lenguajes, Go facilita la creación y gestión de múltiples hilos de ejecución sin complicaciones, lo que resulta en un código más rápido y menos propenso a bloqueos. La verdad suena simple y es que es así, Go lo implementa de una manera genial, además de proveernos herramientas para trabajar de manera asíncrona y evitar bloqueos de lectura o escritura.

    Orientado a la Eficiencia en Sistemas Múltiples

    Go está especialmente diseñado para aprovechar sistemas con múltiples procesadores y procesamiento en red. Su capacidad para gestionar eficientemente la concurrencia lo convierte en una opción destacada para aplicaciones distribuidas y servicios en la nube. Si buscas un lenguaje que se adapte a la velocidad y la escalabilidad, Go es tu elección.

    Dinamismo y Flexibilidad: Duck Typing en Go

    Aunque Go utiliza tipado estático, sorprendentemente admite la tipificación dinámica de datos, en lugar de basarse en la herencia o en la implementación de una interfaz específica, el Duck Typing se centra en el comportamiento de un objeto. Si un objeto puede realizar las acciones requeridas, es considerado adecuado, sin importar su tipo. Esto proporciona flexibilidad en el desarrollo, permitiendo adaptarse a cambios en tiempo de ejecución sin sacrificar la seguridad del tipo.

    Delegación, Polimorfismo y Elegancia en la Programación

    Go ofrece una implementación única de la programación orientada a objetos. Aunque carece de herencia de tipos, permite la delegación a través de valores embebidos y el polimorfismo mediante interfaces. La definición de tipos se realiza de manera clara y concisa, fomentando un código elegante y fácil de entender.

    En resumen, aprender Go no solo significa adquirir habilidades en un nuevo lenguaje de programación, sino sumergirse en una experiencia de desarrollo única. Con su enfoque en la eficiencia, la concurrencia sencilla y la portabilidad nativa, Go se ha ganado su lugar entre los lenguajes de programación más destacados. Y ahora solo me queda invitarte a que me acompañes a sumergirnos en este lenguaje, por que créeme que es super genial optimizar cada segundo de respuesta. Es una barbaridad. Espero estés atento al blog por que subiré mas contenido de GO y claro deja tus dudas, y cometarios.


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

  • Spring Boot – Configuración

    Spring Boot – Configuración

    Vimos anteriormente que se puede hacer la inyección de dependencias por medio de archivos xml y usando anotaciones; sin embargo también podemos usar clases de configuración para instanciar objetos de manera fácil y limpia.

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
     
    @Configuration
    public class AppConfig {
         
        @Bean("student")
        public Student getStudent(Service service) {
            return new StudentImpl(service);
        }
         
        @Bean("service")
        public Service getService() {
            return new ServiceImpl();
        }
    }

    La ventaja de este método es que permite liberar a las clases de negocio de anotaciones, dejándolas limpias.

    La clave es marcar la clase con el decorador @Configuration, es cual es procesado por el Spring IoC, que en este caso crea las instancias marcadas con @Bean.

    Veamos un ejemplo muy básico:

    1. Creamos una interfaz con un método de prueba:
      public interface Service {
          String hello();
      }
    2. Creamos la implementación del servicio:
      public class ServiceImpl implements Service {
          @Override
          public String hello() {
              return "Hola";
          }
      }
    3. Creamos el archivo de configuración:
      @Configuration
      public class Config {
          @Bean("service")
          public Service getService() {
              Service myService = new ServiceImpl();
              System.out.println(myService.hello());
              return myService;
          }
      }

      Lo que hacemos es instanciar la implementación e imprimir en consola el String que viene del método hello, lo que resulta que al ejecutar la aplicación veamos un “hola” en consola.

        .   ____          _            __ _ _
       /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
      ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
       \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
        '  |____| .__|_| |_|_| |_\__, | / / / /
       =========|_|==============|___/=/_/_/_/
       :: Spring Boot ::                (v2.7.0)
      
      Hola

    Al ser una clase Java obtenemos las ventajas propias del lenguaje, como asegurarnos del tipado correcto, comprobación en tiempo de compilación y algo mas amigable para la lectura.

    También si se desea, podemos usar las anotaciones en conjunto con con las clases de configuración.

  • PHP y MySQL

    PHP y MySQL

    PHP y MySQL (Del que ahora deriva MariaDB) son una combinación ganadora, por que es muy fácil implementarlo y desarrollar con estas dos herramientas.

    Para continuar con nuestro curso vamos a realizar una conexión a la base de datos y hacer unas pruebas sencillas, la conexión va a ser directa, sin uso de interfaces ni temas complejos, estos los veremos mas adelante.

    Conectando PHP con MySQL

    En este momento la ultima versión de PHP es la 7.2.6, así que la sintaxis que usare será para la versión 5.5 en adelante, esto lo aclaro por que si tienes una versión antigua debes usar la función mysql_connect, yo en este caso usare la clase mysqli. Si deseas saber que versión de php tienes, puedes usar la instrucción echo phpinfo(); dentro de un documento php, así te mostrara toda la información de PHP con la que cuenta tu equipo o servidor.

    Vamos a crear un archivo, en este caso lo llame 01.ConexionMySQL.php

    <!doctype html>
    <html lang="es">
        <head>
            <meta charset="utf-8">
            <title>PHP y MySQL</title>
            <meta name="description" content="PHP y MySQL template">
            <meta name="author" content="Jhontona.com">
        </head>
        <body>
            <?php
                $host = "localhost";
                $user = "jhontona";
                $password = "phpcurso1";
                $database = "test";
                $mysqli = new mysqli($host, $user, $password, $database);
    
                if ($mysqli->connect_errno) {
                    echo "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
                }
                echo $mysqli->host_info . "\";
    
            ?>
        </body>
    </html>

    Ahora es momento de revisar el código, voy a enfocarme de la línea 15 a la 24, ya que es nuestro código PHP, en las primeras líneas(de la 15 a la 18) estamos declarando variables.

    Variables en PHP

    Si recordamos el anterior post, decíamos que PHP es un lenguaje interpretado y de tipado dinámico, por lo que no es necesario mencionar a que tipo de variable corresponde cada una, es decir, que tipo de valores puede almacenar (Si quieres profundizar en tipados revisa este post).

    Como podemos ver en el anterior ejemplo una variable en PHP se inicializa con el signo $ y seguido el nombre de la variable.

    Después, estamos asignándole un valor a cada variable, con el signo = y luego le pasamos un valor, en nuestro anterior ejemplo todos los valores son de tipo string(texto), pero puede ser de diferentes tipos, y como lo indicamos, puede tomar en el transcurso de la ejecución cualquier otro tipo, vamos a ejemplificar esto con otro pequeño fragmento de código.

     

    Ejemplo de variable con varios tipos

    <?php
    
    /*Tipos de variables*/
    $mivariable = "string"; //Texto
    $mivariable = 4; //Numero
    $mivariable = array(); //Matriz
    $mivariable = 5.32; //Numero decimal
    $mivariable = true; //Booleano (verdadero o falso)
    
    ?>

    En el anterior ejemplo podemos ver como una misma variable puede tomar varios valores de diferentes tipos, si quieres conocer todos los tipos que maneja PHP te dejo el enlace.

    También otra cosa importante es la inclusión de comentarios en el código.
    Adrede incluí los dos tipos de comentarios que maneja PHP, el comentario de varias líneas, que se inicia con /* y se debe cerrar con */, y el comentario de una sola línea //, que solo necesita la apertura, ya que se finaliza automáticamente con el salto de línea.

    Ya que conocemos la teoría sobre variables en PHP continuemos revisando el código.

    En la línea 20 se declara otra variable, y se le asigna una instancia de la clase mysqli, para poder crear un nuevo objeto de este tipo se le pasan unos valores, que en este caso son los valores que almacenamos en las variables antes declaradas. Estos valores corresponden a los datos de conexión a la base de datos. Si quieres conocer mas sobre objetos, clases y conceptos relacionados a la programación orientada a objetos te recomiendo leer este post.

    En PHP para crear una nueva instancia de una objeto se utiliza la sentencia new, que precisamente indica que es un nuevo objeto de un tipo de clase determinado. En la línea 21 estamos utilizando la condición if(si) para preguntar si ocurrió algún error en la conexión. (Si necesitas saber mas sobre las estructuras básicas de programación te dejo este post). Bien, dentro de este condicional tenemos la variable $mysqli que si recordamos era un objeto de clase mysqli, y al ser de este tipo tiene todos sus atributos y métodos(funciones), uno de estos atributos es connect_errno que nos indica si la conexión fue exitosa o no, es decir es una variable de tipo booleano. Si prestamos atención, podemos ver que para acceder a un atributo estamos utilizando los símbolos -> que le indica al interprete de PHP que es un atributo de un objeto.

    La línea 22 se ejecuta si hubo un error, y lo que hace es imprimir el error. Algo nuevo en esta línea es el uso del punto(.) que en PHP es el símbolo para concatenar, es decir, unir dos cadenas de texto.

    Y finalmente en la línea 24 imprimimos el valor de otro atributo de la clase mysqli. Tal vez eso halla sido un poco complejo, pero no te angusties en el transcurso del curso y de la practica entenderás los conceptos, este ejemplo lo saque directamente de la documentación de PHP por lo que te aconsejo que siempre en tus desarrollos y practicas revises el sitio para verificar la sintaxis y el uso de las funciones. También te dejo el link del archivo de esta clase en Github y si tienes dudas o algún comentario por favor déjalo, así podemos seguir aprendiendo todos.

  • Introducción a PHP

    Introducción a PHP

    Este es el primer post de un muy prometido curso sobre PHP, los talleres los hare en vídeos que podrás encontrar al final de cada post, pero en cada uno de estos tendrás acceso al repositorio de GitHub y a la tan necesaria información teórica. Bueno y sin mas parafernalia entremos en materia.

    ¿Qué es PHP?”

    PHP es un lenguaje de programación interpretado, que se usa junto con el código HTML para crear paginas web, que es altamente famoso por contar con una gran cantidad de soporte y documentación.

    Para comenzar a utilizar PHP se necesita de un servidor web que le de soporte, recomiendo para desarrollo usar XAMPP, siempre he trabajado con este y nunca he tenido un problema grave. No voy a explicar la instalación ya que se me hace muy sencilla, solo debes tener cuidado que al momento de arrancar el Apache(Es el servidor que soporta PHP) el puerto este libre, por defecto toma el 80 y a veces puede dar conflicto, sobre todo si tienes Skype. Cierra estos programas o configura Apache para que inicie en otro puerto. Al igual si tienes dudas puedes dejarla en los comentarios.
    Continuando, una vez tenemos el servidor montado ya podemos trabajar con PHP, creando archivos con la extensión .php.

    ¿Porqué usar PHP?

    En otro post hablé sobre las ventajas de los lenguajes de tipado dinámico, y además de estas ventajas hay otras mas que pasare a mencionar.

    • Yo diría que la mayor ventaja es su alta difusión, casi cualquier servidor de hosting ofrece por defecto un servidor para PHP.
    • Otra ventaja es que para usarlo no necesitas licencias, y aprenderlo es muy fácil ya que tiene mucha, pero mucha documentación.
    • Es un lenguaje multiplataforma, lo puedes instalar, usar y aprender en cualquier entorno.
    • Junto con MySQL son la pareja mas conocida en la web.
    • Es de código abierto. Puedes formar parte del desarrollo de este lenguaje.

    Hola mundo

    Como mencione anteriormente, yo uso XAMPP, así que los ejemplos y capturas de pantalla que haga estarán sobre este servidor.
    Crearé un archivo llamado index.php con el siguiente código:

    <span>Hola mundo</span>

    Este es simplemente código HTML, pero funciona, ya que como lo había mencionado PHP es interpretado, es mas, en algunas fuentes lo llaman empotrado, ya que hace uso de la semántica de HTML, aunque PHP quiere dejar de lado esto, y que se trabaje de una forma orientada a objetos para olvidarnos de aquellos tiempos del código espagueti, que fue como en un principio inicio y se hizo popular PHP. Así que vamos a cambiar solo un poco ese código. Vamos a agregarle las etiquetas de inicio y cierre de PHP junto con la primera instrucción que veremos.

    <?php
    echo "<span>Hola mundo</span>";
    ?>

    ¿Qué podemos ver de las líneas anteriores de código? Primero conocemos la etiqueta de apertura de PHP, y en la tercera lineá la etiqueta de cierre, esto le indica al interprete que todo el contenido que este dentro de estas etiquetas se entenderá como código PHP.
    Ahora en la segunda lineá vemos nuestra primera función de PHP, bueno en realidad no es una función, es una instrucción propia del lenguaje. Y esta instrucción lo que hace es mostrar una cadena de texto, en este caso le estamos pasando nuestro “Hola Mundo” y finalizamos nuestra lineá con el caracter ; el cual es muy importante, ya que finaliza nuestra lineá y en este caso también la instrucción echo.
    Hay que recordar que PHP nació como un lenguaje estructurado, para ser usado junto con HTML, gracias a esto se popularizo, pero esto también le creo una “Época oscura”, donde casi ni se podía diferenciar el código de script y de HTML, era un caos hacer mantenimiento, por este motivo yo personalmente no aconsejo usar etiquetas HTML dentro del código PHP, mas adelante te enseñare formas elegantes de hacerlo. Por ahora solo quería comentarles que se puede hacer.
    PHP es interpretado lineá a lineá, por lo que es muy importante siempre finalizarlas con ;(punto y coma).

    Vamos a dejar por aquí este post, recuerda que este es el primero del curso de PHP, y por cierto te dejo el enlace a la documentación oficial de PHP. Deja tus comentarios, inquietudes y sugerencias.

  • JavaCup – Aprender Java mientras te diviertes!

    JavaCup – Aprender Java mientras te diviertes!

    Lamentablemente el evento de Javacup desapareció. Aunque JavaHispano avisará si hay una nueva edición.

    Este es uno de los mejores eventos y competencias que hay a nivel internacional de programación, lo mejor es que el ingreso es gratuito, el apoyo es constante y el aprendizaje es genial.

    JavaCup es un evento que se celebra cada año gracias a la comunidad de javaHispano y al patrocinio de Codemotion. Este año (2013) he participado por primera vez en su sexta versión y la experiencia a sido genial, a la fecha los partidos se están ejecutando y se pueden ver desde la pagina oficial.

    La comunidad de javaHispano desarrolló un framework que facilita al máximo el desarrollo del objetivo del concurso. Crear un equipo virtual de fútbol (desarrollar una clase Java que implementa una interfaz predefinida), como en el fútbol el objetivo es anotar goles y seguir avanzando. Esto se logra creando una buena táctica, es decir realizando una correcta programación que se adapte a cada posible situación.

    Para probarlo solo debes descargar el framework, pero si deseas participar debes registrarte, pero no te preocupes, la inscripción es muy sencilla, solo debes estar atento a las fechas en que se abren las convocatorias y colocar una información básica.

    Cuando descargas el framework vienen muchos ejemplos, las clases implementadas por los equipos que han participado anteriormente. Esto te facilita aun mas la implantación de los métodos a tu clase. Pero ahí no acaba, además cuentas con una documentación excelente y un foro muy activo.

    Para comenzar a realizar la táctica del equipo debes descargar el proyecto de la pagina, esta disponible para NetBeans y Eclipse, lo único que debes hacer es abrir el proyecto y ejecutar la interfaz que creara la clase base para crear la táctica.

    Me siento mas a gusto trabajando con NetBeans, así que utilice este, no pude dedicar mucho tiempo al desarrollo de la táctica, en realidad fueron como 2 horas, y obviamente esto se ve reflejado en los resultados de los partidos.

    Espero poder participar y generar mejores tácticas en las posteriores versiones, y te invito a que te animes a probarlo y ser parte de esta genial comunidad, Ahhhh, apropósito hay un buen premio en efectivo para los 4 primeros lugares, así que además de aprender, divertirte y programar participas por los premios.

    A continuación dejo el vídeo de mi primer partido. Quisiera decir que fue mejorando pero no fue así. Jaja, Seguro a la vuelta será mejor.

  • Lenguajes tipados vs lenguajes no tipados

    Lenguajes tipados vs lenguajes no tipados

    Trabajo en el desarrollo web hace años, y he utilizado diferentes lenguajes de programacion, fuertemente tipados y no tipados. Para comenzar vamos a entrar a ver algunas características de los lenguajes fuertemente tipados (o solo tipados). Cuando nos referimos al tipado, estamos hablando justamente de los tipos de datos que se manejan en un determinado lenguaje de programación, se refiere a los tipos y la forma en que deben usarse. Para colocar un ejemplo rápido, cuando estamos aprendiendo a programar en seudocódigo no utilizamos tipado, es decir que ninguna de las variables que definimos están ligadas a algún tipo de variable, “simplemente son variables”. Vamos a ver un ejemplo un poco más gráfico:

    subproceso funcion bizzbuzz
    para (i <- 1; i<=100; i++) {
        establecer print_number a verdadero;
        Si i es divisible por 3
            escribir "Bizz";
            establecer print_number a falso;
        Si i es divisible por 5
            escribir "Buzz";
            establecer print_number a falso;
        Si print_number, escribir i;
        escribir una nueva línea;
    }

    En el anterior ejemplo, tenemos declarada una variable i (Asociada siempre a un contador), el seudocódigo es estilo C, pero no sabemos de qué tipo es la variable. Si revisamos el código nos daremos cuenta que i al ser inicializada recibe el número 1, aquí no nos preocupamos por qué tipo de valor recibe la variable, solo sabemos que proceso se quiere hacer, pero si deseamos pasar el seudocódigo a programación real, en este caso C (que es fuertemente tipado), debemos decirle que la variable es un entero.

    int i = 1;

    Ahora… Desde mi punto de vista los lenguajes fuertemente tipados son más difíciles de trabajar, pero son más comunes y en muchos lugares más “promocionados”, por ejemplo, en Colombia, en las universidades se enseña alguno de estos lenguajes: Java, C, C#, C++, Basic. Sales de la universidad por lo menos sabiendo los tipados básicos (enteros, decimales, booleanos, texto). Una gran desventaja es que cuando manejas diferentes tipos de datos y quieres hacer operaciones entre ellos debes convertir los datos (“parsear”), crear muchas más variables y entender que tipo de dato estas trabajando y que funciones tiene. Los lenguajes tipados incrementan el tiempo de desarrollo y son más difíciles de aprender.Hey!!!, pero no todo es malo, una ventaja de estos lenguajes es que son compilados, es decir que se traducen directamente a lenguaje de máquina y esto al manejar grandes cantidades de datos hace diferencia, es mucho más rápido en la máquina seguir el proceso que debe realizar.

    También tenemos los lenguajes con tipado dinámico y no tipados… ya entendiendo lo del tipado, la definición de estos será más breve.

    Los lenguajes no tipados, o débilmente tipados, al definir una variable no requieren que se les asigne un tipo de variable, es más pueden cambiar el tipo de variable en cualquier momento, el caso más conocido se presenta en PHP, este lenguaje, no es tipado, y no hay ningún problema en que una variable sea una Array y luego se convierta en un entero o un String.

    Podemos decir que los lenguajes con tipado dinámico se ubican en el medio, las variables se pueden o no vincular a un tipo o al inicializarlas reconocen el tipo de variable. La mayoría de los lenguajes que son de tipado dinámico tienen la característica de ser interpretados, como Python o Ruby.

    Creo que en la mayoría de los desarrollos web se debería usar lenguajes con tipado dinámico, esto agiliza el desarrollo y facilita la comprensión del código, sobre todo si somos nuevos en la programacion. Sin embargo, si se requiere de las ventajas de los lenguajes compilados, se pueden desarrollar módulos especializados. Así se hacen los grandes desarrollos, varios lenguajes y herramientas, para sacar lo mejor de cada uno. Claro está, si el desarrollo o arquitectura amerita esto, ya que esto agrega un grado de complejidad al desarrollo y al mantenimiento.

    Tip: para saber que lenguajes son tipados es ver la definición de sus variables, por ejemplo, si hay algún tipo de definición de variable antes de nombrarla seguro es un lenguaje tipado, de lo contrario es no tipado o dinámico…

    Nota: “var” en algunos lenguajes es una excepción… es algo raro, por ejemplo, en Javascript se utiliza en el manejo de los scopes pero en otros lenguajes sirve para que al inicializar una variable esta detecte el tipado.

    Tipado o no tipado. ¿Cuál debo usar?”

    Esta pregunta no se responde por tipado o no tipado, está directamente ligada a la arquitectura y requisitos del proyecto. Por lo que es el arquitecto de negocio quien construye la infraestructura y define las herramientas que se usaran. Pero si te puedo decir algo, si estas aprendiendo a programar yo te recomendaría usar lenguajes de tipado dinámico, como PHP, Python o Javascript. ¿Por qué?, muy sencillo, al ser de tipado dinámico te permite cierto grado de fallo, y así mientras programas y haces tus experimentos puedes ir reconociendo los diferentes tipos de variables y como trabarlas. En un principio mientras aprendes te será mucho más fácil, luego podrás reconocer los tipos básicos y más complejos.

    PHP en versiones superiores a la 5, introducen conceptos más complejos, entre estos los tipos, ya que esto marca unas directrices, que indican lo que puedes hacer con cada variable y además en lenguajes fuertemente tipados asignan un espacio en memoria especifico, optimizando el resultado final. En el ámbito de Javascript con la llegada de Typescript, este dio un gran paso al abrir la puerta a la creación de aplicaciones complejas basadas en Javascript de una manera más sencilla, esto gracias a la inclusión de conceptos heredados de la programacion orientado a objetos, entre estos conceptos están los tipos de datos.

    Bueno, espero ya tengas una idea más clara de que es un lenguaje tipado y no tipado, y cuáles son los principales tipos de datos usados… estos también aplican para las bases de datos.

    Lenguajes dinámicos y estáticos

    Esta sección la agrego 6 años después, con un poco más de experiencia y queriendo dejar un poco más claras las diferencias. No quise tocar el post original para que los anteriores lectores no se pierdan si releen. Ahora, ¿por qué ese título? Básicamente son sinónimos. Un lenguaje dinámico está definido como un lenguaje sin tipado, débilmente tipado o con tipado dinámico. No fuerzan a la utilización de tipos de datos. Otro dato importante es que estos lenguajes nacieron para programas cortos o scripts por eso también se les conoce como lenguajes de scripting. Aunque ahora todos son robustos y se pueden utilizar con diferentes paradigmas de desarrollo. Mientras, un lenguaje estático se denominan de esta manera por que se requiere especificar detalles de bajo nivel, el más característico es el tipo de variables a usar. Por ejemplo, en C, C++, C#, Java se debe definir el tipo de variable y entre estos hay subtipos. Un numero puede ser entero o de punto flotante, por ejemplo.

    Estático o tipado son sinónimos.

    Una vez definido el tipo de variable esta no se puede cambiar. Un entero (Integer) va a ser entero por siempre y para siempre.

    Algo importante para tener en cuenta es que un programa escrito con un lenguaje estático generalmente corre más rápido que su equivalente en un lenguaje dinámico. Esto es porque no deben pasar por un intérprete para ser ejecutados (Java es un caso especial). Aunque la diferencia de tiempo de ejecución es mínima en estos momentos ya que la mayoría de las veces el rendimiento depende mucho de la destreza del programador y del tipo de tarea que se quiera hacer. Por ejemplo, si se trata de un trabajo de procesamiento de una cantidad significativa de datos y se requiere el más alto rendimiento desde el inicio se debe optar un por un lenguaje estático. Aun así­ eso habrá que evaluarlo para demostrar que es totalmente necesario, que esos milisegundos entre cada proceso ganados si representan un valor real, ya que en contraparte escribir código en un lenguaje dinámico es mucho más rápido.

    Hasta aquí­ llega esta comparación y aporte. Espero que les sea de utilidad y no olviden dejar sus comentarios.


    ¡Conviértete en un experto tecnológico! 🚀 Suscríbete a nuestro newsletter y recibe las últimas noticias, análisis y tendencias directamente en tu bandeja de entrada. No te pierdas las actualizaciones que harán que tu experiencia tecnológica sea aún más emocionante. ¡Únete a nuestra comunidad hoy! 📧✨

¡Hola a todos los entusiastas de la tecnología! Quería informarles que en mi blog utilizamos cookies para mejorar la experiencia de usuario. Estas pequeñas herramientas nos ayudan a personalizar el contenido y ofrecer funciones específicas. Al continuar explorando el sitio, aceptas nuestro uso de cookies. Puedes obtener más información sobre cómo las utilizamos en nuestra política de privacidad. ¡Gracias por ser parte de esta comunidad tecnológica! 🍪    Más información
Privacidad