i absolutely adore how i'm seeing more people around me discover that programming is actually kinda fun!
aaa
i absolutely adore how i'm seeing more people around me discover that programming is actually kinda fun!
aaa
thinking about how common multiclassing into programming is
it's so cool seeing so many programmers who actually started in completely different fields, and decided that this strange digital lego is actually really satisfying for them
@technomancy oh yeah! this is definitely true
it definitely has an edge against the things people compare it to the most--but there are very few ways it's actually breaking any new ground
@technomancy it's funny that you mention this, because modernizing a mid-sized (~1000 class) codebase is actually exactly what i've been up to~
one thing it really does make abundantly clear is why people don't like java (or rather, the java that everyone who doesn't like it recognizes)
- the dilligent finally usage needed (instead of autoclosing try-with-resources blocks)
- relying heavily on class hierarchies (instead of modern mixins)
- limited generics and Object to get past it
- no lambdas
- no method references
- no Optional
- no switch expressions (just switch-case statements)
- no pattern matching
- zero destructuring
- egregeous boilerplate for classes that only need to hold a couple related immutable values (as opposed to records)
- only platform threads (as opposed to being able to spawn millions of structured green ones no problem)
the before and after in some of these cases is absolutely drastic, but also super-satisfying
but, java is blub, so its new stuff get ignored
@technomancy partially! `Optional.ofNullable()` is an okay thing to shove returns from external libraries into, since you can then treat them the way you usually would, you can also use `.map()` instead of `.flatMap()` to call nullable methods in ways that, if they return null, still are inside Optional
...or you can do what i did and make a Result sealed interface that you can just say Result.of(anything), and then use it in pattern matching like Rust (or chain it into an Optional)
i feel like such an anomaly being a functional dev who actually likes java
then again, we are talking about a language that now has destructuring pattern matching, and quite a few mostly-monads that let you chain together lambdas and method references while still giving you type guarantees
all while never needing to touch null
plus, as a neat bonus, you can interop with it using clojure! my favorite language (or even outright embed it!)
noticing that quite a lot of effort went into getting clojure to work in godot??
https://github.com/arcadia-unity/ArcadiaGodot
what more is that it's made by someone i already talk to occasionally??? :surprised_pikachu:
(i'm so sorry i didn't notice some of your Actually Extremely Cool projects @selfsame)
kinda disheartening to see such a common reaction to a bunch of people wanting to try out the fediverse being "we don't take kindly to your kind around these parts" instead of trying to help people understand better social network hygiene
because most of the new people i've seen really do seem to be trying their best!
also, the reaction to seeing so many people ending up leaving because they "got yelled at, and felt bad" being "good riddance" seems so opposite to the kind of welcoming community that originally helped me feel comfortable enough to stick around, when i was first trying to learn how to use masto
would it really be so bad to put more effort into helping people understand the things they don't know they are doing rather than chiding them for not already knowing?
we all start from somewhere, after all!
oh hi! i do computers, and sometimes draw stuff~ i like lo-fi things and cute aesthetics!i also probably like you(also, #abdl ahead, soooo ๐)
GNU social JP is a social network, courtesy of GNU social JP็ฎก็ไบบ. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.