44 – José Manuel Calderón Trilla

Recorded 2024-02-13. Published 2024-03-01.

Wouter and Niki interview Jose Calderon, the new Executive Director of the Haskell Foundation. Jose tells why he applied for the job, how he sees the foundation developing over the coming years, and how you can get involved in the Haskell community.


This transcript may contain mistakes. Did you find any? Feel free to fix them!

Wouter Swierstra (0:00:15): So welcome to the next episode of the Haskell Interlude. We’re joined today by José Calderon, the new Executive Director of the Haskell Foundation. José will tell us a little bit about why he applied for the job, how he sees the foundation developing over the coming years, and how you can get involved in the Haskell community. 

Okay. So, welcome, José. I guess the first question would be, why did you apply to be Executive Director of the Haskell Foundation?

José Calderon (0:00:43): Well, Haskell was a big part of my career and an object of study when I was in grad school. So, throughout my entire adult life, I’ve grown alongside Haskell, I should say. And when the job opening came up, I was actually looking for potential new positions because of a family situation where I had to move. And I know David well, the previous Executive Director. And so, we got in touch, and I was like, “Tell me about this job. Do you think I’d be good for it, et cetera?” I applied, and it was a bunch of conversations with different board members, then a presentation to the entire board. I heard there were a few very good candidates, and I was fortunate enough to be selected. So, I view it partially as like, it’s a really exciting job because I like Haskell and I care about the community and giving back. But it’s also a job where I get to give back, in a sense. So, I’m doing my tenure as a way to give back to the community that has given me so much.

WS (0:01:44): So previously, you were mostly in academia, I guess, at the University of Maryland?

JC (0:01:48): That’s right. University of Maryland. I was there. When did I start full-time? Like over four years ago. And I loved that gig. I love teaching, but my wife’s dad is very ill. And so we’re moving to Canada to better take care of him. And I can’t teach from Canada. So, I hope to still teach in some form going forward, but this has enabled me to live where I need to live.

WS (0:02:18): What are the first weeks on the job like?

JC (0:02:21): Oh, it’s been quite a crash course. Turns out there’s a lot of moving parts to the job. And I was warned of this. I was given a heads-up that it would be this way. That said, it is obviously different to intellectually know, oh, there’s going to be a lot and a lot of different pools on your time, versus like actually living it. So at Maryland, I’d wake up on Monday and think, “Okay, what lectures do I have this week? What do I need to prepare? Are there any papers I need to review, et cetera?” And I could plan out the week pretty solidly. Here, there’s some of that. I have meetings that I know are going to happen, but there’s also a lot of like, “Oh, this thing has happened and we need to take care of it, or someone needs to solve this problem.”

So, an example of this actually that just came up very recently is the Haskell eXchange videos, or Skills Matter was the company, excuse me. And Haskell eXchange was an event they put on. And Skills Matter has ceased to exist now, but we still want those videos to exist. So they had all these great videos of people talking about cool ideas and Haskell-related tools and techniques, and we were given the opportunity to save those videos. But there was an urgency. Like they were going to be deleted this Wednesday. And so I have now – my entire day is now re-shifted to saving those videos because that’s a good use of my time, because that’s a useful thing for the community, right? But I couldn’t plan for that.

WS (0:03:45): How much of the job is firefighting versus how much of the job is planned meetings versus strategic vision development kind of thing?

JC (0:03:56): Yeah, so I think at the beginning, it’s a little more on the firefighting side just because there’s things in flights that need to be completed. Things that I don’t know how to do yet. Silly things, like how do I approve an invoice? How do I transfer money to someone who needs a payment? And so I’m just like learning all that, and that’s a lot. But as I get the swing of things, I can already feel it’s shifting more towards the long-term, medium-term sort of stuff, which is good. If it was fully firefighting all the time, I don’t necessarily know it would be super value add to the Haskell community. But it’s this medium-term, longer-term stuff where the real value comes in. So I can already see and sense that shift happening for me.

Niki Vazou (0:04:39): When did you start the position? 

JC (0:04:41): I started part-time in November. So I was at University of Maryland. I was still full-time at University of Maryland, but I was doing one day a week at the Haskell Foundation. And that was mostly keeping the lights on, learning the ropes, learning a little bit from David and from Richard, who’s the Chair of the Board. And in January is when I went to full-time, and that’s when the pace really picked up because I had more time. One day a week is mostly approving invoices, sending out, replying to emails of people who have issues, et cetera. And only when it was full-time could I start, like actually initiating stuff, not just responding.

WS (0:05:19): So what are some of the examples of plans that you’ve been making or where you see the foundation stepping in over the next couple of years?

JC (0:05:27): Yeah. So one thing David started that I hope to continue that’s very prominent is an event co-located with ZuriHac. And so we’re in the planning stages for that. And that kind of general thing where the Haskell Foundation helps plan an event to get people who use Haskell and develop using Haskell tools or work on the tools themselves, get them in a room, and have high bandwidth conversations to help push the community forward. I view that as a thing the Haskell Foundation can really help and really provide value. Organizing events is a tedious job. And so having someone who’s paid to do it can be useful. But I hope that’s only one part of what we do.

NV (0:06:09): And is there a place that we can see this event or that we can volunteer if we want?

JC (0:06:14): Yes. So, for the ZuriHac event, I’m calling it like the Haskell Ecosystem Workshop. It is now on the Haskell Discourse. It’s been announced. And I’m working to getting a page on the ZuriHac website as well for it. I also sent out an email to Haskell-Cafe as well, but if you’re not subscribed to that, you can look at the Haskell Discourse. 

So another thing I’m hoping to do longer term is kind of evangelical sort of thing. Spread the word of Haskell, help get people involved, people who already know Haskell and they want to volunteer. There’s a lot of good energy. Oftentimes they find it difficult to get involved, or how can I help out but not be in the way. And actually, one of the things I’ve been surprised about is how many emails I get about that. So it’s people who are excited about Haskell, they love the language, they learned it in a class or whatever, and they’re like, “How do I help? What are things I can volunteer for?” And so part of my time is helping match them with projects that might be able to use that help. But I think there can be something more systematic. And so one of the nice things about these events is that you can do like a batch. Whoever’s present, you can teach them how to contribute to the tool or whatever. But setting up documentation, things like that, building on-ramps for people to get involved, I think, is something I’m really hoping to push on in the next year or so.

WS (0:07:37): So far, you’ve mentioned organizing events and spreading the word and coordinating community effort. And the longer term, I think if you compare something like the Haskell Foundation to the other languages that we have, the Rust Foundation takes on a serious chunk of language development. Is that a direction that you see the Haskell Foundation moving into, or do you have other ideas?

JC (0:07:56): Yes, I would love that to be the case. So, one of the things that helps there is having more funds. So, aside from volunteers, the best way to get development happening is to pay for it, right? And so we see this with some efforts the Haskell Foundation does, where we find something really important and we know of a person who can do it. And so we say, “Okay, here’s a chunk of money, here’s some funding. Go execute on this thing that we think is important to the community.” The best way to have more of that is to have more funds, right? And so we are a little bit limited compared to some of these other language foundations where they might have larger corporate sponsoring them or whatever. But if we can reach our fundraising goals, that will enable us to do more of that sort of work. 

For a lot of that stuff, professionalizing it is important. Volunteers are great. Volunteers make it all happen in the Haskell community. The vast majority of the work on a lot of these tools is volunteer-driven, which is great. But there’s certain tasks where no one wants to volunteer to do this tedious thing. And so if we could professionalize it, make it someone’s job to do it, that can be a very big benefit. But the main blocker there is funding. 

NV (0:09:12): So can you tell us right now, what are the funded projects of Haskell Foundation?

JC (0:09:17): Yeah. We have one funded project for a cryptography library called Botan, which we’re working on. It’s currently in the finishing stages of its initial funding term. We also have some work on some GHC API work and stabilizing the GHC API so that it’s not as much of a moving target. And so there’s some work there. And we actually have a – the Haskell Foundation employs a DevOps engineer to help with some of the infrastructure needs that arise on various projects. 

You may have heard of the Haskell Foundation Tech Proposals. So this is a venue where if someone identifies an area where they think, “Hey, a little bit of funding can help us accomplish X, let me write a proposal so that we can do that.” We have a group called the Technical Working Group that looks at these proposals, reviews these proposals. And then I, as a representative of the Haskell Foundation, decide, okay, should we fund this? And how much funding goes into the different projects depends on the proposal, depends on how much work we think it’ll take, et cetera, et cetera. 

So there’s definitely a few avenues through which we can fund work we find important. The Tech Proposals being one where anyone can propose something. There’s no guarantee you’ll get funded. But if you see something you think could be of value and having a little bit of funding can help, you should absolutely write a proposal, and we’ll work with you to get the proposal into the best shape it can be so that it has the best shot of getting funded.

WS (0:10:50): So, suppose you’re a volunteer looking to get into Haskell to help out somehow, what’s the low-hanging fruit where you can get involved and make a difference? 

JC (0:10:57): So, there’s a few projects that have done the legwork to find beginner issues, or they sometimes mark them as good first issue, or a difficulty level of easy. So I know Haskell Language Server is one. I believe Cabal also has good first issues. And I really recommend people diving into those. And if a project has taken the time to identify something as a good first issue, they’re likely to know, okay, the person who tries tackling this hasn’t worked on the project before, they’re going to need a little more guidance. And they know it can be intimidating. A lot of these projects are very big. So, you shouldn’t be shy. You can say like, “Hey, I want to work on this issue. This is how I’m thinking about getting started. Is that a bad idea?” And they’ll often work with you.

So, when people email me asking, “How can I get involved? I know Haskell. I’ve been wanting to help in the ecosystem,” I go to some of these GitHub repos. I find who has some of these tags, easy issues, or good first issues, and I point them to that. What are their interests? And hopefully, there’s overlap between their interests and the projects that have these sorts of issues. Lately, I’ve been pointing people to Haskell Language Server because I think that’s a really important project that sometimes doesn’t get as much love as some of the other projects. They have a lot of different tags for the difficulty of different issues on that project.

NV (0:12:19): Do you know if there are these kind of issues at GHC? Because I assume many listeners would be willing to volunteer there.

JC (0:12:26): I believe so. I believe GHC does have a notion of easy or a difficulty level on different issues. It’s been a while since I looked at those myself for GHC. GHC has the benefit of having more people paid to work on it than some of these other projects. So it’s often the most attractive project in many ways because people find Haskell interesting. The compiler has to work differently than other compilers because Haskell is so different in many ways. So it gets a lot of attention, and I think that attention is warranted. It’s a really cool piece of software. But I’ve been trying to funnel volunteers into projects that get a little less attention.

NV (0:13:06): So, the status right now, it’s like if somebody wants to volunteer, they have to reach you.

JC (0:13:12): Yeah. That seems to be the way a lot of folks do it. I mean, I don’t think there’s anything stopping someone from reaching out to these projects directly via the GitHub issue tracker or anything like that. But if you’re just really lost or nervous or want encouragement, you’re absolutely welcome to email me, and I can try to – sometimes folks want to have a call and I’m willing to do that, help them figure out what project might suit them best. 

NV (0:13:41): Also, Haskell Foundation has a Slack channel, right, which is quite active.

JC (0:13:46): Yes. I’m glad you brought that up. So the Haskell Foundation does have a Slack, and let’s make sure we put the link to that Slack in the description of the episode because one of the things I’m hoping to do, it’s not the biggest fire for me at the moment, but it’s get that Slack to be more active and have people on it, exchanging ideas, helping each other. The text-based conversation in the Haskell community is a bit scattered right now for all sorts of reasons. But this is one that we run. We have a say in how it can be moderated, et cetera. And so I feel comfortable pointing people to it. So, you can absolutely join the Haskell Foundation Slack, and that’s another way you can reach out to me and say, “Hey, I’m interested in volunteering. Where can I help out?”

NV (0:14:32): And other than the Slack, there is also a Discourse?

JC (0:14:35): That’s right. The Discourse, that more asynchronous. But the Discourse there is pretty active. I’m happy with that. And so you can absolutely post things there. And often people will be responding to it way before I see it. If you are comfortable publicly posting, “Hey, I’d like to help out. How can I help out? Are there any projects that need help?” you can absolutely post that on the Discourse. I think that’s a perfectly valid venue for that sort of request.

WS (0:15:01): So, coming back to the longer term vision, I think one of the strengths of Haskell as a language has always been that it’s rooted in both industry and academia, but there’s a flip side to that in that it doesn’t have a huge corporate sponsor like some of these other languages do. So how realistic is it to expect to attract enough funding to run GHC and a bunch of other projects all under the umbrella of Haskell Foundation?

JC (0:15:32): Yeah, that’s an interesting question. That’s a little hard to predict because so much of that is out of our hands, right? But that said, I think there’s definitely enough corporate use of Haskell where, if they’re willing to fund, which I hope they are, of course, we can absolutely fund our goals as a community. I think the challenge is, if a certain percentage of the corporate users of a language or of a tool are going to fund its development, then there’s two ways you can get more funds. You can try to increase that percentage by selling harder and saying, “Okay, here’s the value you’re getting. Don’t let it wither. Your funds can help solve your problems.” And that’s important. And we should absolutely be trying to increase that percentage. But the other thing is just to make the population bigger, so even if it stays at the same percentage, you get more funds. So, we want to tackle it from both sides.

So, one is better selling the wins of the Haskell Foundation and saying like, “Here’s what the funding has gotten, here’s what we’ve accomplished, et cetera, et cetera.” And the other is selling Haskell more widely so that folks know that this is a technology that you can build a business on and that you can rely on. I think there is a very good story there, and we can make that claim. And part of my job is convincing folks of this using evidence, and pointing to places where it’s been a good choice to pick Haskell.

WS (0:16:59): I see your point. I think there’s a lot of untapped potential, and everyone should be using Haskell, of course, but we still haven’t found that billionaire who’s going to sugar daddy fund us for the next 20 years, right? 

JC (0:17:12): Yes. Yeah. And that would be great.

WS (0:17:16): If there are any billionaires listing. 

JC (0:17:20): That’s right. Yeah, that’s right. But yeah, I think Rust, from the beginning, had a corporate sponsorship that we never really had in the same way. And even now that a lot of Rust development isn’t at Mozilla anymore, it’s at Amazon, you do have this huge entity that views it as extremely important that this tool keeps working and that this ecosystem stays alive. And while we do have big corporate sponsors, I don’t think it’s as much of a strategic point on their part as much as it say, “Oh, we have a team in this company that uses it. They say it would help to fund the Haskell Foundation. Let’s do that,” which is fantastic and great. But it’s a little bit different than Amazon being like, this is a strategic decision.

WS (0:18:04): Yeah. That we’re going to really invest in this technology.

JC (0:18:08): That’s right. That’s right.

WS (0:18:09): I can see the difference there.

NV (0:18:12): Do you have concrete benefits that you offer to the big investors?

JC (0:18:17): Yes. So, this is something we’re rolling out. It’s not fully rolled out yet, but I have the plan set up, and I’ve been testing the waters with various corporate sponsors. But the idea is we’ll have a technical advisory board, and this technical advisory board will be made up of people who have sponsored the Haskell Foundation. And one of the issues that sponsors tend to have, which is a valid issue, is this stuff matters to them. They care about the ecosystem, but keeping up with the ecosystem is very difficult. Think of like, you want to know how GHC development is moving, you got to subscribe to the GHC mailing list or keep track of the GHC proposals repo. And then same with Cabal, and same with all these tools. And it’s all very – it’s a lot. It’s a fire hose.

And so one of the things I’m hoping to do is consolidate that, give it in a digestible form where we say, “Okay, here are how things are moving, or do you have concerns? If you have concerns, let me know. I can then represent those concerns to those various dev teams.” And that way, the sponsor themselves don’t have to keep up with every little thing that’s happening in the community. I’m keeping up with those things, and I can be an intermediary. So, that would be one benefit of sponsorship. 

And then, of course, the other, you get your logo on the webpage so people know you’re a good Haskell ecosystem citizen. And you have a direct line to me. So, I meet with the sponsors periodically, and when they have issues, I try to take that very seriously. If they’re saying this thing that happened in GHC is a big problem for us, okay, well then I’m talking to GHC devs and seeing like, is there something we can do? Is there a workaround? Is there something where we can – I don’t know, not necessarily change it. It’s not my place to tell GHC how to do its thing. But just representing the concerns and trying to figure out if there’s a path forward that is less painful for the corporate sponsor. 

NV (0:20:14): Yeah. I also wanted to clarify that. So right now, the way GHC is moving is determined by the GHC committee, and this is quite independent from Haskell.

JC (0:20:25): That’s right. Yeah. So I’m not the boss of the GHC team. I wouldn’t want to be. They do a good job of developing GHC, and they don’t need me getting in the way. So, that’s true for a lot of the things in the Haskell ecosystem where the dev teams that have formed around a tool, they’re the ones calling the shots. What I can do is know how the different dev teams are working on stuff, talk about cross-ecosystem issues that maybe those dev teams aren’t intimately aware of. So I can be a conduit of information, and I can also represent concerns that sponsors have. 

So, to be clear here, it’s not just the fact that they sponsor, although obviously, that’s a big factor. But if they’re sponsoring it, it’s because they’re saying like, “This matters a lot to us. We view this as really important.” And so what does a dev team want to know? It’s sometimes difficult to know how do users feel about a thing, because users aren’t usually the ones on the dev mailing list. And so that’s the kind of service that the Haskell Foundation provides to sponsors. It’s like letting these dev teams know what the issues are that they’re facing. That’s useful information.

WS (0:21:38): So, I guess if you look at David’s tenure as Executive Director, it was very much having to figure out how everything works. And you’re lucky that a lot of that work has been done. But if we have another episode in, say, three to five years, when would you be happy with what you’ve achieved? 

JC (0:21:58): Yeah. So, I’ll want to be a little careful here because I don’t want to commit myself to too much. But I do have long-term goals that I think if I’m able to reach them, I would feel really satisfied with my tenure at the Haskell Foundation. And one of those goals is just a more consistent funnel of sponsors. I don’t think that that’s a ludicrous goal. I think that’s a feasible thing that we can do. I just have to put in the legwork properly. I don’t want to say sell, but yeah, properly motivate the benefits that the Haskell Foundation provides. So I think that’s very doable. That’s a clear one. Having more sponsors, having more funds so that we can then use those funds in the Haskell ecosystem. That’s a clear goal. 

But also, there’s the softer goals that are harder to write down and like, “Oh, we’ve met it or not.” And one of those is like, I just want more on-ramps for people who are getting involved with working on the Haskell ecosystem. So right now, when I was getting involved, what was my on-ramp? I was doing a PhD. And when you’re doing a PhD, you’re given so much freedom that you can be like, “How does GHC actually work?” And you can just take the time necessary to figure that out. If you have a full-time job and you’re wanting to, a couple of evenings a week, maybe work on this, that’s way harder to get up to speed. So, providing those sorts of on-ramps for the people who don’t have that complete amount of time is something I view as very valuable. I want people to – when they have this energy and they have this excitement, they can, in short order, be contributing useful things to the ecosystem instead of finding like, “Oh my gosh, the entrance is very steep.” And then they lose the energy and burnout.

WS (0:23:55): Right. I can see. Yeah. So, organizing things like the co-located event with ZuriHac to lower the barrier in a way to participation, that’s really what you’re aiming for here.

JC (0:24:06): That’s right. And so, having events like that will be a big part of it. And you take recordings of the talks, and that becomes a form of documentation, but also literal documentation in the projects themselves and keeping those guides up to date. That’s a lot of work. That is hard to do. There’s a reason it’s not the first thing these dev teams do. It’s very difficult. But one of the nice things about the Haskell Foundation is that we can take that sort of meta view. What’s blocking people? Let’s try to address those concerns.

NV (0:24:38): So, I think all these goals to Haskell experts, and my understanding was that the most difficult thing about Haskell is how to enter, how to understand the basic concepts. Do you have any ideas about that?

JC (0:24:55): Yeah, I do have some ideas, and I have to be careful on this one because some of my ideas there aren’t necessarily the views of the Haskell Foundation itself. So some of those are José’s ideas. But I think one of the things that’s hurting us as a Haskell community is our reputation as a really difficult language. And I am frustrated by this on a personal level, not the Haskell Foundation level, because I think that that’s not true. I think there are complicated things in the Haskell sphere, of course, and there are certain concepts that I was very intimidated by for a while. But I think the core stuff is elegant and simple. Not necessarily easy. I don’t want to say easy, but simple and the thing that can be understood well and fully.

And I think this view of like, “Oh,” and you see it like if you go on the programming subreddit or something, and Haskell comes up, they go like, “Oh, but you have to learn category theory.” And this frustrates me because you don’t – of course, you don’t have to. Is that a cool thing? Absolutely. It’s a cool thing. But to learn Haskell and be productive in Haskell, you don’t have to learn these abstract branches of mathematics. You can do programming, you can talk with a database, read CSV files, do all this sort of stuff in a way that I think is really useful, and has a great power-to-weight ratio of just nice, pure functional programming. 

And our reputation, I don’t want to say, turns people off, but it makes them think like, “Oh, that seems interesting. I’ll wait until I have a lot of energy. Because that seems hard. So I’ll wait until I’m prepared.” And as you know, you do that enough, and then you never end up doing it because you’re always putting it off. Whereas if the reputation were like, “Oh, you could get up and running in a week,” I think more people would then get up and running. 

And so, I think part of it is the narrative of, because we have these really high abstractions that are nice and beautiful, but require a little bit of mathematical sophistication, there’s the view that that’s required. And I hope to dispel that as the narrative. I think that’s cool that that’s possible, but I don’t think it’s required. And the evidence there is like, that’s not how I learned. So, I learned Haskell from Colin Runciman, who was one on the original Haskell Report or Haskell 98 Report, I guess. And that’s not how he teaches it at all. He understood category theory, and he understood these things, or understands, excuse me. He still understands these things. But that’s not the lens through which he teaches Haskell. He teaches it as a, we can do programming. It’s a different style of programming to the programming you may have seen before, but let’s write programs. So that’s how I learned. So I know it’s possible to learn without going category theory first or anything like that. You can learn how to use monads without knowing the mathematical meaning of monads or what they mean. So I feel very strongly about that personally.

WS (0:28:00): I mean, we had Jezen Thomas on the show a few episodes ago, and he’s not an academic. And his advice for people who wanted to use Haskell was basically just get started and write a web server and do something. And don’t worry about mastering every concept in Data.Lens or something. Instead, just build stuff and learn by doing. I mean, whenever you encounter a new language, you’ll always run into features that are slightly different or libraries you’re unfamiliar with, or stuff like that. But just get started. And you can do useful Haskell programming quite quickly without years of training.

JC (0:28:38): Right. And what’s interesting to me is in the object-oriented side of the world, they know this, and people just expect this. There’s very sophisticated ideas there and really complicated ideas in object-oriented programming. But no one says you must know those ideas before you get started. There’s an agreed-upon thing where like, “Oh, you can just get started and pick those up if you need them, or if you encounter them, you can pick up those ideas.” But for some reason, the word on the streets for Haskell is like, you need these advanced ideas in order to learn it. And that’s unfortunate. Because I think there are people who could be very productive Haskellers that get turned off by that.

NV (0:29:22): And I think one of the reasons is that you start doing condition and you see that there’s some problems with type class constraints. So, maybe more concretely, do you have any suggestions? Like where can somebody start without the need to know about all these sophisticated concepts?

JC (0:29:41): Yeah. I think this is where – you’re absolutely right. There’s certain concepts that just by using the Prelude, you’re forced to grapple with pretty early on. And I think this is where having a useful book or curriculum does really help a lot. Graham Hutton’s book, I really like a lot, for example. But also at UPenn, they have a course on Haskell that is just available for everyone to use. And I think it’s a really good course. And they start – they’re doing IO from day one. And they’re not making it this spooky thing. They just start it. And the reason the curriculum helps is because it can guide you through the path that minimizes these other concepts until you are equipped for them. 

But even that – sorry, this is me speaking personally again. But even that is weird because think of the errors you get in Python or Java, they’re just like – sometimes they’re so intense and many, many screen fulls about all sorts of things, about objects and hierarchies and whatever. And students often start – so at Maryland, we start them off on Java. And I think that’s a mistake in its own way. But the point is people can learn and learn to navigate these things and a little bit of guidance on, okay, right now you don’t have to worry about that. That’s the thing. We’ll get to it. You can accept that for now. You don’t get that. We can still make progress. And that sort of guidance helps students a lot. Because they don’t know what they don’t know. So they see an error, and they’re like, “Am I meant to understand that error?” And having a book or a lecture note that just walks you through like, “Here’s what you’re meant to understand at this stage,” is very useful.

NV (0:31:25): And this was your own opinion, right?

JC (0:31:29): Yeah. That’s right. That’s right. That’s right.

NV (0:31:30): Is there an official Haskell Foundation opinion that you want to represent too?

JC (0:31:37): I think right now, we don’t have an official stance on what the best way to get started on Haskell is. I’m not against forming such a stance, but I would have to really think it through, talk it over with the board, talk to all sorts of stakeholders to make sure that there’s an agreement on the choice. So right now, I don’t feel comfortable saying like, “The Haskell Foundation feels you should start via X.” I don’t want to make that claim.

WS (0:32:03): Do you see this barrier to entry? Is it something that you encounter when new hires are onboarded at companies, or is it something which is preventing companies from adopting the language or considering Haskell to begin with?

JC (0:32:18): Yeah, that’s a really good question. So, I’ve seen both. So, I’ve talked to sponsors where they say, “Oh, one of our difficulties is getting Haskell developers and getting them up to speed.” And that seems like a fair thing to say. But I’ve also talked to sponsors who say, “We hire folks who have never programmed in Haskell. They have a nice engineering background, and then we teach them the Haskell necessary, and it works really well for us.” So, what does that show me? Both sponsors are speaking the truth. So, what could the difference be? Those are their realities. 

And I think one of the things that that second sponsor, the one who trains people up and has had a lot of success, is they’re very regimented about how they organize their Haskell code, what they allow in their code base. And that regimentation, that discipline allows it to be something where a developer who is a good engineer but hasn’t seen Haskell can be productive early on. Whereas if you have the kitchen sink of type extensions in there, that’s more intimidating. It’s all learnable. Engineers can learn these skills, but it’s going to take longer to learn more skills. It’s as simple as that. And so I do think there’s a difference there. 

If you’re using a lot of really advanced Haskell stuff, then of course, what you are wanting is to hire people who already know that advanced Haskell stuff because you want them to be productive as soon as possible. And that’s a higher bar. If you are using less advanced stuff, and you’re very disciplined about where you use the fanciness, you can say like, “Oh, we can take a competent engineer and teach them the skills necessary in relatively short order.” And so that’s a difference in philosophy. 

Now, of course, we want to help enable both of those things. We want the pool of really talented Haskellers to be bigger. And a big part of that is education and getting the word out there about the language. But also, I think it’s great that if you are disciplined and you organize your code base in a certain way, there’s evidence that you can get people up to speed relatively quickly and productive in Haskell. I think that’s a great thing.

WS (0:34:26): So, are there any immediate challenges that you’re looking for volunteers for foundation work at the moment?

JC (0:34:32): Yes. So, there’s two things I’m hoping to get some volunteers on in the short term. So one is, I mentioned the Haskell eXchange videos, and I’ve been pulling them down, me and another volunteer. And we’re going to need volunteers to sort through them. So watch them. What was this video about? What’s the description? Who’s the speaker? All of that sort of stuff. So if you’re interested in getting a, I don’t want to say sneak peek, these videos existed, but a re-sneak peek at some of these videos and helping us organize them, definitely reach out to me. You can email me. I’ll probably also put a signup sheet on Discourse. 

And then the other thing is, if you’re planning on going to ZuriHac, please consider attending the Ecosystem Workshop, which is the two days before ZuriHac. And if you’d like to volunteer at that, you can reach out as well. 

So, those two things are where I could really use volunteers in the short term. And in the medium term, my usual call for volunteers will be on the mailing lists and the Haskell Discourse. That’s where I will say, “Hey, we have this thing. Can people sign up if they want to help?”

WS (0:35:38): Awesome. Thanks for joining us today, José, and I look forward to seeing where the Haskell Foundation goes.

JC (0:35:44): Thank you so much, and thanks for interviewing me.

Narrator (0:35:48): The Haskell Interlude Podcast is a project of the Haskell Foundation, and it is made possible by the generous support of our sponsors, especially the Monad-level sponsors: GitHub, Input Output, Juspay, and Meta.

Individual Sponsors
GitHub IOHK Juspay Meta
CarbonCloud Digital Asset ExFreight Mercury Obsidian Systems Platonic Systems Tweag Well-Typed
Artificial Channable FlipStone Freckle Google HERP MLabs TripShot
To learn more about the Haskell Foundation
Haskell Foundation, Inc.
2093 Philadelphia Pike #8119
Claymont, DE 19703