El día de hoy quiero hablarte acerca de ¿Qué es C Sharp? Conocerás de qué trata esta herramienta y te hablaré acerca de algunos conceptos importantes que deberías saber.
Lo primero que voy a hacer es darte una definición concreta y clara de que es C Sharp.
C Sharp es un lenguaje de programación creado por Microsoft que permite desarrollar
aplicaciones dentro del ecosistema .NET.
Este lenguaje está principalmente orientado a objetos y con esta herramienta puedes desarrollar
aplicaciones para múltiples propósitos, como aplicaciones web, de escritorio, aplicaciones
móviles, videojuegos, cosas más avanzadas como Machine Learning y entre
otros tipos de soluciones, que existen.
También se dice que este lenguaje nació de la fusión de Visual Basic y C ++, por decirlo
así a nivel de funcionalidad y propósito.
Algo importante que también te debo resaltar es que C Sharp es un lenguaje de programación
“compilado”, esto significa que para que puedas ejecutar un programa debes previamente
pasarlo por un proceso de compilación, valga la redundancia.
Pues si de igual forma no sabes aun que es .NET, te dejo un post que hice hace
tiempo en donde te explicaba acerca de la definición de .NET y los elementos que componen
este ecosistema.
Ahora, quiero hablarte acerca de las características de C Sharp.
Estas que te voy a mostrar son a nivel muy GENERAL, existen características a nivel
más técnico.
Sin embargo, estas que te voy a mostrar te van a dar una idea bastante clara de cómo es
este lenguaje de programación.
1. Simple
La primera característica que puedo decirte de C Sharp (C#), es que es un lenguaje de
programación SIMPLE.
Esto significa que con este lenguaje puedes trabajar de una forma bastante
ordenada, al momento de desarrollar tus aplicaciones.
Esto también te permite tener una estructura, dividiendo un problema o algoritmo en varias
partes, y esto es algo que hace que C Sharp sea un lenguaje de programación muy moderno,
muy adaptado a lo que son las tendencias actuales de los lenguajes de programación.
2. Multiparadigma
La segunda cosa que puedo decirte de C Sharp, es que es un lenguaje de
programación MULTIPARADIGMA.
Esto es bastante bueno, porque puedes desarrollar aplicaciones de varias formas o estilos.
Realmente, el que más se adapte a tu forma lógica para resolver las cosas y dependiendo también del
tipo de problema que debas solucionar.
En realidad depende de estos dos factores muy importantes.
Dentro de los paradigmas que puedes aplicar usando C Sharp, tienes:
El Orientado a Objetos, que es la forma tradicional en la que puedes programar,
con este paradigma puedes crear aplicaciones, mediante lo que tradicionalmente se conoce como
una clase.
También puedes usar la Programación Funcional con C Sharp, que es un
estilo de programación o paradigma basado en “Funciones”, valga la redundancia.
Aunque en ocasiones se puede combinar con Clases.
También con C Sharp puedes realizar programación orientada a componentes, que vendría
siendo como una extensión de la programación orientada a objetos.
Lo que nos permite hacer este paradigma o estilo de programación, es desarrollar las
aplicaciones en pequeños “componentes” o pequeñas partes, que básicamente pueden comunicarse
entre sí.
Una analogía bastante clara de esto, es la forma en la que se construyen los automóviles, que
se construyen a partir de otros componentes.
3. Interoperable
La tercera característica de C Sharp (C#) es que es un lenguaje de programación INTEROPERABLE.
Posiblemente no tienes tan claro este concepto, pero lo que significa es que este lenguaje te
da la capacidad de poder interactuar de una forma nativa con otros lenguajes de programación,
dentro del ecosistema .NET.
Un ejemplo muy claro de esto que te estoy diciendo, son los lenguajes HTML, CSS y
JavaScript, que tienen la capacidad de comunicarse entre sí para crear aplicaciones y páginas web
en general.
Por supuesto esta característica a mi parecer es bastante buena porque principalmente nos permite
unificar soluciones, mediante la reutilización del código.
Como una vez lo dije en mi Twitter.
“Escribir un código que se pueda utilizar múltiples veces, es una de las prácticas que contribuye a poder desarrollar
mejores sistemas y aplicaciones...”
Realmente, esto es a lo que debes siempre estar apuntando.
Siempre debes estar buscando constantemente cómo reutilizar un código,
sea hecho por ti o por otro desarrollador.
Ya que este es uno de los grandes retos, que siempre vamos a tener como Programadores,
sea en el nivel que sea que nos encontremos.
Ya hemos hablado bastante acerca de las características de C Sharp, espero haber sido bastante claro
en todos estos puntos.
Ahora quiero hablarte acerca de 3 herramientas de desarrollo, que puedes utilizar para programar
con C Sharp.
La primera opción si no quieres instalar nada en tu equipo, pero al mismo tiempo quisieras probar
como funciona este lenguaje, como es la dinámica.
Puedes utilizar el compilador de .NET Fiddle.
Que básicamente es un compilador en línea, que personalmente utilizo para realizar algunas
pruebas, para probar algunas partes de código y estoy seguro que este editor te
puede servir a ti también para tener un primer contacto con C Sharp.
Lo bueno es que es gratis, solo tienes que ingresar al sitio web dotnetfiddle.net y listo.
Te aparecerá el editor para empezar a programar en C Sharp.
La segunda opción, es Visual Studio Code.
Con esta opción si necesitas instalar la aplicación en tu equipo, no es tan pesada
honestamente y como ya te he dicho en ocasiones anteriores Visual Studio Code es un
editor de texto.
En donde puede desarrollar aplicaciones, tanto con C Sharp, como con otros lenguajes de
programación.
La dinámica principal de esta herramienta, se basa en instalar “complementos” que te
ayudan a personalizar tu ambiente de desarrollo, acorde a tus gustos o necesidades.
Esta opción te la recomiendo, si ya estás decidido que quieres iniciar el camino de la
programación en C Sharp.
Sin embargo, nos falta una tercera y última opción que para mi es la mejor de todas.
La tercera opción que te recomiendo, es utilizar el Visual Studio Community, que vendría siendo
un IDE o Entorno de desarrollo integrado, que podemos usar para desarrollar cualquier
tipo de aplicación, dentro del ecosistema .NET.
Esta opción te la recomiendo 100% si quieres dominar el lenguaje C Sharp a un nivel más
profesional y para desarrollar aplicaciones más especializadas.
Para instalar este IDE, te voy a dejar el enlace directo de la página oficial de Microsoft.
Si no sabes como instalar esta aplicación, AQUÍ también te voy a dejar una guia escrita por
mi en donde te doy el paso a paso para que aprendas a instalar Visual Studio en Windows.
Ahora voy hablarte acerca del proceso de compilación de un programa en C Sharp.
Esta parte es importante que la sepas, porque te va a ayudar a tener una visión más
clara de lo que realmente le ocurre al código, cuando estás desarrollando cualquier aplicación
en C Sharp.
También te va dar un mejor entendimiento del lenguaje en general, ya que debes tener
claro, como una ley universal. Que nuestro CPU o procesador no entiende el lenguaje
C Sharp de forma directa/nativa.
Para que esto ocurra, debemos pasar el código por algunas fases de
transformación, para que llegue a un estado en donde el CPU o procesador pueda entender
lo que se necesita ejecutar.
Existen 3 estados del código por donde pasa un programa en C Sharp.
* Estado 1: Codigo C Sharp
El primer estado es el "Estado de Codigo C Sharp", que básicamente comienza cuando abrimos nuestro
Visual Studio y empezamos a programar o codificar un programa en C Sharp.
En esta parte puedes utilizar toda la sintaxis o posibilidades de código
que brinda el lenguaje C Sharp, como el uso de variables, ciclos, condicionales,
operaciones matemáticas, entre un sin fin de cosas que irás viendo en este blog.
El resultado de esta etapa son archivos con extensión .cs, que es la
extensión de los archivos con código C Sharp, dentro de estos archivo está el
código que acabamos de escribir.
* Fase 1: Compilación Estática
Luego de esto.
Debes ejecutar una primera compilación, utilizando el propio “Compilador de C Sharp” que
lo que hace es tomar el código que acabas de escribir con extensión .cs y convertirlo a
lenguaje intermedio.
El nombre técnico de este lenguaje se conoce como CIL o
"Common Intermediate Language", o también por las iniciales C-I-L.
Que vendría siendo un lenguaje de bajo nivel/ensamblador, que básicamente contiene nuestro programa en
otro tipo de instrucciones/código, que no son las del lenguaje C Sharp.
Esta compilación, también se conoce como “Compilación Estática” y lo que hace es realizar
las validaciones del código a nivel de sintaxis, en pocas palabras que todo esté escrito
correctamente y genera los archivos de salida que mayormente son archivos
con extensión .exe o .dll.
* Estado 2: Lenguaje Intermedio
Luego de estar nuestra aplicación ya en lenguaje intermedio, lo que se hace normalmente en
este punto, es distribuir los diferentes archivos generados a nuestros usuarios, a los usuarios
que van a usar la aplicación.
Sin embargo, estos archivos aún no pueden ser interpretados por nuestro CPU/Procesador,
ya que no se encuentran en un lenguaje 100% nativo, sino intermedio como lo acabamos de ver.
* Estado 3: Compilación JIT
Para lograr que el CPU logre interpretar el programa que acabamos de desarrollar en C Sharp,
debe ocurrir una segunda compilación.
Y esta compilación se llama “Compilación JIT”, “JITter” o “Just in Time” en
inglés, que es un tipo de compilación que lo único que hace es interpretar el código en
lenguaje intermedio y transformarlo en código nativo/máquina.
El momento exacto en donde ocurre esta compilación, es al ejecutar el programa en lenguaje intermedio
que vendrían siendo los archivos con extensión .exe o .dll, en ese mismo
instante nuestro sistema operativo comienza a realizar la compilación.
Es importante también saber que, esta compilación se hace mediante uno de los elementos del SDK
de .NET, llamado CLR o “Common Language Runtime”, que lo que
hace es toma los archivos en código intermedio y los pasa a código máquina, prácticamente a
ceros (0) y unos (1).
Luego de hacer esta segunda compilación, nuestro CPU o procesador ya está
listo para entender y ejecutar nuestro programa en C Sharp.
* Resumen Final (Diferencias entre Compilación Estática y JIT)
Algo que quiero aclarar y como te he dicho, el proceso de compilación de un programa en
C Sharp, está compuesto de dos tipos de compilaciones: la estática y la
Just-In-Time (JIT), que son las dos formas de compilar código que comúnmente se utilizan.
Es por decirlo así un “mix” o combinación de compilaciones.
La compilación JIT se denomina así porque, compila el código intermedio justo en
el momento en que intentamos utilizarlo; por ejemplo, cuando hacemos doble clic en un archivo .exe.
A diferencia de la compilación estática, que lo que haces es compilar todo el código fuente
con anticipación, y esto nos evita que esperemos de un tiempo de ejecución o un "Runtime"
para compilar el código.
Espero haber sido bastante claro, con esta explicación.
Ya para finalizar, quiero hablarte acerca de las razones por las cuales deberías aprender
C Sharp.
Existen muchas razones, pero en esta ocasión para cerrar y no extenderme tanto, te diré
las que para mí son las tres (3) razones más importantes que debes tener en cuenta, si
quieres realmente aprender a programar en este lenguaje.
1. Moderno
La primera razón por la cual deberías aprender a programar en C Sharp, es porque es un
lenguaje de programación bastante moderno.
Cuánto te digo moderno, me refiero a que es un lenguaje que cumple con las exigencias
actuales del mercado y sobre todo, se encuentra en mejora constante para ser cada vez
más óptimo en los desarrollo.
Esto trae dos grandes beneficios, el primero es estar a la vanguardia con respecto a las
herramientas de desarrollo que utilizamos y segundo tener la posibilidad de brindar mejores
implementaciones/soluciones de software.
Qué es lo que se busca, realmente.
2. Alta Demanda Laboral
La segunda razón por la cual deberías aprender a programar en C Sharp,
es porque es un lenguaje de programación que tiene una alta demanda, en el mercado
laboral.
Siempre existen vacantes en donde aparece C Sharp, dentro de las principales tecnologías
que buscan muchas empresas, en desarrolladores.
Adicional a esto es un lenguaje que se mantiene siempre, dentro de las primeras
posiciones del TOP según las diferentes encuestas anuales de satisfacción o
de preferencia que se realizan.
Sin embargo, C Sharp es un lenguaje que también se utiliza en muchas organizaciones
para cubrir diferentes propósitos.
Para solucionar diferentes tipos de problemas.
3. Múltiples Desarrollos
Por último, te diría que la mejor de las razones, es que C Sharp te va a permitir realizar
una gran variedad de desarrollos de software.
Es por decirlo así una de las grandes ventajas, en las que podrías tú como desarrollador,
apalancarte para realizar múltiples proyectos con una misma herramienta y por supuesto para
trabajar por muchos años más.
Básicamente aprendiendo C Sharp en una sola ocasión.
Sin embargo, esto último no es tan literal como suena, porque siempre es necesario estar
renovándose y aprendiendo cada vez más los alcances y las posibilidades de solución que nos
da C Sharp como una herramienta de desarrollo.
Esto ha sido todo por hoy, ya en los próximos posts te estaré hablando más acerca de C Sharp.
Espero que esta información te haya sido de ayuda, Compártela. Si tienes alguna duda, puedes
escribirla en la sección de comentarios o enviarmela por cualquiera de mis
redes sociales.
Recuerda que si quieres saber más acerca de .NET, bases de datos SQL
y temas relacionados con RPA, puedes pasar por mi canal de Youtube, en donde subo contenido
de forma constante y vamos más al detalle para complementar muy bien todos
estos temas.
Espero verte por allí. Ten en cuenta que tu suscripción me será de gran ayuda!
Esto es todo por hoy, te envío un saludo y nos vemos en una próxima.
Web:
https://www.emiliograterol.com/
Youtube:
https://www.youtube.com/c/EmilioGraterol/
Facebook:
https://facebook.com/graterollz/
Twitter:
https://twitter.com/graterolz/
Instagram:
https://www.instagram.com/graterollz/
LinkedIn:
https://linkedin.com/in/graterolz/