Ben Matthews

  • New here on lemmy, will add more info later …
  • Also on mdon: @benjhm@scicomm.xyz
  • Try my interactive climate / futures model: SWIM
  • 0 Posts
  • 83 Comments
Joined 3 years ago
cake
Cake day: September 15th, 2023

help-circle
  • This article feels to me really out of date. Scala3 was launched nearly five years ago, The tooling and lib-support was indeed dodgy back then but works very smoothly now. Scala3 also broke Scala2 macros, and some people whose business-model was selling support for clever libraries built on those macros made a lot of fuss (bad publicity). Meanwhile Scala3 has new more robust macros which work fine.

    I develop in scala an interactive climate-scenario model web-app . It’s running the model in your browser (500 years x 250 countries x many gases, sectors, feedbacks etc. - so it’s complex)… The scala code compiles to js (or wasm) -which is what runs this web app - but the same code also compiles with scala-native to run fast batch- calculations or tests. It also compiles to the jvm app like my older java code, but I rarely use this now.

    Scala3 code looks more like python than java - minimal brackets, and much nicer to read and higher level than rust.
    As for tools I just use Zed editor with Metals for LS, Mill for build, and other libs from the lihaoyi ecosystem, no web ‘frameworks’. Scala is both robust and flexible. In general - if the code compiles, typically it runs correctly first time, if not the very-intelligent compiler identifies precisely what to fix where (very different from so-called ‘AI’). So instead of reams of junk ‘tests’, it’s usually just enough to check whether my climate system plots look and behave as expected - higher level thinking.

    As for Kotlin it was effectively a russian-led (at the time) fork of Scala, staying closer to Java - so less flexible, but they did much more systematic marketing - and I suspect some of that deliberately pushed blog posts knocking Scala.
    What Scala lacks is promotion, so those following fashions of this hype-driven world won’t find it.
    For those who use it, it’s a great language, to do complex stuff that scales robustly.







  • I don’t agree with this, the answer is not collapse. To me complexity is beautiful, creating and maintaining complexity is the essence of what it is to be alive. Although I’m no fan of hierarchy or big capital, there are better systems for organising, balancing feedbacks, and we need to keep thinking about ways to do this (which is why we’re here on lemmy).
    While medieval societies based more on tribal loyalty were more unequal and hierarchical than modern ones, as well as sustaining far fewer people until the next famine or pandemic.









  • Well problem with any Lemmy community as such a forum, is that current usage (not necessarily intrinsic to the software) is so ephemeral. So it’s good for discussing breaking news, but not to gradually accumulate discussion of solutions to complex problems, over years. I wish this were not the case, but doubt anybody will even notice this comment, as no longer ‘hot’, and folded away … Rather, a few weeks later the same topic will be reopened under a different post, and we start over again.


  • I agree with most of what you say. I’m a long-time fan of calculating more complex things client side, as you can see from my climate model (currently all calcs within web browser, evolved from java applet to scalajs).
    Also, in regarding social media, keeping the data client side could make the network more resilient in autocratic countries (many), and thelp this become truly a global alternative.
    On the other hand, some ‘trunk’ server interactions could also doing more not less, bundling many ‘activity’ messages together for efficiency - especially to reduce the duplication of meta-info headers in clunky json, and work of authentification-checking (which I suppose has to happen to propagate every upvote in Lemmy?).


  • Thanks, that makes sense if I think about it, but maybe users shouldn’t have to - i.e. the Mdon part-conversation way still seems confusing to me (despite being a climate modeler and scala dev), although haven’t used Mdon much since I found Lemmy. And I still feel that both ways seem intrinsically inefficient - for different reasons - if we intend to scale up the global numbers (relating OP).



  • That makes sense, to store only popular stuff, or temporarily - especially for ‘heavier’ images (although as we see with lemm.ee, that leads to issues when an instance dies). Yet I also wonder about the scalability of just the minimum meta-info, whose size does depend on the protocol design.
    For example with Lemmy every upvote click propagates across the network (if i understand correctly, mastodon doesn’t propagate ‘likes’ so consistently, presumably for efficiency, but this can make it seem ‘empty’). Maybe such meta-info could be batched, or gathered by a smaller set of ‘node’ instances, from which others pick up periodically - some tree to disperse information rather than directly each instance to each other instance ?
    As the fediverse grows, gathering past meta-info might also become a barrier to new entrant instances ?