Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: kaniho en 8 Junio 2015, 09:30 am



Título: ¿que lenguaje elegir?
Publicado por: kaniho en 8 Junio 2015, 09:30 am
Hola, llevo días y días mirando foros y no termino de decidir que lenguaje aprender. Me gustaría saber si alguien de vosotros ya paso por eso, y que lenguaje y por que?, ya que me gustaria empezar con uno a fondo, y no terminar arrepentirme, porque a mi me costaría mucho.
Tengo claro algunos puntos:
1-Debe tener mucha documentación de ayuda con ejemplos, una comunidad
... Esto es super importante para mi
2- programar apliaciones visuales de escritorio cliente servidor y también Android y si se puede algo para web mejor...

Hasta ahora creo q tanto c# y java son idóneos, pero cual y por qué? Leo tanto de que java esta muriendo...que en c# cambia el código de escritorio a Android... Uff un lío.un saludo compañeros.


Título: Re: ¿que lenguaje elegir?
Publicado por: RaloGomez en 8 Junio 2015, 09:55 am
Esta misma pregunta hize yo... Me recomendaron codecademy, aprendes a progamar bien sea un lenguaje de iniciación como python, loque me gusta de esta web esque aprendes con ejemplos prácticos a la vez que teoricos. Ya me contarás que te parece..
 PD: en cuanto a lo otro esperemos a que venga un hombre mas sabio.. Xd
Salu2


Título: Re: ¿que lenguaje elegir?
Publicado por: Hurdano en 8 Junio 2015, 10:44 am
Y donde has visto que Java esté muriendo? Muriendo? Java?  :¬¬ :¬¬ :¬¬ Yo solo diré, que si java está muriendo, las empresas deben de estar al borde de un lapsus. Porque la inmensa mayoría de las ofertas de empleo es raro no ver alguna que pida java, y no te miento.

A parte, de que estamos hablando de java, "java" multiplataforma... Que si alguien te ha dicho que está muerto está un poco equivocado, y que salga alguien aquí si tiene huevos y diga que está muerto!! xD. (Es broma).

Que salgan nuevas cosas, y si empiecen a usar por modas o lo que sea vale, pero de ahí a llamar a un lenguaje de programación como java muerto...uff...

En definitiva, java es un lenguaje muy importante y extendido por el mundo, y que si alguna vez tiene que morir, no va ser hoy ni mañana.


Título: Re: ¿que lenguaje elegir?
Publicado por: RaloGomez en 8 Junio 2015, 13:00 pm
(https://blog.uchceu.es/informatica/wp-content/uploads/sites/15/2015/03/Ranking-lenguajes-de-programaci%c3%b3n.png)

Esta es la evolucion de la utilizacion de estos lenguajes en el 2014. Para 2015 java sigue en cabeza...


Título: Re: ¿que lenguaje elegir?
Publicado por: Eleкtro en 8 Junio 2015, 13:14 pm
Y donde has visto que Java esté muriendo? Muriendo? Java?

Existe un mito innegable que afirma el hecho de que "Java está muriendo", pero probablemente solo sea eso ...un mito, ya que aparte de que por el momento son afirmaciones que no se cumplen, realmente los lenguajes no mueren, se van quedando en cierto deshuso ante la competencia, pero se siguen usando durante muchos años e ncluso décadas más.

la inmensa mayoría de las ofertas de empleo es raro no ver alguna que pida java

Si, y lo mismo se puede decir de C#.



1-Debe tener mucha documentación de ayuda con ejemplos, una comunidad

He usado muy poco Java cómo para elaborar un análisis o comparativa profunda, así que me basaré en mi poca experiencia con Java, pero mi bastante experiencia con .Net, mi opinión, y fuentes externas de información.

Java y C# disponen de una referencia online del lenguaje, pero, la MSDN en mi opinión es muy superior, obviamente encontrarás toda la información necesaria, con ejemplos de ayuda, y con la comunidad/foros de MSDN, pero también una infinidad de artículos sobre como iniciarse, tutoriales, video tutoriales, consejos; en fin, infinidad de documentación sobre el lenguaje, VisualStudio, y todo lo que lo que compne .Net; es algo normal, ya que la calidad que puede ofrecer un tiburón cómo Microsoft no puede tener competencia en ese sentido.



2- programar apliaciones visuales de escritorio cliente servidor

Sobre esto no puedo decir nada sobre Java, ya que no tendría suficiente criterio para hacerlo.

Lo que está claro es que C# es auto-suficiente en aplicaciones de escritorio, ya sea teniendo en cuenta sus capacidades remotas/cliente-servidor o no. y Java del mismo modo parece serlo también.



Android

Java, entre otros lenguajes, ha sido utilizado para el desarrollo de android, particularmente para el desarrollo de la interfáz de usuario de Android, y las Apps de Android están desarrolladas en Java, así que quizás sería sensato pensar que Java es el lenguaje más adecuado en este sentido.

De todas formas, en C# también se pueden desarrollar aplicaciones para Android, existe una muy buena herramienta para esto (un framework completo) llamado Xamarin, en su versión standalone llamada "Xamarin Studio", y en su versión extensión para integrarse en Visual Studio, llamada "Xamarin for Visual Studio", sin duda sería mejor elegir C# en caso y solo en caso de que éste fuese tu lenguaje principal, ya que gracias a esto no tendrías que hacer una transición a Java solo para programar apps para Android, pudiendo hacer lo mismo en C#, no faltaría de nada ni desarrollando una app en Java ni en C#.



si se puede algo para web mejor...

Sobre el desarrollo de aplicaciones Web, al parecer, un gran inconveniente de Java es que las librerías no están incluidas, necesitas incluir una tonelada de librerías de terceros (y aprender su documentación, suponiendo que la tengan) de lugares como Apache commons, esto, aparte de que puede causar un incremento insano del tamaño del proyecto donde la aplicación web más simple puede llegar a pesar 100 MB, también puede resultar en un infierno de dependencias Jar, y si encima cargas los archivos Jar incorrectamente entonces la has pifiado, necesitas utilizar otras herramientas para esto cómo Maven.

Al parecer, utilizar Java para aplicaciones web disminuye considerablemente el rendimiento del programador en comparación con una webapp desarrollada en C#.

En conclusión, parece estar claro que C#, es decir, la tecnología ASP.Net, te lo pone todo más facil, y esto aumentaría considerablemente la productividad del programador.

Fuente:
Cita de: http://programmers.stackexchange.com/questions/102090/why-isnt-java-used-for-modern-web-application-development
Batteries not included:

I programmed java web apps for 10 years before I switched to python, 4+ years ago. I feel that I'm much more productive using python and can get much more done in a shorter period of time, and to be honest, I'm much happier when I develop in python. Here are some of the reasons why I think python is better then Java based on my personal experience, your milage may very.
Web Frameworks:

When I first start programming web apps in Java, Struts just came out, and it wasn't great, but it was the best thing available. I created a bunch of struts apps, and a few in other frameworks along the way. Whenever a new framework came out (Tapestry, Wicket, GWT, stripe, grails, AppFuse, Play, RichFaces, Spring, etc), I would try it out and see if it was any better, and most times it was only a little better, and sometimes not better at all. I do have to say the play framework is a step in the right direction.
Batteries not included:

One of the most annoying parts of Java was the fact that most of the libraries that you use were not included in java itself, you had to include a ton of 3rd party libs from places like apache commons. If you use something like hibernate with any other large library, you end up in Jar dependency hell, where hibernate needs one version of a jar, and something else needs another version. If you load the jar files in the wrong order, you are out of luck. You need to depend on tools like maven, and ivy to manage your dependencies, and this just brings in more dependencies into your project which results in projects being huge. I had some war files 100MB+ war files for the simplest web apps.
Too many options:

For some reason there seems to be way too many different ways to do the same thing in Java. There are over 38 different web frameworks for java according to wikipedia ( http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java ) and 23 different ORM's ( http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#Java ) just to name a couple of examples. If you look at other languages they have a more reasonable number. Some people think that having lots of options is a good thing, but it isn't it leads to a lot of wasted effort in the developer community, everyone is reinventing the same wheel, and if you are a new person to the language you have too many option to pick from.
App servers:

Java web applications are really heavy, and require a lot of resources to run. They are especially memory hungry. Like any piece of software they can be tuned to reduce their resource footprint, but compared to other languages their out of the box setup is horrible. In my past I have used weblogic, websphere, Jboss, tomcat, and jetty. I only used the first three when I was forced to use EJB's, but even if you aren't using EJB's they were large app servers and sometimes hard to configure and get running correctly. Tomcat and Jetty are much better and easier to setup, but are still resource hogs.
App Hosting:

If you aren't running your own server it is real hard to find shared hosting for your java apps at a reasonable price. The main reason is because java apps require much more memory compared to other languages, so it doesn't make sense for a shared hosting provider to spend their valuable RAM running a java site, when they could run 5 php sites in the same place. That means there are less providers offering java hosting, which in turn means higher costs to run your website.
Development Time:

When I developing in java, I found myself much slower then what I can do in python. I would need to make a change, compile, redeploy and then test, and this slows down the iterative process. I know there are ways to make this faster, but even at it's best, I felt much slower then what I can do in python.

There is also a lot less boilerplate code to do the same thing in python, so I spend less time developing the code as well.

Java just feels over engineered in a lot of parts, A lot of the API's and interfaces are just way to complicated for what you want to do. And everyone and their brother thinks they are a java architect and this results in big complicated systems that are hard to use and develop with.
IDE:

When I was developing in Java, I felt stuck to the IDE, I was lost without it. IntelliJ is the best IDE's on the market, and it was hard switching to python because there wasn't anything like it for python. So instead of an IDE, I just used textmate, which is just a normal text editor. It was hard at first, but because it was just a text editor, it was a really fast and responsive application. I could open my whole project in a few seconds, whereas when I want to open a project in an IDE it could take a minute or more, with a machine with a ton of RAM. The makers of IntelliJ came out with a python editor called pycharm, I bought it when it first came out, and it is great. But what I realized is that I don't need an IDE for python, I'm fine with a text editor. When I go back to working on Java web apps which I have to do from time to time, I try to use the text editor, but I haven't quite mastered that yet. I personally need the IDE for Java more because If I mess up something it takes longer to recompile and redeploy, which slows me down.
ORM:

When I first started using Hibernate as an ORM, I thought it was great, it had it's problems, and it wasn't perfect, but it was better then what I was doing before. I was happy with it, until I did an application with Django's ORM on a python project, and that opened up my eyes, that is how an ORM is suppose to work. After that project I went back to hibernate, and I just felt disappointed, and longed for going back to Django's ORM. Another great python ORM is sqlalchemy, which is similar to Django's ORM, but a little different. I have limited experience with ROR's ORM, but from what I remember, it was pretty good as well.
Templates:

The web templating systems in Java aren't that good, and I think I have tried them all (tiles, freemarker, velocity, etc). Most of them offer only basic functionality and are a pain to work with. On the Python side, my two favorites are Django templates and Jinja2, they have everything that I could need in a templating engine, and are really easy to use.

En esa misma página encontrarás opiniones muy diversas sobre el uso de Java en la web.



Hasta ahora creo q tanto c# y java son idóneos, pero cual y por qué?

Java es soportado en más sistemas operativos que C#, pero eso no quiere decir que en el futuro, podamos ver un MSIL corriendo en otros sistemas operativos que no sean Windowsm nada lo impidem y C# es un lenguaje por el que cualquiera podría apostar a favor.

Si quieres desarrollar una aplicación que hoy en día corra en casi cualquier sistema, entonces ese lenguaje es Java, si por lo contrario quieres desarrollar una aplicación para Windows o Web y con soporte adicional para Android, entonces ese lenguaje es C# (o VB.Net, ya que ambos son pracicamente lo mismo), ya que las características internas, es decir, la librería de classes de .Net Framework, la cantidad de funciones built-in, es en gran medida superior que la de Jajva (aunque la de Java también es muy inmensa).

Ante dos lenguajes semejantes, lo mejor sería elegir el lenguaje con el que mejor te sientas programando, comparar sus capacidades/limitaciones, pero sobre todo su sintaxis, y su IDE, ¿por qué?, por que siendo dos lenguajes que ofrecen practicamente las mismas características, ese sería el punto a favor que marcará la diferencia en tu rendimiento, cómo ya he dicho, la sintaxis, el modo de operar con el lenguaje, y la IDE, tu entorno de trabajo.

Ten en cuenta una cosa muy importante también, C#, es decir, la IDE de Microsoft, Visual Studio, es el entorno de programación más completo y más elaborado en comparación con cualquier otra IDE freeware o comercial, esto en mi opinión es lo que marca la diferencia entre elegir C# o Java (cómo ya dije he usado poco Java, pero si he manejado varias IDES de Java).


Hasta ahora creo q tanto c# y java son idóneos, pero cual y por qué?

Por último, te sugiero que leas este artículo de MSDN donde realizan un análisis comparativo sobre C# y Java, cuyas consluciones son que practicamente los dos son muy buenos lenguajes en comparación:

C# and Java: Comparing Programming Languages (https://msdn.microsoft.com/en-us/library/ms836794.aspx?f=255&MSPPError=-2147217396)

PD: Para que veas también hasta donde llega el alcance de la comunidad MSDN, infinidad de documentación sobre todas las cosas de .Net cómo dije antes ...incluso sobre Java xD.

Saludos!


Título: Re: ¿que lenguaje elegir?
Publicado por: Usuario Invitado en 8 Junio 2015, 16:00 pm
No sé de donde han sacado el mito, pero Java no está muriendo para nada. De hecho, se ha incrementado su uso en las empresas.

No se puede comparar Java y C# porque son muy parecidos y hacen lo mismo. El problema con .NET es que aún luego de ser open source, estás por así decirlo, casado con los productos de la tecnología .NET.

Por ejemplo, cuando haces uso de Entity Framework, estás prácticamente obligado a usar SQL Server. No tiene soporte para MySQL o PostgreSQL.

WPF, solo funciona en Windows. No hay port ni lo habrá para GNU/Linux ni Mac. Ni con mono podrá correr en esas plataformas.

Por otro lado, Java es muy parecido a .NET. La razón de ser el lenguaje #1 según TIOBE en popularidad, es que con Java tu armas tu equipo de desarrollo. Los frameworks son interoperables unos con otros, puedes elegir a dedo en el mercado, algunos de muchos frameworks para Java, como Spring, JSF, Play!, Vaadin, OpenXava, etc.

Por ejemplo, Hibernate funciona con muchos motores de bases de datos. La API WebSockets es moderna y práctica. Bean validation, utilísimo al validar entidades antes de ser persistidas por JPA. EJB remotos (pueden llamarse desde otra JVM), WebServices, y mucho más.

Java ahora, es muy muy rápido. Lo lamentable es que los que no conocen Java piensen que Java es:

  • Muy lento
  • Swing

Y eso es lo que no les permite al 90% de los usuarios principiantes, comprender su verdadero potencial: la web.

El lenguaje debe ser una herramienta, no se casen con los lenguajes, entiendan ésto. Cada situación se adapta mejor a X lenguaje. Es por eso que deben conocer varios para hacer un software de calidad y a medida.

Saludos.


Título: Re: ¿que lenguaje elegir?
Publicado por: ivancea96 en 8 Junio 2015, 16:42 pm
Entre Java y .NET, C# en este caso, yo recomiendo C#. Obviando toda la documentación, a nivel práctico:

-Casi idéntico a C++. Si en algún momento quieres programar en un lenguaje puramente compilado, C++ te será muy sencillo. Java es también parecido, pero no tanto xD

-Java hace un uso muy grande de clases, programación orientada a objetos. Si no has aprendido aun programación orientada a objetos, no te recomiendo Java. En un instituto de donde vivo, dan Java como primer lenguaje, y apenas les explican lo que es un objeto a mitad de curso. Creo que es preferible aprender bien antes lo que es, a aprenderse de memoria como crear un programa en Java.

-Luego, entre esos 2, ambos son interpretados. Si quieres un lenguaje compilado, C++ es mi elección. C++ o C, teniendo en cuenta que C es algo más complicado, por el hecho de que no te da hechas muchas cosas. Claro que C y C++ son algo más complicados de portar a Android.
Si te quedas con C++, ten en cuenta también que para trabajar con web, tendrás que elegir entre usar API del sistema operativo, o utilizar librerías (que las hay, y muy útiles, como SFML)

Ahora bien, te diré, que si aprendes C++ bien, no tendrás ningún problema en usar librerías, o hacerte las tuyas propias para utilizar sockets.


Título: Re: ¿que lenguaje elegir?
Publicado por: kr.chacacreker en 8 Junio 2015, 19:55 pm
WOmhpXPuKmc
Yo no eleji ni java ni C#(C,asm y python por las utilidades que les doy). Si quieres ver algo hecho en C y/o asm mira tu fondo de escritorio o hazle telnet al router.  :)


Título: Re: ¿que lenguaje elegir?
Publicado por: RaloGomez en 8 Junio 2015, 20:29 pm
WOmhpXPuKmc
Yo no eleji ni java ni C#(C,asm y python por las utilidades que les doy). Si quieres ver algo hecho en C y/o asm mira tu fondo de escritorio o hazle telnet al router.  :)
Flipé con el vídeo...  ;-)


Título: Re: ¿que lenguaje elegir?
Publicado por: kaniho en 8 Junio 2015, 21:51 pm
Buenas , Gracias por las respuestas a todos, la verdad es que me han aclarado muchas cosillas que no sabia....
Eleкtro me lo ha puesto en bandeja para C# , es que pinta muy bien , ya que desconocía xamarin, que era una desventaja que tenia frente a java para mi.

después viendo que todas las gráficas indican que java es el mas popular y eso no cambia en años, no esta muriendo como se lee por ahi...
pero creo que alguien que empieza desde 0 como yo , unas de las cosas mas a tener en cuenta es la ayuda que puedo tener respecto a comunidades online activas. y los ejemplos practicos , ya que he mirado en msdn  y los foros de C# y estan muy activos , cosa que en java no he encontrado.

descarto algo mas complejo como c++ de momento o asm , me conformo con ventanas graficas y sockets y poco mas para empezar...

el video muy bueno tio , me molo :)

Aunque no me queda claro intentare probar los dos , pero creo que todo apunta a que C# se va actualizando y tiene mas ayuda que sobretodo es lo que quiere un novato como yo...Saludos y gracias!


Título: Re: ¿que lenguaje elegir?
Publicado por: Stakewinner00 en 8 Junio 2015, 22:50 pm
C++ no es difícil, C++ es mucho más fácil que C y muchísimo más fácil que ASM. Para escritorio tienes por ejemplo Qt (no me gusta pero es fácil usarlo)

Yo concuerdo más o menos con lo que dijo ivacnea, pero no me gustan los lenguajes que no son portables, por tanto no recomendaría a nadie .NET ni C# (a parte de que .NET por lo que vi aun tiene muchas cosas que mejorar...)

A parte C++ es moderno, ya están redactando el estándar para el 2017.

Yo recomendaría probar C++, que no es muy difícil y es lo que se usa más para cosas serias (como juegos, o navegadores), si lo pruebas y no te gusta últimamente estaba probando Go que cada vez es más popular, es mucho más simple que C++ y tiene el extra de que es fácil crear aplicaciones web en Go.

De entre Java, .NET y C# creo que C++ es el que tiene mejor eficiencia. Go tiene bastante también pero no tanto como C++


Título: Re: ¿que lenguaje elegir?
Publicado por: TheCrimulo en 9 Junio 2015, 01:20 am
Yo también pasé esto, con 9 años quise empezar Java, no lo hagas, porque aunque sea muy usado aprenderlo es jorobado. Después fuí con Python y me encantó, llevé un año o así hasta que me incliné hacia C# por ser el más facil, de, como yo los llamo, la familia de los C (C, C++, Objective-C, Objective-C++, C# ...) y estoy genial, si te vas por la parte del "SOY MUY VAGO", tienes scratch.mit.edu (http://scratch.mit.edu),

Un saludo,
TheCrimulo


Título: Re: ¿que lenguaje elegir?
Publicado por: edr89 en 9 Junio 2015, 05:07 am
C++ no es difícil, C++ es mucho más fácil que C y muchísimo más fácil que ASM. Para escritorio tienes por ejemplo Qt (no me gusta pero es fácil usarlo)

Quería preguntar y porque nadie dice C++?. Soy fan de C y además es el primero en la lista, eso me sorprende. En orientado a objetos me estan enseñando java. Si tambien vas desde cero yo digo C, del resto se muy poco. La transición C-java no es dificil porqué algunas cosas se parecen.

No deberias arrepentirte por aprender algun lenguaje, al final todo sirve.

Por cierto alguien sabe algo del nuevo lenguaje de mac Swift, lei que es mucho mas facil de aprender que Objective-C.



Título: Re: ¿que lenguaje elegir?
Publicado por: 0xFer en 9 Junio 2015, 21:37 pm
Quería preguntar y porque nadie dice C++?
Porque es solo para Cracks jaja, Na es broma.

Realmente no hay mucha diferencia entre java y C# yo programo un poco en los dos lenguajes.

Un saludo


Título: Re:
Publicado por: kaniho en 10 Junio 2015, 01:01 am
Pues después de leer vuestras opiniones, creo que voy a empezar con c#,  porque voy a programar para Windows,  web, y además puedo programar apps Android. Para mi es todo lo que buscaba.
Pero sobre todo lo que hace decidirme es el soporte de la MSDN que tiene mucho contenido en español, y con ejemplos, y aparte foros.... Una pasada, y java no tanto(corrijanme si me equivoco)
Y visual studio.... Es que para una persona que empieza de cero eso es principal. Añadir que seria mi único lenguaje a usar de momento. Un saludo y gracias a todos


Título: Re: ¿que lenguaje elegir?
Publicado por: Stakewinner00 en 10 Junio 2015, 11:41 am
Me extraña que C# funcione en android, C# solo es para windows creo, supongo que instalando algún programa como pasa en linux con mono podrás ejecutarlo, pero no me parece muy buena idea...

En todo caso si quieres que funcione en windows y android lo típico es java, aunque yo prefiero C++  a parte que C++ funciona de manera nativa en android http://stackoverflow.com/questions/1002164/write-applications-in-c-or-c-for-android


Título: Re: ¿que lenguaje elegir?
Publicado por: Baal_30 en 10 Junio 2015, 12:15 pm
C# es una buena idea, y más teniendo una empresa como Microsoft detrás. Aunque como te dicen, si quieres desarrollar aplicaciones multiplataforma, lo mejor es Java.

Stakewinner00, creo que se refiere a programas tipo Unity, que puedes programar en C# y luego el mismo programa te lo pasa a Android, supongo que se referirá a eso...


Título: Re: ¿que lenguaje elegir?
Publicado por: Stakewinner00 en 10 Junio 2015, 12:39 pm
No se como lo hace unity, mono lo que viene a hacer es interpretar el .NET pero puesto que es cerrado (o lo era) es más difícil interpretarlo y repercute en la calidad...

Además que puestos a aprender un lenguaje mejor un lenguaje potente y que te sirva para distintas plataformas como C++ o Java, java no me gusta y en mi opinión no sirve para cosas serias, C es quizás demasiado difícil si se esta empezando, así que en mi opinión la única opción viable es C++, aunque para web C++ no sirve demasiado, pero aprenderlo puede abrir fronteras a la hora de trabajar en otros proyectos o sistemas operativos.

De documentación casi todos los lenguajes que se dijeron aquí tiene mucha documentación ya que son de los más usados, en especial los que son multiplataforma.

Como ya dije Go es útil para web, pero no tiene demasiada documentación y no funciona en android.


Título: Re: ¿que lenguaje elegir?
Publicado por: Usuario Invitado en 10 Junio 2015, 17:14 pm
Java sirve para cosas serias y muy serias, @Stakewinner00, lo mismo que PHP, C# y C++. ¿En qué te basas para decirlo?

Go sí es bueno, también es Ruby, Python, Groovy, Scala y los antes mecionados. Si no hemos probado un lenguaje a fondo, no podemos simplemente decir "no sirve". Aunque a mí no me guste PHP, sé que es un lenguaje en el que se pueden hacer casi todas las cosas, aunque sea un lenguaje en parte mal diseñado.

¿Has usado WebSockets, Bean Validation, Spring MVC, JSF, JPA (ORM), JMS, EJB, etc? Pues son cosas diseñadas para hacer cosas "serias".


Título: Re: ¿que lenguaje elegir?
Publicado por: Stakewinner00 en 10 Junio 2015, 17:59 pm
A mi no me gustan lenguajes como python por la sintaxis por ejemplo pero reconozco que para ciertas cosas puede ser útil.

Con cosas serias me refiero los núcleos, ya sea de juegos, de navegadores, de sistemas operativos. Aunque hayan podido mejorar un poco la máquina virtual de java, sigue consumiendo demasiado y no resulta útil para cosas críticas como esas, a parte que del lenguaje en sí poco toque (hace tiempo lo comencé a mirar pero lo deje) pero lo que vi comparándolo con C++ me pareció que aunque java tiene una librería estándar para cosas de sockets y demás (creo recordar), java se complicaba las cosas innecesariamente, supongo que para facilitar la vida a la máquina virtual?

Por tanto mi opinión es que lenguajes como C++ sirven para escritorio pero también para otras cosas más críticas, así que al aprender C++ te puede permitir en el futuro trabajar en otros proyectos. C también esta bien pero es más difícil que C++ y aún se usa y es importante pero no hay tanta oferta como en C++ (creo). En java también hay mucha oferta pero sobretodo a nivel de escritorio, y entonces comparándolo con otros lenguajes te limitas bastante. Ya no hablo de .NET, C# que ya solo por su política (de solo funcionar en windows) no lo encuentro un buen lenguaje para aprender, al menos para comenzar.

La diferencia de Go con Ruby,Python, PHP etc es que es sencillo pero mucho más eficiente que PHP o python y demás. También es sencillo de aprender pero al ser nuevo no hay tanta documentación.

PD: De base los lenguajes interpretados no me gustan demasiado, aunque luego puedo admitir que para según que cosas son útiles o más aptos.


Título: Re: ¿que lenguaje elegir?
Publicado por: ivancea96 en 10 Junio 2015, 19:20 pm
Con cosas serias me refiero los núcleos, ya sea de juegos, de navegadores, de sistemas operativos. Aunque hayan podido mejorar un poco la máquina virtual de java, sigue consumiendo demasiado y no resulta útil para cosas críticas como esas

Es indiscutible que un programa bien hecho en C/C++ será, al menos en la gran mayoría de los casos, más veloz que Java. En peso, contando el peso de la amquina virtual de Java, obviamente también será inferior (salvo quizás en proyectos grandes)

Java es "sencillo" por al razón de que te lo da todo hecho. Tienes montones y montones de librerías a tu alcance, que harán todo lo que te puedas imaginar. A su vez, puede ser complicado para novatos por su sistema de paquetes, archivos, y muchos etc.

Si bien es portable a todo entorno donde se puede instalar la máquina virtual, C++ suele ser portable, usando librerías (y obviamente recompilando), a sistemas con Linux y con Windows.

Desde luego, C++ 5 - Java 1. No le veo más.


Título: Re: ¿que lenguaje elegir?
Publicado por: Usuario Invitado en 10 Junio 2015, 19:36 pm
Citar
Con cosas serias me refiero los núcleos, ya sea de juegos, de navegadores, de sistemas operativos. Aunque hayan podido mejorar un poco la máquina virtual de java, sigue consumiendo demasiado y no resulta útil para cosas críticas como esas

Agree. Utilizar Java para un núcleo no es buena idea. Lo mejor es utilizar C/C++ allí por cuestión de rendimiento.

Citar
pero lo que vi comparándolo con C++ me pareció que aunque java tiene una librería estándar para cosas de sockets y demás (creo recordar), java se complicaba las cosas innecesariamente, supongo que para facilitar la vida a la máquina virtual?

Java en mi opinión es muy verboso, es por eso que da la idea de "complicarse". Algunas cosas, generalmente antes, se complicaban. Particularmente en Java EE < 6, donde recién empezaban las anotaciones a tomar lugar y las configs se hacían con puro XML.

Citar
En java también hay mucha oferta pero sobretodo a nivel de escritorio, y entonces comparándolo con otros lenguajes te limitas bastante.

Eso es el su mayoría de casos falso. Java se usa más para desarrollo web. Java EE incluye todo un set de tecnologías de alto nivel que facilita el desarrollo de aplicaciones web altamente eficientes y seguras.

Por experiencia, una aplicación bien programada como un sistema académico para escritorio escrita en JavaFX, no consumía más de 80MB. Claro, una en C++ te consume la mitad, pero prefiero no estar preocupándome por liberar memoria, punteros y todo eso que en producción es un dolor de cabeza terrible.

En web, tiene actualmente un muy buen rendimiento. La JVM ha sido bastante bien optimizada y en las últimas webapps Java que he podido manejar y observar, se comportan muy bien, sean con Spring MVC, o JSF.

Citar
La diferencia de Go con Ruby,Python, PHP etc es que es sencillo pero mucho más eficiente que PHP o python y demás. También es sencillo de aprender pero al ser nuevo no hay tanta documentación.

Agree. GO es un muy buen lenguaje. Es una lástima que aún no sea tan adoptado por la comunidad, pero le veo un muy buen futuro. También, NodeJS es una excelente opción que seguirá creciendo con el tiempo porque la comunidad detrás es gigante y muy activa, sin dejar de lado que JS es el lenguaje del futuro (según lo que dicen por allí...).

Creo que es conveniente aprender la mayor cantidad de tecnologías y/o lenguajes que podamos. No es bueno casarse con una sola tecnología, un programador completo tiene más oportunidad laboral.


Saludos.


Título: Re: ¿que lenguaje elegir?
Publicado por: kaniho en 11 Junio 2015, 17:09 pm
buah me lo poneis dificil ehh ,es que defendéis muy bien los lenguajes, sacais todas sus virtudes de una forma que es imposible decicirse xDDD,  aunque descarto c++,ensablador  aun sabiendo que pueden ser mas potente , ya que como dicen otros , me gusta que muchas cosas estén hechas, aunque tampoco quiero un scracth que te lo da todo hecho...
 pero si que pueda trabajar con cosillas hechas , asi que tendre que probar java y C# y con el tiempo decidirme , ya que los dos cumplen lo que quiero, incluida mucha documentacion para aprender, y soporte android nativo en ambosSaludos


Título: Re: ¿que lenguaje elegir?
Publicado por: zonahurbana en 14 Junio 2015, 23:17 pm
Yo te sugeriría empezar por C++, y que en orden vayas revisando tema tras tema, hasta llegar a lo relativo a punteros.
Usa C++ a nivel de consola para formarte una buena "lógica de programación" resolviendo algoritmos de diversos tipos.
Creo que empezar por C++ te ayudaría a comprender mejor cómo es que funcionan las cosas por dentro (no a detalle, pero sí un poco a más bajo nivel que Java).

Luego, cuando quieras hacer aplicaciones de escritorio deberías ir por Java y verás que todo es mucho más sencillo de lo que habías imaginado.
Al menos yo recuerdo que en C++ obtenía muchos errores, por todo, y al momento de compilar luego de escribir mucho código siempre tenía el presentimiento de que obtendría errores.
La idea es que aprendas a lidiar con cada uno de ellos por tu cuenta, buscando información.

Así, una vez que pases a Java, los errores se reducirán drásticamente y verás todo relativamente sencillo.

Luego, si deseas conocer con mayor profundidad lo que ocurre internamente en el ordenador al manipular variables deberías aprender Assembler. Si consigues aprender medianamente Assembler luego creerás que no hay imposibles en la programación, le perderás temor a todo y no tendrás límites :silbar:

Siendo realistas, no creo que llegues a usar C++ en tus primeros proyectos, pero sí te recomendaría empezar por allí. Ya que como comentaron anteriormente, es mucho más eficaz que Java, C# y la gran mayoría de lenguajes, pero no es muy práctico para resolver problemas cotidianos.
Se usaría C++ para crear la base de programas importantes como navegadores, sistemas operativos, etcétera.