Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Kaledros

#51240 Spring tiene el problema de que ha crecido como un tumor, mal y en contra del usuario. Con la manía de ir añadiendo cosas (que si Reactor, que si soporte para no sé qué) se ha convertido en un montón de bloatware del que aprovechas el 5%. Con ese 5% te apañas perfectamente y haces todo lo que necesitas hacer, pero el otro 95% es una barrera de entrada muy gorda para el que quiera aprender a manejarse con Spring y además te lo tienes que comer en la librería sí o sí.

El problema de Go es el contrario. Quieras que no, Maven hizo que se adoptara un estándar en la estructura de proyectos de Java, cosa que no existe en Go. Eso significa que con 25 personas trabajando en 25 servicios en un monorepo o te pones muy nazi con la estructura de módulos y de ficheros o cada servicio va a ser de su padre y de su madre. Y por supuesto eso no significa que si cambias de empresa el siguiente proyecto vaya a tener la misma estructura porque Go no tiene estándar en eso ni siquiera de facto, tiene recomendaciones.

A Go le falta un poco de la estandarización que tiene Java para cosas como esa, que facilitan enormemente meterte en un proyecto nuevo porque instintivamente sabes donde está todo y como está todo montado.

2 respuestas
r2d2rigo

#51241 jaja que orden y coherencia le vas a pedir al lenguaje al que su concepto de dependencias hasta hace no mucho era "git clone de master a la hora de compilar y a correr".

1 respuesta
Kaledros

#51242 Ves, es ese tipo de mierda el que Maven y Gradle me lleva solucionando tantísimo tiempo que hacerlo así ahora me parece un atraso enorme. Y cuando pregunto por qué no se ha hecho y me responden "nadie se ha puesto a ello" me da la sensación de que Go lo usan cuatro y a todos les parece bien como está.

1 respuesta
GaN2

#51240 alguna fuente sobre lo de los 3 meses? Revisando documentación interna no veo que dieran la opción de tres meses, de hecho antes de la pandemia no había ni teletrabajo

1 respuesta
r2d2rigo

#51243 que es el javascript de desarrollo de sistemas esta clarisimo, como llegue a hacerse igual de popular vais a flipar con la cantidad de subnormalidades por linea de codigo que van a poder hacer.

Algun dia redescubriran gradle o nuget por su cuenta y fliparan creyendose que lo han inventado ellos, como cuando acaban copiando features que en .net llevamos usando una decada 🤷‍♂️

desu

#51241 JAJAJAJAJA el spiderman que siempre me ha dicho que Spring era lo mejor de lo mejor, despues de tocar Golang ahora odia Spring JAJAJAJAJAJAJAJJAAJAJ calvitooo

#51244 lo mismo me he fumado un porro y no era google. cuando nosotros nos pusieron 1 mes de mierda al año de remote, un par de gente solto la de "en faang son 3"

1 respuesta
Kaledros

#51246 Ni te he dicho que fuese lo mejor ni odio Spring, de hecho lo sigo prefiriendo a hacer las cosas a manubrio en Go para el 99% de casos en los que la performance me la pela, pero hay que tener poca idea de Spring para no ver en lo que se ha convertido. Que tiene módulos enteros que no sirven para nada como Spring Integration, pero te ahorra un montón de faena repetitiva si tienes que hacer todo el rato lo mismo como en la mayoría de los CRUDs.

1 respuesta
desu

#51247 No hace falta que te justifiques.

Tansolo reflexiona en que si me hubieses hecho caso la primera vez que te lo dije, habrias llegado donde estas 10 veces mas rapido.

Gracias a mi si, de nada.

isvidal

#51235 voy a esquiar 26-28 de enero, gran valira, el tarter, con amigos colombianos, pilla algo para esos dias

1 respuesta
desu

#51249 pff no se tete, espero estar en la puta china con mi waifu, recibiendo masajes cada dia, hikeando en las montañas, comiendo pescadito picante de sichuan y wontons de cerdito calentitos, viendo el mejor skyline del planeta

mientras en españa os suben la cuota a los autonomos y el irpf a los ricos

1 respuesta
isvidal

#51250

<- expectativas

-> realidad "21:00, 26 de enero del 2024, en una casa familiar cualquiera de Lleida, "Hijoooo baja a cenar que ya tienes el plato en la mesa"".

9 2 respuestas
desu

#51251

Soltrac

#51251 se está tan solo en la cima....

De tu habitación

1
I

Osea triunfa que alguien pensó en que meter otra vez el concepto de puntero en un lenguaje de alto nivel era algo bueno, el próximo lenguaje de moda le meterán gotos y la gente pajeandose con los milisegundos que tarda en no hacer nada.

3 respuestas
JuAn4k4

@desu es un contable que trabaja en CIMA https://en.wikipedia.org/wiki/Chartered_Institute_of_Management_Accountants

2
Soltrac

#51254 en realidad cualquier variable de una clase que crees en un lenguaje orientado a objetos es un puntero a la clase.

1 respuesta
I

#51256 un puntero a una instancia en todo caso, pero si. A lo que iba es que lo suyo es abstraerse de punteros pero se ve que hay gente que prefiere meter conceptos del siglo pasado en lenguajes porque mola más.

1 respuesta
Seyriuu

#51254 ¿Qué tienen de malo los punteros? Tanto cuando aprendí C como en mi trabajo actual que es con PL/1 (que guarda bastantes similitudes con C) los punteros se usan muchísimo, creas estructuras de datos que las basas en espacios de memoria, haces pases de esas estructuras de datos con punteros, todo el tema de la estructuración de datos sin punteros se me hace bastante raro.

De hecho estuve haciendo un ejercicio en javascript en el que tenía que hacer un árbol de nodos y no tener punteros me parecía lo peor, al final en vez de tener un nodo con un puntero que apunta a otro nodo, tenía un nodo que contiene otro nodo que contiene otro nodo... unas muñecas rusas.

1 respuesta
Fyn4r

#51257 igual lo que hay que hacer es exigir un mínimo de raciocinio a la gente que se dedica a esto

2 1 respuesta
Kaledros

En Go los punteros se usan para testear y para cualquier llamada a una función de la librería que te pida un puntero por parámetro, por lo demás no se usan porque NEWSFLASH: no hace falta optimizar una llamada que sin usar punteros ya tiene una latencia de 15ms salvo que sea un corner case de un proyecto donde bajar de 15 a 10 signifique ahorrar o ganar mucha pasta, que son el 0,5% de la industria. Si tu app CRUD de e-commerce corre sobre una máquina actual y no has cerrado el puño a la hora de alquilársela a Amazon ya se encarga el hardware de darte toda la velocidad que necesitas.

2 respuestas
Soltrac

#51260 yo paso todo por punteros, costumbres heredadas de venir de c++ y tampoco sé si es más rápido o más lento, eso se lo dejo al dios desu

1 respuesta
I

#51258 no se si es que no te he entendido bien, pero en Javascript todas las variables son referencias/punteros, a saber la que liaste ahí.

#51259 mira #51260 #51261 han ejemplificado por qué es mejor abstraer a la gente de conceptos de bajo nivel. Un lenguaje de alto nivel debe ser lo más cercano al lenguaje humano posible, y facilitar las cosas para que el humano se dedique a los problemas de verdad y no a detalles de implementación.

1 respuesta
Seyriuu

#51262 Pues juzgalo tú mismo:

el código

En C por ejemplo, un nodo tendría un puntero que apuntase al siguiente, en este caso un nodo puede tener n hijos, así que un nodo tendría un array de punteros.
En Javascript lo que tienes es una variable (en mi ejemplo, nextNodes que es un vector que aloja objetos de tipo node). Así que al final lo que tienes es Variable 1 contiene variable 2 que contiene variable 3.

A mí al menos me resulta más cómodo trabajar con punteros y controlarlos yo (por ejemplo poder limpiar la memoria a la que un puntero apunta) que trabajar con variables que contienen variables aunque implícitamente el lenguaje por dentro te settee punteros a los que yo no tengo control

3 respuestas
S
#51263Seyriuu:

Pues juzgalo tú mismo:

Pensaba que ibas a poner el copypaste de las sudamericanas adaptado a punteros al leer esta línea, vaya decepción

2 1 respuesta
Seyriuu

#51264 No lo conozco, pero ojalá haberlo conocido y haberlo hecho xD

Kaledros
#51263Seyriuu:

poder limpiar la memoria a la que un puntero apunta

A cosas como estas me refiero. Me parece bien que cada uno se folle su proyecto como quiera y si estás más cómodo así adelante, de verdad, pero si mi app Java corre en una máquina con 128GB de RAM yo le dejo esa faena al GC, que es más que de sobra para que no me entere de nada ni tenga ningún problema. Y lo mismo con Go.

Insisto: si te es más cómodo, adelante. Pero entonces estamos hablando de preferencias y no de necesidad.

1 respuesta
Seyriuu

#51266 Pero cabrón, que mis programas y procesos corren en servidor con arquitectura de 1960 xD, que habrá tenido sus evoluciones y demás pero el core es el que es. La preferencia y la necesidad dependen del contexto.

Saber trabajar bien con punteros aquí es crucial, en otro ecosistema donde estás haciendo una web con un carrito de compra, probablemente no lo sea.

De todas formas, a nivel personal, fuera de la utilidad y practicidad real, sí es cierto que a mí me gusta más hacer las cosas que yo sienta (preferencia y no necesidad) que están bien hechas, esto a veces es performance, otras veces es legibilidad, y otras veces es un combo, pero aunque tuviera un ordenador cuántico seguiría teniendo la práctica de borrar a mano la memoria que he dejado de consumir.

I
#51263Seyriuu:

En C por ejemplo, un nodo tendría un puntero que apuntase al siguiente, en este caso un nodo puede tener n hijos, así que un nodo tendría un array de punteros.
En Javascript lo que tienes es una variable (en mi ejemplo, nextNodes que es un vector que aloja objetos de tipo node). Así que al final lo que tienes es Variable 1 contiene variable 2 que contiene variable 3.

Estas describiendo exactamente lo mismo que en C. En tu ejemplo un nodo tiene un array de punteros (nextNodes) a otros nodos. Tu problema es más semántico que del lenguaje en si. Cuando dices "variable que contiene que a su vez contiene" no se que tienes en la cabeza pero puedes traducirlo a "puntero que apunta a que a su vez es tiene un puntero que apunta a".

Por curiosidad, cuántas veces liberas la memoria de un puntero tu a mano antes de que deje de hacerte falta ese puntero? En javascript sería si mi variable a apunta a un sitio, la apunto a otro o a undefined/null, done, memoria liberada.

Vale leo tu mensaje que trabajas con arquitecturas de los sesenta, pues vale, te admito que se libera más rápido la memoria a manubrio que dejándolo que se haga solo. Pero tu caso es muy particular y no se aplica al 99,999% de casos hoy en día.

1 respuesta
Seyriuu

#51268 mi caso es particular, sí.

La diferencia con js semántica que tú dices es que en C trabajas con el puntero explicitamente y en javascript implicitamente con una capa de por medio, digamos que la diferencia es algo así como la diferencia entre arreglarte tú tu coche, buscando las piezas de recambio que consideres mejor y usar el procedimiento que te guste más respecto a llevar el coche al taller y que te lo reparen allí.

Yo no te sé dar ejemplos ahora mismo, pero cuando estuve haciendo el curso de js eché mucho en falta poder usar punteros

En todo caso, no pretendo defender la necesidad de los punteros (que como he dicho antes depende del contexto), solo me había chocado un poco el comentario que asociaba que si un lenguaje usa punteros es malo cuando a mí me parece bueno poder tener el control sobre ellos

r2d2rigo

#51254 tu es que lo mismo eres un poco joven o no estas muy metido en la materia aun pero el acceso a memoria sin restricciones es totalmente necesario en cuanto hagas algo mas complejo que un hola mundo.

Microsoft se dio de boca con este problema, los lenguajes que targetean .NET tienen el concepto de "unsafe". Es una flag de compilacion con la que puedes decir "se lo que me traigo entre manos, dejame usar punteros que necesito hacer algunas movidas". Bien, pues tanto los juegos que publicabas en XBLIG con XNA tanto las apps que hacias para Windows Phone tenian el acceso a unsafe desactivado para evitar exploits. Adivina por que ninguna de las desarrolladoras grandes se subio al carro de esas dos plataformas.

3 respuestas

Usuarios habituales