C/Visual C - Me paso a .NET ??

 
Vista:

Me paso a .NET ??

Publicado por Angel Romero (2 intervenciones) el 03/11/2007 14:22:53
Hola a todos, veran, tengo una duda existencial. No paro de oir referencias a los nuevos lenguajes .NET de microsoft y a c sharp, y ciertamente, no se si merece la pena o no meterse en faena con estos lenguajes.

Yo domino Basic, C/VisualC, algo de java y ASP. ¿Merece la pena pasar a Basic.NET, C.NET, C Sharp, ....

¿Qúe ventajas tiene? ¿Esta C condenado a desaparecer(me extrañaria mucho pero...)?

Gracias por su paciencia, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Me paso a .NET ?? (1)

Publicado por fernando.gomez (1603 intervenciones) el 04/11/2007 07:46:15
La respuesta es sencilla: sí merece la pena. La razón es sencilla también: siempre hay que aprender. Y más en este negocio tan volátil. Apenas en 2001 salió C#. Microsoft acaba de anunciar un nuevo lenguaje, F#. Nuevas tecnologías y lenguajes como PHP y Perl inundan el mercado, e inclusive viejos amigos como COBOL, Lisp o Ruby se niegan a morir. Como profesional, entre más de éstos sepas, mejor: más oportunidades de trabajo tendrás.

Ahora bien, lo que ya no queda tan claro es cuándo emplear una tecnología/lenguaje u otro. Para determinarlo, tienes que analizar proyecto por proyecto. Y también hay que conocer las razones del lenguaje en cuestión para saber por qué es lo que es.

A C se le ha llamado en reiteradas ocasiones un lenguaje ensamblador con funciones. Y esto tiene su dejo de verdad. Su simplicidad, empero, es la base de su potencia: tienes un control al 100% de tu sistema, lo cuál lo hace perfecto para interaccionar con dispositivos electrónicos (hardware, pués). Esta es la razón por la que TODOS los sistemas operativos son escritos en C. Y por ello, el futuro del lenguaje es más sólido que la muralla china. A final de cuentas, siempre se tendrá que interactuar de alguna forma con el SO, y por ello siempre se necesitará C.

El caso de C++ es mejor aún. Aparte de la potencia de C, le agrega complejidad y clarividencia el hecho de ser multiparadigma (programación estructurada, orientada a objetos y genérica). Esto le hace un lenguaje que se pueda emplear a todos los niveles, y de ahí su popularidad. Cierto que tiene sus inconvenientes (la falta de un ABI estándar para comunicar binarios --que sí tiene C-- y una librería un tanto atrazada son dos ejemplos), pero aún así su flexibilidad es inigualable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ?? (2)

Publicado por fernando.gomez (1603 intervenciones) el 04/11/2007 07:49:09
Dada la complejidad del API de Windows, Microsoft rescató un lenguaje creado para fines estríctamente académicos y lo basó sobre su tecnología COM: Visual Basic. La idea de VB es la creación de componentes COM de forma rápida, así como pequeñas interfases de usuario. VB es un lenguaje que deberían emplear solo los programadores que sepan bien lo que hacen, que conozcan COM y sus pros y contras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ?? (3)

Publicado por fernando.gomez (1603 intervenciones) el 04/11/2007 07:50:28
Sin embargo, éste rara vez es el caso y generó montones de problemas: los expertos preferían seguir empleando C++ y los inexpertos se vieron tentados por VB y su abstracción, a tal grado que muy pocos se preocuparon por aprender más de programación y sus raíces. El resultado, millones de líneas de código VB que solo generaron otros tantos problemas.

El caso de Java es algo particular. Por un lado, el llamado proyecto Oak pretendía crear un lenguaje simplificado con respecto a C++, y que fuese portable. Tristemente, la idea de tener una máquina virtual degrada mucho el desempeño de la aplicación, por lo cuál Java difícilmente es empleado en aplicaciones gráficas. Pero su nicho de mercado (Internet y procesos complejos) le valieron ganarse a varios desarrolladores.

Delphi es un caso curioso. Borland toma a Pascal, muy popular en círculos académicos, y le incorpora COM. Es decir, Delphi es una especie de Visual Basic, pero mucho mejor planeado, pensado para aplicaciones complejas. Quizás el hecho de que el compilador es muy caro haya hecho que pocos programadores se sintiesen tentados.

Finalmente, .NET Framework es eso: un marco de trabajo estándar. Un conjunto de miles de clases. Fue creado con la intención de que los desarrolladores no tuviesen que preocuparse por tareas repetitivas (acceso a datos, creación de GUIs, manejo de redes y de memoria), y que fuese a través de una interfase estándar. El punto flaco de NET es similar al de Java y al hecho de privar al desarrollador de un manejo a bajo nivel. Por supuesto, fue la carnada lanzada por Microsoft para atraer a cientos de programadores, con la promesa de estándares y portabilidad. Hoy en día Microsoft ha incorporado el API de Windwos Vista en .NET Framework 3. Triste.

C# es un lenguaje elegante, el ideal para escribir aplicaciones en .NET. Otros lenguajes como VB.NET y C++/CLI se desarrollaron para atraer a los programadores de VB y C++, respectivamente. En el caso de VB, es bastante bueno siempre y cuando uno emplee POO y evite caer en las malas prácticas de programación que VB generó. En contraparte, emplear C++/CLI solo se justifica cuando se quiere mezclar código nativo con código administrado (esto es, código que corre sobre .NET). Y aún así hacer esta mezcla es un engorro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ??

Publicado por fernando.gomez (1603 intervenciones) el 04/11/2007 07:51:00
Entonces llegamos al punto de que tienes un bufet muy largo de dónde escoger. Cada plataforma tiene sus ventajas y desventajas. En mi caso, trato siempre de emplear C++. VB no lo usaba salvo que tuviese que hacer un sitio web con rapidez. En esos casos, empleaba VB para hacer mis componentes COM y VBScript para llamarlos y crear los ASPs. Con el advenimiento de .NET, la opción es clara: cualquier sitio web, lo hago con ASP.NET. ¿Por qué? Porque todo va a recaer sobre un servidor nada más. Cualquier computadora con internet explorer (digamos, una con Windows98) va a poder acceder al sitio. De esta forma, me evito muchos problemas. Hoy en día, VB no lo empleo ni por error.

En el caso de aplicaciones gráficas de escritorio, empleo C++ con mis miles de librerías (actualmente estoy haciendo un sistema que se conecta a PostgreSQL, y empleo WTL como librería gráfica) y mi tiempo de desarrollo es muy bueno. Solo si el cliente me pide un imposible (el clásico "lo quiero para la siguiente semana") entonces sí empleo .NET, muy a mi pesar. Java... bueno, Java fue el lenguaje del futuro, pero nunca se convirtió en el lenguaje del presente. Sun le dejó de dar importancia, y hoy en día ya es OpenSource. Java sí me parece que ya está condenado.

Con respecto al futuro... C seguirá siendo empleado hasta que los SOs dejen de estar basados en C. Por lo mismo, C++ seguirá vivito y coleando. Es posible que C# tenga un fuerte crecimiento, sobre todo ahora que el API de Vista está disponible para C#. Pero aún así quedarán muchos sitios para C++, aquellos sistemas donde el rendimiento de recursos sea primordial, o donde haya que trabajar a bajo nivel (i.e. drivers o videojuegos). Qué tanto crecerá C#, depende del mercado. Es muy posible que no lo haga tanto, dadas las (en mi opinión) erróneas decisiones que Microsoft al diseñar C# 3, y dado también el nuevo impulso que supondrá C++0x, la nueva versión del estándar, que se espera se ratifique en el 2008.

A final de cuentas, seguimos teniendo un mercado muy volátil, y hacer predicciones que vayan más allá de cinco años resulta ocioso. Pero por lo mismo es que no está de más que aprendas estas tecnologías y lenguajes.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ??

Publicado por Angel Romero (2 intervenciones) el 04/11/2007 10:16:39
Hola de nuevo, muchisimas gracias. La exposicion que has hecho es muy buena. Me suelo dedicar a programar en C++ para usar OpenGL, asi que, por lo que me dices, aplicaciones 3D C++ es una buena opcion. Investigaré ASP.NET para las paginas web y C#, a ver que se aprende.

Muchas gracias por tu tiempo, hasta otra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ??

Publicado por Nelek (816 intervenciones) el 07/11/2007 13:00:33
Brillante explicación. Tengo ganas de que salga el nuevo estandard de c++. Personalmente, a pesar de ser más laborioso (y en ocasiones complicado) que los demás, es el que más me gusta. Mi ámbito de trabajo es C / C++ / VC++ (MFC) como supongo que ya sabrás. Y, aunque mis conocimientos no son tan profundos como a mí me gustaría, creo que ya me defiendo bastante bien, por lo que también estoy empezando a pensar acerca de meterme en otro lenguaje por seguir aprendiendo.

Crees que es buena idea? O debería profundizar más en lo que ya uso antes de pasarme a otras cosas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Me paso a .NET ??

Publicado por fernando.gomez (1603 intervenciones) el 08/11/2007 19:38:07
Pues si ya estás entrado en MFC, te recomiendo WTL. Toda mi programación gráfica la hago con WTL. Empero, hay poca, muy poca documentación al respecto. En el grupo groups.yahoo.com/group/wtl hay un manual, pero está incompleto. Empero, te serviría como guía. Por otro lado, Michael Dunn tiene una buena serie de artículos que también te pueden ayudar, se llama "WTL for MFC programmers".

http://www.codeproject.com/wtl/wtl4mfc1.asp

Con respecto a otros lenguajes, pues siempre es bueno saber, sobre todo cuando programas a cambio de comida. En algún momento te dirán: "hast esto en X", y pues tienes que decirles "Sí señor" para que te sigan dando viandas.

Te podrías mover hacia C# si te interesa la plataforma .NET, o inclusive hacia C++/CLI si te interesa interoperabilidad entre código nativo (C++) y .NET. Jeje, pero con C# tendrás para rato, la plataforma es inmensa y crece día a día.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otra cuestion

Publicado por Nelek (816 intervenciones) el 09/11/2007 15:14:07
Si, ya habia pensado en C#, aunque lo de WTL... eso no lo había considerado. Echare un vistazo a ese par de articulos a ver que tal.

Por otro lado... te puedo pedir un favor? Echa un vistazo a este mensaje que tengo sin contestar en el otro lado a ver si puedes orientarme, porque ya no se que hacer.

http://www.codeproject.com/script/comments/forums.asp?msg=2308058&forumid=1647#xx2308058xx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar