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:
|
etiquetas: programación , favorito , odian , recomiendan
C es relevante hoy y no tiene visos de cambiar. Automoción, transporte, sistemas embebidos, microcontroladores TODOS usan C, o si the pones pijo C++ descafeinado
Y oferta de empleo hay en abundancia entre otras cosas Porque no hay gente que aprenda C
Eso sí, ahora, más de 20 años después veo código en Pascal y no me imagino como alguna vez pude escribir algo así.
Y por supuesto, gente joven.
Deberían haber visto lo que había encima de la mesa cuando java entro en la programación.
(favor con favor se paga) por si no conocéis a los australianos estos espero lo disfrutéis (a mi me gustan mucho)--> www.youtube.com/watch?v=g9YKRrnBt4A
-- quizás por edad y salidas profesionales me decante por Cobol aunque Phyton me llama mucho la atención.
En 1987 cuando era un chaval aprendi GWBASIC y conceptos básicos de programación como organigramas, flujos... hasta binario (que no recuerdo en absoluto) pero hice cosas majas con GWBASIC. Simulaciones para una ferretería, un hotel y una peluquería.
Desde 1997 trabajo en artes gráficas, principalmente en preimpresion y producción. Tengo empatía y hago mis pinitos con los equipos, redes, ... Tengo uso avanzado en aplicaciones como Illustrator, Photoshop, Indesing y me defiendo en Cinema-4d y FCX.
Creo que podré hacer el movimiento lateral. Mi situación laboral y personal me va a empujar a tomar un camino distinto al que me ha traído hasta aquí y pienso que por ese lado puedo encontrar algo si me preparo.
Lo único que los resultados visuales pueden ser un poco más jodidos.
Aunque sea una persona que lo vaya a hacer por ocio, creo que lo mejor es aprender las cosas bien y sin malos vicios. Con VBA los malos hábitos se cogen muy rápido.
En mi empresa hay mucho autoaprendizaje y tengo que enfrentarme a código VBA hecho por terceras personas que leerlo es un infierno. Pero en parte, tienes razón que jugando con Excel y VBA puedes llegar a hacer cosillas vistosas rápidamente.
Lo importante es evitar lo de 'cuando tienes un martillo todo se te hacen clavos' independientemente de cual sea tu lenguaje favorito.
¿web facil?
uno facil es python con el framework django
¿web relativamente facil y con posbilidades de encontrar curro rapido?
PHP con el framework Symfony o Laravel
¿mas todo terreno y con salidas laborales?
Java
En cuanto a lo de las salidas profesionales pues depende, es cierto que tiene más salida otros lenguajes, pero si quieres programar sistemas, microcontroladores, autómatas, electrónica, etc ... tendrás que hacerlo en C.
Pensando en el futuro, COBOL. Y si ya manejas el SORT ... la leche.
www.ibm.com/support/knowledgecenter/en/SS6SG3_4.2.0/com.ibm.entcobol.d
Digo que no tendrías 50 cuando lo aprendiste.
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)
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.
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.
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.
#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.
Y mucho ánimo, en lo que te pueda ayudar, me ofrezco para tutorizarte si quieres aprender Programación orientada a objetos con Java.
Now Go Build!
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
Por algún motivo, todos los estudiados dicen que no vale para nada.
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.
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.
MergeSort para la Rasp (ARM assembler)
código:
pastebin.com/ewv1zPsb
ensamblar con:
as -o main.o main.s
luego enlazar con;
gcc -o main main.o
Lo prometido es deuda
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.
Es lo que más odio del C y C++
(CC #10 #1)
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.
Ah!. Para Python salio este manual el otro dia en MNM. Bastante bueno y simple, para empezar te sirve
www.meneame.net/story/manual-practicas-python-desde-cero-pdf-900-kib
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.
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.
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á.
Pero... Aquellos microcomputadores tenían acceso directo al hw, te digan lo que te digan
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.
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.
Lo que hace la gente con tal de no aprender JavaScript.
#5 Typescript esta muy bien.
Smalltalk...
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.
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.
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.
Pero que un nivel de indentado mas o menos rompa el codigo es lamentable.
veraprender.Mientras el motor que interprete el lenguaje no te obligue a hacerlo, la gente lo seguirá haciendo mal.
Por ejemplo:
class Student extends Person {
constructor (name) {
super(name)
}}
vs
class Student(Person):
def __init__(self,name):
self.super(name)
Perdona la falta de sangrías en Python.