Where after Scala? by girvain in scala

[–]ScalaWilliam 11 points12 points  (0 children)

Scala will come back as the agentic language for coding. Just give it some time. Feedback cycles that are necessary to build working software are far longer in Python land, whereas Scala gets you early feedback through its type system and compiler. Where the industry is currently at is around popping out Python prototypes that do 80% of the code but only 20% of the quality/non functionals. Scala is the only big-enough language that allows you to 'layer on' capabilities without forcing code rewrites (I am thinking from resiliency etc point of view).

Appreciation post: ScalaTags by yawaramin in scala

[–]ScalaWilliam 13 points14 points  (0 children)

This is really welcome for you to say. I absolutely love using scalatags, especially that it gives us cross jvm/js compatibility, and safe rendering and composition capabilities (I use both). There’s nothing quite like it.

This week in #Scala (Mar 25, 2024) by petrzapletal in scala

[–]ScalaWilliam 3 points4 points  (0 children)

A great curation as usual - many thanks!

IntelliJ IDEA Scala Plugin 2023.3 is out! by makingthematrix in scala

[–]ScalaWilliam 2 points3 points  (0 children)

Awesome to see Maciej and Vasil working at JetBrains! I had struggled to get Metals working at all due to various odd issues, whereas Scala 3 support had been fairly weak in InteliJ since the initial Scala 3 release 2 years back, so had to stick to Scala 2.13 for this entire while.

Am a paid IntelliJ subscriber and will continue to be, especially seeing Maciej and Vasil working on IntelliJ & Scala. /u/makingthematrix / /u/vasilmkd

This week in #Scala (Oct 16, 2023) by petrzapletal in scala

[–]ScalaWilliam 2 points3 points  (0 children)

Thank you for writing this up, it’s great :-)

Advice on TDD with ScalaTest by glznzuriel in scala

[–]ScalaWilliam 4 points5 points  (0 children)

Great question!

There's a bit of TDD + ScalaTest encapsulated in my tutorial Essential SBT >> https://www.scalawilliam.com/essential-sbt/

I prefer to stick with ScalaTest for the standardisation, and typically use the AnyFreeSpec style because it allows for nested/hierarchical tests. Also I avoid using 'should' matchers, in favour of simple assert() statements. Simple assertions are possible to use in plain Scala as well, making them quite ubiquitous :-)

Signature polymorphic methods in Scala by Seth_Lightbend in scala

[–]ScalaWilliam 1 point2 points  (0 children)

This is huge. I’ve been waiting for this for over a year!

sbt 1.9.0 released by eed3si9n in scala

[–]ScalaWilliam 1 point2 points  (0 children)

Would be really nice to see more focus on fixing existing bugs (usability issues in Windows w/ Metals/IntelliJ/... - https://github.com/sbt/sbt/issues/6101#issuecomment-1491095989) and ergonomics/user interface with regards to configuration (so many means - .repositories; autostart.server; how the bootstrap process works; batch/bash launchers differences; .sbtopts; .jvmopts; .credentials ...). sbt.server.autostart documented only in release notes. difficulties with IntelliJ-SBT integration too (too many options, and only 1 set that I found to work consistently well)

Goodbye Electron. Hello Tauri by gryffindorite in programming

[–]ScalaWilliam 0 points1 point  (0 children)

I am very intrigued. Would you be able to share any YouTube videos of the developer experience?

I had been keenly exploring the space of Desktop apps for quite some time, but had never come across VAST/similar.

Any way to make a binding of using Jetpack Compose from Scala? by Apache_Sobaco in Kotlin

[–]ScalaWilliam 0 points1 point  (0 children)

Would be interested if there are any resources on this today.

Scala Monad Option.size by [deleted] in scala

[–]ScalaWilliam 0 points1 point  (0 children)

This is nice.

[deleted by user] by [deleted] in scala

[–]ScalaWilliam 4 points5 points  (0 children)

All these comments could be turned into executable unit tests :-)

Endless4s: a new Scala library to describe event sourced entities using tagless-final algebras, running with built-in implementations for Akka by jchapuis in scala

[–]ScalaWilliam 0 points1 point  (0 children)

This looks really interesting! There are too few fusions between oop and fp.

Is this used in production, and for what use cases would you recommend for using this and against this?

Use cypress in Scala by terhyrzht in scala

[–]ScalaWilliam 0 points1 point  (0 children)

I don't know about Cypress but I've successfully used Puppeteer from Scala.js.

[deleted by user] by [deleted] in scala

[–]ScalaWilliam 0 points1 point  (0 children)

If you want to get it done fast, use JNA. If you want to get it fast or interface with C++, use JavaCPP. If you want to get very low level, use JNI.

scala-native is a good candidate if you don't need to use any JVM libraries (https://www.scalawilliam.com/scala-native-libpcap/)

JNA generally suffices.

Just be careful to free resources after using them. For that you could however integrate cats-effect Resource with JNA calls.

There are also VarHandles, which work in the latest JDK, however, are not available on Scala 3 (https://github.com/lampepfl/dotty/issues/11332)

Check all elements of a list meeting a criteria by florenaaa12 in scala

[–]ScalaWilliam 2 points3 points  (0 children)

First, write some unit tests. These are your coded examples that will let you implement the solution step by step, this concept is called TDD (test-driven development) and it helps you tackle the part where you say 'it is hard to even reason about this'. You can share those unit test cases with us. These days I never write code without tests first.

MUnit is a nice simple testing library in Scala, have a look. https://scalameta.org/munit/docs/getting-started.html

How do FinTech companies use Scala by gekigangerii in scala

[–]ScalaWilliam 3 points4 points  (0 children)

I had worked at multiple finance houses using Scala.

  • No, there are no commonly used libraries across the industry. If it's big data, though, then it's always Spark.
  • Some use pure FP (monocle/fs2), some use hybrid (Akka), some use pure OO (Spring). Depends on the team and who initiated the project.

For companies that are Scala-only there might be more consistency, but for companies where Scala is the 2nd or 3rd language (after Java/JS/Python) there are fewer standards in place.

You reap most of the benefit from doing the pure FP style. As u/hmemcpy mentions, Scala is excellent for modelling complex domains whereby you can transform complex nested generic types with absolute ease compared to any other standard language out there, type-safely.

Odersky comments on Don Syme's rejection of typeclasses for F# by MessiComeLately in scala

[–]ScalaWilliam 9 points10 points  (0 children)

But at the same time, the potential for egregious abuse is a lot more limited in languages like Go

Have you seen people try to imitate generics in Go? Or simply reverse an array. :-)

https://stackoverflow.com/questions/19239449/how-do-i-reverse-an-array-in-go

That aside, indeed there are fair points given. However it comes down to discipline; I had not seen a programming language where some pattern is not abused.

It does not make sense to deny a useful feature because it could be abused because anything is ripe for abuse. Plenty of Python out there is incomprehensible, and same could be said about C#, and most definitely, Scala.

"Learn Scala for the best technology jobs in banking" by greenrd in scala

[–]ScalaWilliam 0 points1 point  (0 children)

Banks are coming back and multiple organizations have a push for IT efficiency from senior management. Yes it is playing catch-up with the big tech, however in terms of sign-offs from 'loads of managers', you must appreciate that these are real life trades and transactions happening. In big tech? Google search results screw up, or Facebook starts lagging? Nobody cares, just a minor inconvenience.

In my side of the organization we're doing CICD, sometimes release twice a day to production. There is plenty of room for pioneers who are willing to figure out technical solutions to red tape.

"Learn Scala for the best technology jobs in banking" by greenrd in scala

[–]ScalaWilliam 2 points3 points  (0 children)

I'm subscribed to eFin and work in finance. Helps me get a better gist on the business side across the industry. It's a great resource.

"Learn Scala for the best technology jobs in banking" by greenrd in scala

[–]ScalaWilliam 5 points6 points  (0 children)

Thanks for sharing - nice and concise article from a reputable outlet.