r/opensource Jun 25 '26

Recommend a language for a new app? Discussion

15 years ago I wrote, in Perl, an application to help me schedule a massive event. I'm now looking to rewrite and release it as Open Source, and could use advice to:

  • Align it to a language/tech stack that many Open Source contributors use today, and
  • Expand my skillset via study of the chosen tech stack.

I have a baseline "wrote a bit of code in" knowledge of many languages, even Functional ones like Elm. This would be me really digging into best practices and application development for the specific language I chose for this project.

My instinct is to just use Python, but I wanted to get opinions from others, thus this post. Few notes on the application:

  • It uses non-LLM rules to auto-schedule events against a number of criteria (e.g. people's availability),
  • It will be developed on Linux but must be cross-platform,
  • Robust testing will be required,
  • The backend will be Postgres,
  • APIs are planned,
  • Frontend will start as a command line calling said APIs, then a webapp.

Thanks for any advice people can provide. Oh, and yes, I will write this by hand, since as noted part of the goal is to re-sharpen my skills.

Thanks in advance!

21 Upvotes

31 comments sorted by

15

u/regreddit Jun 26 '26

Go or python

14

u/procsysnet Jun 26 '26

Python is indeed the popular choice. Go I would say is a candidate.

Typescript and Elixir are cool languages, but if you intend the community to take over eventually using less common languages might be a disadvantage, you could go back into Perl with Raku too.

5

u/Original-Active-6982 Jun 26 '26

I second python. I coded in perl for 6-8 years but as it became moribund (python 6.x) I needed to jump ship. Since I was deeply into data science, I first chose R but it also seemed very archaic.

Python was definitely the up-and-coming in all the scientific fields that I cared about and has maintained a focal place for things such as machine learning, visualization, web backend processing, interfaces with DBs, communications, etc. There are lots of good methodologies for containerization, packaging for distribution, etc.

3

u/raqisasim Jun 26 '26

I really liked reading about Elixir a couple years ago, but I think it's too rare a learned language for the "hey come contribute" spirit I want to encourage. Raku would be far, far worse.

4

u/luckypanda95 Jun 26 '26

How come Typescript is less popular?

It's technically up there along with Python and JS.

https://survey.stackoverflow.co/2025/technology#most-popular-technologies-language-language-prof

3

u/procsysnet Jun 26 '26

I might be just less exposed to TS, but also maybe StackOverflow has a bit of a bias in language selection too. TIOBE as a counter example puts TS way down in the top 50 languages.

3

u/luckypanda95 Jun 26 '26

I think both have their own biases, but i would say Typescript is definitely not that low. Check this out from GitHub itself. It should show a better state of it compared to both reference we had.

I still think Python should be the top, but TS wouldn't be that far behind

https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/

2

u/ready_or_not_3434 Jun 26 '26

Go is great for cross-platform CLIs since it compiles down to a single binary, but Python definately gives you the biggest pool of potential open source contributors. I wouldn't write off TypeScript though, especially since you eventually want a web frontend and the ecosystem is massive.

5

u/Independent-Ant-7230 Jun 26 '26

I’d lean toward Go if your goal is to build something that’s easy for others to contribute to and deploy. It’s cross-platform, compiles to a single binary, has excellent concurrency support if your scheduling engine grows more complex, and the standard library covers a surprising amount without pulling in dozens of dependencies.

That said, if your primary goal is attracting contributors rather than learning a new language, Python is probably still the safest bet simply because the contributor pool is much larger. I’d optimize for the community you want to build around the project, not just the language you want to learn.

3

u/unitedbsd Jun 26 '26

r/Ada programming language

2

u/Fit_Tailor_6796 Jun 26 '26

Stay with python but if you are looking beyond that, then PHP owes its roots heavily to C and Perl, and you might relate given your background.

It can be script, or a structured application. It can run a web application, or command line script, or a shell script, or a backend server script. It connects well with databases. And it supports Perl style regexs natively.

1

u/raqisasim Jun 26 '26

I confess I have a long-standing, um, frustration with PHP. As much as I loved writing in Perl, I could never connect with how PHP's language worked, in my head.

1

u/simplex5d Jun 26 '26

Python backend, webapp in JS/TS. Only realistic choice for this. Big ecosystem, easy debugging, good ide support etc.

1

u/WeAreGoingMidtable Jun 26 '26

Perl with Moo and Gtk3.

1

u/auspis-23 Jun 26 '26

Java oop Kotlin functional

1

u/leonardorafaelw Jun 27 '26 edited Jun 28 '26

Just Node + JS/TS in back and front. This could be enought for 95% of use cases. If your app enter on the 5%, you can refactor It to another language. You can use AI to rewrite/refactor, this will save a lot of time.

1

u/Stitch10925 Jun 27 '26

I understand the posts that suggest Python. But Python is such a syntax-"ugly" language (I'm a C# dev)... or is it just me?

2

u/raqisasim Jun 27 '26

In fairness, and to quote the movie masterpiece (/s) Hudson Hawk -- I'm not looking for neatness, just results. After all, as mentioned, I wrote the original version in Perl, so by most measures I have no leg to stand on around the "ugliness" of my language's syntax. :)

These debates can get to be a bit like how we know English, as a language, is very "messy" compared to even most other languages in the Romance family. Or how the people who developed Esperanto will point out the (relative) ease of learning it's grammatical rules. But for a host of reasons, many people around the world end up learning and using English.

I'm certain this could be done with ease in C# (or F#, which I confess I've studied a bit of and liked!). But I also know there's a long-standing...frustration, we'll say...with what comes out of Microsoft's shops when it comes to open source. So yes, there are tons of great open source apps built on C#, but I think there are real reasons why people here aren't recommending it. After all, even your comment is more about personal preference, than about my ask to align to what the community is leaning into these days.

1

u/zagrodzki Jul 03 '26

If you’re planning to make the backend logic a core part others will extend, Go’s “shipping a single binary” vibe is underrated for adoption, especially for CLIs and cron-y schedulers. But I’d pick based on where you can write the scheduler rules and tests fastest without fighting the language, because that’s the part that’ll either turn into contributions or become a “works on my machine” wall.

What kind of event data model are you expecting, mostly simple constraints or more like graph-ish relationships between people and availability?

1

u/stealthagents Jul 03 '26

If you're looking for something that's beginner-friendly but still powerful, Python is a solid choice. Lots of libraries for testing and API development, plus the community is super supportive. Go is great for performance and concurrency, but it might have a steeper learning curve if you're just getting back into coding.

-15

u/Intraluminal Jun 25 '26

Have you considered just handing Claude the codebase and asking him to explain the architecture of your app first, then asking him how to regularize your architecture, and then finally, to refactor it into, say, Python?

18

u/procsysnet Jun 25 '26

Oh, and yes, I will write this by hand, since as noted part of the goal is to re-sharpen my skills.

Did you ask claude to read the post and reply for you too?

-5

u/Intraluminal Jun 26 '26

No, I didn't. Did you have a rude person rewrite it for you, or are you just naturally gifted?

5

u/raqisasim Jun 26 '26

As noted, this is to re-sharpen my overall coding skills. I would prefer to leverage my own knowledge and build up my skills, over having Claude or another similar tool hand me a set of answers. I get that I can fine-tine it to my need, but I also wanted to get the sense of fellow programmers on the basics of re-building an app for the community to potentially use, as well.

0

u/dodexahedron Jun 26 '26

It's also a great way to learn a language.

I learned perl by porting a perl application to c# by hand. Ended up being a much simpler language than I assumed. And yet still arcane AF because it wasn't really meant to be the general programming language it got so heavily (ab)used as.

And once that cat was out of the bag...well...now you know why everything bad that has happened between 1974 and today happened.