Publicado hace 9 años por --404469-- a lamiradadelreplicante.com

Un estudio realizado entre los departamentos de ciencias de la computación de las principales universidades de Estados Unidos, muestra que Python se ha convertido en el lenguaje más popular a la hora de realizar cursos de iniciación a la programación, por delante de otros como Java, MATLAB, C, C++, Scheme o Scratch. En el análisis realizado por Philip Guo, en el que se incluyen centros tan prestigiosos como la Universidad de Berkeley, Stanford, Carnegie Mellon o el MIT de Massachusetts, muestra que en 8 del Top10 de departamentos de ...

Comentarios

p

#31 Existe mucho odio irracional contra Java, normalmente nadie explica los argumentos. Creo que la gente simplemente repite lo que oye. ¿Tienes alguna fuente relacionada con el dominio de java en el ámbito que comentas?

PD. Python es muy potente y práctico. La verdad es que me sorprendió gratamente cuando empecé a trabajar en ese lenguaje.

CapitanObvio

#35 De este mismo Julio, estudio del IEEE:

http://spectrum.ieee.org/static/interactive-the-top-programming-languages

Algo más local, busca abajo 'Tecnologías más demandadas' (de la lista, relacionadas con Java son J2EE, Struts, Eclipse, JBoss):

http://www.tecnoempleo.com/

g

#48 Que sea el más usado no quiere decir nada. Yo personalmente lo detesto, detesto Eclipse y detesto Swing. Igual con JavaFX cambiaría mi percepción, pero el caso es que tengo que mantener un aplicación hecha en Swing y es una puta pesadilla, come memoria como si no hubiera un mañana, el mero cambio de color de un puto label o columna de una tabla es una odisea. Lo odio.

ED209

#34 #76 #91 #106

Trabajo en un proyecto en Ruby con 144183 LOC, y ninguno de los programadores sacrificaría comodidad y velocidad a la hora de escribir código por tipado estático, si acaso el tipado de Go o Scala… pero nada obtrusivo como Java. Dame facilidad a la hora de escribir tests y no hacer el trabajo al compilador.
Tipado dinámico no implica que la gente haga barbaridades a=10 y luego a='string' , hay code reviews y al programador se le supone profesional.
O vds. programan sin code reviews?
Lo siento no me ayuda a escribir código más robusto un Map h = new HashMap; frente a h =

He trabajado en proyectos java para la administración, con CERO líneas de tests, pero eso sí, sus generics perfectamente declarados. Perdonen, pero eso no es un código robusto.

No entiendo por qué se insiste que java es bueno para aprender porque es orientado a objetos: Python también lo es, y permite empezar desde ya en la REPL, sin tener que compilar NADA. A alguien que empieza en la programación no le necesitas complicar la vida desde el primer día. No me imagino un taller de programación de barrio como los que hay en USA/UK con java: se usa algo no compilado por un motivo.
En la universidad? Perfecto: cuando uno estudia formalismos debe estudiar la base. Para alguien que quiere hacer su app web o mobile no necesita demasiados formalismos. Recuerden el BASIC de los 80s… Sin ir mas lejos, Swift versus ObjectiveC

Reconozco que la JVM es rápida pero es innegable que consume demasiada memoria. Tus procesos han de ser thread safe también.

En ciertos entornos como la programación web los ciclos de desarrollador son más caros que los de CPU. Es probable que en España no lo sean y por eso hay tanto javero.
Cuando tu producto está constantemente iterando, como es en una startup, lo que hay que favorecer es al desarrollador, no a la maquina.

En fin, para opinar hay que trabajar en ambos mundos. No vale con hacer un blog en django/rails y decir "hmmm no me gusta", eso no es comparar manzanas con manzanas. Yo me he formado mi opinión, he estado "en el otro lado", háganlo ustedes también.

p

#91 Menos mal que parece que alguien sí se ha enterado de qué va Javascript y ha leído a gente que también sabe de qué va.

D

#31 #35 Cuando consigan implementar una máquina virtual que pueda trabajar con OpenGL 4, entonces empezaré a considerarlo como lenguaje de programación

Brucen

#64 Gracias por aportar sensatez.

Brucen

#31 Completamente de acuerdo contigo, pero esto es igual en cualquier campo. Aquí en menéame gusta mucho eso de ir de gafapasta y entendido y no tener ni idea de lo que se está hablando. Leyendo los comentarios de aquí, o la mayoría son estudiantes de informática, o han hecho alguna chapucilla en algún lenguaje y se han frustrado cuando han cambiado a otro y vieron que no era todo igual. Ese es el nivel (muchos creo que no distinguen entre máquina virtual y lenguaje, y creo que no saben que existen más paradigmas que OOP y procedimental).

bringer

30 comentarios despues, por fin algo con sentido. Bravo #31

El ecosistema Spring en general, Scala, Groovy, Gradle, Play, Camel, Maven, Jenkins para IC ... sigo?

D

#2 ¿Applets? ¿Navegas con netscape? Casi nadie hace applets.

D

#12 http://eyeasme.com/Shayne/HTML5_APPLETS/

Casi nadie, casi, pero ese casi te puede dar por culo.

g

#12 Casi nadie menos la administración para la puta firma electrónica. Y sí, jode mucho.

D

#12 ¿Applets? Las usa el Gobierno de España en esta web educativa sobre matemáticas: http://recursostic.educacion.es/descartes/web/

Por cierto, si se quisiera crear una web con la funcionalidad que dan esas applets pero sin Java, ¿qué lenguaje sería preferible?

D

#98 Puedes usar Flash(no, por favor).


Hablamos de las animaciones: sin plugins es solo posible estás dispuesto a sacrificar la compatibilidad con internet Explorer 8 y anteriores, y solo funcionar en Firefox y Chrome de los últimos 3 años. Sigues usando java en el servidor y utilizas HTML Canvas para dibujar. http://www.w3schools.com/html/html5_canvas.asp

p

#98 Usarías Javascript + HTML5 (Canvas o SVG) De hecho es lo que se usa en casi todos los sitios hoy día para este tipo de cosas. Hay que tener en cuenta que hoy día se puede usar incluso OpenGL ES en el navegador y hay librerías especializadas.

D

#1 Java será el más usado, pero yo no uso Java. Yo no quiero que alguien haga un applet para que se ejecute en mi ordenador, que se ejecute en el suyo en todo caso. Java es más peligroso que un subnormal en una poltrona.

D

#2 Yo lo uso obligado, aunque tampoco me quejo mucho porque al menos da experiencia útil. Me explico, me encantaría usar otros pero me da miedo que la experiencia caiga "en saco roto", aunque en el fondo si sabes programar bien en un lenguaje dominar otros es luego tarea mucho más fácil.

ED209

#1 ay, si fuera solo la herencia… en python también tienes herencia. el problema de java es compilar, tipado estático, demasiado verborreico…
#4 aprender otro lenguaje nunca cae en saco roto
#6 hay veces que los ciclos de cpu del desarrollador son más caros que los del ordenador y por eso es preferible programar rápido en un lenguaje de script.
de todos modos un tipado estático no es la panacea y no te va a salvar de incómodos null pointer exception en producción. un buen testing unitario/funcional sí, y eso también lo puedes hacer en python

FDO: ex-javero, rubista desde hace 4 años

ED209

#15 lo único positivo que veo en java para docencia es que fuerza a emplear formalismos muy estrictos. Por eso sirve para las enseñanzas superiores.
Esto mismo es lo que destruye la productividad: no verás java en startups californianas sino en entornos empresariales muy establecidos.
Y más bien al contrario: cuando empiezas en un nivel básico es preferible obtener resultados inmediatos como lo podrías lograr con una REPL en lugar de "bien niños ahora vamos a escribir main, que devuelve void, que usa un objeto, que está en el classpath, que vamos a compilar y luego ejecutar y a la media hora vais a ver un hello world". Lo siento sigo sin verlo…

superplinio

#18 Yo aprendía a programar en Pascal y C. Cada vez que podía hacer una práctica en Pascal y no en C daba gracias al cielo.

C puede que fuera mejor lenguaje pero para el que está aprendiendo y no para de dejar punteros locos por ahí es un dolor de muelas. Un lenguaje más estructurado, sencillo y riguroso como Pascal era una bendición.

Con Java pasa algo parecido, es un lenguaje ideal para la enseñanza (aunque obviamente hay que enseñar más y no solo ese). Luego a la hora de trabajar pues hay nichos para todos los lenguajes, y no creo que Java "destruya la productividad". Android se programa en Java (o pseudo-Java) y creo que el desarrollo de apps es un entorno bastante dinámico.

Lo que sí mata la productividad es programar con metodologías del siglo pasado

d

#19 y Ada es usado en las aplicaciones más criticas. Por algo sera.

aironman

#80 Ada fue diseñado para ser usado sobre todo en sistemas militares.

http://www.zona-militar.com/foros/threads/lenguaje-de-programacion.17150/

pawer13

#18 Ya no puedo editar, pero mira este ejemplo: Twitter estaba hecho en Ruby y se está pasando a Java: http://www.infoq.com/articles/twitter-java-use

dreierfahrer

#1 Java es mucho mas estricto q python con lo cual se ve mejor el tema de herencias y tal.

Python es mas dinamico, se hace mucho mas con muchas menos lineas y esas lineas son mas cercanas al lenguaje natural.

Yo de poder elegir tambien enseñaria en python*....

Pero claro, de poder elegir haria todo en python: es una delicia.

#8 Que tiene de malo el tipado estatico? Java apesta por cosas como android y la mierda de innerclases o que no puedes tener variables que sean funciones; porque es POO muchisimo mas pura que python y al final el mestizaje siempre es mejor que la pureza.

* MENTIRA, realmente utilizaria C o C++ que ayudan mas a comprender como funciona un ordenador, una vez sabes hacer algo en C++ pasar a python es trivial... Pero es que python mola tanto... Dicho lo cual afirmo que java tiene muy mala prensa y no se porque: es un lenguaje muy claro, muy logico y muy estructurado. Ademas es rapido.

Baro

#6 #8 Java es un buen lenguaje para empezar. Recordad que la noticia va sobre lenguajes para aprender a programar, por lo tanto el tipado estático, que tengas que escribir demasiado, etc son ventajas, porque te ayuda a entender mejor la orientación a objetos, a programar estructuradamente, a poner cada funcionalidad en su propio sitio, etc.

El problema de Java en el mundo real es, aparte de lo de escribir demasiado, la máquina virtual. Todo lo que ganas en portabilidad lo pierdes por triplicado en eficiencia.

i

#76 Lo mejor de java es la maquina virtual, es la verdadera obra de arte. Lo de la eficiencia es un mito, mirate los benchmarks.. De hecho yo no defenderia java tanto como la maquina virtual. Hoy por hoy hay muy buenos lenguajes basados en la maquina virtual

D

#22 Yo no me fio ni de mi propia sombra.

alphamikevictor

#22 Bufff, pues a la que trabajes con diversas aplicaciones empresariales ahí que te cascan un applet de Java para poder utilizar el producto:

- Sitescope (HP monitorización)
- WorkplaceXT (IBM para Filenet)
- Algunas tarjetas de administración remota de servidores (DRAC de Dell, ILO de HP)
- Detica (BAE Systems, prevención de fraude)

De donde han casi desaparecido es de sitios web públicos.

CapitanObvio

#2 No ha hecho nadie un applet en 10 años.

Y sí que usas Java, alma cándida, lo que pasa es que no te das cuenta. Miles y miles de webs y aplicaciones empresariales lo utilizan en el servidor, lo que pasa es que tú no lo ves. Android funciona básicamente sobre Java. Coño, hasta tu lavadora es muy probable que use Java.

D

#2 Para tu información. Java es tan seguro como c++ o python o viceversa. La seguridad proviene de la propia concepción de la máquina. De como funcionan los ordenadores a bajo nivel. Y después por culpa de los sistemas operativos.

En Windows por ejemplo es realmente sencillo crear puertas traseras en menos de 100 lineas de código. En menos de 10 lineas de código también se puede.

Es decir, se tarda 5 minutos en vulnerar la seguridad de windows independientemente del lenguaje. Y me refiero a controlar remotamente el ordenador.

RivaSilvercrown

#1 cada uno tiene sus cosas. Pero es cierto que python se esta imponiendo cada vez más y, para según que utilidades, como administración de sistemas o aplicacione sportables, esta muy muy bien

D

#6 Puedes compilar el script antes de ejecutarlo perfectamente: http://effbot.org/zone/python-compile.htm

D

#29 #36 La explicación de que mi ejemplo no funcione en Python está aquí: http://stackoverflow.com/questions/2749655/why-are-closures-broken-within-exec

Pero el objetivo de mi comentario no era preguntar por qué no funciona mi ejemplo (ya lo averigüé en su momento). Lo explico en #38.

Brucen

#36 Hombre que más estrictamente sigue OOP lo pongo en duda, no es puramente orientado a objetos. Un lenguaje mucho más puro en este sentido es Smalltalk.

dreierfahrer

#55 estoy deacuerdo contigo, pero yo he dicho 'masivo'

D

#36 la mala fama siempre viene de los gafapasters que no han salido de la academia: hay que criticar lo mainstream.

Pero así es la vida, siempre habrá un Pablo Iglesias informático que te diga "para manejar cantidades de datos increíbles lo mejor es C" ( #6 )... Sus programas deben tener más "leaks" que el festival del orgullo gay

A

#6 yo lo he estado usando para programar modulos de openerp y algo me decia que no me convencia, ahora ya veo que cosas son.
.jeje.

p

#6 No sé que Python usarás, pero si declaras previamente una variable como string y luego la usas en un contexto incorrecto el programa debería cascar (y casca). Si tú mismo redeclaras una variable con el mismo nombre es que has tenido un fallo garrafal, sea el lenguaje que sea. El que tiene que pensar lo que hace es el que está programando.

Python es dinámico pero de tipado fuerte o estricto, cosa que mucha gente confunde y no son conceptos equivalentes. Sin embargo PHP o Javascript te permiten usar cualquier tipo en cualquier expresión intentando conversiones automáticas. Una vez más, con un poco de sentido común no tiene por qué haber un problema (y usando los operadores === y !== que están para algo).
El tipado dinámico y el "duck typing" permiten patrones de diseño que en otros lenguajes lleva mucho tiempo y trabajo hacer y están en este tipo de lenguajes por que el uso que se le va a dar es diferente. O como en LISP, permiten directamente hacer cosas que en otros lenguajes es imposible.

Ahora que viendo el estilo de mucha gente que es tirar lineas sin pensar a toda hostia y luego quejarse cuando las cosas no funcionan, no me extraña.

d

#62 lisp dicen que permite programarse o modificarse a si mismo en tiempo de ejecución. Entre otras muchas cosas.

p

#82 ¿Dicen?

Cualquier estudiante de informática y/o programador que se precie debería saber al menos lo que puede hacer Lisp y de qué forma lo hace. Por cultura y porque aprendemos nuevas posibilidades y formas de hacer las cosas, que en este tipo de discusiones salta a la vista quién sabe de verdad y quién no.

d

#6 que tal Go en lugar de C o java?

D

#c-6" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2214533/order/6">#6 Java es a la programación lo que la Cruz Campo es a la cerveza.

La de tonterías que se tienen que leer ... me da a mí que tú has estado en pocos proyectos de envergadura.

Es verdad que Java es un lenguaje que ya está algo abuelete (a pesar de las contínuas novedades que se le introducen), pero comparar Java con Python o Ruby es como comparar un traje para trabajar en una fábrica con un traje para pasear por la calle: cada uno es para lo que es. Java se podría comparar con C# (el cual me gusta mucho más) y Python se podría comparar con Ruby o Perl (y si me apuras, Javascript).

Y no sé por qué el tipado estático debería ser un problema. Que el lenguaje incluya restricciones de ese tipo evita problemas cuando la complejidad del software es muy alta. Es como poner una barandilla al borde un barranco: si no la pones, vendrá algún idiota y se caerá.

Este tema me recuerda a las estúpidas discusiones "C vs Ensamblador" de los 90.

D

Como un mensaje es destacado con no se cuanto Karma y no se cuantos votos un mensaje similar a el numero #6 ?????

Amigo Python no es un lenguaje "Script", de donde saco esto ? Con Python usted puede, hacer lo que sea !!.

De donde usted saco que no es eficiente ? (En terminos de velocidad). Vamos a ver, estamos en la era de PRODUCTIVIDAD, y si necesita eficiencia agrega C o si es "Hombre" Assembler.

Los 45 años que usted necesita para hacer "algo" seria en Java, en Python lo hara en semanas con una diferencia casi inexistente de performance. Repito: necesita eficiencia ? (Ponga C o C ++ o Assembler), ahora bien, como va el "tema" y los microprocesadores, no entiendo eso de eficiencia (Salvo juegos), supongo que usted no conoce las librerias numericas y cientificas para Python, hechas en C (creo) donde la eficiencia es importante.

Por lo que veo esta demasiado "preocupado" por los errores "logicos" de programacion esos detalles ocultos que a veces suceden, mire amigo, es verdad que es mejor que el mismo "software" me lo detecte, pero si usted se remonta a la era dorada, quien "debugueaba", esas lineas escritas en Assembler de Jhon Socha, Peter Norton, Jhon Carmack ??.....ellos eran (o son) buenos de verdad, o quizas yo sea muyyy meticuloso con el codigo y revise todo, antes durante y despues, y conozco mi codigo como la palma de mi mano.....(puedo estar equivocado, claro).

Me "molesto" un poco en su comentario eso de hacer "cositas simples en Python", o para hacer algo "rapido", porque demuestra que usted NO ESTA INFORMADO, y la INFORMACION DA PODER.

Cuando usted habla de "mineria de datos", o da la idea que Python NO ESTA PREPARADO PARA ESO, es mas que ofensivo.

La NASA lo usa.
YOUTUBE tiene su "core" y algunos millones de lineas de codigo en Python.
FACEBOOK migra poco a poco hacia Pyhton.
PINTEREST "aussi"
GOOGLE APP ENGINE tambien
BitBucket junto al mejor framework de la historia tambien
El proyecto QUORA.
El Washington Post
La mensajeria instantanea, y la gestion de mensajes de FACEBOOK estan en Python aqui usted tiene las referencias (https://developers.facebook.com/blog/post/301), (https://github.com/tornadoweb/tornado)
Hasta el editor que usted usa SUBLIME-TEXT esta escrito en Python
IBM migra a Python.

Mi preguna es, estimados "Meneadores", como carajo es relevante un comentario como el numero #6, con ese karma y esos votos EN TAN PRESTIGIOSO SITE COMO ESTE ???????

D

#6 tienes razon, pero una forma de evitar al menos los errores de sintaxis es usar modulos en tu IDE (vim tiene multip les, simplemente con pylint ya te ahorras un monton de fallos idiotas).

#7 yo evitaria el uso de eval() como la peste en cualquier lenguaje. Abre demasiadas puertas.

D

#1 Python esta siendo muy utilizado y mas por grandes empresas como Google, etc etc, sin olvidar que en GNU/linux python es una parte importante, también en el desarrollo de servicios en algunas web. Aunque todavía se depende de Java, sobre todo para añadir nuevas funciones o actualizar un Software o una App por ejemplo.
Yo soy de lo que dice que Python esta muy presente en nuestras vidas, mas de lo que pensamos.

p

#1 Java es demasiado académico y rígido para que alguien empiece.

Python me parece una introducción excelente, siempre dejando claro al alumno que no es todo lo que hay y que hay otros lenguajes más complicados a cambio de mayor potencia (otra cosa es que para la inmensa mayoría de casos de uso, el python sea más que suficiente).

m

Personalmente prefiero la flexibilidad de código que permite C. No me gusta que me digan cómo debo indentar mi código.

#14: Es que como lenguaje par guiones nada mejor que JavaScript bajo mi punto de vista, porque es parecido a C, aunque empeora en algunas cosas.

D

Yo creo que el más sencillo para aprender los fundamentos de la programación es Pascal. Python puede llegar a ser una locura para la gente que empieza.

vazana

#10 al contrario, el paso de pseudocódigo a python es más natural. ¿Quién tiene tipado fuerte en pseudocódigo?

matacca

#10 Yo me introduje en la programación con Pascal (si excluimos mis primeros experimentos en Basic)... Que tiempos...

Angelusiones

Yo opino lo siguiente. Supuestamente los lenguages no tipados son así para permitirte mas libertad y no estar tan entretenido en errores de sintaxis.

Mi experiencia con java y javascript (nodejs + coffeescript) me dice que cuando hay un error de sintaxis es mas doloroso hacerlo en un lenguage no tipado porque los mensajes de error (si los hay) suelen ser mas confusos.

Es decir, creo que lo que te ahorran por un lado, te lo quitan por otro cuando tienes que solucionar algo en proyectos largos al menos.

retsalah

#9 La cagada es tuya, por eso no funciona. ¿Para qué quieres un eval ahí en medio?

>>> def f(x):
... def g(n):
... return n + x
... return g
...
>>> print(f(3)(4))
7

D

#29 No es una cagada, es un caso de estudio. Por eso he cambiado mi primer ejemplo ya que el de Perl estaba hecho sin el eval. Pero entonces me he acordado que en su momento no lo probé así (ya que así tampoco funciona con Perl) sino creando la función entera con un eval/exec (eval en Perl y Ruby; exec en Python).

Total, que el único lenguaje, de entre los tres, en el que funcionan ambos ejemplos es Ruby y creo que no es por casualidad. Creo que con Ruby se aprende mejor y más rápido porque las cosas funcionan más como se intuye que tienen que funcionar. Mientras lo estás aprendiendo pruebas cosas, haciendo hipótesis sobre cual debería ser la salida del mini-programa que estás probando y con Ruby casi siempre aciertas.

Creo que el creador de Ruby se refiere a esto cuando habla del "principio de la menor sorpresa" ("the principle of least surprise").

t

#c-7" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2214533/order/7">#7 En python se ejecuta correctamente:
#!/usr/bin/python
print (lambda x: lambda y: x+y)(3)(4)

editado:
No habia visto #38 y #29...

demostenes

Llevo 25 años programando. Un lenguaje que rompe la compatibilidad entre su version 3 y su version 2.6 es la misma puta mierda por la que dejé de programar usando las API de Microsoft.
Y si encima le añadimos las dificultades para tener funcionando simultáneamente ambas versiones y que algunos script requieran una version y otras otro...
Pero está claro que las nuevas generaciones están acostumbradas a cambiarlo todo cada dos años.

dreierfahrer

#37 Es que el problema de python son los pajilleros...

Y ya no por python 3 vs 2.7, que tambien, pero lo puedes tratar como 'lenguajes diferentes' o al menos dar esa excusa, pero es que eso de que una version 1.5 no sea compatible con la 1.6 pasa a menudo...

A mi me paso con Django (Django!!!!!) pq habian cambiado, de la x.n a la x.n+1 la estructura de paquetes... es decir, llego un pajillero al que no le gustaba como estaban los paquetes estructurados y los cambio de sitio, con dos cojones, como un perrillo: a echar su meadita en el codigo.

Buffff que mala ostia ese dia

D

#37 Python es un lenguaje genial para desarrollar el pensamiento computacional. Por eso se usa tanto en primero.

También está bien para hacer scripting y aplicaciones de complejidad media.

Para lo demás: Lenguajes de mayores

dreierfahrer

#109 La POO prototípica tiene la ventaja de poder extender los objetos en tiempo de ejecución de manera sencilla y eso tiene sus ventajas.

Eso se puede hacer en python y python es POO clasica.

#97 reddit, youtube, washintong post, nytimes, the guardian, dropbox...

#100 Claro, porque para hacer youtube puede valer python, pero para hacer una pagina de un departamento de un gobierno autonomico se necesitan cosas de mayores... pañales para las perdidas....

impalah

Antes prefiero que me claven astillas de bambú bajo las uñas mientras me pisotean los huevos con tacones de acero que volver a usar Java.

Y me cago en Google por joder Android de esa forma.

Pero es una opinión, claro, porque lo he sufrido en el "desarrollo empresarial" durante años. Qué asco.

Aparte de eso... soy de la opinión de que hay que usar la herramienta adecuada para cada trabajo. No me pondría yo a hacer una web con C, ni una aplicación que requiera mucho rendimiento con Perl...

Curiosamente con Python sí me atrevería con casi todo

C

#25 Java nació con prisas, había que conquistar el mercado y mostrarse ante el mundo que Java era el lenguaje de Internet, un argumento para vender pero de poca calidad.

Fue una completa decepción trabajar con Java al inicio: muy lento, pésima API, AWT daba asco, sin un IDE oficial bueno, verborreico, funcionaba bien en una plataforma pero fallaba en otra, la dificultad de instalar el JRE y el JDK (que requería configuración manual para el JAVA_HOME, CLASSPATH, etc..), la continua depreciación de APIs, los inentendibles mensajes de error para los usuarios que usaban Applets, la explosión verborreica del Tomcat y su fuck CATALINA ante un mísero error, las Java Server Pages fueron el puntillazo para enviar a Java a la p**a m****a.

dreierfahrer

#32 Pues amigo mio, javascript, a mi personalmente, si me APESTA.

Y uno de los porques es que, 30 años despues de que se creara, aun no hay NI UN PUTO IDE decente para programar javascript. Fijate que lenguaje de programacion tan cojonudo que nadie es capaz de hacerlo.

Su prototipado, esa manera arcaica de acercarse a la POO es tan lamentable que ni dios la usa...

No entiendo la moda de hacer cosas en javascript cuando no hay porque hacerlas en javascript....

#26 Veo que no has tocado java en los ultimos 20 años, al menos, algo ha cambiado, hazme caso.... Pero decir que fue un lenguaje hecho deprisa y corriendo....

Que lleva una maquina virtual detras, tio....

D

#39

Lo mismo pensaba yo de javascript hasta que le cogí el truco.

Javascript trata de clousures y funciones.

Capitan_Centollo

#39 Javascript es como es por muy buenas razones, entre otras el tiempo de carga de una página o el consumo de recursos por parte del navegador, y el prototipado me parece una de sus mejores características. Y te lo digo yo que casi ni lo uso, pues me dedico más al C++.

dreierfahrer

#63 se nota q no lo usas...

Es mas, nadie usa el prototipado en js pq es una basura. Todo lo q tenga q ver con POO no tiene cabida en JS....

Encapsulacion? Para que? Reutilizacion? De noobs! Herencia? Si no hay dios q use un objeto, como para heredarlo!

champunes

Yo creo que hay que diferenciar mucho entre docencia y ámbito laboral. Para enseñar a alguien en primero lo ideal para mi es C, porque te obliga a aprender a la vez cómo funciona un ordenador (sobre todo el manejo de la memoria volátil). Después, cuando das el salto a POO, puedes usar C++ o Java dependiendo de el estrés que pueda causar el cambio, aunque personalmente creo que tampoco es tan traumático pasar de C a Java con una buena docencia. Las desventajas de Java en el ámbito laboral las conocemos todos, pero para la docencia es un lenguaje ideal porque obliga al alumno a escribir códigos escrupulosamente correctos en sintáxis, lo que mejorará su quehacer en el futuro cuando manejen otros lenguajes más dinámicos y menos estrictos.

#72 Mi lenguaje principal en el trabajo es JS (Node.js) y me he enamorado totalmente. Y yo era un defensor acérrimo de Java por su manejo de objetos tan purista. Es verdad que el manejo de Objetos en JS es muy distinto, pero no por ello peor. Simplemente es adaptarse, y el prototipado me parece una herramienta muy útil (lo de poder añadir funcionalidad a librerías ajenas con una facilidad tan amplia es genial lol)

dreierfahrer

#83 python es el equilibrio, POO de verdad con el dinamismo de javascript...

Sin tener las feature de javascript, a saber:

1- no POO. Y lo que existe -arcaico e incompleto- ni dios sabe como va.
2- sin libreria standar. La libreria estandar es copiar y pegar de foros.
3- documentacion apestosa. En gran parte por 1.
4- sintasix peor q la de java.

Javascript apesta, pero esta tan extendido q no hay nada q hacer... Como mucho usar cosas q compilen a js como coffescript

Y esto es lo q pienso

champunes

#90 Eso de que no hay librerías estándar para javascript es una quimera. Al menos para Node.js tienes el sistema NPM y un webo de contenido publicado en github (con sus manuales, ejemplos y tests unitarios). No se que manía tiene todo el mundo con burocratizar todo.

Capitan_Centollo

#72 Sí lo uso, solo que menos, y evidentemente sí uso el prototipado porque es una de las mejores cosas que tiene javascript para hacer código corto y rápido. Cuesta cogerle el tranquillo al principio pero en mi opinión merece la pena. Yo creo que trasladadar la POO clásica a javascript es un error. Mucho se ha escrito además sobre este tema, tanto a favor como en contra.
La POO prototípica tiene la ventaja de poder extender los objetos en tiempo de ejecución de manera sencilla y eso tiene sus ventajas. Como todo en esta vida, tiene también sus incovenientes, pero como lenguage para hacer scripts que se ejecuten del lado del cliente creo que es una muy buena opción.

Por si a alguien le interesa indagar un poco más en la materia:

http://en.wikipedia.org/wiki/Prototype-based_programming
http://en.wikipedia.org/wiki/Differential_inheritance
http://www.crockford.com/javascript/inheritance.html
http://aaditmshah.github.io/why-prototypal-inheritance-matters/

g

#c-25" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2214533/order/25">#25 Uff, yo he tenido que ponerme con Java (y Swing) en Eclipse tras años usando C# con VS. Es como haber retrocedido en el tiempo.

D

#c-69" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2214533/order/69">#69 a ti sí te doy la razón: C# es un "Java corregido", mucho más cómodo y rápido. Pero ese comentario puede reportarte una importante pérdida de Karma aquí: C# y VS son armas de Microsoft, y usándolos estás apoyando los bombardeos de Israel, además de poner nuestras libertades al nivel de Guantánamo.

D

#69 Hoy en día no se debería usar JavaFX 8 ?

D

Me gusta python pero hay cosas que me tocan los huevos. Por ejemplo esto:

#!/usr/bin/env perl
use 5.020;
say sub }->(3)->(4)


Salida: 7 (como tiene que ser)

#!/usr/bin/env ruby
# encoding: utf-8
puts ->n }.call(3).call(4)


Salida: 7 (como tiene que ser)


#!/usr/bin/env python3
# encoding: utf-8
print((lambda n: lambda x: eval('n+x'))(3)(4))


Salida:

Traceback (most recent call last):
File "SCRATCH.py", line 4, in
(lambda n: lambda x: eval('n+x'))(3)(4)
File "SCRATCH.py", line 4, in
(lambda n: lambda x: eval('n+x'))(3)(4)
File "", line 1, in
NameError: name 'n' is not defined


CAGADA!

D

#c-7" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2214533/order/7">#7 Perdón, el ejemplo que quería poner no era así, sino así:

#!/usr/bin/env perl
use 5.020;
say sub ' }->(3)->(4);


(FUNCIONA)

#!/usr/bin/env ruby
# encoding: utf-8
puts ->n ' }.call(3).call(4)

(FUNCIONA)

#!/usr/bin/env python3
# encoding: utf-8

def f(n):
....exec('''
def g(x):
....return n +x
''')
....return g
print(f(3)(4))


(NO FUNCIONA)

s

yo me sé de una facultad de informática que empiezan enseñando programación básica y, lo peor, orientada a objetos con ada. Tocate los huevos mariloli

D

Yo enseñaría a desarrollar en PHP, JS, Python y Swift (por ejemplo). Si enseñas a la gente lo mismo nunca evolucionan o lo rápido que deberían, si le enseñamos lenguajes para seguir parcheando y seguir teniendo errores pues pasa lo que pasa.
En USA, Alemania y Francia son mas abiertos con la enseñanza en este ámbito, en España no todo lo contrario.

D

En java no debería hacerse "hola mundo" debería hacerse "adios mundo cruel"

Desde que descubrí python no he vuelto a tocar java ni con un palo.

Ahora en cambio no suelto javascript ni aunque me maten.

Ruby me decepciono. El poetry mode me parece aberrante y muy confuso.

D

No olvidemos también Go que es interesante también.

D

Eres hipster? Python o Ruby. Para el resto: Java, PHP, C/C++ etc...

g

#56 Ja ja ja, es cierto, este hilo me está recordando a las conversaciones sobre música de muchos gafapastas, donde se dedican a lanzar nombres de grupos desconocidos para demostrar que saben más que nadie.

JohnCarter

A riesgo de leer tonterías he entrado a leer los comentarios. Y efectivamente, cuanta tontería se dice. De un lado y de otro. Haters, haters everywhere.

D

En cuanto a los dramas de pasar de 2.7 a 3. Son dramas artificiales q rozan el sindrome de diogenes.

D

#58 ¿Dramas artificiales? ¿A qué te refieres? No hace mucho, leí que el 98% de los usuarios de Python siguen usando python2.

D

#74 ¿y donde esta el problema de usar 2.7 o la 2.x o la 3x? ?

Me encantaria saber donde esta el problema, si tiene sun proyecto desplegado para 2.7 pues usas esa version lol. El "problema" sq no hay ningun porblema.

D

#75 Siendo así, python3 fue una cagada que solo sirve para hacer perder el tiempo a los programadores de librerías.

Twilightning

Python, eh? Jejejejeje ya sabéis en qué estoy pensando... "nudge, nudge"...

f

yo metería BennuGD/DIV ... ... es inventado por españoles ...

darccio

Dentro de 10 años: Go es el lenguaje de introducción a la programación más popular en las universidades de USA.

Fomenta un código limpio, es rápido (y compila muy rápido), más cercano a C (y con una integración sencilla), etc. Python va a ser comido por los gophers http://golang.org

PD: he programado en Python y Ruby durante años y, salvo por alguna librería, no echo en falta nada en Go.

JanSmite

10 REM programita
20 a=3; b=4
30 print (a+b)

RUN

7

Fácil y sencillo…

aironman

puede alguien decirme algun software creado con python o django que sea usado a nivel mundial por miles de millones de usuarios potencialmente a la vez? por curiosidad

p

#97 Pues básicamente la búsqueda de Google, que tiene muchas partes hechas en python hasta donde yo sé.

D

Para no extenderme ya q aqui hay mucho trauma y traumatizado, mis preferencias por experiencia.

c++ > python > ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> y ni con tu palo java y php

alexwing

Para empezar mucho mejor actionscript u otro lenguaje emacs es mucho más visual, pero si te la quieres dar se machote usa un lenguaje de verdad, yo empecé en su día con Pascal, cobol y ensamblador.

D

#50 "lenguaje de verdad" para los Onvres!

lol
como esta el patio..

alexwing

#51 Con lenguaje de verdad me refiero a un lenguaje linkado y compilado, no interpretado y sin máquina virtual.

D

#47
>>> def lol(a,b):
c =int(a + b)
return c

>>> print lol(5,6)

*por supuesto se puede adornar mucho mas lol


#51 claro claro por eso en google no lo usan. Xq no es de verdad

Angel_Conde

#53

Se que tengo las de perder pero....
IntBinaryOperator sum= ((num1,num2) -> num1+num2);
System.out.println(sum(3,4));

Y antes de que nadie salte con Java 8 el "boxing" de los int es automático!

D

Por cierto java debe y tiene q morir.

D

He leído por algún comentario que Java es el lenguaje más usado pero no lo es, es C, seguido de Java.

Angel_Conde

Se que estoy en el mundo académico y que no todo el mundo puede elegir el JDK en el cual desarrollar pero....

@FunctionalInterface
Interface
...
int a = 3
int b =4
Oper sum = (int a, int b) ->
int result= sum(a,b);

Para mi, después de haber echo un par de cursos de Scala en los cuales me ha costado acostumbrarme.... Creo que Java 8, es una aproximación que esta empezando pero que cambia muchas cosas respecto a que el lenguaje es viejo y usando los Streams se pueden hacer cosas bastante curiosas (básicamente ahorrar código y ganar eficiencia)

Neochange

Python es un lenguaje infernal y debería considerarse delito el usarlo

Peachembela

que dificil es programar, nunca he podido

1 2