How can I contribute to Haiku?

Besides the already mentionned haikuports, there is Bethon (API bindings to write Haiku apps in Python). It is currently still using Python 2 and largely unmaintained: https://web.archive.org/web/20081013151246/http://www.drizzle.com/~donn/Bethon.html

I don’t knw if an update starting from the existing code or a complete rewrite is the way to go here.

Other than these, I think Haiku is very centered around C++

1 Like

I was having a look at the different Haiku API bindings,
this seems promising,
perhaps I could make a repo?

A repo is only necessary if the product is closed source. A recipe for HaikuPorts is much more easily accessible and maintainable once the build is repeatable using HaikuBuilder. Did I misunderstand you?

I mean a repo to expand these bindings.
Do you know anyone who might be interested in working on it?

Before anybody agrees to work on anything, what level of knowledge do you have about Python bindings on other platforms? What works in one place but not in others?

My last Python code was in version 2.2 in college but after duck typing was added, compilation grew up from wrapper bindings to outright static compilation. I tried writing a transpiler for YAB BASIC but YAB suffers from some of the same problems as Python 2 but lacks a dictionary datatype (aka unordered map, in C++ terminology).

python binding on other platforms

?

Do you use Qt on Linux in Python, for example? What about Windows?

I do not use Qt or windows.

Cool. I don’t either but that was just an example.

I’m trying to find out what software could run on Haiku with proper bindings.

I was thinking more of bindings for the native Haiku API

Ok, fine. But you need some sort of sales pitch about what it will add: “If we had updated bindings for Python on Haiku, we could XYZ.” The XYZ in the quote is what I’m looking for. Knowing what the bindings will add to Haiku is what I’m looking for. Please tell me.

Haiku native look-and-feel?

1 Like

Do everything that you can do in C++, in Python

1 Like

BeAPI +Python benefits(fast prototyping, etc.)

1 Like

This is too big to break into steps. We have to start somewhere and progress to various checkpoints and get somewhere as a result.

That’s the end goal.

start with basic subset of Haiku API

You can read the previous discussion here and in the linked thread. There are existing implementations, with various way to approach the problem already. Pick one of them, get the available sourcecode from it if there is any, and start improving it. See where you go. Maybe it will be a dead-end and you will start over with a different solution. Maybe it will work on the first try.

  • Being able to write quick apps in Python instead of having to do C++ even for the simplest things
  • Attracting more developers to Haiku who do not want or can’t learn C++
  • Writing Python apps that are cross platform and can run on all supported architectures, since Python does not need to be compiled for each architecture
  • It’s just a fun idea to experiment with
5 Likes

Thanks Pulkomandy! That’s what I needed. Longer explanations and a features broken down into bullet points. The reason I was being hard on @coolcoder613 was that he uses small, short sentences and big, vague ideas. We should be using the reverse: a well laid-out plan with achievable goals to get there.

Leveraging Python

Python is a safer language than C++ with OOP. It’s easy to write yet is powerful enough to write deep language AI. I like that Python is a good environment for beginners too.

@coolcoder613 , do you see where this is going? Knowing how you can contribute comes partly from being ready to contribute. Otherwise, it gets hard to complete the vision without getting tired and burnt out with frustration.

I think the it is best to try and start with pybind11 implementation and work from there, but i would need some help with the C++ side of things.
I’m thinking a lower level direct wrapper over the Haiku API, and a higher level Pythonic abstraction.

1 Like