195 meneos
2147 clics
Tras la partida de Guido van Rossum, Python será gobernado por un consejo de cinco personas
A mediados de 2018, Guido van Rossum, el creador de Python y también conocido entre la comunidad como el "Dictador Benevolente de por Vida" del desarrollo del lenguaje, decidió que abandonaba el barco y se tomaría unas vacaciones permanentes tras 30 años al mando. Sus razones: estaba cansado del odio y de tener que pelear por propuestas para mejorar Python.
|
comentarios cerrados
Python tiene tipado fuerte, pero no sabes lo que és ni por qué. Python lo que es es dinámico. Prueba a meter otro tipo en una variable que ya lo tenga, a ver qué pasa.
Javascript o PHP tienen tipado débil por ejemplo. Python no.
No tienes ni puta idea. Y lo peor es que el mundo de la programación está lleno de ignorantes que hablan sin saber.
Aprende un poco anda:
www.artima.com/weblogs/viewpost.jsp?thread=7590
en.hexlet.io/courses/intro_to_programming/lessons/types/theory_unit
El episodio de debates que llevó a quedarnos sin una de las figuras más importantes de la ingeniería informática (el tiempo lo pondrá en su sitio) fue bochornosamente trivial, promovida por un grupo de ofendiditos con más ego que talento.
Tuve la oportunidad de charlar con él hace casi 10 años, y era un tipo humilde y asertivo, poco que ver con el arquetipo de rockstar developer al que nos tiene acostumbrados este tipo de profesionales. Definitivamente no merece lo que le ha pasado.
hub.packtpub.com/why-guido-van-rossum-quit/
Más o menos, en la PEP 572 se sugería incluir el operando := para asignar variables usando expresiones, así :
while a:=b.read(10):
print(a)
Es algo trivial porque si no quieres usarlo basta con omitirlo sin más repercusión en retrocompatibilidad.
Por diversos motivos parte de la comunidad se puso en contra, pero algunos decidieron defender su postura apoyándose en ataques personales a Guido.
Guido hasta hace poco era el Dictador Benevolente Vitalicio del lenguaje, y tomaba las decisiones de forma colegiada, pero bajo su firma. Desde entonces ha decidido que el que quiera peces que se moje el culo, especialmente cuando los peces eran gratis.
Con Java nunca lo habríamos conseguido.
Ahora solo nos queda enviar al paro o a la cárcel a todos los que aún defienden arquitecturas basadas en Java y el mundo por fin volverá a ser un lugar hermoso y próspero.
Cc#20
Relájate que dudo que el tema sea tan serio.
Ha sido leer tu comentario y sentir una ola de odio q me ha hecho votarte negativo...
Te compensare. Aunq tambien te digo q hay soporte para corchetes y para llaves: se usan para listas y para mapas.
Al final resulta que terminas escribiendo con las estructuras bien ordenaditas con tabulaciones, lo cual hace innecesarias las llaves que indican el comienzo y el fin: la propia indentación lo indica. Y eso es lo que hace python. A mi me parece genial porque eso te asegura que las cosas se van a ejecutar como las estás viendo. No hace falta un indicador de donde comienza o termina algo. ¿Cuántas veces una llave mal puesta te vuelve loco hasta que descubres lo que pasaba? Al ser la indentación la que manda eso no puede ocurrir.
"El camino al infierno está empedrado de buenas intenciones"
Yo programo en muchos lenguajes
Ya...
lo que no podéis hacer todos es juzgar lo que no conocéis
Pues que has sustituido la referencia de a al objeto 4 de tipo "int" por una referencia al objeto a de tipo "str".
Además de demostrar que no tienes ni idea de´la diferencia entre "débilmente tipado" y "dinámicamente tipado", por supuesto.
En términos que hasta alguien más empeñado en diatribas barriobajeras que en aprender algo podría entender: en Python las variables no son cajas, son etiquetas.
Sucede que en forma presencial la gente no se atreve a trollear o a abrir tanto la boca sin saber.
Cuando alguien hace una afirmación de ese tipo desde la ignorancia y con la intención de creerse superior y provocando, hay que ponerle en su sitio. No por el propio sujeto, que por mí puede comer una ensalada de cuchillas de afeitar o criar champiñones, es por no extender mitos sobre la materia repetidos hasta la saciedad una y otra vez y que como ofrecen razomaientos fáciles pueden contagiar a gente que tiene menos experiencia.
Y este es un troll conocido.
Y sí, Java es un horror, en eso estamos los dos de acuerdo, yo lo estoy sufriendo ahora. Pero el mundo del tipado estático es infinitamente más amplio que Java.
Ya he visto muchas veces quitar al "malvado dictador" para instaurar una democracia y que la cosa no funcione ni un poco. La mayoría de las veces nadie se atreve a reconocer que el dictador realmente no lo era, y que la ausencia de orden posterior es el principio del fin. Lo he visto en foros, en comunidades virtuales y en mogollón de proyectos.
El infierno está cargado de buenas intenciones ... / #5
Un año (aún) le queda a ese pobre desgraciado que, tras una larga vida y una impecable hoja de servicios, ha tenido sufrir una lenta agonía a manos de una jauría armada con discos flexibles y atrincherada tras oxidados mainframes que, habiendo olvidado lo poco que alguna vez supieron sobre programación, se empecinaron en rechazar los modestos cambios que, como implica el cambio de major, recibió hace ya nueve años.
Te pongo un ejemplo ... tienes que hacer un IF para ver que se cumple una condición y "disparar" algo ... un proceso, una función, un callback ... lo que sea. Si eso mismo lo haces con POO y un patrón de observadores, ese proceso se disparará solo, sin que tengas nada que comprobar. La condición va implícita en el diseño.
Mola la POO. MUCHO
Y gracias por el comentario de las interfaces. Así es ... un parche porque no admite herencia múltiple. Y yo me pregunto si es un parche porque sí o es un parche porque precisamente el ser tan fuertemente tipado hace muy difícil que el compilador pueda con esa herencia múltiple.
en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem
El problema de la herencia múltiple es que da lugar a ambigüedades en el caso de que dos o más clases padre definan métodos con el mismo nombre, o que dos o más clases padre hereden de la misma clase abuela. Python lo resuelve aplicando la herencia secuencialmente, en el orden en el que las clases están escritas en el código. C++ utiliza un modelo más complejo pero flexible. En general es un problema bastante difícil de resolver.
Los creadores de Java y de C# decidieron no permitir herencia múltiple, y al final han acabado metiendo interfaces con métodos con implementación por defecto, lo cual es una puta ñapa terrible.
A ver. Reconozco que tengo cierta querencia por Python ya que es el primer POO que aprendí. Y reconzco que Java y C# tienen su cosa. Por ejemplo .. gracias a Java me hice mucho más "fuerte" en la POO ya que Java es la única opción que te deja. Y eso me ayudó a ser mejor y a cambiar mi manera de pensar como programador.
Yo aprendí Python allá por el 2005, porque todo el mundo decía que es un lenguaje maravilloso, y es cierto que se aprende en seguida y que puedes hacer mucho con poco esfuerzo, pero cuando el programa crece se vuelve inmanejable. Java tiene muchas otras malas decisiones, como la carencia de tipos enteros sin signo, la diferencia entre objetos y tipos primitivos, la carencia de tipos por valor, etc. Y luego el puto ecosistema, que está horriblemente inflado y para hacer cualquier tontería tienes que instanciar 20 clases
Lo que yo digo es que el que sea fuertemente tipado o no lo sea, no lo hace mejor o peor. JavaScript es una caca ... pero me gusta lo que se puede hacer con él. TypeScript es básicamente lo mismo pero en "bonito" y con mucha mejor estructura y, sinceramente, creo que la diferencia entre JavaScript y TypeScript es, básicamente, que ves de una manera más sencilla la estructura de los datos y de las clases. Nada más. Hacen casi lo mismo y se ejecutan más o menos en el mismo tipo de entornos.
Una cosa es dinámico/estático, y otra fuerte/débil Lo primero tiene una definición clara, lo segundo no, aunque se suele usar como sinómino de conversión automática de tipos. JavaScript es dinámico y débil, Python es dinámico y fuerte. En general, casi cualquier programador sensato considera el tipado débil como un gran error.
Lo de TypeScript, ¿te parece poco? En mi experiencia cuando programas pasas un 10% del tiempo escribiendo código, y un 90% leyendo. Cualquier cosa que ayude a hacer el código más comprensible es buena.
Luego te encuentras con mierdas como el JQuery que para mi gusto es insoportable. Tiene una sintaxis de locos y hace que cualquier chorrada sea una mierda difícilmente legible.
Yo jQuery lo he usado poco, para hacer cuatro animaciones sencillitas y algún formulario dinámico, y para según que cosas te facilita mucho la vida. Para cosas complejas puede ser bastante loco, pero la verdad es que el desarrollo web en general me parece una puta locura
Y precisamente cuando tienes que manejar estructuras de datos complejas es cuando mas útil resulta el tipado estático. Yo en lenguajes como C++ o C# he definido estructuras muy complicadas con mil templates que en Python serían imposibles de manejar. En un lenguaje estático el compilador te ayuda a verificar que haces un uso correcto de los tipos y de las variables, en uno dinámico tienes que escribir mil tests. ¿Por qué tengo que perder el tiempo verificando yo algo que el compilador puede hacer por mí?
Te lo vuelvo a decir, ni C# tiene porqué ser ningún horror, ni Python es esa maravilla que dices. He visto código en C# muy legible, y código en Python que te hacía querer arrancarte los ojos.
Y en serio, mira más allá de estos lenguajes. Mira lenguajes como Haskell, Rust, la familia ML, Scala, Kotlin, TypeScript, etc. como ejemplo de lenguajes estáticos modernos.
También imagina que quieres tocar un código con el que no eres familiar, con el que quieres hacer algo simple, o que tienes que añadir alguna funcionalidad nueva (que quizás ya no sea tan simple). A veces tener diseños muy elaborados se convierte en un obstáculo en el que la lógica de lo que quieres hacer no es evidente porque está oculta en el diseño informático.
Han derrocado más personas válidas los ofendiditos que hacen bandera de cualquier gilipollez que cualquier otra cosa.
Decir que C tiene tipado fuerte cuando un byte es lo mismo que un char y un puntero puedes cambiarlo por un int y otras muchas promiscuidades y puedes mezclarlo todo como te dé la real gana es de risa. Tiene un tipado tan fuerte que no paran de salir vulnerabilidades cada poco precisamente por ello.
Pero cuando la neurona no da para más, la única deducción posible que os queda mientras os babáis encima es que si ves los tipos es tipado fuerte y si no los ves no.
Si vas a contestar, intenta no cagarte encima por el esfuerzo.
#4 #3 Lo que si es un crimen es la confusión espacios, tabs, y mierdas, que encima no se ven.
Si haces un paste de algun codigo en un sitio jodido, preparate a sufrir, para encontrar al puto tab (o espacio) de más.
Típico ejemplo de poner algo cool que nadie pedía, con resultado desastroso.
Yo programo en muchos lenguajes, y cuando me toca python me entran los picores solo de preparar el entorno, sorry.
Toda la lógica de infraestructura está escondida y se expresa en forma de DSL.
Con c podias tener 1000 errores en 100 lineas de codigo que compilan. Es un lenguge que si te apetece abres llavas y te programas una rutina en ensamblador. Un buen programador en c es para un semi Dios y un programa bien hecho en c le da mil patadas a cualquiera. Las cosas serias se programan en c, kernel, motores3d, etc.. Ahora bien, subiendo un nivel estan todos los demas, realmente cada lenguage tienen sus cosas buenas y sus cosas malas, y estan orientados a cierto tipo de problemas.
Lo que si he visto ultimamente es la aparicion de chorrocientos frameworks varios...Eso si me pone de los nervisos.
Aprender y debugar programas es un infierno, en mi caso lo digo especialmente por java. La gente la llama magia, yo la magia negra. Codigo que se ejecuta automaticamente sin yo haberlo llamado, 100Mb de codigo para poner "Hola mundo", metodos que si les cambias el nombre no funciona, eso si me pone frito.
Python me lo recomnedaron porque aparentemete no tenia las historias de java, pero el tema de identado si me parecio peligroso.
proyectoexperimento donde no sabes:- Qué vas a poder hacer y qué no.
- Cómo lo vas a programar.
- Dónde vas a acabar si te lías a añadir cosas.
- Casi ni siquiera qué uso va a tener.
Ya digo que es lo que tiene la programación "casual", que se te ocurre una idea, y primero pruebas a ver qué sale, y luego si funciona lo implementas un poquito mejor y intentas añadir algo, si funciona añades más cosas... así hasta que o bien llegas a una barrera infranqueable (para mi) o bien crees que la idea está lo suficientemente trillada y no da más de si, y como mucho lo decoras, lo traduces al inglés o lo subes a una página web para que la gente lo use, subes el código a Github con algunos comentarios y tratando de explicar lo que haces como buenamente puedes, y finalmente te desentiendes.
Luego miras el código... y vale, será una birria, pero si no se hubiera hecho así, no habría nada.
A veces pasa que tienes la idea, intentas desarrollarla... y no da más de si desde el primer momento, y lo deshechas.
Es que a veces uno ni siquiera sabe qué va a hacer 30 líneas de código después. Solo tienes un fichero en formato propietario con una imagen incrustada dentro, y la quieres sacar a un "canvas" o a lo que sea mediante JavaScript y una página web. Pues bien, primero empiezas mirando si eres capaz de leer un determinado byte del fichero. ¿Eres capaz de leerlo? Guay. Luego miras a ver si puedes poner un puntito rojo en un "canvas" (lienzo), y pruebas a poner un pixel rojo, y ahí empiezan los problemas, que por el motivo que sea, el "canvas" no hace ni caso, miras códigos, haces cambios a ver si suena la flauta... hasta que al final consigues poner un punto rojo, y entonces ya es cuando te pones a enlazar una cosa y la otra poco a poco hasta que consigues lo que intentabas al principio.
Y luego si todo va bien, lo mismo intentas añadir alguna funcionalidad nueva, algún botón para hacer algo que se te ocurra...
Pero primero tienes que conseguir eso, ser capaz de leer el fichero y de conseguir colocar ese contenido en un lienzo. Para mucha gente es algo obvio, pero para mi, que he estudiado una carrera con una única asignatura de programación... no.
Python es escueto, pero no tanto como tu lenguaje, capaz de demostrar que alguien no sabe programar correctamente en una sola línea
Con jaleos de Java (tanto el de cárnica como el de Android) o peor el invento ahora de nodejs que hasta ellos mismos lo reconocen con cosas como los boiler plates o los cli o los --init para empezar a hacer un hola mundo.
Nada es obvio y haber estudiado una carrera dedicada a la programación o haber aprendido por tu cuenta requiere (hoy en día gracias a Internet) prácticamente el mismo esfuerzo. Ese esfuerzo lo puedes hacer en tus ratos libres o de 8 a 2 en la facultad. Pero costar a todos nos ha costado.
En cuanto a lo otro que dices es que yo creo de verdad que "no has llegado". Sin ningún ánimo de ofender y sin ir de sobrado. Yo puedo hacer 3 pruebas o 23 para ver cómo coño pongo ese puntito en el canvas pero en cuanto lo he puesto, esas pruebas no son EL CÓDIGO, sino que pasan a formar parte del código. Que es muy distinto. En cuanto resuelvo el problema, le meto estructura a todo y luego lo dejo crecer.
Prueba la próxima vez y verás que aunque cuesta esfuerzo, cuando lo has hecho dices .... coño, qué bonito!! Porque no se trata (para mí) sólo de lo que haces ... sino de cómo lo haces. Y el código a veces lo sientes como si fuera poesía ... lo ves hermoso y no puedes parar de mirarlo una y otra vez. No sé .... tal vez esté exagerando bastante pero yo me siento mejor cuando he escrito algo bueno. No solamente cuando he resuelto un problema (que también me hace sentir bien).
Pero Python está en mi top. Me pareció muy intuitivo desde el principio, y eso se agradece. Lo he usado sobre todo para hacer servicios y demonios, y un poco de escritorio con pyqt hace tiempo.
No te lo vayas a tomar como un ataque, hablo de una perspectiva profesional, si es por diversión, no es tu trabajo, etc... Cualquier cosa vale, pero en un trabajo... Cualquier codigo "para leer datos y mostrarlos por pantalla" termina creciendo y a la larga pagas el no haber dedicado un rato a plantear el problema...
Además, a las mujeres les gustan los tíos inteligentes y con buenos trabajos.
Y en tu comentario #107 me hablas de GTK y de los frameworks. Lo primero es que GTK es un truño, usa Qt Lo segundo es que al final es lo que yo te digo, no es tanto cuestión del lenguaje como del entorno que utilices. Los frameworks para Java están todos infladísimos por alguna razón que aún no termino de comprender. Pero prueba a trabajar sin un framework y me cuentas. Los lenguajes dinámicos exigen muchísima más disciplina si no quieres que te explote todo.
Y en serio, olvídate de Java y prueba un lenguaje estático moderno. Incluso C++17 es mejor que Java
De hecho C y C++ como lenguajes son una mierda pinchada en un palo en este aspecto. Son auténticos coladeros de problemas invisibles. Mucho tipado y mucha historia y no sirven para evitar casi nada en la práctica.
Para la mayoría de casos de aplicaciones no críticas, es sólo relativamente relevante.
Que cada puta línea de código que escribo sé para qué es y por qué coño esta ahí. Eso no pasa con Java o con C# que si no es por el IDE que te mete código a cascoporro sin saber por qué ni para qué, no podrías escribir ni un puto programa de tirón.
Y de verdad que flipo con todas esas mierdas de la inyección de dependencias. Son parches (malos) por lo fuertemente tipado que es el C# o el Java. Parches para hacer lo que con Python haces de una manera natural ... sin darte apenas cuenta.
Por no hablar ya de leer código que ha escrito otro. En mierdas como Java a veces es una puta pesadilla.
Pero bueno, sigue diciendo chorradas sin saber.
No tengo claro lo d que simplemente puedas ignorarlo cuando no deja de ser un lenguaje de uso común. En gran medida el propio lenguaje se convierte en decálogo de normas de uso. Ese lenguaje y su sintaxis restringe las cosas que puedes hacer.
Con cualquier otro lenguaje en el editor pulsando un shortcut me queda todo auto indentado, en python eso no es posible.
Ya me direis donde está la ventaja.
En proyectos complejos todas estas mierdas se notan bastante, hice un proyecto con pyqt y nunca mais, mucho más comodo y rápido programar en c++.
Has pasado de hablar de juguetes a decirnos que picas en un pizarrin
El solo consiguio empezar con 1 lenguaje de programacion y acabar con 2....
Conste que adoro JavaScript, porque para cosas pequeñas va bastante bien, solo necesitas el Bloc de notas de Windows y el mismo navegador FireFox, pero por favor, definir una matriz así es estúpido:
stackoverflow.com/questions/8301400/how-do-you-easily-create-empty-mat
En C es como un vector con unos corchetes adicionales y con esas puedes hacer tantas dimensiones como necesites.
Me parece increíble que C, siendo más rígido, maneje mejor algunas cosas que JavaScript. Y bueno, eso se puede arreglar, porque o de no separar con llaves de Python, pues eso, para rehacer el lenguaje desde cero...
A ver, no dudo que a ciertos niveles no pueda haber una forma de programar donde no haya IF, pero a un nivel más general... la gente usa todo lo que tiene a mano y conoce. Si a mi me dices que vuelva a programar una miniaplicación llamada [TEXTO ELIMINADO POR LA CIBERPOLICÍA] o esta que hace [TEXTO ELIMINADO POR LA CIBERPOLICÍA] sin IFs o con menos IFs... posiblemente fuera incapaz de hacerlo.
Es lo mismo que los que dicen que no hay que poner código en el HTML y ni siquiera quieren la llamada a las funciones de los botones... si, muy bien, pero da la casualidad de que a mi eso si me funciona, y el rodeo propuesto no, y yo lo que quiero hacer es leer la imagen de un fichero [TEXTO ELIMINADO POR LA CIBERPOLICÍA] y no un programa que se adhiera a un criterio que en mi opinión complica las cosas de forma innecesaria.
Al que esté programando a alto nivel, bien, pero a los que programamos de forma casual, que tenemos que mirar Google cada poco, pues eso, que pondremos IF, pondremos código en el "onclick" del HTML y seguramente el código de más vueltas de las necesarias, pero al menos funciona, se puede compartir para que lo use quién lo vea interesante, y eso es lo importante.
¿De verdad merece la pena meterse en POO, hacer complicados diagramas... cuando se busca algo relativamente simple y no ganas dinero por programar? Porque vale, a lo mejor no son aplicaciones escalables, mantenibles y todo eso, pero.... ¿es que a caso iban a ser escaladas? Demasiado si se las mantiene corrigiendo algún error que pudieran tener.
Hay programación a alto nivel, y también a bajo nivel, de gente que usa poco más que el Bloc de notas y como "gestión de versiones" copia y pega el fichero para hacer duplicados, o comparte el código en Github usando arrastrar y soltar.
A ver, que tampoco se cae el mundo por esos defectos, pero a uno le gustaría tener un poco más de control.
Los proyectos que son 'libres' o para la comunidad de este calibre: lenguajes, frameworks, etc... no deberían ser el apéndice de nadie. "Muere" el ser que alimenta al apéndice, desaparece la esencia del proyecto y con más o menos suerte podrá o no sobrevivir y evolucionar.
Lo ideal es justamente tener un 'steering committee' o similar que se encargue de gestionar las necesidades de la comunidad de una forma justa, objetiva y democrática. El resto no es más que alimentar el ego de un pseudo-dictador o de un oligopolio que como no suelta el control de su apéndice es quién sabe más del mismo y se puede dar el lujo de decidir qué es bueno y qué no (luego que algunos no se quejen si surge alguna alternativa más democrática que la comunidad adopta en favor de ese apéndice).
Ejemplos no faltan... empezando por el kernel de Linux, cuyo desarrollador principal y creador recientemente se tuvo que tomar unas vacaciones para analizarse a sí mismo y a su ego.
Y creo que nadie discute la experiencia y conocimiento de ésta gente, simplemente la popularización, uso y finalmente dependencia de multitud de otros proyectos hace que algunos de estos se consideren a sí mismos como los únicos que pueden impartir conocimiento y sabiduría sobre su 'creación'. Es decir, el hecho de crear algo y que se popularice no implica que no surja alguien que acabe sabiendo más que tú, y quizás el problema está ahí... que la competencia es feroz y ataca al ego directamente.
Sigues confundiendo fuerte y débil con dinámico y estático.
Python no hace conversiones implícitas como te lo permiten C, Visual Basic o JavaScript. Python está más en la línea de Java.
"Smalltalk, Perl, Ruby, Python, and Self are all "strongly typed" in the sense that typing errors are prevented at runtime and they do little implicit type conversion, but these languages make no use of static type checking: the compiler does not check or enforce type constraint rules. The term duck typing is now used to describe the dynamic typing paradigm used by the languages in this group."
raster@debian:~$ python3
>>> "hola" + 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>>
raster@debian:~$ python2
>>> "hola" + 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>>
raster@debian:~$ gjs
gjs> "hola" + 5
"hola5"
gjs>
Con lo que, aunque en la función puedes meter variables con cualquier tipo, si luego en el código de dentro de la función los tipos no son los esperados, en python acabará dando un error, pero en javascript probablemente no lo de. De ahí que yo, personalmente, sí considere a python como de tipado fuerte, y a javascript de tipado débil.
(aunque luego hay excepciones, como "hola" * 5, pero bueno, ese es un caso específico, en mi opinión )
Luego lo de que C es de tipado débil, yo diría que no, porque aunque se pueden pasar tipos similares (meter un char donde hay un int), te envía un warning siempre que haga una conversión "problemática". Y un programador que acepte que su código en C compile con warnings no es un buen programador, en mi opinión.
No, tiene tipado fuerte... opcional Lo que se conoce en ambientes académicos como "tipado regulero".
Eso en python no pasa. A mí no me pasó ni cuando empezaba a trabajar con él.
Y esos problemas que tú cuentas los resuelves antes de empezar a escribir planteando la arquitectura y, sobre todo, la estructura de los datos. Que siendo dinámicos en Python y no siendo fuertemente tipado te puedes hacer exactamente el mismo planteamiento pero sin mierdas como los "interfaces", por ejemplo.
Pero la diferencia de hacerlo con POO es que esa estructura se va haciendo grande de una manera casi natural. Cuando no trabajas así, en efecto, el final es de traca. Tienes un huevo de funciones desperdigadas e inconexas que al final se te hace imposible manejar. Eso no pasa con POO ya que aunque el experimento, programa o proyecto sea "casual" tiene estructura nada más empezar.
Como te dije antes cuando se te mete la POO en la cabeza ya no puedes pensar de otra manera pero es un poco como aprender un idioma ... primero vas traduciendo mentalmente a tu idioma materno y acabas sin darte cuenta simplemente expresando tus ideas en ese idioma. Y cuando llegas ahí, ya no hay vuelta atrás.
PERO
Lo que yo digo es que el que sea fuertemente tipado o no lo sea, no lo hace mejor o peor. JavaScript es una caca ... pero me gusta lo que se puede hacer con él. TypeScript es básicamente lo mismo pero en "bonito" y con mucha mejor estructura y, sinceramente, creo que la diferencia entre JavaScript y TypeScript es, básicamente, que ves de una manera más sencilla la estructura de los datos y de las clases. Nada más. Hacen casi lo mismo y se ejecutan más o menos en el mismo tipo de entornos.
Luego te encuentras con mierdas como el JQuery que para mi gusto es insoportable. Tiene una sintaxis de locos y hace que cualquier chorrada sea una mierda difícilmente legible.
Y gracias por el comentario de las interfaces. Así es ... un parche porque no admite herencia múltiple. Y yo me pregunto si es un parche porque sí o es un parche porque precisamente el ser tan fuertemente tipado hace muy difícil que el compilador pueda con esa herencia múltiple.