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
Pero que un nivel de indentado mas o menos rompa el codigo es lamentable.
Smalltalk...
Pero a modo de curiosidad, hay intérprete de basic de los 80 para Linux, bwbasic se llama
Por algún motivo, todos los estudiados dicen que no vale para nada.
Como desconoces cuántos programas en basic generan html5 a dia de hoy, igual tú afirmación es un poco exagerada
(CC #58)
Pero... Aquellos microcomputadores tenían acceso directo al hw, te digan lo que te digan
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á.
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.
Como anécdota y si te gusta trastear, muy bien, para uso actual, muy poco.
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.
Sirve como lenguaje de programación para cosas caseras y luego sirve para muchas más cosas y se utiliza y se seguirá haciendo mucho tiempo
Ahora, ¿cuál es tu queja con las funciones lambda?
#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.
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.
A una función con nombre puedes documentarla, indicando qué hace y qué significa cada uno de sus parámetros. Casi todos los editores permiten recopilar esa información si sigues un formato y crear la documentación. Con una función lambda, no.
En una función con nombre pones un break point y ves en qué entorno se está ejecutando (el valor de la pila y de todas las variables). En una función lambda sólo ves la propia función (aunque esto depende del depurador).
Cuando estás depurando y se llama a una función con nombre, sabes qué función es y dónde se encuentra. Cuando es una función lambda que se ha pasado a través de varias clases y módulos, y se ha ido renombrando en cada llamada, no tienes ni idea de por dónde te está llegando. Ponte a mirar por la pila, y si estás en un framework de javascript date por jodido.
Por lo menos, en Java 8 resultan útiles muchas veces.
En cualquier caso, comparto bastante lo que dices.
Del mismo modo, mientras un navegador ejecute código que tiene mal el tipado, estará fomentando que no te des cuenta de los errores hasta que la ejecución pase por ahí.
La evolución de los lenguajes de programación a lo largo de la historia ha pasado por ir añadiendo mecanismos que eviten que el programador la cague.
Eso si es programar, lo demás son "apaños", excepto c
La afirmación que dijiste es como decir que ningún lenguaje es bueno para controlar errores porque al final todo es código binario y es muy fácil cometer errores escribiendo código binario.
Mientras el intérprete no se queje porque deje un fallo en un punto por donde la ejecución no pasa en ese momento, estaremos trasladando los problemas. ¿Dices que TypeScript soluciona eso? Pues quiero que el intérprete sea lo único que permita.
Oye, que no empecé a programar ayer. Algún error sí he tenido algún día
Nadie está diciendo que sean los únicos posibles errores que puedes tener a la hora de programar. Lo que estoy diciendo es que es una fuente habitual de errores, y si tienes una herramienta del lenguaje que te lo evita, y te impide cometerlos, mucho mejor. Y no es una herramienta tonta. La fase de análisis semántico de un compilador es algo que evita infinidad de posibles casos de error por los que, por mucho énfasis que pongas, no podrás cubrir en el testeo.
Java igual crees que es la perfección
Tío, no gasto de creencias políticas o religiosas a la hora de debatir temas técnicos. El hecho de criticar una tecnología no me hace amante de otra. Estoy criticando temas objetivos.
Y no es que haga tanto tiempo, sigo programando en assembler, ¿qué va a variar? ¿el set de instrucciones? ¿qué aportará un set de un uP a otro? ¿poder mover y comparar memoria?, ¿instrucciones matemáticas?
¿Qué tan diferente es un uP de otro? Métodos de direccionamiento, directos, indexados. relativos, absolutos?
Dame una hoja de datos, un set de instrucciones y en una tarde te programo lo que quieras.
Todos los juegos de instrucciones son lo mismo con diferentes mnemónicos.
Vectores de reset, interrupciones con o sin máscara, ¿qué diferencia hay un uP de otro?
No, no es difícil, es una tecnología muy clara y repetitiva. Eso si, dependerá del hardware que quieras asociar a ese circuito, pero el uP esta chupao!
De assembler solo he trasteado un poco con un arm en la carrera y con un procesador muy básico que tuve que diseñar y construir, con su traductor de assembler a máquina.
Dame un un chip (marca y modelo) y un circuito no muy complejo (no vamos a hacer un SO) hago el circuito y lo programo.
Piensa que podría ser...
Podríamos hacer algo que use varios cores, por ejemplo leer un archivo de disco, ordenarlo con merge sort y volver a escribirlo.
Déjame un par (o tres) de días para hacerme con la info. y el material.
Cuando lo tenga todo preparado te aviso y me das la señal de salida.
Te aviso sobre el jueves-viernes proximo (esta semana que viene tengo un viaje del curro)
Palabrita del niño jesús.
Para el acceso a archivos si prefieres le instalamos un linux y lo hacemos llamando al kernel. O también se puede ir en plan hard contra la controladora y en vez de sistema de archivos se lee de un rango de bytes y se escribe en otro.
Es lo que más odio del C y C++
Por qué te ha resultado difícil aprender angular?
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.
Txori se usa, se usa hoy en día tanto como cuando fue creado y para lo mismo que fue creado. Simplemente no hay necesidad de cambiarlo.
No es más fácil decir (si quieres meter con calzador que "evolucionan"), algo del estilo?: los poquitos lenguajes que yo uso siguen evolucionando.
¿Algún consejo?
Lo mejor es que existen lenguajes libres que compilan sobre la jvm, con lo que puedes escribir por ejemplo scala y correrlo sobre openjdk.
Tienen los derechos de todo, el lenguaje, compilador, bytecode, JVM, librería estándar... Da igual lo que uses, si quieren denunciarte, te denuncian
Es un hecho, obvio. Y tienes razón. El ciclo de vida no es largo.
Para ser un lenguaje tipado, la serialización/deserializacion en json la resuelven bastante bien.
En resumen, usa tags json, puedes deserializar sobre cosas que son structs (como por ejemplo map[string]interface{} ) pero tendrás que tirar de casting, y por último puedes sobreescribir los métodos marshaljson y unmarshaljson para un struct concreto.
Como extra, go te permite leer json en streaming, lo que te permite ahorrar memoria y reducir latencia.
¿Dónde he dicho lo contrario? Y perdona pero diseñar una CPU no tiene por que hacerse en VHDL.
y escribir un programa en un lenguaje de programación que has inventado también implica programar.
Ahhh otra vez poniendo palabras en mi boca que yo no he dicho. Puedes hacer todos los hombres de paja que quieras y seguir pegándote con ellos si eso es lo que te mola, eh?
Dime una sola cosa que haya dicho que no sea cierta.
Conozco una empresa que usa Kotlin para backend y para móviles y front con Nativescript.
No quieres líos, quieres simplificar lo máximo posible porque estás empezando. Con Visual Studio Express y C# lo tienes todo para hacer pequeñas aplicaciones de escritorio con las que trastear y probar mientras aprendes.
Al fin y al cabo necesitas algo que simplemente bajándotelo y dándole a un botón, funcione. Hay millones de libros de C# por ahí que te ayudarán paso a paso y que, cuando lo termines con sus ejercicios, te da la experiencia necesaria como para poder seguir por ti mismo.
Utilizan la JVM, que es muy diferente.
Yendo un poco más lejos, desde hace muchos años Java siempre ha ido a remolque, cogiendo los aspectos interesantes de otros lenguajes.
Es un infierno. No te lo parece.
Por definición, depender de algo invisible es una mala idea de diseño.
Por supuesto, a todo se acostumbra uno.
Por otro lado, el lenguaje oficial Android es Kotlin, no Java. Aunque se puede usar Java 6, claro.
Pero el desarrollo windows se ve mucho menos que antes, pudiendo tenerlo en un navegador.