Vbnet vs CSharp, la saga continua

http://sergiot2.com/blogimages/2008/10Oct/24_superman-vs-captmarvel.jpg

Es casi imposible no recibir las preguntas: ¿Cuál es mejor, VB.Net o C#?”, ¿Cuál debemos usar?, ¿Por qué?

Y el tema es, como ser imparcial y no recomendar sólo porque a nosotros, a título personal, nos gusta gusta uno más que otro. Cómo le decimos que uno es mejor que otro, por usar “;” o por no usarlos. Y bajo la perspectiva de Microsoft, y uno de los objetivos cuando se liberó Microsoft .Net, era que tu podías programar lo mismo, independientemente de que lenguaje usarás: ya sea que uses C#, Vb, J#, y toda esos lenguajes que aparecían en aquellas listas.

Lo cierto es que hoy en día principalmente se desarrolla sólo con C# o Vb.Net, si usas la plataforma .Net. Y la recomendación es: “Si eres un programador de Visual Basic (no .Net) usa Visual Basic .Net, si eres un programador de C++ o Java, usa C#“.

Aunque creo que la propuesta de Jorge es mucho más interesante, si eres programador de Visual Basic 6 sin orden ni concierto, deberías empezar con C#, aunque a veces es un poco difícil, explicarlo a los equipos desarrollos, -muchachos aunque en .Net haya Vb.Net, van a usar C#. El tema es delicado, y puede generar descontento en el equipo desarrollo, si no se explica racionalmente lo que se quiere lograr. Y que de aquellos que no son programadores de algunos de esos lenguajes, y si programan en Perl, Pyton, Php, Power Builder, Pascal, u otros?, ¿Cuál recomendar?

Bajo la propuesta de con cada lenguaje (VB o C#), puedes hacer las mismas aplicaciones, y un programador .Net debe ser independiente del lenguaje, y en un programador de C# debe poder tomar cualquier oferta de empleo de Vb.Net, y un programador de Vb.Net, siempre y cuando no use Microsoft.VisualBasic, estaría apto para tomar una oferta de trabajo C#, vamos a lanzar otra idea que puede ayudar a determinar que lenguaje usar en un proyecto .Net. Ah, y también esta el escenario de que en un equipo de desarrollo tengo tres programadores que saben C#, cuatro programadores que saben Vb.Net, y dos saben Fox. Entonces, ¿Cuál lenguaje usar Vb.Net o C#?, ¿usar el lenguaje en el que tengo la mayor cantidad de programadores?

La propuesta, sin entrar en fanatismos, sería bajo las siguientes sentencias:

  1. Identificar que tipo de proyecto voy desarrollar. (un CRM Web por ejemplo)
  2. Queremos hacerlo desde cero, pero sería muy útil tener una aplicación Open Source que me de una guía, “y no re-inventar soluciones” que ellos ya resolvieron. O quiero tomar un proyecto Open Source y sobre ese, desarrollar una nueva versión.
  3. El lenguaje de la aplicación Web CRM Open Source (SplendidCRM), ¿está en VB.Net o en C#?. -Está en C#, entonces el lenguaje que deberíamos usar sería C#, aunque tenga el 80% de mi equipo en VB.Net, el lenguaje que más me conviene es C#. De lo contrario tendría que estar traduciendo trozos de código, si es que no estoy traduciendo todo el código de aplicación.

Conclusión

  • Si no esta claro que lenguaje (Vb.Net o C#) usar en un proyecto .Net, deberías buscar que aplicaciones Open Source o Frameworks de desarrollo, existen para el tipo de proyecto que vamos a desarrollar. Entonces no vamos a escoger un lenguaje porque tiene “;” o porque en uno tiene funciones adicionales (Len, Trim, etc) directamente sin usar clases. Es decir que la métrica para escoger un lenguaje, no debe ser la cantidad de programadores de un lenguaje determinado en un equipo de desarrollo, si no que tan productivo puede ser con un lenguaje u otro utilizando aplicaciones Open Source o Frameworks. Y claro, esto considerando que en un programador .Net debería ser independiente de que lenguaje usa, ya sea VB.Net o C#.

Entradas relacionadas:

Saludos,

10 comentarios en “Vbnet vs CSharp, la saga continua”

  1. Sergio tiene bastante razón, hay que usar el que más nos conviene, sin ser irracional ni sentimental en la decisión. Yo programo en VB.NET, por inercia, pero ni se me ocurre importar Microsoft.VisualBasic: esta es la clave en mi humilde opinión, usar el que más nos convenga, pero si nos decantamos por VB, no usar Microsoft.VisualBasic

    🙂

  2. A lo mejor la respuesta es usar IronPython o F# jejjejejej… que el lenguaje es ¡irrelevante hombre!

    Para mi es como discutir si se hace mejor literatura en inglés o en español.

    ¡Un saludo!

  3. @Javier, esa es la idea que un desarrollador sea independiente del lenguaje.

    @Rodrigo, el lenguaje es irrelevante pero en todo proyecto tienes que escoger uno, personalmente cada uno puede tener sus preferencias, pero si estás recomendando a un grupo o equipo de desarrollo que no saben que lenguaje escoger, deberías darle alguna luz en su dilema: si les dices -escojan cualquiera, entonces te pueden replicar: -si con los dos haces los mismo, ¿por qué existen dos?… y surge nuevamente el dilema…

    Saludos,

  4. jaja mi no me salen ni los hola mundo en c# :P… VB.Rulez :), y no dejo de ser productivo :), lo que sobre los frameworks… ps personalmente creo que es mejor crear el suyo propio, y que este se adecue a nuestras necesidades y forma de trabajar… y no tanto al revez.

    Salu2 de nuevo

    Ddaz

  5. Ddaz, lo de tener en un lenguaje varios proyectos a la vez creo que no es la voz, y no porque nosotros no le podamos dar mantenimiento, piensa en los developers que le harán mantenimiento después cuando tu no estés, decirle que por acá aprenda C#, y por acá Vb.Net, dependiendo del nivel, puede ser una frustración. En la empresa actual todos los proyectos de .Net están con Vb.Net, (y no porque yo prefiera o me guste C#), voy a crear nuevos proyectos con C#, no pienso en mi comodidad, si no en los developers que venga después. Lo que si estoy haciendo es remover los Microsoft.VisualBasic de los proyectos :D.

    Es cierto que hay frameworks que no se pueden personalizar mucho, pero te reducen un montón el trabajo, con ligeros ajustes puedes usarlos. Y para crear tu propio framework, debería haber un tiempo dedicado a eso, no usar el tiempo de proyecto, que eso después termina en amanecidas para el programador.

    Saludos,

  6. Espera la respuesta tuya, jejeje.

    Hay que diferenciar lo que es un generador de código (Web Service Software Factory), y lo que es un framework, podemos decir a secas que es un juego de librerías, (.Net Framework, o el EntLib).

    Cuando dices es mejor crear el suyo?, te refieres a un generador de código, o un juego de librerías?

    Veamos al generador de código, es importante y útil siempre y cuando te permita personalizarlo. Si no te gusta como genera el modelo de acceso a datos (pero si los SPs), basado en una plantilla podríamos cambiar el acceso a datos, hombre, es lo mismo que tu vas hacer, pero automático. Si no es personalizable pero te dan el código fuente (en un lenguaje en específico), podrías cambiar como hace la generación de código. El “cebo de culebra”, está en comprar generadores de código que no puedes personalizar, y que no puedes cambiar el código fuente.

    En cuanto a las APIs (Enterprise Library), pues son para determinados contextos, si en la aplicación que vas usar se adecua perfectamente y no tienes problemas de rendimiento, y te acelera el desarrollo, por qué no usarlo?. Ahora que si te das cuenta, que el EntLib no es suficiente y de tus 30 clases de acceso a datos, sólo la usas en 4, como que está demás no?…

    No hay mejor framework que el de uno mismo, pero si uno existente pasas las pruebas del prototipo para una aplicación específica, por qué no usarlo?

    P.D.: Podría ser para tener más meses de proyecto, y por ende sueldo asegurado, pero ya cansa programar lo mismo…

    Saludos,

  7. ¿ De donde puedo descargar el elrequeteframework que mensiona Rodrigo? ( chiste malo).

    Sobre el tema, las dos son buenas, creo que mejor es en c#, por ser similares en sntaxis a otros entornos, principalmente por PHP

    Muy bien lo que dice Sergio de no utilizar el import Microsoft.VisualBasic, estoy de acuerdo.

    saludos

  8. La verdad creo que uno tiene que saber de todo un poco, ps es mi opinión, en mi universidad empecé con JAVA por lo de libre y etc y etc. Luego alguien me habló de .Net y me fascino VB.Net 2005 puesto que la forma en la qe uno puede hacer aplicaciones es de 1 2 3 y sale. Ahora mi primer trabajo lo conseguí como programador Junior de VB.Net 2005 y más aún me enamoré. Ahora el último semestre de este año tuve que regresar a JAVA y más encima a JSP con todo respeto a los que le gusta JAVA “Q asco” me dió duro, pero gracias a una libreria Visual de Java, hacer páginas Web en JSP fué más fácil, aunque vincular controles y relacionarlos con datos de una BD es muy, pero muy horrible (ps yp estoy acostumbrado a hacer mi codigo de acceso a datos personalizado y no que el lenguaje de programación lo haga por su cuenta). Ahora quiero empezar con C# un proyecto que hice en VB.Net y que sea todo si es posible en VS 2010, claro que la idea es que sea mejor y con un estándar de programación más organizado. Lo bueno de todo esto esque aunque no soy un programador expero, se que voy por buen camino y que además tengo fundamentos bastante sólidos con respesto a JAVA, JSP y VB.Net y ahora con lo que aprenda de C# más oportunidad laboral tendré.

    Ahora una cosa interesante esque ps hoy en día Microsoft hace sus SO en el caso de Vista y 7 en cuanto a interfaz gráfica en VB.Net eso si es muy atractivo no sólo para mi sino para muchos programadores de .Net.

    La solución para derrotar a JAVA esque vuelvan a VB completamente orientado a objetos y su esquema estructural sea similar a C# que es el hijo por excelencia de C++.

    Saludos y larga vida a .Net.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *