#39570 Yo es que no entiendo en qué putas mierdas piensa Google la verdad, teniendo Kotlin y su DSL se ponen a meter DART que es una putísima mierda infecta para un Framework que podría ser el definitivo.
#39571 Para añadir un poco de perspectiva: Dart salió antes o al mismo tiempo que Kotlin cuando Google debía andar en juicio aún con Oracle y no tenían necesidad alguna de andar dando soporte de primera clase a otros lenguajes.
#39569 Lo toqué muy poquito, pero la sensación que me dio es que como quisieses salirte del framework a hacer cosas que no estaban contempladas, que en su momento era la gran mayoría, estabas jodido. Por ejemplo usar la cámara, que o no estaba o yo no lo encontré en la documentación. Imagino que en gran parte se debía a que no llevaba ni diez horas usándolo y a que acababa de salir. Lo vi muy potente para hacer UIs y aplicaciones muy "chorras".
Ahora habrá avanzado mil y tendrá cosas que en su momento no estaban, como por ejemplo lo de la cámara que he visto que ya lo han metido. En cuanto al tema de Dart/Kotlin no me meto porque cada uno se folla sus lenguajes como quiere. A mi Dart no me disgusta, pero se ganó la fama de ser el JS mierdoso de Google y de ahí no ha pasado.
Además del politiqueo interno que tienen en Google, al parecer había gente bastante potente dentro de Google que empujaban por usar Dart everywhere
#39572 De hecho Dart lo crearon para quitar de en medio a JS (aunque digan que no, los emails que se filtraron en su día echando pestes de JS y el por qué crearon Dart lo demuestra)
Sinceramente, que hayan hecho Flutter con él es por darle algún tipo de uso y, si se adopta, no depender de lenguajes ajenos a Google.
#39566 si el motivo de que las empresas usen ionic y derivados es para que los propios web dev al terminar el monstruo que tengan lo intente hacer funcionar en movil
#39577 flutter tiene pinta de ser el puente con fuchsiaOS, si es que sale. De haber un nuevo framework será inspirado en este fijo
#39497 Yo tengo un objecto "pacman", que sería un punto básicamente. {x, y}
Mi idea es tener un repositori con casos tipicos (de diseños OOP) pasados a funcional. he empezado con un ejemplo cualquiera que se me ha ocurrido. Tengo un objeto y le hago una función para mutarlo. Es probablemente el caso más básico de OOP no?
Una opción es hacer fold con una lista de "operacioens" y devolver el resultado.
#39583 Es algo que te aconsejan en todos lados, re inventar los patrones para entenderlos.
Si no sabes implementar a mano algo o hacer la demostración es que no lo sabes.
Mucha gente dice que sabe git, pero cuantos se han imlementado una versión?
#39576 Ojalá. Pero no es tan compatible. De todas maneras ionic funciona que es una locura de bien, especialmente comparado con React Native en mi experiencia.
#39588 Hdps no os riais de mi, hace poco que decidí hacerme artisan. Estoy aprendiendo! podríais ayudar alguna vez :-(
#39581 Si quieres nombrar una clase que tiene estado y hace ops con su estado es fácil, solo basta describir lo que hace (no como lo hace). Pero tienes que saber describir lo que hace y no lo has hecho.
Lo único que tienes ahi es un mover una coordenada (que llamas state, pero que es position). Y al ser una fn pura, no tiene estado ppr lo que tampoco tiene sentido que este en un objeto.
Lo que tienes es:
VectorOperations.add(point, vector)
Y si quieres varios:
VectorOperations.add(point, vectors[])
Si quieres que la position este en el estado de pac y pac sea el que se sepa mover yo optaría por nombrarlos: right/left/up/down. Por eso de "encapsular". Que yo sepa pac no puede teletransportarse.
#39593 A ver, en la FP no se trabaja con clases. 1. No tengo clases, no muevo posiciones, state es una abstracción para representar los cambios de pacman. (entity / value)
2.Ese código que tú has puesto esta entre abstact data y fp. (nivel 2,5 en mi código, yo estoy haciendo la 4, hay 5 niveles) Y la segunda versión no es muy correcta... Tiene problemas a simple vista . No se puede componer con facilidad. Habría que ver en detalle tu servicio.
Imagínate que las operaciones de move pueden fallar. Pueden lanzarse async etc
Cuando llegue a casa te pongo más cosas por si te apetece ponerte a prueba.
1 oop
2 abstact data, esto se lo inventa, es básicamente sacar el estado
3 fp
4 monad? Las operaciones pueden fallar, composición, referencias transparentes etc
5 railway, es componer monads y componer typos de error
Luego hay, que no haré
Batch (definir comands)
Event source (comands + eventos)
Y no me acuerdo xd
2.Ese código que tú has puesto esta entre abstact data y fp. (nivel 2,5 en mi código, yo estoy haciendo la 4, hay 5 niveles) Y la segunda versión no es muy correcta... Tiene problemas a simple vista . No se puede componer con facilidad. Habría que ver en detalle tu servicio.
#39595 Basicamente has definido la suma de un vector y la has llamado move y todo esto devolviendo copias con el nuevo estado del objeto.Podrías haberlo hecho con los números naturales para haber llegado a esta conclusión:
1.sum(1).sum(1) o 1 + 1 + 1
y te ahorrabas un par de días de comeduras de cabeza.
Sigo sin entender a dónde quieres llegar con lo del Pacman y los ejemplos que estás poniendo, has creado un value type, el resto es palabrería.
#39586 Eso que dices es mentira: La gente no dice que sabe hacer un git. La gente que sabe git, sabe utilizar la funcionalidad que expone git, no su implementación ni como hacer un CVS
Entiendo lo que quieres decir (y estoy de acuerdo con ello) pero el ejemplo que has puesto es estúpido. Es como decir que un piloto de aviones tiene que saber construir un avión.