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
  • 86 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.








  • Isn’t it technically possible to split browser functions so we can recombine as we like? - i.e. separating the rendering / js engine from everything around the side - managing all the tabs, bookmarks, cookies and passwords, workspaces and sessions, mail, notes etc. In my case, I like the workspace structure provided by Vivaldi, but don’t see why it has to be built on chromium browser. Anyway as a developer I need to test against blink, webkit and gecko, so would be nice to swap them within the same user interface structure.
    By the way, I develop a “javascript-heavy” web-app (interactive climate model) and it seems to be working fine, and fast, in firefox, so I’m not convinced by complaints in the article.



  • For many of them it’s still far away. But I note the ukrainian counter of russian casualties is about to pass a million. While there is ‘fog of war’ it’s easier to say people are missing, so friends and relatives can keep hoping that theirs is the special case. During any prolonged ceasefire, it would become clearer who’s gone forever - which is one reason why P avoids this situation (and also bans NGOs like soldier’s mothers, who used to help connect these dots).






  • In principle I’d like to see specific permissions - so for example playing with gui enhancements should be a lower trust barrier than adjusting and running code, but afaik (correct me if wrong) neither js nor rust have a built-in security architecture that could implement this. Maybe certain types of extensions could just be custom script language without filesystem access, but that’s harder to do.

    About source code linking, last time I heard (maybe they fixed it?) it seemed that trick vscode extensions can link to arbitrary (safe-looking) source repos, which didn’t actually produce the extension.

    I’m less convinced about slowly accumulating publisher trust, as this could be a barrier to honest new contributors, while big actors with a longterm profit or geopolitical motive could game such a system anyway (as they do for social media).

    I do trust the scala tools (build Mill, lang-server Metals, compiler) which adjust my code, having seen them evolve over many years.
    and like the separation of functions (lang-server / editor), so we are less dependent on any one big-tech solution. So I suppose a fundamental issue is what to trust less - big corps with a reputation but lock-in power, or an ecosystem of small contributors which might include tricksters. No perfect balance.


  • It seems so far Zed is cautious, providing api only for specific extensions - i.e. language servers and gui themes.

    add a line … right before you run it

    I run stuff from the command line using a trusted build tool (Mill, in scala), or via a local server (where js is sandboxed).
    But indeed, a tricky language server or AI tool (I don’t use yet) might inject code where I don’t inspect before running it. That’s a risk even with java-based IDEs - java has security permissions, not in js (vscode) or rust (zed), but are they applied…? As for audits, a problem with vscode is the marketplace got too big, so many extensions, many lookalikes, nobody can check them all…



  • I’d like to have no phone at all, I don’t like small screens, nor being interrupted. Problem is that phone apps are now almost obligatory for IDs, transport tickets, passes, banking, etc. So I’d just like a phone-receiver (modem) with a sim card on a USB stick that can enable phone-app-stuff via my laptop or tablet. (Yes some tablets have data sim cards, but we still need sms and occasional phone functions for ‘verification’ etc.). Any suggestions?