En el trabajo empecé un proyecto nuevo. Como tantos, estoy limitado a programar en .Net, y para Windows. Como vengo estudiando Java, y C++, pregunté si habría algún problema en programar la aplicación en C#, ya que la sintaxis es más “de verdad” que la de VB.Net. Como se trabaja con el framework .Net, no hay diferencia en el resultado final (por lo menos eso he leído).

Acá dejo algunas de las ventajas que por ahora he encontrado en Visual Studio usando C#.

Snippets automáticos
Por alguna razón, me resulta mucho más cómodo trabajar con snippets en C#. El ejemplo más común es el manejo de excepciones. En VB, uno escribe “Try”, y el programa automáticamente completa el bloque “catch”. En C#, se puede elegir si usar el snippet del sistema, y si lo hacemos, nos pone el cursor dentro de la declaración del catch para decirle qué hacer con la excepción (qué excepción vamos a manejar, cómo se va a llamar). El tema de los snippets de código da para otro post entero, si son bien usados, pueden agilizar mucho el desarrollo.

Refactoring
En VB, la única opción de refactoreo que veo es “renombrar” una variable o método. En C#, hay un menú entero de refactoreo, con renombrar, extraer método, encapsular, interfase, etc. Sé que se pueden bajar plugins para hacer ésto en VB, pero en C# ya viene integrado.

Menú Eventos en los forms
Cuando diseñamos GUI´s, C# trae ventajas con el manejo de eventos. En Vb. net, si quisiéramos progamar el evento de hacer clic sobre un botón por ejemplo, la forma más rápida es hacer doble clic sobre el botón, y nos lleva a código, con el evento:

Private Sub Button1_Click(ByVal sender As System.Object,
     ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("Apretaste el botón")
End Sub

En c#, los controles tienen un nuevo menú en las propiedades, que controla cada posible evento del contol. Haciendo doble clic en cualquiera de ellos, nos lleva a código, y nos escribe el evento. Queda entonces por ejemplo:

private void Button1_Click(object sender, EventArgs e){
     MessageBox.Show("Apretaste el botón");
}

Pero en este mismo menú, vemos todos los eventos posibles, a diferencia de Visual, que tenemos que buscar en dos combobox dentro de la edición de código el control en el primero, y el evento en el segundo.

Sintaxis C++ y Java
Por último, la ventaja más importante seguramente es la sintaxis. Obviamente Microsoft pensó en atraer programadores de otras plataformas al momento de engendrar .Net. Java es uno de sus competidores más fuertes. Por lo tanto, para C# crearon un lenguaje que pudiera ser entendido por programadores de C, C++ y Java. Y en el otro sentido, si uno se acostumbra a programar en C#, se acostumbra a usar la sintaxis de los otros. Además líneas de código comunes como los if, for, try, etc. son iguales. Sin embargo, programar en .Net es altamente limitante y poco recomendable.

Mono
Como bien observó “MetalAgent” en los comentarios, C# también puede ser implementado con Mono. En mi experiencia personal, pude compilar una mini-aplicación de consola en GNU-Linux con Mono, y ejecutarlo en Windows después.
Si bien MonoDevelop es un IDE bastante precario todavía, tiene empresas grandes por atrás.

Conclusión
Por el momento no he encontrado nada que no pueda hacer en C# y sí en Visual Basic. ¿Supuestamente ésto también se cumple a la inversa?
Lo remarco porque los lenguajes C´s y Java son relativamente nuevos para mí, ya que todo el año pasado en mi curso usé Visual Basic.net.
Al final, mientras se esté usando el framework de Microsoft, creo que es cuestión de gustos, porque más o menos se debe poder lograr lo mismo.
En mi opinión, dentro de .net, prefiero C#, y estoy bastante más cómodo usándolo. Aunque detesto .Net y prefiero programar en cualquier otra cosa.

19 comentarios para la entrada.

  1. Avatar MetalAgent 18 agosto. 2007 - 5:10 pm Firefox 2.0.0.6 Ubuntu

    No entiendo muy bien algunos puntos de tu artículo, creo que cuando hablas de C# sólo te centras en M$ cuando también puedes usarlo con Mono.

    Lo que comentas de los “Snippets automáticos” (yo siempre lo he visto como marcos) es algo que pueden hacer todos los editores de código, yo suelo usar emacs, pero hay cientos, te dan muchisima más potencia y velocidad que los de M$.

    Visual Basic es un lenguaje para usuarios finales, para gente que quiere programar con una mano en el bolsillo y la otra en el ratón. No me parece correcto compararlo con Java o C# o cualquier cualquier otro lenguaje serio (como brainfuck o moo XD)

  2. Avatar fernando 20 agosto. 2007 - 6:47 pm Firefox 2.0.0.6 Windows XP

    MetalAgent:
    Gracias por tu comentario. Te paso a responder.
    Sí me centré en M$, aunque lo que decís es muy cierto con respecto a Mono. Voy a agregarlo en las ventajas.
    El artículo viene a que en mi curso, todo el primer año te dan con VB.Net y ni te enteras de la existencia o sintaxis de los otros.
    Es obvio que Visual Basic no tiene nada que ver con lenguajes más “serios” como son Java, los C´s y demás.
    En mi trabajo también venía usando VB desde el principio, y recién ahora empecé a dar los primeros pasos con C#.
    Por eso, lo escrito en el artículo son apreciaciones personales de empezar a usar otro lenguaje, y las ventajas simples que aparecen de principio, mas allá del resultado final y la diferencia abismal de lo que son los lenguajes en sí.
    Simplemente apreciaciones, de alguien que viene empezando.
    Lo de los snippets, sé que existe en casi todos los editores. Particularmente en Visual Studio, me parece que está mejor manejado del lado de C# que usando VB.Net, simplemente eso.
    Por último, gracias por visitar la página y dejar tu opinión.
    Saludos

    Fernando

  3. Avatar Jesus 26 octubre. 2007 - 3:37 pm Firefox 2.0.0.8 Windows XP

    Amigos les comento, no existe diferencia entre lo que se puede hacer con C# o VB. Personalmente me gusta VB, pero programo an ambos indistintamente.
    En relacion al articulo de Fernando, en el topico ” Menú Eventos en los forms” para VB tambien dispones de los eventos que tiene el objeto en las propiedades del objeto, especificamente hay un icono de un “rayo” donde te muestra todos los eventos del objeto seleccionado (ojo VS 2005).
    en relacion al refactoring es cierto que solo aparecen muchos metodos solo para C#, pero imagino que se debe a que las clases que maneja .NET todas estan hechas en C#. Pero para compensar esto hay herramientas free y pagas que ayudana alos programadores de VB.

    En fin todo lo que hago en C# lo puedo hacer en Vb, la diferencia radica es en la facilidad de como se hace, y esto se debe a la implementacion del Lenguaje usado .

    Saludos!!!

  4. Avatar fernando 27 octubre. 2007 - 6:53 pm Debian IceWeasel 2.0.0.6 Debian GNU/Linux

    Jesus:
    Gracias por tu comentario. Ahora que he estado usando los dos lenguajes por un tiempo en el trabajo, puedo decir que realmente no hay diferencias entre usar uno y otro en el resultado final. Y hace poco recién descubrí el rayito de los eventos para los forms en Visual Basic! Es igual que en C#.
    Sin embargo el refactoring sigue siendo un poco mejor con C#.

    Como conclusión, según la sintaxis que uno prefiera, es lo mismo usar uno que otro. Yo me quedo con C# entre éstos dos…
    Saludos

  5. Avatar milena 20 mayo. 2008 - 10:41 pm Internet Explorer 7.0 Windows XP

    hola si alguien me puede decir donde descargar el programa visual basic studio 0.6 por favor

  6. Avatar Dark Musician 24 octubre. 2008 - 8:14 pm Google Chrome 0.2.149.30 Windows Vista

    Public Static Void ComentarEnPagina()
    {
    System.Console.Write(“Buenas noches, me parece muy interesante tu página y también muy interesante tu post; precisamente a mí tambén me está pasando lo mismo, en el lugar donde estudio nos han levantado todo el tiempo a VB, y ahora por mi cuenta estoy aprendiendo C# con un manualillo que me bajé de Wikilibros je je, suerte con tu nuevo lenguaje, que a mí también me está gustando mucho.”)
    }

    Je je, ahí se ven…

  7. Avatar fernando 24 octubre. 2008 - 9:12 pm Debian IceWeasel 3.0.3 Debian GNU/Linux

    Dark Musician:
    Por experiencia, te recomiendo que ignores C#,y te pongas a aprender algo que te vaya a servir más: Java, Python, C, C++, PHP, Ruby, etc.

    .Net es un framework muy limitado y segun mi opinión, con poco futuro. Muchas otras tecnologías te van a servir más en tu formación profesional.

    Saludos

  8. Avatar Marvin 29 octubre. 2008 - 3:23 pm Internet Explorer 6.0 Windows NT

    A mi me gustan ambos…

  9. Avatar Beto 19 noviembre. 2008 - 3:50 pm Firefox 3.0.4 Windows XP

    “.Net es un framework muy limitado y segun mi opinión, con poco futuro. Muchas otras tecnologías te van a servir más en tu formación profesional.”

    ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿
    ?????????????????????????????????

    Que queres decir con eso? (Ademas de la evidente limitacion en cuanto a la multiplataforma, en que te basas para sustentar esta afirmacion?)

  10. Avatar fernando 19 noviembre. 2008 - 7:38 pm GNU IceCat 3.0.3 Debian GNU/Linux

    Me baso en dos motivos principales.

    Uno, que trabajé con .net por mucho tiempo, y lo encuentro limitado. Windows de por sí ya es limitado, un framework que corre únicamente sobre Windows (con limitaciones) es limitado al cuadrado.

    El segundo motivo principal es que no le veo futuro al sistema operativo en que corre. Siguen confiando en un modelo de desarrollo retrógrado, sin futuro, y poco eficiente. Los resultados están a la Vista. Y en cuanto a Mono, la implementación “libre” de .net, no lo va a ser tanto cuando hayan problemas de patente en el camino.

    Hay muchas tecnologías, MUCHAS, algunas de ellas muy nuevas, otras no tanto, que tanto en lo profesional como lo académico son mucho mas útiles y con más futuro.

    Eso es solo mi opinión.

  11. Avatar Mauricio (Beto) 20 noviembre. 2008 - 12:41 pm Firefox 3.0.4 Windows XP

    Ok, entiendo tus motivos.

    Pero me parece que decir que algo es “muy limitado” no es cosa de tomar a la ligera. Creo que se estan mezclando muchas cosas, algunas con fundamento y otras no tanto.
    Y esto toca varias cuestiones, SO, modelo de desarrollo, MS vs No MS, .net vs otras plataformas de desarrollo, etc. etc. y mas etc.

    Por ejemplo, “los resultados estan a la Vista”. Aca, el fracaso de un sistema operativo no tiene nada (NADA pero NAAAAADA) que ver con un modelo de desarrollo arcaico o nuevo, o bueno o malo. En todo caso el fracaso es por la avaricia de una empresa de querer imponer un SO cada 2 años, sacar cosas a las apuradas, y obligar a todo el mundo a cambiarlo y pagar licencias. Esto no es parametro para evaluar el modelo de soft libre vs el modelo “privativo” (Palabra muy fea y que suena muy ofensiva para los que trabajan honestamente en plataformas/empresas que no usan soft libre)
    O, en otro caso, el fracaso seria por un mal diseño, o por la falta de capacidad de los “constructores” del sistema.
    Con CUALQUIER MODELO DE DESARROLLO se pueden lograr sistemas de calidad, que quede bien claro.

    En otro momento sigo con el comentario (Hay que seguir con el laburo)

  12. Avatar Ariel Giomi 21 noviembre. 2008 - 5:32 pm Firefox 3.0.4 Windows Vista

    Comparto el comentario de Mauricio(Beto) y quiero agregar lo siguiente:

    Se habla de lenguajes serios cuando en realidad el que debe ser serio es el desarrollador.

    Observen que muchos de los que hablan en español no saben escribir una carta mientras que se han encontrado poemas hermosos en las lenguas más primitivas.

    Si bien las herramientas ayudan (y como!!!) en la obtención del producto final, el serrucho no es la silla…

    Saludos. Ariel

    • Avatar campo 6 junio. 2012 - 8:23 am Firefox 12.0 Windows 7

      “Si bien las herramientas ayudan (y como!!!) en la obtención del producto final, el serrucho no es la silla…”

      Totalmente de acuerdo. Creo que aunque un poco tarde mi intervención, la anterior es la respuesta mas acertada en todo el post.

      Dicho de otro modo: Los pinceles y el óleo no hacen una obra de arte. Hace falta el artista creador.

  13. Avatar roberto jc 9 marzo. 2010 - 3:33 pm Firefox 3.5.8 Windows XP

    PARA FERNANDO:

    tu pusiste “El segundo motivo principal es que no le veo futuro al sistema operativo en que corre. Siguen confiando en un modelo de desarrollo retrógrado, sin futuro, y poco eficiente.” y respeto tu opinion pero eso NO SON MAS QUE PALABRAS DE UN INGENIERO QUE NO VE MAS ALLA DE SU MUY LIMITADO MUNDO TECNICO, yo tambien soy ingeniero, pero si el so de microsoft sera con o sin futuro no depende de los “expertos en informatica” compadre sino de la mercadotecnia, LA REALIDAD ES MICROSOFT ES LA COMPAÑIA MAS GRANDE DEL MUNDO Y MAS DEL 90% DE LAS COMPUTADORAS DEL MUNDO TIENEN WINDOWS, y eso viene desde hace 20 años, entonces mi querido maestro dime… como rayos te atreves a decir q microsoft no tiene futuro, hazme el favor, .net y windows son de microsoft y mientras esta compañia sea tan eficiente vendiendo sus productos el mercado no cambiara, y puede que tengas razon en que sus productos sean una basura pero si esa “basura ” le gusta a la gente y se la saben vender entonces vamos…seguira siendo el lider del mercado por los proximos 20 años por lo menos sino es que muchos años mas, asi q analiza el contexto cuando digas q windows no tiene futuro, por favor tiene pasado preseente y futuro, saludos!!

  14. Avatar Alberto 24 abril. 2010 - 5:19 pm Internet Explorer 8.0 Windows XP

    Para Fernando:

    Tu articulo es tendencioso completamente hacia C#. ¿sabias que asi como c# tiene ciertas ventajas sobre vb.Net, tambien vb.Net tiene ventajas sobre c#? No las escribo por falta de espacio pero solo es cuestion de googlear un poco.
    A final de cuentas es cuestion de gustos, por que la esencia de la logica de la progrmacion es la misma. En lo particular no me gusta c#, me desesperan las “llavecitas”.

  15. Avatar sebastian 12 julio. 2010 - 6:08 pm Firefox 3.6.6 Windows XP

    Como veo, estas acostumbrado a usar C# y solo mencionas ventajas de C#. Pero el VB tiene ventajas como usar WITH para implicitar un objeto, select case sin break. Creo que habria que observar la calidad de programador y no la calidad del lenguaje. Yo siempre me preocupe por hacer aplicaciones ricas para mi usuario. El usuario compra resultados, no procesos. Uso VB.NET y mi limite esta en mi capacidad de ingenio para competir en el mercado e innovar con mis productos finales. No creo que el limite se de en un select case ni un try catch end try.

    • Avatar Carlos 1 marzo. 2012 - 12:50 pm Firefox 10.0.1 Windows 7

      Lo bueno de los lenguajes del .NET Framework es que la elección de uno y otro no depende de motivos técnicos, sino de preferencia de los programadores o de política del grupo de desarrollo. A mí me gustan más los lenguajes con sintaxis “C”, como C, C++, Java, PHP, C#, pero eso no quiere decir que estén equivocados los que prefieren lenguajes como Visual Basic. Simplemente hay que conocer bien el lenguaje que se usa y plasmar el algoritmo que has hecho previamente en tu cabeza o sobre una hoja de papel para que tu programa haga lo que se supone que debe hacer.

  16. Avatar Adrian 13 junio. 2012 - 3:03 am Internet Explorer 9.0 Windows 7

    Lo que puedo deducir facilmente despues de buscar información en la web, es que microsoft en cualquier momento va a discontinuar visual basic como lo hizo con visual foxpro cuando se les plazca hacerlo. Entonces creo importante utilizar cualquier lenguaje C ya que nunca van a elimiarlo porque con el mismo esta desarrollado todo el windows y sus aplicaciones. Por otro lado es mucho mas simple, corto y ordenado escribir codigo en c# que visual basic.

  17. Avatar Fernando 21 octubre. 2013 - 1:56 am Safari 533.1 Android

    Mas ordenado que vb? En vb tenes siempre un End (end sub, end if, etc.) y en los demás hay que calcular las llaves (llaves, corchetes, que fastidio), muchos desprecian este lenguaje pero desconocen todo lo que tiene, de Basic solo quedó el nombre, es el lenguaje mas legible de todos.

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.