Additional Language Knowledge Query

Still working through the Daml_SDK :hammer_and_wrench: and I see there are increasingly more references to Haskell and Scala. While the Haskell references tend to be about the Daml syntax, the Scala references tend to be about manually executing Daml actions like createCommand or codegen.

In terms of developing deeper and more practical Daml skills, is there a need to perhaps upskill into Haskell or Scala specifically, or would a case-by-case needs basis be more realistic?

1 Like

Until a very advanced point, learning Haskell will give you techniques you can use directly in Daml.

Learning Scala can help you if you want to build extensions to the Daml ecosystem. For example, the sandbox, json-api, trigger service, Daml-LF interpreter, and many other components are written in Scala. If you wished to extend these, or even have a separate tool in mind that may be inspired by these, Scala may be the easiest way to build upon our own tools and libraries.

In terms of benefit/cost, I think it’s pretty clearly in favor of spending time on Haskell for the vast majority of Daml application developers.


Hi @Stephen thank you for the helpful reply, that makes sense :+1:t2:

1 Like

I think it’s worth pointing out that while knowing Haskell can make learning Daml a bit easier (although there are also a few pitfalls if you try to translate your Haskell knowledge directly to Daml at least around performance), it is by no means a requirement and when starting out, I’d recommend to focus much more on the Daml specific parts than on learning Haskell.

As for Scala, I’d view it as any other client language. It’s not going to help you write better Daml but if you want to write client apps in Scala knowing Scala clearly helps. Note however, that the Scala bindings and the Scala codegen are deprecated since the end of 2020. For new apps, I recommend to use the Java bindings if you want to interact with the gRPC API or the TypeScript bindings if you want to interact with the JSON API. For both of those, knowing Scala is clearly not going to help all that much.