• 0 Posts
  • 35 Comments
Joined 2 years ago
cake
Cake day: August 2nd, 2023

help-circle

    • It’d be great if user tags and vote totals were included in settings export/import. Losing those would mean dropping Lemmy entirely at this point since I prefer to tag rather than block most problem users. Tag import is also critical if we want to write a script to import user tags from other apps like Sync or Boost (since it’d just be converting one JSON schema to another).
    • It’s a longshot since I’m guessing it’d be incredibly heavy on API calls, but a way to import vote totals from Lemmy’s up/downvote history. Voyager’s vote tracking is the killer feature that had me drop Boost, but it was weird for the first week or so seeing people I knew I upvote all the time at only +1-3. We can manually set vote totals ourselves so someone could write a script to do most of the work outside of the app (especially if #1 is added), but a native way would be far more convenient.
    • An option for long pressing the post thumbnail to show an enlarged preview of said thumbnail. Sync has this, if you needed an example of what I’m thinking of.
    • An option to change what clicking on the OP or community in post view does. It’s an incredibly minor annoyance, but sometimes on Android I accidentally tap one of them when attempting to open the post.





  • Null safety is orders of magnitude simpler than memory safety. Kotlin is a null safe language by default. Java is infamously not. Anyone who has worked on a mixed-language Kotlin project can tell you how quickly null safety becomes a pain once guarantees break down - and that’s in a language where these issues are flagged instantly and you can “fix” the problem in a couple of characters! Mixed memory safe/unsafe codebases would be a nightmare in comparison.

    Also, C++'s ecosystem consists of deeply entrenched libraries with ancient codebases. Safe C++ might be useful in a decade or two if library maintainers could be pushed to make the switch (good luck with that, if it’s half as much of a paradigm shift as Rust), but by then there will probably be multiple competing language features that claim to solve the same problem. It’s the C++ Way™.





  • The funny thing is the whole commercialization process started with one of the future partners messaging the project lead out of the blue on LinkedIn. I don’t know about you, but taking ideas from a random LinkedIn user doesn’t strike me as good business sense.

    Then again, getting something out of your years of unpaid volunteer work must be incredibly tempting, given how many open source projects have sold out over the years. At least it was to form an actual legitimate company this time, unlike when SuperSU (the Android root solution before Magisk came along) sold themselves to a scummy foreign ad company. That one still ranks as the all time top WTF sale.





  • The main problem with Java (or garbage collected languages in general) as a first language is needing to unlearn the bad habits it ingrains when you move to a systems programming language with manual memory management. Other than that it’s a pretty good first language, though I’d suggest learning a bit of C at the same time just to get a basic grip on things like pointers and stack vs heap.

    Edit: it occurs to me that C# would be the perfect learning language. It’s very similar to Java and an easy first language, but you’d also learn about stack allocation through structs, and can teach pointers using unsafe (though I think unsafe code is still GCed, so this wouldn’t help with the memory management side of things. Haven’t touched C# in fifteen years so I’m not sure how it works anymore).