3 ms·
Quite relatable. Writing a lot of Go and a bit of Rust has changed how I write Python and TypeScript. Most newcomers in startups write Python in a data-oriented
by rednafi 2y ago
Quite relatable. Writing a lot of Go and a bit of Rust has changed how I write Python and TypeScript. Most newcomers in startups write Python in a data-oriented manner, but that’s not the case even in new Java or C# codebases I’ve seen.
One reason I dislike Kotlin is that, despite being fairly new, Java has infected it with OO, and most Kotlin code looks exactly like Java. The whole point of Kotlin was to escape Java’s OO baggage and appeal to a new generation of coders, but it flopped hard. I guess old habits die hard, and way more Kotlin is written by Java veterans than by the younger devs it was supposed to attract.
- pjmlp 2y agoWhat is happened is that a guest language cannot avoid the platform ways of working. Scala, Clojure do support OOP just as well. Glad to know you don't make use of methods, polymorphism and dynamic dispatch in Go, Python and Typescript.
- ngrilly 2y agoI'm wondering if the solution to my problem could be to start using F#, which seems to encourage a data-oriented style over an object-oriented style, while staying in the same C# and .Net ecosystem. F# has a concept of modules, holding all executable code and data. They elegantly replace C# static classes, and are mapped to static classes in the CLR.
- pjmlp 2y agoModules come from ML linage. https://smlhelp.github.io/book/docs/concepts/modules/ https://smlhelp.github.io/book/docs/concepts/modules/ However they aren't as powerful, because ML modules are the way to do OOP like stuff, via what is called functors. F# as .NET language naturally has other mechanisms for this, hence why it is a basic module concept, more in the linage of Modula-2 modules.