Ir al contenido principal

¿Qué lenguaje de programación elegir?

Elegir lenguaje de programación es el primer paso para realizar un proyecto, pero para ello hay que saber lo que queremos conseguir con nuestro programa.

elegir-lenguaje-de-programacion
Existen una inmensa variedad de lenguajes de programación que podemos elegir para satisfacer distintas necesidades. Si bien es cierto que muchos de ellos se pueden utilizar en diferentes ámbitos, siempre suele haber algún lenguaje que destaque entre los demás para dicha área. Para alguien novato en el desarrollo de programas, elegir lenguaje de programación no suele ser tarea fácil y si pregunta las opiniones que encontrará al respecto serán muy diferentes.
Este artículo pretende ser una guía básica para que toda persona interesada enaprender a programar en un área concreta sepa por qué lenguaje o página web podría empezar. Como me es imposible mencionar todas las opciones que existen, sería fantástico que las personas que tengan experiencia en dichas áreas nos compartan su experiencia en los comentarios, siempre hay algo nuevo que aprender.

Desarrollo web

Cuando queremos hacer páginas o aplicaciones web hay que diferenciar si queremos hacer para frontend (lado del usuario) o backend (lado del servidor).
  • Frontend: lo primero es aprender el lenguaje que servirá como estructura para la interfaz, su nombre es HTML y es un lenguaje de marcado, no de programación. Con el podremos poner títulos, negrita, subrayado, enlaces... etc. Para darle estilos (colores, dimensiones) usaremos CSS. Para interacción y efectos como animaciones podremos aprender JavaScript, y una vez que tengamos unos conceptos básicos de cómo funciona este claros, probablemente nos pasaríamos a librerías que con funciones de JavaScript listas para usar como JQuery para agilizar el trabajo, pero hay más alternativas.
  • Backend: aquí necesitamos un lenguaje de programación que genere páginas de forma dinámica. Pensad el inmenso trabajo que sería tener que hacer una página individual para cada enlace que se pulsa. Estos lenguajes del lado del servidor buscarán en una base de datos la información que buscamos y la mostrarán en la interfaz. Un ejemplo para el lenguaje podría ser PHP, aunque Python (usando Django) o Ruby (usando Ruby on Rails) entre otros, también son otras opciones válidas. Para la base de datos también tenemos muchas opciones MySQLSQlite o MongoDB son algunas que se me ocurren.

Para escritorio

Por cada sistema operativo pueden existir diferentes lenguajes específicos que solo servirán para dicha plataforma. Sin embargo, sería sabio pensar en desarrollar con lenguajes multiplataforma, es decir, hacer programas que se podrán utilizar en distintos sistemas. Hay una gran variedad en este aspecto, pero aquí mi opción personal para alguien que se inicia en este mundo sería el lenguaje de programación Python, principalmente por su enorme versatilidad y lo fácil que es de aprender. Podemos hacer aplicaciones que se usen en unaterminal o con interfaz gráfica si lo combinamos con GTK+ o Qt entre otros. También existen distintas opciones para utilizar aplicaciones web como programas de escritorio.
Usar lenguajes multiplataforma nos permitirá** crear versiones de nuestro programa para una mayor variedad de plataformas** diferentes. Si aún así queremos que sea específico para la plataforma, os dejo un enlace paradesarrollar en Windows y otro para desarrollar en Mac OS X. Para Linux no se me ocurre un lenguaje específico (¿existe?), así que os dejo un enlace paracrear aplicaciones con GTK+, que servirá para los tres anteriores.

Para móvil

De la misma forma que para el escritorio, aquí también existen lenguajes específicos. También podemos usar HTML para hacer aplicaciones para móvil pero de momento al menos, la experiencia no es tan fluida como podría ser una aplicación nativa.
Hace poco descubrí Kivy, que sirve para hacer aplicaciones multitouch multiplataforma, incluso para el escritorio. Tiene buena pinta, no le perdáis la pista.

Para las ciencias

Para ciencias el lenguaje estrella yo diría que es Pyhon. La comunidad ha creado tantas librerías que se puede interactuar desde este con webs sobre bioinformática, astronomía, meteorología... etc. De hecho, incluso se pueden llamar a otros lenguajes desde este. De esa forma, podríamos utilizar el lenguaje de programación para estadística R dentro de Python y usar las herramientas citadas anteriormente como Qt para crear una aplicación gráfica que nos haga estadísticas. Un ejemplo de esto último es lo que han hecho los desarrolladores de open-meta. Cuando se necesita un lenguaje de programación más potente se suele recurrir a C++.

Videojuegos

En lugar de ponernos a programar todo desde el principio, podemos echarles un vistazo a los diferentes motores de juego que existen, los cuales nos permitirán desarrollar juegos sin recurrir a la programación en un principio. Una vez que aprendamos a usar el motor, estaría bien echarle un vistazo a los lenguajes de programación que soporta y crear así nuestras propias implementaciones. Unreal Engine y Unity son dos ejemplos de motores multiplataforma. En cuanto a lenguajes de programación, veremos sobretodoC++.

Dónde aprender a programar

La primera parada que recomiendo hacer es en Codecademy, una página que ofrece cursos totalmente gratuitos. La interfaz es maravilloso y muy cómoda de usar. Tiene cursos sobre crear páginas y aplicaciones web, APIs, PHP, Python. Ruby, JavaScript, JQuery y cursos creados por la comunidad.
Otros enlaces de interés
He mencionado distintas opciones que podemos usar según el objetivo que se busca. ¿Me ayudáis a completar la lista?

Comentarios

Entradas más populares de este blog

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

Selfies en 3D llegan a Venezuela y hasta las podrás imprimir en plástico

La empresa 3DUP lanzó al mercado venezolano las líneas de impresoras 3D,  Cube3  y CubePro  de 3D Systems Corporation, a través de las cuales se podrán imprimir modelos, diseños o escaneos en 3D. De igual manera, también está disponible el servicio de selfie3D y el servicio de modelado 3D. La impresora Cube3 tiene dos cabezales de impresión y es única en su clase, posee una amplia combinación de materiales ABS, PLA y una variedad de 18 colores. Es el equipo más fácil de utilizar en el mercado y tiene un software de construcción apto para Windows y Mac; además cuenta con conexión wifi. La nueva CubePro, impresora 3D de calidad profesional ofrece el mayor volumen de impresión entre las impresoras de su clase, sus versiones cuentan con uno, dos o tres cabezales de impresión. Además, posee una amplia combinación de materiales ABS, PLA y Nylon con una variedad de 25 colores, cuenta con una cámara calefaccionada y cerrada para optimizar los trabajos de impresión 3D. P...

Google Photos se independiza de Google+

En las primeras capturas publicadas por Android Police nos podemos hacer una idea de todo lo que se podrá hacer con Google Fotos. Lo más importante es que se confirma que será la misma aplicación de fotos que intenta convencerte cada dos por tres que hagas una copia de seguridad en Google+. En esta actualización se muestra el interés de Google para que uses Google Fotos para almacenar todas tus fotos de forma ilimitada y sin coste. Google Fotos te permitirá almacenar todas tus fotos ilimitadamente y que no afecta a tu espacio de Google Drive/Gmail pero solo si subes la foto en alta resolución. Si eliges subir las imágenes originales mucho más pesadas, estas si que irán en contra de tu capacidad de almacenamiento en tu cuenta de Google.