Hace 4 años | Por --525300-- a genbeta.com
Publicado hace 4 años por --525300-- a genbeta.com

Quizás te encontraste con alguno de estos tuits o quizás no, pero miles de desarrolladores se unieron a una tendencia en Twitter en la que listaban lenguajes de programación según seis parámetros distintos bastante simples e interesantes:

Comentarios

t

#34 Un puntero nulo.

C

#48 Te voto positivo, no porque recomiende VBA, sino porque me parece indecente que en este foro frían a negativos a una persona por dar su opinión (y encima intentando ayudar).

woopi

¡Vaya! Pues yo voy al revés. Python no me gusta nada y java me encanta. Será algo personal, pero lo veo más coherente. No me gusta el indentado y me parece un coñazo, prefiero poner llaves. Lo del tipado dinámico me parece bien para empezar, pero a la larga me parece un lío de cohones. Otra cosa que no me acaba de convencer en python es la "protección" del acceso a los objetos, protected, privates, etc. En java me encanta el aislamiento de las clases con los getters y setters. ¿Y los constructores múltiples en función de firmas con diferente tipado? Se puede resolver en python, pero no lo veo cómodo. En fin, tampoco soy pro y me gustaría saber la opinión de los que se dedican a ello "de verdad".

OriolMu

“Everybody hates Java”

D

#55 Ada se sigue utilizando. Cada vez que te montas en un avión, hay código en Ada que mantiene tu culo a salvo.

R

#12 y si le dice ensamblador ya sería despeñarlo directamente por un acantilado. #10 Jamás pensé que alguien recomendara BASIC a día de hoy, más que nada por el uso de instrucciones tipo GOTO que todo el mundo desaconseja. En mi humilde opinión, aconsejaría un lenguage fácil, si puede que sea orientado a objetos y que el que no te den ganas de quitarte la vida, ¿tal vez scratch ?

frankiegth

#79. Tambien tienes el GOSUB en Basic si los saltos incondicionales te escandalizan. .

Y para perder el tiempo si me das a elegir entre el LOGO de los 80 y el Scratch actual me quedo con el LOGO.
( CC #10 #1)

ElTioPaco

#40 ya, pero no le pidas coherencia a un hipster.

frankiegth

#14. El tema de los vicios no lo contemplo en #10, contemplo la accesibilidad, la reducida curva de aprendizaje y los resultados directos en pantalla. Pedirle a #1 que se inicie en programación orientada a la web me parece casi como empezar por el tejado. La programación en una CPU básica son cuatro cosas, toda la 'complejidad añadida' a partir de todas las tecnologias actuales espantan más que encantan.

box3d

#51 Compilar/Interpretar C es jodido, órdenes de magnitud más jodido que BASIC. Además de ser un lenguaje "novedoso" para la época.

llorencs

#2 Javascript tiene node para backend ahora.

Estoy haciendo un curso de React y la verdad que el Javascript actual es mas atractivo que lo que recordaba, y en estilo y sintaxis tiene cierta cercanía a Python, salvando las distancias. Pero, sabiendo Python y entendiendo las estructuras se nota que cada lenguaje coge las novedades y mejoras de uno del otro. Acercándose en estilo de programación.

D

#1 para aprender a programar yo te recomendaría C (asentarás las bases tanto de programación como nociones de sistemas operativos) y después el lenguaje que mejor se adapte a tu proyecto.

llorencs

#9 Si quieres hacer cosas de Web solo tienes lenguajes de tipo dinámico, Javascript, Python, Perl, PHP... y el único lenguaje que tiene sentido meter en Web es java, que prefiero no tocarlo ni con pinzas. Antes aprendo Ada que Java (Y mira que odio Ada)

Además en Python tienes las anotaciones que se acercan a un tipado estático (aunque no son obligatorias). Y en JavaScript está TypeScript que es de tipado estático.

Pero como otros han dicho, para empezar Python me parece la mejor opción y en operativa de datos tiene grandes bibliotecas.

#10 ¿BASIC? En serio? Además BASIC de los antiguos con los que pillas muy malos vicios. No me parece una recomendación muy acertada. BASIC es un lenguaje que mejor no tocarlo.

llorencs

#20 Básicamente pensaba en back-end. Todos los lenguajes que he mencionado PHP, Python, Perl son de backend excepto JavaScript que lo puedes tener en ambos lados gracias a Node.

Lo de aprender Ada era un poco sarcasmo. No me apetece aprenderlo además de que no tiene ninguna utilidad hoy en día. Me obligaron a estudiarlo en primero de ingenieria técnica en la UIB (creo que fue una de las razones por las que nunca pasé de primero). Espero que hoy en día no lo sigan usando...

No conozco Groovy, así que no te lo puedo comparar. Ah sí, Groovy es el lenguaje de scripting de Jira. Pues probablemente sea como eso.

Por ejemplo, usando React (lo uso desde hace 2 días literalmente), digamos que es como una vuelta a los programas compilados, ya que el JavaScript que se para por allí se compila. No sé, el tipado dinámico tiene sus defectos pero no es tan malo. Aunque tienes razón que para testearlo en principio los lenguajes compilados y estáticos son los mejores.

JohnSmith_

#43 Seguimos el mismo camino. Aunque yo no prevengo a la gente sobre los punteros en C. Y es que casi toda la gente que conozco, mas tarde o mas temprano, ha tenido un "momento de iluminacion" con los punteros en el que ha dicho: "Coño!!, ya lo entiendo!!, esto es asi y asi!!" ... y a partir de ahi ya no hay mas problema nunca mas. Es cuestion de esperar ese momento en que el cerebro hace "click!" lol

maloconocido

#69 por favor, intenta no pensar en una persona de 50 años como un ente sin cerebro.

#62 para la gran mayoría de situaciones será una mierda, pero hay un nicho potente ahí para hacer pequeñas soluciones para pymes basadas en aplicaciones de MS que ya tienen millones de usuarios por todo el mundo.

aironman

#207 Brutales los Teskey Brothers, muchas gracias.
Y mucho ánimo, en lo que te pueda ayudar, me ofrezco para tutorizarte si quieres aprender Programación orientada a objetos con Java.

JungSpinoza

#1 Depende de lo que quieras hacer? E.g. para desarrollo web frontend: Javascript y backend python. Si solo quieres elegir uno entonces Javascript te sirve para backend tambien.

Now Go Build!

prejudice

#49 Técnicamente Typescript sí se compila. Pero no a código máquina como C o a bytecode como Java y Python, si no a JavaScript que de momento es lo único que ejecutan los navegadores web.
TypeScript es un lenguaje nuevo que se compila a Javascript (incluso a la especificación concreta que necesites ES6, es2015, etc) pero que además es mas o menos compatible con el código JavasScript que ya tuvieras. Así que puedes reutilizar todo lo que tuvieras ya hecho en JavasScript, reutilizar librerías JavasScript, etc

Pd: Perdona te vote negativo por error

D

#58 el basic de microcomputadora tenía acceso directo a las características ofrecidas por el hardware.

Por algún motivo, todos los estudiados dicen que no vale para nada.

Conde_Lito

#79 Pues depende de para qué el ensamblador puede venir muy bien y ser mucho más fácil programar lo que sea que con un lenguaje más alto.
E incluso en código máquina, ya que el ensamblador no es más que la traducción literal del código máquina, es más fácil memotécnicamente de recordar los opcodes y mucho más rápido de escribir, no tienes que intruducir por ejemplo una instrucción en el micro diciendo por que pata vas a introducir el dato, por esta pata temeto un 1, por esta otro 1, por esta un 0, y por esta un 1, dar la orden de lectura y así sucesivamente.

D

#39 ¿Agnóstico o promiscuo?

Al-Khwarizmi

#8 Se nota que la mayoría de la gente que contestó no ha tenido mucho contacto con C++. Porque el paso de C++ a Java fue como pasar de lavar a mano a la lavadora. Y mira que yo era fan de C++ en su momento (y aún lo sigo siendo bastante de C), para nada un hater.

keiko_san

#16 Seguramente no tuvieras 50 años

d

#14 go para back también tiene sentido, es tipado estático y va como un tiro

vickop

#52 Sí, suena interesante.

Pero mientras lo que ejecute el navegador sea JavaScript, seguiremos teniendo páginas web plagadas de errores.

No obstante, sí. TypeScript aporta mucho valor añadido.

D

#21 bueno, tengo 40 y no me veo limitado en ningún sentido ¿cuando tenga 50 será diferente?

D

#27 también existen programadores y "programadores" que no saben lo que es un puntero.

numero

#48 Me he logueado solo para votarte negativo lol

tranki

#210 ¡Ya lo tengo!

MergeSort para la Rasp (ARM assembler)

código:
https://pastebin.com/ewv1zPsb

ensamblar con:
as -o main.o main.s
luego enlazar con;
gcc -o main main.o

Lo prometido es deuda

D

#1 python

mirav

Lo mas curioso es que un gran porcentaje de los que dicen odiar java lo hacen desde el desconocimiento.

Tirando de los dos argumentos clasicos, uno que la jvm es lenta (ridiculo en 2019), y otro que es sintacticamente feo.

Anda que no ha cambiando java desde java 8. Lambdas, streams, inferencia local de tipos, esta cambiando statements por expressions, todo muchisimo mas funcional.

Luego la jvm es suficientemente rica como para tener diferentes lenguajes que se pueden usar a placer. Puedes usar scala con colecciones inmutables si quieres, puedes usar kotlin como punto intermedio...

A dia de hoy no entiendo la razon objetiva por la que alguien odie java.

Conde_Lito

#45 No por dios, punteros no, todo menos punteros.
Es lo que más odio del C y C++

Conde_Lito

#88 OT

Conde_Lito

#1 Sin duda Fortran

frankiegth

#47. De hecho los microordenadores del 80 debieron haber integrado intérpretes/compiladores reducidos de C en lugar de Basic. Pero no fue el caso. Hubiera supuesto un paso de gigante en la buena dirección pero supongo que no querian asustar a la clientela con punteros y sin 'comandos dedicados a' ofrecer acceso directo al hardware.
(CC #10 #1)

frankiegth

#1. Como 'introducción a la programación' te recomiendo un emulador de CPC Amstrad y empezar con el 'Locomotive Basic'. No te lo digo de broma; si lo que quieres son resultados inmediatos sin quebraderos de cabeza y reducidos a su mínima expresión no hay nada mejor que un buen interprete Basic de los 80. Lo tienes todo en esta Wiki : https://www.cpcwiki.eu/index.php/Locomotive_BASIC

llorencs

#44 Yo siempre he usado identado (Pascal, Ada, Python) y me parece mucho más legible que las llaves (si no se mezclan con identado). Identificar los bloques me cuesta más. Así que el identado o correctamente traducido al castellano, las sangrías me parecen completamente necesarias para identificar los bloques de código, sean entre llaves u otros métodos con begin y end.

En Python tienes getters y setters si quieres. Es decir, que puedes usar propiedades. Sí, que la protección es menos forzada que en Java, pero está allí.

Luego Python tiene maravillas del lenguaje como sus "comprehension lists", los generadores, empaquetado/desempaquetado de variables,... que me parecen muy útiles.

JohnSmith_

#207 Coooojones!. Pues si que son buenos!. Y ademas son mi estilo al 100%!. Me los apunto para hacerles el seguimiento!. Pagado estoy!

Ah!. Para Python salio este manual el otro dia en MNM. Bastante bueno y simple, para empezar te sirve

Manual de prácticas para Python desde cero [PDF900 KiB]

Hace 4 años | Por mr_b a drive.google.com

mirav

#44 Buf, como odio los getters/setters. Evidentemente tienen su sentido, el problema es que el lenguaje no tenga una solucion mas elegante para conseguir esa encapsulacion.

Hoy en dia al menos puedes usar anotaciones lombok para que se generen automaticamente. Alabado sea lombok!

Por mi parte siempre que es posible escribo clases inmutables, donde los atributos son finales y por lo tanto los getter no son imprescindibles.

vickop

#14 Si quieres hacer cosas de Web solo tienes lenguajes de tipo dinámico, Javascript, Python, Perl, PHP

Supongo que quieres decir front-end. Pero bueno, en teoría WebAssembly promete solucionar este problema de estar casi obligado a usar JavaScript (ese lenguaje donde puedes dejar cosas que fallarían en compilación, pero que si la ejecución no pasa por ahí, no te enteras de los errores...)

Antes aprendo Ada que Java (Y mira que odio Ada)

Por favor, no lo hagas. Java te puede gustar más o menos, pero tienes un ecosistema enorme de herramientas. No es lo ideal para front-end, pero como back es un lenguaje fuertemente y estáticamente tipado, con un ecosistema enorme y una documentación infinita.

Aprendí Ada en la carrera, y, bueno, tampoco es que lo odie, pero se usa en 2 empresas...

Además en Python tienes las anotaciones que se acercan a un tipado estático (aunque no son obligatorias).

No soy más experto en Python que haberlo probado un par de tardes, pero me imagino que debe ser rollo Groovy. Te permite usar tipado estático, pero mientras no sea obligado, es como darte la opción a que hagas las cosas mal. Y hacer las cosas mal tiene un precio que acabas pagando.

Y en JavaScript está TypeScript que es de tipado estático.

Más de lo mismo. Por no tener un proceso de compilación en el que se haga un chequeo de tipos, hay que parchear el lenguaje con estas cosas. Por mucho énfasis que luego pongas en el testeo, nunca se podrán cubrir tantos casos como el chequeo de tipos que se hace en el proceso de compilación.

Pero como otros han dicho, para empezar Python me parece la mejor opción y en operativa de datos tiene grandes bibliotecas.

En eso estoy completamente de acuerdo. Para aprender, probablemente es lo mejor.

D

#30 no, pero no comprendo porqué eso es un handicap.

D

Yo con lo de lenguajes más fáciles para aprender he llegado a la conclusión que depende de cada uno. Desde mi posición de novato, Python cuando me he puesto con ello me ha frustrado y aburrido. Con javascript lo pillo todo a la primera y siento que lo que aprendo es aplicable fácilmente, y eso anima mucho.

D

#32 ¿por qué gano? ¿y qué he ganado exactamente? Es sólo una opinión.

redscare

#29 Yo se lo que es pero jamás he entendido como funcionan lol Sobre todo lo del 'puntero a puntero'

crafton

#78 Vaya frase de abuelete.

m

#68: Por eso no me gusta Python, porque programar con indentados me parece una chapucísima.

Estoy de acuerdo en que JS podría ser mejor, pero Python con su indentación como método para estructurar el código (y no para mejorar la legibilidad) nunca me gustará.

maloconocido

#70 recuerdo volver a C++ para hacer cosas de opengl después de estar unos añitos con Java y volver a flipar con la velocidad a la que se ejecutan cosas

llorencs

#149 Cierto, que a veces las identaciones son un problema. Alguna que otra vez me ha dado problemas. Como por ejemplo tener un return dentro de un for y no darme cuenta. Ya que lo último que sospechaba era que había colocado mal el return. Y me llevó un buen tiempo encontrar el error.

krkfsx

#14 Hay Typescript tambien

llorencs

#35 Lo menciono en el comentario (Quizás en otro párrafo/apartado a lo que respondes)

F

#5 wtf Para mi JavaScript es posiblemente el lenguaje más feo que existe. ¿En qué se parece la sintaxis de JS a Python exactamente?

D

Me ha parecido ver Phython en una de las gráficas ... wall

D

#112 de aquella había lo que hoy será gl_arb_draw y poco más
Pero... Aquellos microcomputadores tenían acceso directo al hw, te digan lo que te digan

JohnSmith_

#c-1" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3194679/order/1">#1 Cualquiera de .NET (el Visual Basic es mas "sencillito", aunque yo te recomendaria C#). Te puedes descargar el Visual Studio en su version Express que es gratis y asi podrias desarrollar cosas para web, para escritorio y, si me apuras, hasta apps para movil desde un entorno unificado.

Para empezar de cero creo que no encontraras nada mejor, eso si, si empiezas de cero coma cero ... te recomiendo que leas algun libro antes de pretender escribir codigo por simple que sea.

maloconocido

#44 A mí java no me ha dado mucho de comer pero me parece un lenguaje bastante ingenioso. Otro tema son las aberraciones que se pueden llegar a hacer con él, es muy fácil acabar con aberraciones institucionalizadas en el equipo de desarrollo. No quiero decir que en otros lenguajes no se pueda hacer código degenerado, pero unos te lo ponen más fácil que otros.
Por otro lado, el gran problema de Java, y de la mayoría de tecnologías que tiene un éxito aplastante, es que están condenadas a mantener compatibilidad hacia atrás a la vez que evolucionan, lo que en la mayoría de las ocasiones no resulta en una extensión muy elegante del lenguaje. Un ejemplo muy claro es la carencia de paso de funciones para usarlas como callbacks (otra forma muy potente y sencilla de reutilizar código) algo que existe en lenguajes como js, Python, go, c, etc desde hace décadas pero que en Java han podido incorporar recientemente haciendo una extensión importante del lenguaje. Han llegado a desarrollarse lenguajes nuevos más modernos como scala y kotling que compilan directamente al bytecode de la JVM. Cómo último punto negativo a destacar, es la propiedad del lenguaje, que pertenece a una empresa privada con ánimo de lucro, y estás sujeto en mayor o menor medida de lo que un equipo de marketing y abogados decidan hacer con el lenguaje y la JVM para obtener el máximo beneficio económico, es decir, se pierde libertad.
Por otro lado, una de sus principales ventajas es que se ha invertido mucho en optimizar la JVM, es sorprendente ver cómo rivaliza con lenguajes compilados. Además tiene una base de librerías brutal, que encajan muy bien en el entorno empresarial más clásico. Como guinda, es el lenguaje en el que se suelen desarrollar aplicaciones Android.

keiko_san

#31 Vale, tu ganas

vickop

#37 Eso es parchear algo que está mal pensado desde el principio.

prejudice

#49 Perdona. Te vote negativo por error

D

#80 No, no sólo en eso. En el ejército hay muchísimo código todavía en Ada también.

JungSpinoza

#20 > en teoría WebAssembly promete solucionar este problema de estar casi obligado a usar JavaScript

Lo que hace la gente con tal de no aprender JavaScript. lol

#5 Typescript esta muy bien.

D

#c-1" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3194679/order/1">#1 Más importante que el lenguaje son los principios, conceptos, y técnicas. Entonces se puede usar una variedad de lenguajes. Entender que la programación es muy importante evitar la complejidad y las técnicas para evitarla, porque la complejidad aumentará exponencialmente.

Antes hubiera recomendado comenzar con C++, porque es más duro y entonces los demás serían más fácil, y porque permite entender conceptos básicos que se ocultan en otros lenguajes. Ahora recomendaría algo como Java o C# con una buena IDE, donde la curva de aprendizaje es más suave. Lenguajes como Python no están mal, de hecho tiene muy buenas características, pero tiene una cosa que no me gusta para el momento del aprendizaje, no se necesita la declaración de variables.

j

#79 En mi humilde opinión, aconsejaría un lenguage fácil, si puede que sea orientado a objetos y que el que no te den ganas de quitarte la vida,

Smalltalk...

JohnSmith_

#1 Ah!!. Y si lo que quieres es un pasatiempo y no algo que te pueda ser util algun dia (temas laborales por ejemplo), pues te recomiendo la plataforma Arduino ... programacion de microcontroladores para hacerte tus cacharritos electronicos y tal. Si te gustan esos temas es extremadamente divertido

maloconocido

#166 buenas noches

prejudice

#9 Siempre te queda la opción de TypeScript que para el que no lo conozca es JavasScript pero con tipado opcional y alguna cosilla más

prejudice

#8 Java tiene su encanto, sobre todo si usas Spring. Yo la verdad es que ya me he hecho agnóstico, no me disgusta ningún lenguaje

mirav

#59 A mi utilizar indentacion en lugar de llaves me parece un infierno respecto a la legibilidad.

Por ejemplo, intentar cambiar json por yaml es la peor moda que he visto ultimamente. Encontrar errores en el yaml es muchisimo mas dificil.

Encima si tu escenario es aws cloudformation es aun mas doloroso, por que el yaml se valida en aws, con lo cual tienes que empezar un despliegue sin saber si va a funcionar. No hay validadores locales.

tranki

#6 Totalmente de acuerdo.
La estructura de C ha sido copiada por un montón de lenguajes.
Además con C puedes programar desde un pequeño uP hasta donde llegue la imaginación.
Está el tema de los punteros que cuesta un poco de pillar, pero ayuda muchísimo a entender como se gestiona la memória y como se almacenan las variables.

Y sobre todo, no es un lenguaje interpretado.

D

#119 Ya no existen las versiones Xpress, desde hace por lo menos 7 años. Ahora existe la version "Community" que tiene toda la funcionalidad de la versión completa (Ultimate), con la limitación de solo poder utilizarse para producción en entornos de, como máximo, 5 personas dedicadas al proyecto. A la hora de instalar puede seleccionar los lenguajes y plataformas con las que quiere trabajar.

maloconocido

#33 me encanta js porque prácticamente puedes usarlo en cualquier sitio hoy en día, abres la consola del navegador y a programar.

D

#107 #78 He escuchado la misma frase sobre ensamblador.

mirav

#201 Te vote negativo, te compenso en otro sorry.

En android tienes kotlin disponible (brutal!). Y lo de que la gente se quede con el nivel de lenguaje de cuando estudio, eso no va asi.

Si fuese asi yo no sabria usar genericos, pues empezamos en la universidad con java 1.4. Ahora estoy leyendome features de java 13.

Una de las mejoras de hacer todo microservicios es que puedes correrlos con diferentes jvms. Una app monolitica es monoversion (o deberia serlo si no quieres forzar). Los microservicios mientras mantengan el api como si no son java.

autonomator

¿Que lenguage para empezar a aprender con 50 años?

nosemeneame

lo mejor es empezar con el hello world

mirav

#101 si si, la indentacion tiene que ser perfecta, completamente de acuerdo. Personalmente soy muy tiquismiquis con el formateo.
Pero que un nivel de indentado mas o menos rompa el codigo es lamentable.

maloconocido

#52 transpila

maloconocido

#175 dónde he dicho eso?

fanchulitopico

#c-1" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3194679/order/1">#1 hola. C# o Java (backend), y Angular para frontend (es bastante fácil https://angular.io/). Puedes descargar las community edition. Creo recordar que si creas una cuenta en visual studio tendrás acceso a unos cuantos cursos de pluralsight.

D

#9 Usas TypeScript y listo. No hay más ciego que el que no quiere ver aprender.

vickop

#46 Sí, pero la evolución muchas veces pasa por rehacer las cosas, no parchear cosas que están mal. Me explico: el no tener proceso de compilación ha derivado en tener que hacer un parche para simular que hay un chequeo de tipos. O sea, creaste un lenguaje para evitar ese chequeo en el que luego se lo has metido porque te has dado cuenta de que era necesario.

Mientras el motor que interprete el lenguaje no te obligue a hacerlo, la gente lo seguirá haciendo mal.

D

#8 Y los extremistas de "R" lol

frankiegth

Edit #51. Para #47. Me referia a un 'acceso directo' a las características ofrecidas por el hardware, no al hardware en si.

llorencs

#66 Yo lo pensaba pero con el ECMASCRIPT 6 o 2015 han mejorado bastantes cosas y se acerca un poco al estilo de Python.
Por ejemplo:
class Student extends Person }

vs

class Student(Person):
def __init__(self,name):
self.super(name)

Perdona la falta de sangrías en Python.

1 2 3