Cuál es tu lenguaje de programación preferido?

Elige opción

  • C / C++

    Votos: 142 22,8%
  • Java

    Votos: 88 14,1%
  • Javascript

    Votos: 40 6,4%
  • PHP

    Votos: 62 10,0%
  • Python

    Votos: 133 21,3%
  • Ruby / Rust / Scala

    Votos: 9 1,4%
  • Fortran

    Votos: 16 2,6%
  • Ensamblador

    Votos: 37 5,9%
  • Perl / Pascal / Ada

    Votos: 13 2,1%
  • Otros (C#, D, F# y etc.)

    Votos: 83 13,3%

  • Total de votantes
    623
¿Cuál es la mejor manera de aprender un lenguaje de programación? Me gustaría aprender python pero aunque se supone que es fácil para los que no tenemos ni papa de programación no lo es tanto.

Pues la misma forma para todos.

Cómprate un buen libro sobre el lenguaje, y he dicho "buen", comienza por el tema 1 y termina por el último tema, sin saltarte páginas, comprendiendo todo despacito y haciendo los ejercicios ;)

Eso que sale en Matrix donde dicen "Tanque mándame un curso para pilotar helicópteros" y te lo insertan en el cerebro en cero coma, es mentira, ya te digo que así no se aprende.

Yo llevo ya 8 años con Visual Studio, C#, javascript, T-SQL, jquery, knockout aunque habría que cambiar a React, programando web, apps, workflows, scripts de cliente, web services y mil cosas más y ahora apps para Azure, estamos hablando ya de un nivel aburdo de integración.

Y de un nivel absurdo de hasta la platano también, pero bueno, es mi profesión, en el fondo la quiero.

Aunque si viera claro que no es una vía para morirse de hambre me dedicaba a la música 100% y mandaba todo eso atpc jejeje
 
Última edición:
No conocía este hilo y reconozco que no he leído mucho. Pero bueno, justo ayer vi el resultado de una encuesta en StackOverflow que puede interesar a alguien:

Stack Overflow Developer Survey 2016 Results

Y después puedo comentar mi experiencia tras llevar 5 años trabajando en Londres (7 antes en España).

  • Node.js está subiendo mucho. Supongo que en parte porque había una legión de programadores frontend que sabían Javascript y ahora ven que pueden meter el "cuezo" en el backend, convirtiéndose en "full-stack". Yo siempre he sido 90% backend y estoy haciendo mis pinitos en Node. Está curioso, aunque no vale para todos los casos.

    Al ser un único hilo de eventos, si necesitas realizar cálculos pesados date por estropeado. Imagino que puedas llamar a process.nextTick() (que entiendo que hace una especie de yield para procesar el siguiente evento en la cola) en puntos determinados de los cálculos, pero lo más seguro es que tengas que implementar un servicio aparte en otro lenguaje multihilo. Además, imagino que al ser un único hilo Node.js tampoco aproveche todos los cores que haya en una máquina y haya que arrancar varios servicios, aunque no he leído mucho al respecto. También supongo que Node.js no sea la mejor opción en casos en los que el timing sea importante, precisamente por su modelo de bucle de eventos. De todas formas la mayor parte de las aplicaciones empresariales son I/O bound y no necesitan un timing super exacto, con lo cual el modelo de event loop se adapta perfectamente.

    Con respecto a Javascript, siempre odié los callbacks. Por suerte las promises parece que van a librarnos de los callbacks para siempre, aunque a mucha gente le confunden todavía. En este vídeo explican de forma muy clara el problema de los callbacks y cómo las promises los resuelven.

  • Lenguajes funcionales. Parece que el más conocido es Scala. No tengo experiencia por él, hace 3-4 años empecé a leer algo cuando iba a empezar un proyecto nuevo pero al final se usó otro lenguaje. De lo poco que leí no me gustó esa mezcolanza de POO y funcional, pero quizá es su punto fuerte, quién sabe. Antes optaría por un lenguaje funcional puro.

    Y hablando de lenguajes funcionales puros, otro que sube y que usamos en mi empresa (aunque yo no, todavía) es Clojure. Básicamente un Lisp que corre sobre la máquina virtual Java y que tiene interoperabilidad con éste.

    También en mi empresa se usa Haskell, aunque me parece una ida de olla. No por el lenguaje como tal, sino porque creo que es un mal movimiento por parte de la empresa usar un lenguaje que hoy en día es completamente nicho y cuesta mucho tiempo (y un ojo de la cara) encontrar a gente. Pero bueno, no se usa en nada crítico.

  • Java sigue estando ahí. Ya dejó hace mucho tiempo de ser un lenguaje cool, y los programadores de vocación que necesitan siempre aprender cosas nuevas lo ignoran. Pero a pesar de sus inconvenientes la máquina virtual sigue siendo una plataforma excelente sobre la que ejecutar programas (por algo Scala, Clojure y otros lenguajes nuevos la usan) y las empresas que necesitan realizar proyectos pero no necesitan/buscan estar a la vanguardia de nada pues ven en Java una opción segura. Con .Net supongo que pasa algo parecido, aunque apenas sé nada de él aparte de sus similitudes con Java.

Resumiendo, en mi empresa se usan los siguientes lenguajes:

  • Node.js (usando Sublime como editor).
  • Clojure (usando Emacs como editor).
  • Java (usando Eclipse como editor).
  • Groovy (Grails), sólo en proyectos legacy (usando IDEA como editor).
  • Ruby, se hizo alguna cosa pequeña pero no cuajó (usando Sublime como editor).
  • Aplicaciones móviles para iOS, Android y Windows Phone. Cada uno en el lenguaje correspondiente.

Se me olvidaba, éste esl vídeo en el que hablan de los problemas que tienen los callback en Javascript y cómo las promises los solucionan:

Redemption from Callback Hell - YouTube
 
Yo el nuevo proyecto en el que estoy hemos abandonado c#/Angular para pasarnos a Meteor, que es node.js "con esteriodes"
 
UGw7RgO.png

April Headline: Visual Basic on its way out

TIOBE Index for April 2016

A very long time ago there were only a couple of dominant languages: COBOL, BASIC and FORTRAN. Many software systems have been written in these languages and there are surprisingly many of them still alive. Through the years COBOL and FORTRAN lost their popularity and are now between position 20 and 30 in the TIOBE index. BASIC survived thanks to Microsoft. First Microsoft created Visual Basic 6, now known as classic Visual Basic. That was a big success. After that, VB.NET emerged more than 10 years ago to make sure Visual Basic was compatible with Microsoft's .NET framework. This last move wasn't really successful, but at least it guaranteed that there was no free fall for Visual Basic. Since VB.NET and classic Visual Basic were actually two completely different languages, the community didn't know what to do and that wasn't good for its popularity. Classic Visual Basic is going down, but also VB.NET is about to lose its top 10 position, which means that we are on the brink of no BASIC language in the top 10 since we started tracking the TIOBE index. There are alternatives available such as PureBasic (position #43), thinBasic (#77) and BBC Basic (#79), but their communities are still too small yet to compensate the declining popularity of Visual Basic.

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system. The definition of the TIOBE index can be found here.

Apr 2016 Apr 2015 Change Programming Language Ratings Change
1 1 Java 20.846% +4.80%
2 2 C 13.905% -1.84%
3 3 C++ 5.918% -1.04%
4 5 C# 3.796% -1.15%
5 8 Python 3.330% +0.64%
6 7 PHP 2.994% -0.02%
7 6 JavaScript 2.566% -0.73%
8 12 Perl 2.524% +1.18%
9 18 Ruby 2.345% +1.28%
10 10 Visual Basic .NET 2.273% +0.15%
11 11 Delphi/Object Pascal 2.214% +0.75%
12 29 Assembly language 2.193% +1.54%
13 4 Objective-C 1.711% -4.18%
14 9 Visual Basic 1.607% -0.59%
15 24 Swift 1.478% +0.60%
16 14 MATLAB 1.344% +0.08%
17 17 PL/SQL 1.314% +0.20%
18 19 R 1.266% +0.24%
19 43 Groovy 1.262% +0.97%
20 38 D 1.030% +0.63%
 
a veces os envidio con lo de saber programar... hice hace unos 3-4 años un cursito muuuuy básico de php, y ahí me quedé.
Ahora no me acuerdo ni de hacer un formulario.

El dia que tenga bastante dinero como para relajarme profesionalmente, me pongo a ello.

Pues será que no hay formas en internet, lugares typo codeacademy o freecodecamp y lugares para resolver problemas. Tengo una ristra de ellos apuntados. Puedes tomártelo como un pasatiempo, en vez de hacer sudokus pues...
 
Yo la tengo más larga y subida de peso que todos vosotros: ASSEMBLER.

:rolleye::cool:8::Baile:

En mi epocas mozas hacia Demoscenes con varios premios encima en las EuskalPartys de la época.

Y vendí alguna demoscene con chiptune trakeada a algun hacker allá por el 99 cuando tenía 17 tacos.
 
giphy.gif


Yo programo desde los 8 años. Primero con el BASIC del ZX Spectrum y luego con el ensamblador del Zilog Z80.

Tras muchos lenguajes, creo que por ahora mi favorito es C++.
 
Que const que no llevo mas de un año intentando meterme en esto de la programacion, aunque ya lo hago mas por mantenerme ocupado que por vivir de ello u tiempo. Es complicado imposible co mas de 30 conseguir curros de junior. Aun asi medio enteindo ya del tema.

Para "aprender" a progamar, en general: yo recomiendo python. Yo empecé con este maravilloso lenguaje. Es sintaxis simple y la indetacion es forzada lo que ayuda a una buena practica. Esta hecho para que cualquiera pueda leerlo que no haya escrito el codigo. A favor tiene que vale para casi todo, entendiendo que tiene frameworks y librerias para ello (web, ciencia de datos, bigdata, apps para android...). En contra: dicen que es mas lento que el caballo del malo en cuanto tienes que tirar de operaciones de microprocesador como cálculos. Pero, según lo entendidos, el tiempo que tardas en escribir una aplicación compensa con el tiempo en el que corre la aplicacion. ¿Que prefieres?¿tardar 10 dias en escribir algo que tarde 10 segundos en ejecutarse? ¿o 100 dias en algo que tarde 1 segundo?. La relacion de python / c es de 10 a 1. En contra tambien tiene que la comunidad es, por lo visto, intensa pero poco constante. A favor tiene que vas a encointrar cientos de cursos MOOC sobre este lenguaje. En contra, en España apenas hay ofertas para python a dia de hoy. Tiene sentido porque aqui las empresas son de java en su mayoria: la gente aprende java en la uni, los profesores solo saben java, los jefes de equipo solo saben java... y es comprensible o la empresa te forma o al llegar a casa por muy apasionado que seas no te vas a poner a aprender otras cosas. Laboralmente, python apenas se usa fuera del bigData en España. PAra desarrollo web, su framework Django apenas es conocido.

Ruby. Lo tengo pendiente mas que nada por su framework Ruby on Rails. Hice el tutorial completo de CodeAcademy y es realmente "bonito". Tiene palabras como "until" "unless" y una sintaxis bastante facil de leer una vez te has acostumbrado. Rails tiene una comunidad muy activa, y aunque no es tan "navaja suiza" como python no me cabe duda que de aqui a unos años Ruby pasara a python porque la comunidad es tanto o mas intensa y ademas actualiza sus propias librerias... en python te pueden econtrar librerias obsoletas desde hace años. Ruby tiene como pyuthon frameworks para casi todo aunque menos desarrollado: para estadictica, para android (ruboto). Ademas esta jruby (como jython) que permite usar la jvm para ejecutarse por lo que es multiplataforma. Creo que ruby es una apuesta de futuro. Si bien para ruby hay menos ofertas que para python. Hay menos desarrolladores ruby or oferta de empleo, lo que hace que sea mas facil trabajar de Ruby, en contra, ruby casi no se usa fuera del desarrollo web.

En contra de Ruby y Python: como dije para el segundo, la velocidad. Si quieres hacer cosas que corran bien vas a tener que aprender algo de C o C++ para insertar esas partes de codigo en el deRuby y Python.

c/c++: imprescindible si te dedicas al hardware, sistemas en tiempo real y cosas asi... lineas de codigo por un tubo, conocimiento mas profundo de lo que haga el ordenador. Simlemente son los mas usados, por debajo de java porque son "rapidos" a la hora de ejecutarse. Exactamente 100 veces mas rapido que python, aunque hay esutdios que muestras que para procesos complejos pyhon y c++ tienden a igualar sus rendimientos, hay videos en youutbe (matrices 100*100 y cosas asi).

Java: es lo que mas se pide orque casi nadie conoce otra cosa. Los profesores solo sben java, los alumnos no se preocupan por aprender otra cosa al terminar la carrera... Java es sin duda la tecnologia mas solida de todas, aparentemente, pero tiene el gran defecto de que para hacer cosas simples necesitas vastos conocimienos de casi todo lo que exista en java: spring, struts, maven, hibernate y cualquier otro framework de moda que tu jefe de proyectos haya escuchado en la tv. La sintaxis es relativamente normal de entender y aprender pero comparativamente con ruby o python necesitas mas lineas para lo mismo. Laboralmente es el que mas se pide, pero tambien el que peor se paga salvo que tengas mucha suerte.

12512791_995871113817231_4808286858611539378_n.jpg



Javascript. Es en lo que estoy metido ahora con este magnifico MOOC freeCodeCamp. Obligatorio, y e ahi sus resultados en el TIOBE, para la parte de front end. Aunnque ahora tambien se puede usar para la parte de backend y, parece ser que sera lo que mas se va a suar de cara al desarrollo web, conjuntamente con htmlX y cssX. La sintaxis a mi parcer se parece mas a java y creo que es lo mejor para empezar porque ni es simple como python ni complicada como C++. Laboralmente, para web es requisito y ahora con el meanStack quiero pensar (pq es lo que estoy aprendinedo en freecodecam) que sera lo que se va a pedir mas por encima de java y ruby.

PHP: lo mismo que ruby, fuera de la web no se si se usa mucho. Es como java, se pide mucho, lo usan muchos y por lo tanto es mal pagado. Ahora dicen que han sacado frameworks tipo ruby on rails para un prototipado rapido. A favor, php funcionara e cualquier servidor. Ruby dicen que solo en heroku y amazon o asi...

Existen otros ocmo dart, go, haskell que honestamente solo se el nombre...

De todas formas, con un solo lenguaje no se va a ningun lado. Hay que saber a dia de hoy html, css, js y o ruby, o java o py o php...


My favoritos a dia de hoy es javascript y, por mucho que me aguante, Ruby. Si hubiera moocs de django me cambiaria.

Yo aprendo por freeCodeCamp y The odin project. son a tu ritmo y gratis. FreeCodeCamp tiene cierto prestigio en USA y no son pocos los que han conseguido buenos curros alli con esto.

La pena es que en esto del desarrollo una vez pasas los 30 sin experiencia es muy complicado... pero vamos... como en lo mio... igual. A mi me ayuda a no tirarme por la ventana.
 
Última edición:
Para "aprender" a progamar, en general: yo recomiendo python. Yo empecé con este maravilloso lenguaje. Es sintaxis simple y la indetacion es forzada lo que ayuda a una buena practica. Esta hecho para que cualquiera pueda leerlo que no haya escrito el codigo. A favor tiene que vale para casi todo, entendiendo que tiene frameworks y librerias para ello (web, ciencia de datos, bigdata, apps para android...). En contra: dicen que es mas lento que el caballo del malo en cuanto tienes que tirar de operaciones de microprocesador como cálculos. Pero, según lo entendidos, el tiempo que tardas en escribir una aplicación compensa con el tiempo en el que corre la aplicacion. ¿Que prefieres?¿tardar 10 dias en escribir algo que tarde 10 segundos en ejecutarse? ¿o 100 dias en algo que tarde 1 segundo?. La relacion de python / c es de 10 a 1.

En contra de Ruby y Python: como dije para el segundo, la velocidad. Si quieres hacer cosas que corran bien vas a tener que aprender algo de C o C++ para insertar esas partes de codigo en el deRuby y Python.

Si usas python puro si, hay operaciones que son lennntas. Pero si estas calculando a dolor en python deberias conocer numpy+scipy, cython y numba. Tienes rendimiento comparable con codigo C, en algunos casos (numba) anyadiendo una sola linea al codigo python puro.
 
Si usas python puro si, hay operaciones que son lennntas. Pero si estas calculando a dolor en python deberias conocer numpy+scipy, cython y numba. Tienes rendimiento comparable con codigo C, en algunos casos (numba) anyadiendo una sola linea al codigo python puro.

otra cosa mala: cyton, jython, Rpython, rubypy... pero si me lees si dije que e python se puede inyectar codigo C, por lo que si aprendes python antes o dps vas a tener que relajar el ano y aprender C...

Python esta alto en las estadisticas porque se usa para muchas cosas habras que sectorizar la aplicacion: a lo mejor nos damos ua sopresa y RoR y Djando se usa mas que java para web...
 
Volver