¿Cuáles son tus lenguajes favoritos, y por qué?

Camperito

JOder python es la cosa mas bonita del mundo...

#58 Nosotros usamos hiphop para traducir nuestro servicio de php a c++ y ganamos cerca de un 67% de rendimiento. Una barbaridad cuando acceden millones de personas y tienes que quitarte carga de servidor ( con el ahorro que tambien comprende eso )

1 respuesta
Zerokkk

#60 Yo creo que es prácticamente obligatorio usar === en JS, porque si no vaya tela xD.

eisenfaust

#40 Es una valoración personal. Ahora mismo no hay mucho elitismo en C++ y la referencia era más bien por lo cargado que está el lenguaje. Pero vamos, que si tú no ves elitismo en la comunidad de Haskell o de FP en general pues tampoco te voy a intentar convencer de lo contrario.

#52 En primer lugar habría que diferenciar entre el lenguaje, el ecosistema y la implementación o plataforma. Me estás vendiendo lo productivo que eres gracias al tooling y lo potencialmente escalables que son tus aplicaciones pero nada de eso es un resultado directo del lenguaje sino de las horas humanas que tiene la plataforma detrás.

Java es un lenguaje principalmente diseñado con el objetivo de eliminar costes, esto es, de crear una herramienta "obreril" rebajando la barrera de entrada y utilizando únicamente conceptos probados.

Citando a Gosling: "It was not an academic research project studying programming languags: Doing language research was actively an antigoal... Java is a blue collar language. It’s not PhD thesis material but a language for a job. Java feels very familiar to many different programmers because I had a very strong tendency to prefer things that had been used a lot over things that just sounded like a good idea."

Hasta ahí bien si te remontas a los tiempos en los que acabó destronando a C++ y superando a alternativas como SmallTalk o Eiffel, pero hoy por hoy empieza a mostrar sus años y es mejor dejarlo pasar.

Dices que es trivial aplicar conceptos de OOP en Java pero de ser así no existirían libros como GoF. Ser un lenguaje basado en clases no te convierte en un buen lenguaje de OOP. Perl y Common Lisp por ejemplo no lo son y librerías como Moose o CLOS están a años luz de lo que ofrece Java en ese sentido.

Me disgusta lo verborreico que es, el abuso de declaraciones en lugar de expresiones, el hecho de que no te quede otra que utilizar un IDE como workaround a su complejidad, el carecer de inferencia de tipado y obligarte a escribir cosas como Polla polla = new Polla(); o peor aún

FuckerFactory factory = Fornication.buildDefaultFuckerFactory();
Fucker fucker = factory.getFucker();
Set<ThingWithTitsThatHappensToBreathe<Women>> muhWomyn =
  fucker.fuck(idiots.stream().filter(person ->
    person.isFemale()).collect(Collectors.toList()));

Me disgusta la comunidad, lo extremadamente ñapas que pueden ser algunos desarrolladores copiando y pegando código de StackOverflow mientras se creen la hostia por haber aplicado el patrón del día para leer un puto fichero (aunque puedo admitir que esto sea más bien una asociación correlacionada con el éxito del lenguaje), la tendencia de tener que escribir absolutamente todo en Java, el compulsivo exceso de ingeniería para soluciones en principio triviales, la pobre documentación de muchísimas librerías y especialmente la prevalencia de cargo cult, donde se siguen ciegamente "best practices" de ciertos gurús sin ser capaz luego de articular la razón por la que se hace X.

Hay gente a la que le gusta Java, pero suelen ser los típicos que no han tenido tiempo o ganas de experimentar con otras alternativas, han invertido demasiado en la plataforma o directamente no les queda otra que ganarse el pan con ello y sufren síndrome de Estocolmo.

Tiene cosas buenas, como IDEs excelentes, los sistemas de monitorización más avanzados, librerías y frameworks como Quasar y DropWizard que son una delicia, máquinas virtuales como HotSpot o Zing que barren a la competencia... pero si te fijas nada de ello tiene que ver con Java, el lenguaje.

Soy pragmático y a día de hoy me dan a elegir entre Java, Haskell o C++ para algún proyecto eligiré Java siempre que sea posible pero no por ello lo voy a considerar buen lenguaje. Y más existiendo cosas como Clojure, Kotlin e implementaciones de OCaml para la JVM.

1 1 respuesta
Merkury

#44 Eso es malo claro, especialmente cuando empiezas a currar en algo empezado y te encuentras segun que cosas...

B

El odio a PHP viene de la época de PHP 4 y la cantidad de código de mierda por metro cuadrado que te encuentras con esas implementaciones. Con cada versión PHP se va quitando lastre y añadiendo funcionalidades útiles y no tiene nada que ver con lo que era antes.

1
babri

#61 hiphop o la vm?

1 respuesta
MTX_Anubis

#63 Tu post lo suscribo palabra a palabra pero tengo una duda, por qué odias Scala y no Kotlin? Scala está lejos de ser perfecto y tiene cosas que me parecen aberraciones pero la ultima vez que miré Kotlin me pareció una mala copia de Scala.

Y siguiendo el hilo, el lenguaje que más me ha gustado es Ruby por la metaprogramación y la cantidad de código que te evita escribir haciendo su magia. A mí, cuanto más lenguajes conozco menos me gustan xD.

1 respuesta
eisenfaust

#67 Si te parece una copia es porque lo estás analizando desde la perspectiva incorrecta.

Scala nace de la investigación de lenguajes de programación. No es un lenguaje creado por y para la industria como nos lo llevan intentando vender desde el principio. Sus autores son básicamente académicos sin mucha experiencia en el mundo real y que tienden a ignorar factores humanos en la ingeniería del software. Se podría decir que el enfoque de Scala prefiere revolución a evolución.

Kotlin, en cambio, nace de necesidades reales en la industria (no ha sido creado in vitro como Scala sino que ha sido utilizado en producción prácticamente desde su gestación) y por ello intenta ser más cercano a la filosofía de Java, la de crear un lenguaje viéndolo como una herramienta y no como un fin en sí mismo, adoptando únicamente ideas sencillas y añadiendo la mayor funcionalidad posible sin aumentar la complejidad. Es básicamente lo que sería Java de haberse escrito en 2015. Kotlin entonces parte de un enfoque evolutivo.

Si recuerdas algunas de mis contribuciones al foro sabrás que siempre he sido seguidor de lenguajes como Perl, Common Lisp o Scala. Son lenguajes extremadamente potentes que se adaptan a prácticamente lo que les pidas y te permitan atacar problemas desde cualquier enfoque, pero dicha potencia y complejidad siempre viene con un coste.

Los proyectos que verdaderamente mueven el mundo no tienen nada que ver con lo que pueda escribir un grupo de hipsters en Silicon Valley que se puedan permitir el lujo de reescribir toda su infraestructura en el último stack hipster de moda. Son proyectos que duran un mínimo de diez años, con un coste enorme, que son mantenidos por un gran número de diferentes personas cada cual con sus capacidades y formas de entender las cosas por lo que emplear lenguajes potentes que requieran de disciplina es una receta para el desastre. Si hay algo que he aprendido en los últimos años a la hora de trabajar en equipo es que a más simple y menos flexibilidad ofrezca un lenguaje mejor para el proyecto, que la simplicidad no implica que un lenguaje sea peor que otro y que lograr dicha simplicidad es posiblemente la tarea más difícil a la hora de diseñar un lenguaje.

Añadir funcionalidad sin límite ni respeto a la ortogonalidad como se ha hecho con C++ o Scala no es buen diseño. De la misma forma que Haskell y en menor medida Scala pecan de un exceso de abstracción, pues el objetivo de la abstracción no debería ser otro que el de hacer las cosas más sencillas. La abstracción por el bien de la abstracción es ofuscación.

1 1 respuesta
MTX_Anubis
#68eisenfaust:

Son lenguajes extremadamente potentes que se adaptan a prácticamente lo que les pidas y te permitan atacar problemas desde cualquier enfoque, pero dicha potencia y complejidad siempre viene con un coste

No podía estar más de acuerdo. En lo referente a Scala que es el que más conozco y con el que desarrollo actualmente, es un lenguaje obtuso y muy complejo, muy cajón de sastre donde han ido metiendo cosas sin ton ni son, justo lo contrario de lo que ha pecado java.

#68eisenfaust:

Si hay algo que he aprendido en los últimos años a la hora de trabajar en equipo es que a más simple y menos flexibilidad ofrezca un lenguaje mejor para el proyecto, que la simplicidad no implica que un lenguaje sea peor que otro y que lograr dicha simplicidad es posiblemente la tarea más difícil a la hora de diseñar un lenguaje

Me quedo con eso y es una de las cosas por las que he dicho lo de antes, que a cuanto más lenguajes conozco menos me gustan en general los lenguajes de programación xD. Le echaré un vistazo más profundo e intentaré hacer algo con ello.

Deberíamos crear un hilo de cómo tendría que ser el lenguaje perfecto xD

Camperito

#66 La vm, la libreria esta deprecada creo

1 respuesta
eZpit

#54 Es que ni la diagonal jajajajja

babri

#70 si por eso te preguntaba :P

Deoxys

Python me encanta desde que lo probé la primera vez hace unos años. Si no lo hubiera descubierto seguramente ahora mismo aún odiaría programar con toda mi alma (Sobre todo por culpa de java).

Haskell lo he usado muy poco y me cuesta horrores hacer cosas con él, pero aún así me gusta. No tanto como python, pero es entretenido. Y cobol también, aunque tampoco lo haya usado mucho.

willy_chaos

Java: Me gusta bastante (ademas trabajo con el en Servlets) por la facilidad de realizar ciertas tareas y pese a que C es mas rápido al no ejecutarse en una VM, con Java realizar aplicaciones es rápido y agradable.

C: Pese a lo dicho anteriormente, en C tambien he programado (practicas de la universidad) y me gusta bastante, lo que viene a ser sockets y concurrencia con threading y sus mutex.

PHP: Aunque hace tiempo era lo que mas sabia programar, actualmente no es que me llame mucho la atención, el no ser fuertemente tipado me toca bastante los huevos cuando trabajas en un proyecto con otras personas. Aún así si ahora mismo tuviera que hacer una web sencilla obviamente tiraría por PHP. Si fuera un proyecto grande, intentaría ir a por un lenguaje fuertemente tipado.

Javascript: No es que me apasione, precisamente por lo mismo que PHP...

Bash: Bastante agradable para hacer cosillas rápidas en Linux, me gusta que con un par de comandos haces virguerias que con otro lenguaje de programación tardarías bastante mas. Sobretodo cuando me piden parsear un archivo y extraer cierta informacion. AWK FTW

Android: (Ya se que es Java...) Me gusta bastante, pero de momento no se me ocurren proyectos para hacer y tampoco voy muy fino de tiempo entre el curro y la universidad.

Python: Estoy comenzando con el y bueno aun no tengo una opinion, pero si tengo una queja... soy una persona que identa el código siempre y precisamente me toca las narices ver codigo sin identar correctamente, pero que no existan las { } me toca mucho las narices.

iOS: No me gusta para nada y lo jodido es que no se porque...

ASM: Estamos comenzando a realizar unas pracs con ASM y bueno de momento me gusta, aunque tiene su dificultad.

CSS: Aunque no es un lenguaje de programacion es algo que odio con todas mis fuerzas, a ver si se ponen ya de una vez de acuerdo los creadores de navegadores para interpretarlo de una vez igual...

1 respuesta
pineda

golang, por el manejo de la concurrencia

Zerokkk

#74 Que conste que Java con cada versión se acerca más al rendimiento de C, y al parecer en la mayoría de operaciones están prácticamente a la par, quitando unas pocas tareas en las que sí que C sigue siendo el rey. Ya leí en algún lado que se les puede considerar "igualados" en rendimiento, aunque me parece mucho decir; no creo que por ejemplo un motor gráfico hecho en Java funcione igual que uno hecho en C xD. Pero sí es cierto que ya están ahí:

http://www.javaworld.com/article/2076593/performance-tests-show-java-as-fast-as-c--.html?page=2

1 respuesta
eXtreM3

#76 hay algún artículo como ese que sea reciente?

By Carmine Mangione
JavaWorld | Feb 1, 1998 12:00 AM

Zoko

Ruby.

Siempre será mi favorito.

B

Youngsters!

Qbasic: Eso si que fue programar a bajo nivel.

El resto de lenguajes te dan tantas facilidades que te olvidas que estás ante una maquina. A saber que han puesto detrás en los compiladores, seguro que añaden código extra para robar claves o tu cuenta del msn.

1 respuesta
AikonCWD

VBS

Y el motivo es sencillo; Lo uso en mi trabajo (Sysadmin en redes Microsoft/Windows) a diario. Lo uso para todo, desde hacer copias de seguridad, procesos de monitorización de recursos, lanzar tuneles VPN, enviar mails, meter datos en una base de datos SQL, crear un dashboard en ASP, etc...

Viene "instalado" en todas las versiones de Windows tanto Desktop como Servidores, se programa desde Notepad++, no necesitas compilar, no tiene dependencias ni librerías ni DLL's, hay muchísima documentación en internet y muchos ejemplos y templates para usar directamente.

Básicamente lo adoro xD

EDIT: Además mirad como mola cuando representas el código un proyecto de VBS en modo visual:

1 1 respuesta
Camperito

#79 Yo empeze con qbasic a hacer mis pinitos con 12 años xDDD hice un juego en el que estabamos viciados toda mi clase. The cave se llamaba.

m3l0

c# > java

3
Saiko9

Sin tener mucha experiencia:

C++: la master race de los lenguajes sin duda alguna (o de los que se), no puedes tocar a lo loco y aprendes de verdad sabiendo diferenciar los niveles de abstracción sin mariconadas, en mi opinión es el lenguaje que debería de conocer todo el mundo, al menos si vas por POO.

Python: Es como pseudocodigo y muy pontente (elegancia pura xDD).

Javascript: Es el que estoy tocando ahora y es la caña, parece como un lenguaje mal hecho que es eficiente xD todo el tema de prototipados de objetos y los truquillos que hay que hacer para hacer lo mismo que en otros lenguajes mola jaja.

otros lenguajes que se pero meh: c, java, c#, php, sql, matlab...

me gustaría aprender/ver: Ruby y no se cual mas.

1 respuesta
eXtreM3

#83 una de las cosas que me gusta de JS es lo que has dicho, que tiene muchos truquillos para hacer todo. Si no te sale de una manera puedes hacerlo por muchas vías (generalmente, claro). Otro cantar es que sea la más eficiente.

B

#80 a la hoguera. srsly.

en mi caso, me gusta programar en python y c. razones? sencillos y para lo que hago, van sobrados. para web, tiraba de php, pero lo ultimo que hice fue en nodejs, y a partir de ahora ira todo en django seguramente.

pd, se me olvidaba bash para shell scripting.

1 respuesta
AikonCWD

#85 De tu embidia nase mi fasa

2
B

Java: por la experiencia que tengo con él ( y lo rápido que puedo desarrollar debido a esta ).
Python y Ruby: En proceso de aprendizaje, ambos me están gustando bastante por su simpleza en el código.

Fastestwat

#1 No dejes de postear que eres gracioso analista programador / formador de JAVA.

Python por aquí. Me gusta programar pero no me dedico a ello.

1 respuesta
Veinx

C++: el primer lenguaje que aprendi por hobby, lo usaba mas que nada para hacer tonterias en dx u opengl hace ya la tira de años... Los sdks y la referencia del dx eran un jodido laberinto de clases, al final siempre me creaba las mias propias para copy pastearlas o meterlas en un header+cpp para otros proyectos. Luego en la uni me forzaron a aprender c , mucha gente dice que es mejor aprender c antes que el c++ , me parecio una tonteria. Me encantaba programar en c++, tenia clase para la ventanita win32, otra para inicializar dx de manera simple o con seleccion de resolucion y bits(16,24,32), otra para el dxinput, otra para el dxsound etc etc, lo mismo para opengl. Los continuos cambios tan bastos del dx(empece con el dx7 hace eones) y el enorme curro que tenia que dedicar para hacer una chorrada o actualizar el codigo para la nueva version del dx hizo que dejara de programar cuando anunciaron el dx10 y me centrara mas en modelar, dibujar, no se puede llevar todo para adelante.

La inmensa mayoria de los tutoriales(el99%) de gamedev.net o de flipcode(muerta) estaban en c++. Por aquel entonces habia mucha gente que te ponia tropocientos tutos de dx y opengl, supongo que hoy dia continuara... deje atras ese mundillo.

Zerokkk

#88 ¿Y esa tontería de comentario a qué colo viene? Ni siquiera he hecho mención de ello, pero se ve que las quemadas en OT de hace tiempo te perduran a día de hoy.

A pastar.