August 4th, 2024

You can contribute to KDE with non-C++ code

KDE invites contributions in various programming languages and tools, including Python, Ruby, and Docker, encouraging community involvement in projects, website maintenance, and packaging technologies like Flatpak and Snap.

Read original articleLink Icon
You can contribute to KDE with non-C++ code

KDE encourages contributions beyond C++ programming, highlighting various languages and tools that can be utilized. Contributors can engage with projects using Python, Ruby, Perl, Docker, HTML, JavaScript, Rust, and more. To find projects by language, users can create an account on KDE Invent and explore available options. Python is notably prevalent, used in automated Appium tests, KDE websites, and tools like KDevelop and Kdenlive. Ruby is primarily used for Jekyll-based websites and tools like the Gitlab Triaging tool and Bugzilla Bot. Perl's main project is kdesrc-build, a tool for building KDE software, though it is transitioning to kde-builder, a Python-based alternative.

KDE also seeks web developers familiar with Hugo and Jekyll to address numerous website maintenance issues, particularly for the KDE Developer website. Additionally, there is a need to revive the QML Online tool, which allows for QML code prototyping. Contributions to packaging technologies like Flatpak and Snap are welcomed, with Flatpak being more integrated into KDE projects. Overall, KDE offers a variety of avenues for contributors with different skill sets to enhance its ecosystem, emphasizing the importance of community involvement in maintaining and developing its software and infrastructure.

Link Icon 7 comments
By @AndyKelley - 6 months
Using Qt bindings sucks big time though. That's effectively still writing C++ code. You might as well stop pretending and write actual C++ code so you can limit yourself to having to deal with C++'s idiosyncrasies instead of those, plus the ones introduced by a second language, plus the ones introduced by a bindings layer.

It's unfortunate that a UI layer ties you into a particular programming language. It feels like something that should be provided by the OS somehow.

By @rock_artist - 6 months
It's very useful to have such a list for any project to better engage contributors.

The only thing worth noting (at least from the glimpse I took), Is that the actual KDE is still C++. As an example:

- Web stacks (JS/HTML/etc) suggests it's only for websites.

- Rust is focused on bridging/binding (with Rust)

- Java is for KDE connect on Android, and I guess some binding with Android.

By @SuperNinKenDo - 6 months
I really love the KDE project and have been thinking about ways to contribute. Eventually I want to use it as an excuse to finally learn C++, which has always held a fascination for me since I started programminh from a gamedev perspective, but never picked up the industry standard language with its esoteric scribblings so uncanny familiar, yet foreign.

Getting started through a language I already know might be a good way to build some familiarity with the way things are done and structured, bridging the gap without having to learn a new language at the same time I learn the rather intimidating Qt bindings.

I will save this for later and go over it again for sure.

By @bflesch - 6 months
Yeah and then your contribution gets shot down because the maintainers have a totally different vision about their product than you do.

I've contributed some security findings and UX improvements to KDE in the past year and it was quite a bad experience for me as a contributor. KDE feels like a slow organization and stakeholders have their own incentives apart from software quality.

By @captn3m0 - 6 months
This is an excellent list. I started using KDE on my secondary system recently (because Asahi recommends it), and this is very helpful to let me pick projects where I can be helpful.
By @Am4TIfIsER0ppos - 6 months
Really? How do I use QT from C?

> not listed

Lots of other garbage is though.

By @xyst - 6 months
You had me at the ability to contribute in rust.