2009-07-20 9 views
34

Cuando realizo una búsqueda de trabajo para un desarrollador de .Net, todo es básicamente lo mismo .Net, ASP, SQL Server, CSS, Javascript, AJAX y tal vez C#. Mientras que con Java es posible que tenga que tener Java, Sturts, Spring, JSF, EJB, un RDMB, Eclipse RCP, CSS, Javascript, AJAX, Rest, cualquier cantidad de API específicas de Java. ¿Es más fácil ser un desarrollador de .Net ya que las tecnologías están tan enfocadas? ¿O simplemente parece de esa manera?.Net vs Java Jobs

Respuesta

43

Es diferente, en lugar de más fácil.

La razón por la que los trabajos Java se enumeran en marcos es porque Java tiene toneladas de marcos y patrones de diseño listos para ser utilizados para facilitar el mantenimiento. Los patrones de diseño y los marcos están empezando a aparecer más en .NET ahora también, por lo que es de esperar que los trabajos cambien para parecerse más a esos trabajos Java.

Hay tantos patrones y prácticas en ambos mundos, pero están más establecidos en la comunidad Java (el empleador de Java los empujará hacia usted, se encontrará empujando a su empleador de .NET).

En gran parte, Java vs .NET es la sintaxis. Haz cualquiera (¡haz ambas cosas!). Pero tenga en cuenta los patrones y marcos ya que realmente lo ayudarán a escribir un mejor código.

+3

+1 una excelente respuesta :) –

+0

No estoy de acuerdo, la experiencia SpringMVC no me ha ayudado con Seam. Tal vez no veo los patrones. – IAdapter

+0

Consulte "Patrones de diseño para principiantes" o "Patrones de diseño de Head First". Ambos están escritos usando ejemplos de Java, pero pueden (y son) aplicarse a .NET. El framework SpringMVC tiene un equivalente en ASP.NET MVC. – Fenton

10

Vamos a alinear las tecnologías que menciona (y algunas no). Esta será necesariamente algo impreciso por lo que será un paraíso :) nitpickers

 
    .NET   Java  The overall encompassing technology 
    ASP   Struts  A Web development framework 
        JSF 
    (.NET BCL?) Spring  An application development framework 
        EJB 
    SQL Server  an RDBMS A database 
    (VS)   Eclipse  An IDE 

CSS, Javascript, AJAX, resto son todas las tecnologías comunes a ambas pilas.

Los conceptos de tecnología que tiene que aprender son los mismos sea cual sea la pila que elija; solo son los nombres diferentes. Los de .NET serán todos 'Microsoft Blah Blah Blah', mientras que los de Java tendrán todos los nombres geniales ...

+0

-1 Impreciso, es un eufemismo para estar seguro. –

6

Al hablar con mis amigos de .Net, parece que es más fácil empezar a usar algo bastante estándar. , porque la mayoría de la gente hace las cosas de la manera de Microsoft. La gran cantidad de opciones de Java significa que tiene que elegir bibliotecas y kits de herramientas en muchos niveles diferentes. Lo bueno de Java es que cuando la forma oficial o común no le conviene, hay muchas más opciones disponibles.

En la práctica, no creo que haga mucha diferencia. Cualquier tienda Java solo generalmente se conformará con una cosa en particular. Por ejemplo, Struts o Spring o JSF, no los tres. Hibernate o Ibatis o JDBC puro, no los tres. Así que creo que hay la misma cantidad de cosas que aprender, ya sea que estés usando una pila Java o una .Net, todavía estás resolviendo problemas más o menos similares.

+2

Sin embargo, un comentario obvio es que si bien una tienda de Java en particular podría establecer una combinación específica de tecnologías, otra tienda de Java podría elegir otras diferentes; y es probable que termine trabajando en más de uno en el transcurso de su carrera. Por lo tanto, un desarrollador Java todavía tiene que estar listo para aprender más frameworks que un desarrollador .NET, en promedio. Si es para bien o para mal es una pregunta diferente, sin embargo. –

+1

De acuerdo, Pavel. En este sitio, me alegra decir que es para mejor; los desarrolladores que no les gusta aprender diferentes enfoques probablemente no vengan a Stack Overflow. :-) –

+0

Sin embargo, eso no es necesariamente cierto, una de las razones principales por las que Python se ha desarrollado de la manera que tiene es porque intentan tener una forma canónica de hacer las cosas –

16

Sí, con Java tiene frameworks web como JSF, Struts, Struts2, Wicket, SpringMVC, Stripes, Tepestry, Facelets ... solo por nombrar algunos. Cada empresa está utilizando diferentes marcos, por lo que si cambia de trabajo aprenderá nuevos marcos. Y su único marco web, ¿qué pasa con la persistencia? JDBC, Hibernate, JDO, iBatis. ¿Quién puede nombrar 5 marcos de burla para Java? ¿Quién ha usado 5 servidores de aplicaciones diferentes? ¿Y las bases de datos? Incluso he usado Informix y Teradata. Creo que todo .NET está usando Sql Server y es más fácil aprender una sola base de datos.

+0

+1, totalmente de acuerdo en esto. Como en mi declaración a continuación, la ventaja es que sabes qué esperar en tu próximo trabajo. aprender nuevas tecnologías no será tan complicado y tenderá a abarcar más oportunidades porque las tecnologías M $ están unificadas. –

11

En Java World, se desarrolla con tecnologías de muchas comunidades, en .NET world, solo trabaja en tecnologías de Microsoft. En mi opinión, los desarrolladores de Java son más libres en términos de opciones de tecnologías, pero a veces también te trae problemas. :)

14

No olvide las siguientes tecnologías .NET: Win.Forms, Silverlight, WCF, WPF, WWF ... Todavía hay mucho aprendizaje en .NET fuera del desarrollo web.No es fácil ser un desarrollador senior .NET, al menos no mucho más fácil que Java. Sin embargo, en mi humilde opinión es más fácil comenzar en .NET cuando no tienes experiencia previa en desarrollo.

+6

+1 en su extracto. algunos píos de Java les gusta subestimar .Net. –

30

Soy un desarrollador de C#, créanme, hay más opciones en Java que en .Net. La ventaja obvia en .Net, sin embargo, es que en cualquier trabajo, la tierra utiliza el mismo IDE (Visual Studio) y (en la mayoría de los casos) usa el último .Net framework (excepto para el mantenimiento de aplicaciones heredadas). Puede haber algunas diferencias sutiles en diferentes empleadores, como los que utilizan Enterprise Libraries, MVC versus Forms, WPF, etc .; Pero si eres un desarrollador experimentado de C#, puedes adaptarte fácilmente dependiendo de tus fundamentos.

Algunos desarrolladores en mi campo que no aprendieron otros lenguajes de programación tienden a ser perezosos y simplemente arrastrar y soltar objetos para realizar tareas el 80% del tiempo (algunos incluso creen que la programación orientada a objetos es simplemente código con objetos). Si está familiarizado con C++ o con cualquier lenguaje basado en C, definitivamente tendrá la ventaja, pero eso no es un requisito.

Sugiero que aprenda las mejores prácticas de programación, nunca coloque todos sus huevos en una sola cesta (aunque Dios nos haya hecho eso a los hombres) y esté abierto a otros idiomas que no sean C#. Si aprende un idioma basado en C, aprender otros idiomas principales no será tan difícil en lugar de comenzar con VB.Net.

De cualquier manera, ambos son trabajos bien remunerados y no te arrepentirás si eliges alguno.

mis 2 centavos.

9

Otra cosa importante a tener en cuenta es que puede obtener una "marca" como desarrollador de .NET o Java en la mitad de su carrera. En ese punto, se vuelve más difícil cambiar, ya que (comprensiblemente) tiene menos experiencia en la que no eligió. Hasta ahora, he estado alternando, pero eso viene con su propio conjunto de problemas en los que tiene lagunas en la experiencia con nuevas bibliotecas/marcos en cada lado.

¿Alguna otra idea sobre los pros/contra de desarrollar Java vs. .NET? Por ejemplo, ¿qué tipos de empresas, culturas, salarios, etc.?

Para mí, parece que .NET tiende a estar en compañías más establecidas, mientras que Java es utilizado por una gran cantidad de nuevas empresas (dada la entrada de bajo costo y las bibliotecas de código abierto disponibles). El pago es comparable, pero .NET parece un poco más alto. El desarrollo de Java podría ser un poco más divertido dado que puedes jugar con nuevos frameworks con más frecuencia y no estás tan restringido a paradigmas específicos.

11

Java en sí tiene más campos que entran; Quiero decir, los desarrolladores de Java ahora tienen más oportunidades que cualquier otra tecnología en el mercado. Están siendo contratados en compensaciones atractivas para desarrollar diferentes aplicaciones basadas en Java, software y juegos, etc. También seguirá aumentando en el futuro. Simplemente quédate con JAVA :)