PostHole
Compose Login
You are browsing eu.zone1 in read-only mode. Log in to participate.
rss-bridge 2025-04-23T22:28:00+00:00

SE Radio 665: Malcolm Matalka on Developing in OCaml with Zero Frameworks

Malcolm Matalka, founder of Terrateam, joins host Giovanni Asproni to talk about the reasoning behind choosing a not-so-widespread language (OCaml) and (almost) totally avoiding frameworks for the development of Terrateam. While discussing the reasons for choosing this specific programming language and the advantages and disadvantages of using external frameworks, they also consider a range of related topics, including static vs. dynamic typing, the use of monorepos, and the advantages of choosing a single language that can be used both for web front ends and server back ends. The episode ends with lessons learned that can be applied to other contexts and projects.

Brought to you by IEEE Computer Society and IEEE Software magazine.


Malcolm Matalka, founder of Terrateam, joins host Giovanni Asproni to talk about the reasoning behind choosing a not-so-widespread language (OCaml) and (almost) totally avoiding frameworks for the development of Terrateam. While discussing the reasons for choosing this specific programming language and the advantages and disadvantages of using external frameworks, they also consider a range of related topics, including static vs dynamic typing, the use of monorepos, and the advantages of choosing a single language that can be used both for web front ends and server back ends. The episode ends with lessons learned that can be applied to other contexts and projects.

Brought to you by IEEE Computer Society and IEEE Software magazine.



Show Notes

Related Episodes

  • SE Radio 652: Christian Mesh on OpenTofu
  • SE Radio 289: James Turnbull on Declarative Programming with Terraform
  • SE Radio 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language

Articles, and Resources


Transcript

Transcript brought to you by IEEE Software magazine and IEEE Computer Society. This transcript was automatically generated. To suggest improvements in the text, please contact [email protected] and include the episode number.

Giovanni Asproni 00:00:18 Welcome to Software Engineering Radio and I’m your host, Giovanni Asproni. Today I’ll be discussing Developing in OCaml with Zero Frameworks with Malcolm Matalka. Malcolm is the co-founder of Terrateam, a CICD solution for Terraform and Open for GitHubs that integrates with GitHub. He has been developing software since 2002 and he has worked for startups and large companies across a range of languages, technologies and domains. Malcolm, welcome to Software Engineering Radio. Is there anything I missed that you’d like to add?

Malcolm Matalka 00:00:48 Thank you very much for having me. I think you hit all the important parts.

Giovanni Asproni 00:00:53 Okay. Here are some related episodes. 652 Christian Mesh on Open Tofu, 289 James Turnbull on Declarative Programming with Terraform and 204 Anil Madhavapeddy on the Mirage Cloud Operating System in the OCaml language. Today we’ll be talking about developing with OCaml with Zero Frameworks, which is, I would say quite an unusual approach at least.

Malcolm Matalka 00:01:17 Yeah, I’d say a little bit too. And on both accounts actually.

Giovanni Asproni 00:01:21 In both accounts, probably both accounts we would kind of ignite heated conversations among developers on the choices of language and the use of frameworks or which frameworks and all this kind of stuff.

Malcolm Matalka 00:01:33 Yep.

Giovanni Asproni 00:01:34 Okay. Let’s start then giving our listeners a bit of context and can you give us a brief description of Terrateam the application we developed in OCaml with a zero frameworks approach?

Malcolm Matalka 00:01:46 Yeah, absolutely. So Terrateam is what’s called a tacos in this industry, which is the infrastructure as code industry. And that stands for Terraform or Tofu as there’s two competing implementations here at this point, automation and collaboration software. And essentially what that means is it’s a class of software that allows users or customers, teams to manage their infrastructure using Terraform or Open Tofu collaboratively. In our case, that means that we have chosen to build on top of VCS providers such as GitHub and we’re also working on GitLab integration. So all of your infrastructure management goes through pull requests. In a core element, what kind of makes us different from other providers in this space is that we believe you should never have to leave your normal comfortable development workflow to use the product to make complete the task you want to complete. We try to integrate into your existing workflows.

Malcolm Matalka 00:02:50 So for example, if you are , creating a Kubernetes cluster, you would probably write some Terraform code to represent that and then if you’re using Terrateam, you’d make a pull request and then Terrateam would pick up that event on GitHub and perform what’s called a plan operation to say, if you want to execute this change, here are the things that I will do to make that happen. And then the rest of your team can go and review that output and give you approval. And once you have that approval, you can choose to apply that change, which means make that change into reality and then merge it into your main branch and then continue on. And for Terrateam, all that happens inside of, in this case GitHub.

Giovanni Asproni 00:03:31 Okay. What were the main issues driving your decision about the choice of language and the evidence of frameworks as well?

Malcolm Matalka 00:03:39 So I’ll say to start out with, I think it’s really important to understand that context matters a lot when you’re making technical decisions. And what I mean by that is, I personally believe that at the end of the day, the difference between choosing different technical stacks is relatively marginal compared to other decisions. And so what that means is if you choose Python or OCaml, I don’t think it’s going to make a huge difference at the end of the day, but what does matter is if the people that are working in that code base enjoy using that or can think in the way that that code base supports. So for example, OCaml is a statically typed language and it’s strongly typed. You can kind of think of it, but people might think of Haskell. So it’s very similar to Haskell OCaml but it’s not, it’s a little bit more practical I would say.

Malcolm Matalka 00:04:32 But it has, if you looked at two files, you would probably in the surface say they’re very simple. And for me, I think in a sadly typed language. So what that means for example, is I might choose to represent, let’s take something simple like the zip code. I might create a type that represents a zip code and then I might have functions that guarantee that if you give me a string that you say is a zip code, it enforces that that actually is a zip code. And now that we have successfully constructed a type of zip code, I can pass it around my code base and nobody else has to verify, oh, is this actually a zip code or not? So it’s no longer a string. It might be a string in the computer, but it’s not a string in the code. And for me, that’s a way I like to think about problems.

[...]


Original source

Reply