Un lenguaje de programación es un sistema de escritura que los programadores usan para indicar instrucciones de tal manera que una computadora pueda entenderlas y ejecutarlas.
Un lenguaje de programación no solo es escribir las instrucciones y ya, para que una computadora pueda entender el lenguaje, este necesita tener ciertas características que lo ayudan desde la escritura hasta la ejecución en la computadora.
Características de un lenguaje de programación
Sintaxis
Es un conjunto de reglas que definen la estructura de la escritura, palabras reservadas, el uso de punto y coma ( ; ), indentación, ortografía, etc. Cada lenguaje tiene sus propias normas que seguir para su correcto funcionamiento.
Semántica
Se refiere al comportamiento de la escritura del código, aunque la sintaxis sea correcta, la estructura en el proceso de ejecución del código tiene que ser claro.
Tipado
El manejo de los datos en la ejecución del programa, es la forma en que se le indica a una variable cuál es el tipo de dato que va a manejar.
Cuando un lenguaje es fuertemente tipado no permite conversiones entre diferentes tipos, un tipado débil si permite este tipo de conversiones.
Un lenguaje con tipado estático verifica el tipo de dato en la compilación mientras que un tipado dinámico lo hace en tiempo de ejecución.
Paradigma de programación
Se puede clasificar en diferentes paradigmas como el Imperativo, el Orientado a Objetos, Funcional, Estructurado, etc.
Portabilidad
La posibilidad de que el programa pueda ejecutarse en diferentes plataformas con pocas o ninguna modificacion como windows, android, web, ios, etc.
Eficiencia
Es la velocidad conla que puede ejecutarse el codigo del lenguaje, por ejemplo los lenguajes como ensamblador de bajo nivel son mas eficientes respecto a los recursos, pero los lenguajes de alto nivel sacrifican algo de eficiencia a cambio de la facilidad y desarrollo mas rapidos.
Abstracción
Permite a los programadores trabajar con conceptos de alto nivel como variables, objetos,funciones, etc.
Librerias y Frameworks
Los lenguajes cuentan con librerias y frameworks con tareas comunes para facilitar su uso y no tener que escribirlas desde cero
Herramientas de desarrollo
Los lenguajes de programación suelen estar acompañados de herramientas y entornos de desarrollo integrados (IDEs) que facilitan tareas como la compilacion, la depuracion, uso de control de versiones y el desarrollo en si, generalmente son los lenguajes compilados que generan un archivo de instalcion los que son acompañados por su propio IDE, otros lenguajes que son interpretados pueden escribirse practicamente en cualquier editor de texto.
Compilacion
En realidad existen los lenguajes compilados , lenguajes interpretados y lenguajes semi-compilados
Lenguajes compilados: el codigo se traduce completamente al lenguaje máquina antes de ejecutarse.
Lenguajes interpretados: el codigo se interpreta linea por linea mediante un interprete
otra cosa a tener en cuenta cuando se elige un lenguaje de programación es la disponibilidad de recursos, documentacion y soporte de la comunidad que hay disponible, existen lenguajes con grandes cantidades de recursos en donde buscar, pero tambien hay otros que tienen muy poca documentacion haciendo dificil la curva de aprendizaje.
Trabajar con un control de versiones es impresindible en la actualidad para poder tener tus proyectos organizados y se puede realizar de manera gráfica en tu IDE preferido o desde la consola de git con simples comandos.
A continuación listaré algunos de los comandos git que nos permitirán trabajar con nuestros proyectos.
Para trabajar con los comandos de git primero hay que instalarlo en tu computadora y despues podremos usar la consola que windows o mac traen por defecto o bien al instalar git se instala la consola de git, la git bash.
Lo primero después de instalar git es comprobarlo y para eso consultamos la versión instalada
//
git --version
//
Help
Primero necesitamos saber que con este comando podremos ver una lista de comandos con la descripcion de lo que hace, cuando no recuerdas bien la sintaxis de alguno de ellos, en esta lista podras comprobarlo.
//
git --help
//
Configuraciones
Estas configuraciones afectan a toda la instalacion de git en tu máquina y no sólo al proyecto en el que estas trabajando
//
git config --global
//
Este comando agrega el numbre de usuario que se utilizara para registrar todos los movimientos que se hagan en el control de versiones
Este comando configura el nombre de la rama principal para tus repositorios, en caso que tu versión de git no lo haga automáticamente en “main” que por convención es el nombre que se le asigna a la rama principal
Este comando muestra la lista de configuraciones por si necesitas modificar alguna otra
//
git config --list
//
Iniciando
Crea un repositorio vacío en la carpeta .git oculta del proyecto
//
git init
//
Status
Indica la rama en la que estas trabajando actualmente
Los commits que se han hecho
Los archivos que se han creado nuevos, si ya se agregarón al repositrio o estan en el stage de git
//
git status
//
Agregar archivos
Para agregar los archivos nuevos al stage para poder haer commit con ellos, los archivos que esten en el stage se agregarán al commit, los que no se agregarón se quedaran en el proyecto local
//
git add <nombre_del_archivo.txt> //agrega sólo el archivo indicado
git add . //con el punto podemos agregar todos los archivos que no se han agregado antes
//
Sacar del Stage
Si agregaste por error un archivo al stage, con este comando lo puedes regresar a su estado normal, hay archivos que contienen datos privados como credenciales, tokens, etc. que no deverían enviarse a un repositorio ya sea público o privado.
//
git rm --cached <nombre_del_archivo.txt>
//
Commit
Comando para enviar un commit al repositorio, el comentario es obligatorio, recomiendo poner un comentario breve pero descriptivo de lo que se hizo en el commit, por ejemplo “se creo función para ordenar listado”, esto es muy útil en caso de buscar el repositorio donde se realizo esa función, en cambio poner “cambios martes” no indica nada y tendremos que revisar el código del commit para ver los cambios realizados
Regresa una lista de todos los cambios que se han registrado en el repositorio, cada commit con si hash (identificadir), el autor, fecha y mensaje indicado
//
git log
//
Crear Rama
Este comando crea una rama nueva y te posiciona en ella para realizar los cambios correspondientes.
Si la rama que indicaste ya existe, entonces solo se cambiará a esa rama, sin crear nada
//
git checkout -b <nueva_rama>
//
Cambiar de Rama
No solamente puedes cambiar de rama con checkout, con este comando tambien puedes cambiarte de ramas
Este comando muestra una lista de todas las ramas del rpositorio
//
git Branch
//
Merge / Fusión
Cuando terminas el trabajo asignado en tu rama, con todos esos commits, es hora de fusionar con la rama principal que suele ser main
//
git merge <tu_rama_actual>
//
Borrar Rama
Después de terminar tutrabajo en esa rama y hacer merge con la rama principal, puedes borrarla con este comando
//
git Branch -D <nombre_rama>
//
Deshacer cambios
Si necesitas hacer cambios de un commit especifico, necesitas el hash indicador del commit, el hash es una serie de caracteres alfanuméricos que aparece delante del mensaje del commit cuando pones git log
Puedes indicar que tú hiciste estos cambios en el mensaje.
//
git revert <hash>
//
Reset
Este comando sirve para regresar a un commit anterior y puedes usarlo con tres características
//
git reset --soft <hash> //deshace el commit pero mantiene los cambios en el stage
git reset --mixed <hash> //deshace el commit y lo quita del stage pero los cambios se mantienen en el código
git reset --hard <hash> //borra todos los cambios, commit, stage y código hasta el commit indicado, úsalo con precaución ya que no solo afectas tus commits, sino los de tus compañeros
//
Clone
Sirve para clonar un repositorio desde cualquier servidor GitHub, azure, bitbucket, etc. en tu computadora en el directorio en el que estas posicionado, creando una carpeta con el nombre del repositorio que estas clonando
//
git clone <url_del_repositorio>
//
Sincronizar
Para sincronizar las ramas descargando desde el origen o repositorio colonado, git llama al repositorio alojado en algun servidor como github, azure, etc. como el origen.
//
git fetch
//
Crear Rama con Origen
Para crear una rama local que es en la que trabajarás y se relacione a una rama en el origen para poder subir tus cambios, por decir que alguien más te asigna la rama
//
git checkout -b <Nombre_Rama> // se recomienda poner el mismo nombre de la rama origen
//
Pull
Con este comando te aseguras de descargar el contenido del repositorio de origen
//
git pull
//
Push
A diferencia de fetch, push envía el contenido desde el repositorio local al repositorio origen, normalmente se hace después de hacer un commit
//
git push
//
Comandos de consola
Recuerda que estastrabajando en una consola de comandos y los siguientes pueden ayudarte a moverte entre los diferentes directorios, crear y editar archivos, etc.
Cambiar de directorio
Primero tenemos que posicionarnos dentro de la carpeta del proyecto y tienes que localizar la ruta completa
//
cd C:/users //con cd puedes posicionarte en un directorio indicando la ruta completa, pero no es necesario indicar la ruta desde el inicio, puedes indicar solo la carpeta a la que quieras entrar de ese dierectorio
dir //muestra el directorio de la carpeta donde te encuentras
cd .. //con los dos puntos puedes subir un nivel del directorio
//
Básicos
Estos comandos son básicos en cualquier consola de comandos
//
help //muestra una lista de comandos con su descripcion
clear //limpia la consola para poder trabajar mejor
//
Archivos con Linux
A pesar de que puedes hacerlo con la consola de windows por ejemplo, encontrarás en muchas partes que para la creacion y edicion de archivos utilizan los comandos de linux, estos comandos puede ser que no funcionen en la consola cmd de windows ni en power shell, pero no tendras problema en git bash.
//
ls //muestra el directorio de la carpeta
nano <archivo.txt> //crea o edita un archivo con un editor de texto de linux llamado nano
//
Estos son algunos comandos que te ayudarán a trabajar con git desde la consola.
La programación es el proceso de crear y desarrollar todo tipo de software por medio de la escritura de un código de programación que es un conjunto de instrucciones que le dicen a una computadora cómo realizar una tarea, el código se tiene que escribir, probar, depurar y mantener, el código se puede escribir en uno de los variados lenguajes de programación.
Se puede crear software para diferentes fines y plataformas que van desde aplicaciones de escritorio, aplicaciones web, aplicaciones móviles, videojuegos, sistemas operativos, etc.
El proceso de la creación de un programa tiene varias fases entre ellas
Análisis del programa
Análisis del programa
Diseño
Codificación
Depuración
Mantenimiento
La programación tiene varios componentes clave de los que hay que tener algún conocimiento.
Lenguaje de programación: Son herramientas que permiten expresar instrucciones en un formato comprensible para los sistemas.
Algoritmos: Conjunto de instrucciones lógicas que siguen la resolución de una tarea especifica.
Estructuras de datos: Formas de organizar y almacenar los datos en memoria de manera eficiente (arreglos, listas, colas, etc.)
Paradigmas de programación: Enfoques o estilos de programación para estructurar el código
Ciclo de vida del Software: Todas las fases por las que pasa el software desde su concepción
La etiqueta <intent-filter> se usa para que otras aplicaciones puedan abrir nuestra aplicación por medio de un Intent, normalmente no había problema hasta la versión de Android 11 si la etiqueta del Activity contenía la etiqueta Intent-Filter se tomaba la propiedad android:exported con valor verdadero, sin importar que se incluyera en la etiqueta del Activity
Pero desde la versión de Android 12 y posteriores se necesitara poner explícitamente la propiedad android:exported en verdadero, de no ponerla entonces tendremos el siguiente error.
Error:
Launching 'app' on No Devices.
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
List of apks:
[0] 'D:\Documentos\DESARROLLO\ANDROID\Random\app\build\outputs\apk\debug\app-debug.apk'
Installation failed due to: 'null'
Retry
Solución:
Como se menciono antes, el ejecutar la aplicación sin la propiedad android:exported en dispositivos Android 11 e inferiores no tendrán problema pero si queremos que nuestra aplicación se ejecute en dispositivos Android 12 y posteriores se tiene que agregar dicha propiedad con valor verdadero
Si se agrega la propiedad con valor falso no marcara error pero no se ejecutará, por lo que tiene que ser verdadero
Error al correr aplicación en celular desde Android Studio, molesto error que al parecer aparece en celulares Xiaomi y/o con sistema MIUI
Error:
Failed to commit install session 309689147 with command cmd package install-commit 309689147. Error: INSTALL_FAILED_USER_RESTRICTED: Install canceled by user
Error Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
Retry
Session 'app': Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
Retry
Solución:
La solución es muy sencilla solo hay que activar la opción Instalar vía USB en las opciones de desarrollador del teléfono, junto a la Depuración USB
Solución 2:
05/20 09:45:36: Launching 'app' on Physical Device.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
List of apks:
[0] 'D:\Documentos\DESARROLLO\ANDROID\Random\app\build\outputs\apk\debug\app-debug.apk'
Installation via USB is disabled.
Retry
Si ya está activa la configuración Instalar vía USB y el error está sucediendo a causa de una actualización del SO del teléfono entonces podemos desactivar la optimización MIUI, esto hará que nos pregunte de nuevo si permitimos la depuración por USB, entonces aceptamos.
Desactivar la Optimización MIUI
Casi al final de las Opciones de desarrollador encontraremos la opción Restablecer valores predeterminados
Presionamos varias veces hasta que aparezca debajo la configuración Activar optimización MIUI y la desactivamos
Aceptamos la advertencia
En mi caso el teléfono me pregunto si permito la depuración por USB nuevamente
*Pero después volví a activar la optimización MIUI y ya no apareció el error lo que nos lleva a la Solución 3.
Solución 3:
05/20 09:45:36: Launching 'app' on Physical Device.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_USER_RESTRICTED
List of apks:
[0] 'D:\Documentos\DESARROLLO\ANDROID\Random\app\build\outputs\apk\debug\app-debug.apk'
Installation via USB is disabled.
Retry
Puede ser que debido a una actualización de Android como del sistema MIUI nos aparezca este error y que solamente necesitemos desvincular el teléfono de la depuración por USB y activarla de nuevo
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.