Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
13 Hrs
36 Min
56 Seg

Breve Historia de C#

6/32
Recursos

Creado por Anders Hejilsberg y su equipo, C# es un lenguaje multiparadigma fuertemente tipado, imperativo, declarativo, funcional, genérico, orientado a objetos y orientado a componentes.

Aportes 63

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Historia de C#

C# Versión 1
Cuando echas la vista atrás, la primera versión de C# sí que se parecía un montón a Java. Como parte de sus objetivos de diseño escritos para ECMA, buscaba ser un “lenguaje orientado a objetos de uso general moderno y sencillo”. En aquel momento, podría haber hecho algo peor que mirar hacia Java para alcanzar dichos fines.

Pero si analizases la versión 1.0 de C# 1.0 hoy, te marearías. Carecía de capacidades asíncronas sólidas y de muchas de las “pulidas” funcionalidades relacionadas con los genéricos que hoy en día damos por sentadas. En realidad, carecía de genéricos en general. ¿Y LINQ? Nada. Eso tardaría aún unos cuantos años en salir.

La versión 1 de C# parecía estar bastante desprovista de funcionalidad, comparado con hoy. Al final te veías escribiendo código pesado. Pero bueno, como con cualquier versión 1.0: por algún lado hay que empezar…

C# Versión 2
Aquí las cosas se empiezan a poner interesantes. Repasemos algunas de las principales características de C# 2.0, lanzado en 2005, junto con Visual Studio 2005 (no te olvides de echarle un vistazo al libro escrito por el creador de NDepend, Patrick Smacchia, sobre .NET 2.0, disponible en inglés y francés).

Genéricos
Tipos parciales
Métodos anónimos
Tipos anulables
Iteradores
Covarianza y contravarianza
Aunque Microsoft puede que haya empezado con un lenguaje orientado a objetos bastante genérico, la versión 2 de C# lo cambió todo enseguida. Se pusieron a la tarea tras la salida de la versión inicial y fueron a por varias de las frustraciones que causaba. Y lo hicieron muy en serio.

Con genéricos, tienes tipos y métodos que pueden operar sobre un tipo arbitrario mientras que aún conservan seguridad de tipos. Así, por ejemplo, tener una List<T> te permite tener una List<string> o una List<int> y realizar operaciones seguras de tipo en esas cadenas de caracteres o ints mientras iteras por ellas. Esto es mucho mejor que crear clases derivadas de listas (ListInt?) o convertir a un Objeto para cada operación.

¡Ah!, y hablando de iteradores, la versión 2 de C# los presentó. Para resumir, esto te permite iterar por los ítems de una Lista (u otros tipos Enumerable) con un bucle foreach. Tener esto como un elemento de primera clase del lenguaje mejoró ostensiblemente la legibilidad del código y la capacidad para poder entenderlo.

Y aún así, Microsoft seguía intentando ponerse a la altura de Java. Java ya había liberado versiones que incluían genéricos e iteradores. Pero eso cambiaría pronto a medida que los lenguajes seguían una evolución diferente.

C# Versión 3
La versión 3 de C# apareció a finales de 2007, junto con Visual Studio 2008, aunque la funcionalidad completa aparecería con la versión 3.5 de C#. ¡Y menuda actualización resultó ser!. Yo me atrevería a afirmar que ese momento consolidó a C# como un lenguaje de programación realmente formidable. Veamos algunas de sus características principales en esta versión:

Propiedades auto-implementadas
Tipos anónimos
Expresiones de consulta - LINQ
Expresiones lambda
Árboles de expresión
Métodos de extensión
Con mirada retrospectiva, muchas de estas características parecen tanto inevitables como inseparables. De hecho, no es fácil destacar una sobre otra ya que todas encajan estratégicamente muy bien juntas.

Otros haciendo este mismo análisis no tendrán ese problema, y dirán que, de largo, la novedad más importante de la versión 3 de C# fue las expresiones de consulta, también conocidas como LINQ (Language INtegrated Query).

Yo creo que hay más matices y sutilezas puesto que, desde mi punto de vista, los árboles de expresión, las expresiones lambda y los tipos anónimos fueron los cimientos sobre los que se creó LINQ. Disertaciones aparte, lo cierto es que nos encontramos con un concepto realmente revolucionario. Microsoft había empezado a allanar el terreno para hacer de C# un lenguaje funcional orientado a objetos híbrido.

En concreto, con esta versión ya se podían programar búsquedas declarativas tipo SQL para llevar a cabo operaciones en colecciones, entre otras cosas. En vez de tener que crear un bucle para computar la media de una lista de enteros, ahora se podía hacer con algo tan fácil como list.Average(). La combinación de expresiones de búsqueda y métodos de extensión hizo parecer que las listas de enteros se habían hecho más inteligentes.

Llevó un tiempo hasta que los programadores realmente entendieron cómo integrar el concepto, pero a la larga lo lograron. Y ahora, unos años más tarde, el código es mucho más conciso, sencillo y funcional.

C# Versión 4
La versión 4 de C# nació con el estigma de no suponer una innovación rompedora como sí lo había sido su antecesora versión 3. Y es que con la versión 3, Microsoft hizo que el lenguaje dejase de estar a la sombra de Java y empezó a destacar. Rápidamente el lenguaje se estaba convirtiendo en una opción elegante.

De todos modos, la versión 4 de C# sí introdujo alguna cosas chulas.

Tipos dinámicos
Argumentos opcionales y con nombre
Covarianza y contravarianza genérica
Tipos interop embebidos
Los tipos interop embebidos aliviaron problemas a la hora del despliegue. La covarianza y contravarianza genéricas te dan mucha potencia, pero son demasiado académicas y probablemente sean más valoradas entre los creadores de frameworks y bibliotecas. Los argumentos opcionales y con nombre te permiten eliminar muchas sobrecargas de método y ofrecen comodidad. Pero ninguna de estas cosas altera el paradigma propiamente dicho.

Esa distinción sí se la llevan los tipo dinámico. Con esta característica, Microsoft introdujo en la versión 4 de C# la capacidad de anular el compilador al tiparlo en tiempo de compilación. Es decir, al usar el tipo de referencia dinámico, te puedes llegar a pegar un tiro en el pie como en los lenguajes de tipado dinámico como JavaScript. Puedes crear una “x = cadena de caracteres” dinámica y luego añadirle 6, dejando al tiempo de ejecución determinar qué diablos tiene que pasar después.

Esto lo digo un poco de broma obviamente. Está claro que cabe la posibilidad de cometer errores, pero también otorga mucha potencia dentro del lenguaje.

C# Versión 5
Con la versión 5 de C#, Microsoft liberó una versión con el foco muy puesto en la innovación del lenguaje. Esta es la lista de las características más importantes:

Programación asincrónica con Async y Await
Atributos Caller info
No quiero que se me malinterprete. El atributo caller info está muy bien. Te permite recuperar información sobre el contexto en el que estás sin tener que recurrir a un montón de código reflejo repetitivo. Me encanta esta funcionalidad en realidad.

Pero async y await son las verdaderas estrellas de esta versión. Cuando esto salió en 2012, Microsoft cambió las reglas del juego nuevamente al meter la asincronía en el lenguaje como un participante de primera clase. Si ya has gestionado operaciones largas y la implementación de páginas web con retro-llamadas, probablemente adores esta funcionalidad.

C# Versión 6
Con las versiones 3 y 5, Microsoft había hecho algunas cosas bastante impresionantes en un lenguaje orientado a objetos (la versión 2 también, pero estaban copiando conceptos de Java con esas funciones que introdujeron). Con la versión 6 se alejaron de la idea de sacar una novedad dominante estrella y, en vez de eso, liberaron muchas características para hacer felices a los usuarios del lenguaje de programación. Aquí enumero unas cuantas:

Importaciones estáticas (como en Java)
Filtros de excepciones
Inicializadores de propiedad
Miembros con una expresión como cuerpo
Propagador null
Cadenas interpoladas
Operador nameof
Inicializador del diccionario
Si las vemos de forma individual, todas estas características del lenguaje son muy interesantes. Pero si las valoramos en conjunto, observamos un patrón que nos llama la atención. En esta versión, Microsoft se ha esforzado en eliminar repeticiones en el lenguaje y hacer que el código sea más ligero y legible. Así que para los aficionados del código escueto y limpio, esta versión del lenguaje fue una gran victoria.

¡Ah!, e hicieron otra cosa con esta versión, aunque no se puede considerar como una función tradicional del lenguaje, per se. Liberaron Roslyn, el compilador, como servicio. Microsoft ahora usa C# para hacer C#, y te dejan usar el compilador como parte de tus esfuerzos de programación.

C# Versión 7
Finalmente hemos llegado ya a la versión 7 de C#. Es la versión actual en la fecha que se ha escrito este artículo. Tiene cosas muy chulas y revolucionarias que ya estaban en el ADN de la versión 6, pero sin el compilador como servicio. Aquí van las novedades de esta versión:

Variables out
Tuplas y deconstrucción
Coincidencia de patrones
Funciones locales
Extensión de la funcionalidad de miembros con una expresión como cuerpo aparecida en C# 6
Referencias locales y devoluciones
Todas ofrecen nuevas capacidades para que los desarrolladores puedan escribir código más limpio que nunca. En concreto, creo que Microsoft ha dado solución a problemas que venían desde muy lejos al condensar la declaración de variables que se pueden a usar con la palabra clave out y al permitir valores de devolución múltiples vía tuplas.

Además, Microsoft le está dando un uso más amplio al lenguaje. .NET ahora va dirigido a cualquier sistema operativo y tiene la vista puesta de forma firme en la nube y en la portabilidad. Esto es lo que más ocupa la mente y el tiempo de los diseñadores del lenguaje, además de pensar en nuevas características.

Conozco C# desde hace 15 años, y el lenguaje ha estado bajo desarrollo más tiempo que eso. Será emocionante ver qué funcionalidades y características deparará el futuro.

Breve Historia de C#

Creado por Anders Hejilsberg y su equipo.

C# es un lenguaje multiparadigma
- Strong typing
- Imperative: basado en sentencias que específican qué se tiene que hacer.
- Declarative: no se tiene un flujo, sino una especificación.
- Functional: like Javascript.
- Generic: Manejo de memoria.
- Object-oriented (class-based): Basado en clases.
- Component-oriented: Permite que las diferentes piezas de software (módulos) se comuniquen.

Principio de C#
- Simple, moderno, de propósito general, orientado a objetos.
- Robusto, durable, productividad para el programador: mejor adaptable.
-Ambientes distribuidos: Microservicios.
- Portabilidad: Qué funcioné en multiples plataformas (OSs).
- Soporte para internacionalización: códificación de caracteres.
- Uso en servidores y entornos embebidos: IoT.
- Bajo uso de procesador y memorias.

Para los que esten haciendo este curso en 2022 y no ven lo mismo que ve el maestro les recomiendo que miren las ultimas actualizaciones de .Net 6.0

https://aka.ms/new-console-template
No deberia ser ningun problema seguir el curso, pero si quieren verlo exactamente como el amestro lo ve dentro del link se explica mejor como volver a los templates antiguos de c#

si llegamos a ver a Juank hay que pedirle fotos para que vea lo que se siente XD

Revelación máxima! Ni idea tenía de que el tal Anders Hejlsberg (y no Hejislsberg que aún lo hace más impronunciable 😉) es co-autor de Turbo Pascal, lenguaje con el que empecé en programación en el 92 (ahora la curiosidad se resuelve con un click, en esa época no, sin internet. QBasic, C, Pascal, Fortran, Cobol, Lisp, Karel,… qué recuerdos!) Gracias!

El nombre C# fue inspirado por la notación musical donde una almohadilla (#) indica que la nota escrita debe hacerse un semitono más alto en el tono. Esto es similar al nombre del lenguaje C++, donde “” indica que una variable debe ser incrementada en 1. El símbolo de la almohadilla (#) también se asemeja a una ligadura de los cuatro símbolos “+” (en una cuadrícula de dos en dos), lo que implica que el lenguaje es un incremento de C tal y como se puede observar en la siguiente imagen. Fuente: https://bit.ly/2P2HsQR

Llevo un par de años trabajando con el lenguaje nunca había escuchado o leído la historia del lenguaje con tanto interés

  • Simple, moderno, de proposito general, POO.
  • Ambiente distribuido
  • Portable
  • Uso en servidores y embebidos
  • Robusto, durable, productividad para el programador.
  • Bajo uso de procesador y memoria
  • Internacionalización

 C# fue creado por Anders Hejilsberg y su equipo, quien también creo Delphi y protagonista de otras grandes innovaciones entre ellas TypeScript

 C# es un lenguaje:
o Multiparadigma
o Fuertemente tipado (se debe definir los objetos antes de usarlos)
o Es orientado a objetos (basado en clases
o Declarativo
o Es imperativo (se basa en sentencias que dicen que hay que hacer)
o Es funcional

 Principios de C#:
o Simple, moderno y de propósito general (útil para hacer cualquier tipo de app)
o Orientado a objetos
o Robusto, durable, productividad para el programador
o Ambientes distribuidos (múltiples sitios web en distintos servidores)
o Portabilidad (funciona en distintos sistemas operativos)
o Soporte para internacionalización
o Uso en servidores y entornos embebidos
o Bajo uso de procesador y memoria

Muy interesante conocer la historia de C#

la historia esta super !!!

Genial!.

C# Es un lenguaje fuertemente tipado
C# es un lenguaje multiparadigma
-Imperativo, Declarativo, alineado con el paradigma Functional
-Orientado a objetos(basado en clases), y Orientado a componentes.

Principios de C#

-simple, moderno, de proposito general orientado a objetos.
-robusto, durable, productividad para el programador
-ambientes distribuidos
-portabilidad
-soporte para internacionalizacion
-Uso en servidores y en entornos embebidos
-bajo uso de procesador y memoria

Casualmente escuché sobre él en estos días en este video… https://www.youtube.com/watch?v=Y-HIJFxM264

muy buena clase

Historia muy completa de C#

Una gran historia tras este excelente lenguaje, muy bueno

muy interesante

buenas clases

Interesante!

¡Me agradan tus chistes!

muy buena historia

Hacía varios años que no utilizaba este lenguaje, es genial volverlo a retomar 😃

Smalltalk… orientado a objetos de verdad…

Jajaja, excelente

 En un comienzo las versiones de C# iban agregando funcionalidades básicas o funcionalidades al core, luego llegaron versiones creando grandes bloques de funcionalidad y con el tiempo fue madurando el framework, entonces las nuevas versiones de C# lo que buscaban eran nuevas funcionalidades para escribir más rápido y amigable el código.

 La versión 1.0 de C# era muy parecida a Java. A partir de la versión 2.0 empezaron a implementar nuevas ideas como los tipos parciales, métodos anónimos, iteradores entre otras cosas.

 La versión 3.0 se enfocó en codificar más rápido, con shortcuts, un sub lenguaje de nombre link y otras estrategias.

 La versión 4.0 se enfoco en los tipos dinámicos gracias a la llegada de JSON, ahora se puede agregar características a los objetos luego de ser creados

 La versión 5.0 implemento los métodos asincrónicos y se optimizo las líneas de código para usar todos los núcleos de los procesadores

 La versión 6.0 se enfoco en facilitar codificar, para realizar con palabras claves lo que antes se hacía con muchas líneas de códigos.

 Para la versión 7.0 se incrementó la velocidad de lanzamiento de una nueva versión, entonces empezaron a sacar C# 7.1, 7.2 y no de números enteros.

 Ahora se hacen nuevas versiones del lenguaje cada tres meses mientras antes era cada tres años en promedio

 C++ se llama así por que el ++ se interpreta en los ciclos como incremento de 1 en 1 entonces c++ quería decir que el lenguaje se iba incrementando y mejorando.

 C# se pensó como una mejora al lenguaje C++, este lenguaje tiene su nombre por ser una mejora del lenguaje C, entonces llamar (C++)++ a C# hubiera quedado muy mal. Por ello se optó en llamarlo “C Sharp” que “Sharp “significa inteligente, pero el símbolo de Sharp no es fácil de sacar con el teclado por ello se usa el signo #.

 El # en diseño son cuatro + unificados

 Los lenguajes orientados a objetos permiten reutilizar grandes cantidades de código, por eso aun son tan preferidos java y c#

C# es una lenguaje multiparadigma.
- Strong typing
- Imperative: basado en sentencias que específican qué se tiene que hacer.
- Declarative: no se tiene un flujo, sino una especificación.
- Functional: like Javascript.
- Generic: Manejo de memoria.
- Object-oriented (class-based): Basado en clases.
- Component-oriented: Permite que las diferentes piezas de software (módulos) se comuniquen.

Principio de C#
- Simple, moderno, de propósito general, orientado a objetos.
- Robusto, durable, productividad para el programador: mejor adaptable.
- Ambientes distribuidos: Microservicios.
- Portabilidad: Qué funcioné en multiples plataformas (OSs).
- Soporte para internacionalización: códificación de caracteres.
- Uso en servidores y entornos embebidos: IoT.
- Bajo uso de procesador y memorias.

Tengo una consulta, las versiones de c# depende del framework .net?. Por ejemplo si tengo el framework 4.5 solo puedo trabajar con cierta versión de C#.

Es que como se tiene varias versiones, como podemos saber con que versión de C# estamos trabajando, y si queremos trabajar con alguna versión de c# que debemos hacer.

Debe ser un sueño ver el creador de tu codigo favorito!

yo hace rato use C# y me gusto, ahora lo vuelvo a retomar, ojala esto me ayude con Unity 3d

Bjarne Stroustrup crea C++ tomando Simula y C como bases e inspiración para darle desde su nacimiento(de C++) un enfoque basado centralmente en las clases. C++ no es C con clases.
Hay muchos desarrolladores, sobre todo investigadores que siguen usando C incorporando clases con C++(tratando a C++ como si fuese C), pero repito, escribir bajo un enfoque totalmente C++ es un mundo distinto a C.
Hasta hoy en día C++ es un lenguaje importante y en constante evoloción. Hoy tenemos la versión C++ 17 o 2017 y se está preparando la C++ 20.
Un saludo y estoy ansioso por entrar al mundo de C#.

Interesante!

Excelente clase.
soy viejo pero asi de viejo si use visual basic jajajajajajaj

Que pro

jajaja que pro el profe con el creador de c·#

Este profesor es un capo de verdad.

Amaría tener una foto con Anders y con el profe Juan Carlos

C# es:

  • Un lenguaje multiparadigma, cosa que no parecía tener mucho sentido ya que los lenguajes orientados a objetos como Java y C++ dominaban por esas épocas, siendo considerados como poderosas herramientas para el desarrollo de software.
  • Fue pensado para ser capaz de adoptar diferentes aproximaciones a la hora de programar, ya que su creador, Anders Hejilsberg traía experiencia de la creación de otros lenguajes como Delphi.
  • Un lenguaje fuertemente tipado, aunque conforme fue evolucionando fue desarrollando características que le permiten no siempre ser necesariamente fuertemente tipado.
  • Imperativo.
  • Declarativo.
  • Funcional.
  • Genérico.
  • Orientado a objetos (basdo en clases).
  • Orientado a componentes, permite que diferentes piezas de software se puedan comunicar unas con otras de una manera desacoplada.

Sus principios fueron:

  • Simple, moderno, de propósito general, orientado a objetos.
  • Robusto, durable, productividad para el programador.
  • Ambientes distribuidos, cosa que ahora vemos normal, pero en el año en que se lanzó, era una característica importante a futuro, novedosa.
  • Portabilidad, se intentó convertir C# en estándar, pero eso solo se logró en Windows, en plataformas como Linux o Mac, era muy difícil que las aplicaciones funcionaran, ahora en día si es una realidad.
  • Soporte para internacionalización.
  • Uso en servidores y entornos embebidos, lo que ahora conocemos como IoT.
  • Bajo uso de procesador y memoria, sin llegar a los niveles de optimización de Assembler o C++, por obvias razones.

Buena clase

Creo recordar que se intentó hacer con el proyecto Mono, donde se quería integrar .Net con GNU/Linux. Y el precursor fue el gran Miguel de Icaza.

Dejo este post que habla con mas detalle todos los cambios que ha tenido C# en su historia

Gracias a Dennis Ritchie hay C# ya que el lenguaje C es la madre de los lenguajes C++ y C#

Hola tengo una consulta, por favor si podrían ayudarme, soy nuevo en este mundo de la creación de aplicación, antiguamente programe una aplicación de control de inventarios en excel mediante visual basic, pero a medida que se fueron construyendo mas almacenes y el flujo de pedidos aumento empece a sentir las limitaciones de usar solo excel, la aplicación que cree, quería programarla con el lenguaje C# y combinarlo con una base de datos SQL y poder gestionarla desde la nube de Microsoft (Azure).

Ademas en el almacén hay procesos de conteo de inventario y también seria beneficio crear una aplicación que funcione desde mi celular para capturar datos y estos se sincronicen con la base de datos del nuevo sistema de inventario.

1.-¿Me es mas conveniente volver a programarlo en C#?

2.-¿El curso de ASP.Net Core me dará los conocimientos para crear una aplicación para sistema operativos android y esos datos poderlos enviar a mi base de datos que va a estar en la nube?

¿Como debería crear mi plan de estudios y adquirir los conocimientos para crear una aplicación que su base de datos este sincronizada con la nube y también pueda sincronizar con una app en el celular para capturar datos y enviarlas a mi base de datos?

A Anders Hejilsberg le fastidia el profe

Buena explicación muchas de esas cosas no se las piensa seguido pero siguen siendo muy importantes

C# es un lenguaje multiparadigma fuertemente tipado, imperativo, declarativo, funcional, genérico, orientado a objetos y orientado a componentes.

Por ahora todo muy claro. Gracias

Muy buena introducción con la historia!

Si no estoy mal, he contestado en el examen que es multiparadigma un par de veces y me ha salido mal 😦

Genial conocer personas como él.

La historia es muy importante, además de que aporta información adicional, genera motivación y brinda razones para querer aprender un lenguaje. Buena clase.

Excelente clase la historia de este lenguaje es muy interesante, me pareció bueno hacer un espacio dentro del curso para saberla.

Lenguaje multiparadigma!. He dicho datos falsos desde hace años 😕

Me gusto mucho la historia de C#

el desarrollo con c# es muy practico para cuando quieren todo para ayer es un excelente lenguaje si tienes fundamentos de JAVA o C es fácil entenderlo

Un programador faneando con uno de los maestros creadores jajaja que cool

Creado por Anders Hejilsberg y su equipo, C# es un lenguaje multiparadigma fuertemente tipado, imperativo, declarativo, funcional, genérico, orientado a objetos y orientado a componentes.

Origen

  • Anders Hejilsberg

  • Multiparadigma
    – String typing
    – Imperative
    – Declarative
    – Functional
    – Generic
    – Object-oriented
    – Component-oriented

Principios:

  • Simple, moderno, proposito general, OO
  • Robusto, durable, productividad para el programador
  • Ambientes distribuidos
  • Portabilidad
  • Soporte para internacionalizacion
  • Uso de servidores y entornos embebidos
  • Bajo uso de procesador y memoria

Que genial!! Linda historia

C# se puede encontrar en dispositivos móviles, IoT, sitios web, aplicaciones para Android.