A menudo me preguntan los novatos me preguntan ¿Qué es mejor VB.NET o C#? o a veces platico con los no tan novatos y discutimos de porque uno y porque otro.
La verdad es que la inmensa mayoría de las cosas que se pueden hacer un lenguaje se pueden hacer en el otro, esto debido a que comparten el Framework de .NET y a que ambos se ajustan a las especificaciones del CLR.
Elegir el lenguaje al iniciar un desarrollo es importante, muchas veces se elige por las razones equivocadas.
“Este lo conozco bien”
“Me han dicho que éste es el mejor”
“Siempre he trabajado con éste y me ha funcionado”
Cada lenguaje fue diseñado para atacar un tipo de problemas en particular, si una vez que conoces un nuevo lenguaje y tu manera de pensar sobre la programación no cambia, entonces es un lenguaje que no merece la pena ser aprendido.
El caso de VB.NET y C# es particular, puesto que .NET es una plataforma que muchas veces es usada para soluciones empresariales (Hay muchas otro tipo de aplicaciones que se pueden desarrollar con .NET) y bien podríamos decir que ambos lenguajes pueden cumplir con este tipo de tareas.
Yo prefiero C# por una razón mucho más simple que los complicados argumentos de mis colegas, yo prefiero C# porque tiene una sintaxis más clara, mucho menos verbosa y más intuitiva.
Esto podría parecer secundario pero no lo es. La mayor parte del tiempo el código es modificado y muchas veces esta tarea la realizan programadores distintos al que originalmente creo el código y es importante que ese código sea los más claro y sencillo posible, esto al final es tiempo y el tiempo es dinero.
Cualquier tonto puede escribir código que entienden las computadoras. Los buenos programadores escriben código que entienden las personas.
-Martin Fowler
Aquí el diagrama de una clase sencilla, la clase Persona con sólo algunas propiedades básicas.
El código en C#
class Persona
{
public String Nombre { get; set; }
public String ApellidoPaterno { get; set; }
public String ApellidoMaterno { get; set; }
public String Domicilio { get; set; }
public int Edad { get; set; }
public String EstadoCivil { get; set; }
public Boolean EsHombre { get; set; }
}
El código en VB.NET
Public Class Persona
Private _nombre As String
Public Property Nombre() As String
Get
Return _nombre
End Get
Set(ByVal value As String)
_nombre = value
End Set
End Property
Private _apellidoPaterno As String
Public Property ApellidoPaterno() As String
Get
Return _apellidoPaterno
End Get
Set(ByVal value As String)
_apellidoPaterno = value
End Set
End Property
Private _apellidoMaterno As String
Public Property ApellidoMaterno() As Integer
Get
Return _apellidoMaterno
End Get
Set(ByVal value As Integer)
_apellidoMaterno = value
End Set
End Property
Private _domicilio As String
Public Property Domicilio() As String
Get
Return _domicilio
End Get
Set(ByVal value As String)
_domicilio = value
End Set
End Property
Private _edad As Integer
Public Property Edad() As Integer
Get
Return _edad
End Get
Set(ByVal value As Integer)
_edad = value
End Set
End Property
Private _estadoCivil As Integer
Public Property EstadoCivil() As Integer
Get
Return _estadoCivil
End Get
Set(ByVal value As Integer)
_estadoCivil = value
End Set
End Property
Private _esHombre As Boolean
Public Property EsHombre() As Boolean
Get
Return _esHombre
End Get
Set(ByVal value As Boolean)
_esHombre = value
End Set
End Property
End Class
Si usted nunca a usado ninguno de los dos lenguajes, ¿cuál le parece más legible? Usted amigo lector que no conoce de software, ¿cuál elige? ¿Es más explicito y claro VB? ¿Le gusta la simplicidad de C#? ¿VB.NET es una burda aproximación a un lenguaje de OOP? ¿Sigue siendo Vb realmente el lenguaje más sencillo de aprender?, Si tiene a su cargo un grupo de programadores, ¿con cual lenguaje cree que serán más efectivos?
Saludos
2 comentarios:
Ahora intenta hacer late binding con c#, o xml literals o simplemente programar con office desde c#. A ver que código sale más verboso.
XML Literals ni siquiera existe en C# =( y pues sí, definitivamente hay de gustos a gustos y no todos los problemas se deberían resolver igual.
Saludos anónimo!
Publicar un comentario