Haiku Tree of Needs (Go and more)

Backstory: I share a lot of my shell scripts & tools on several platforms (Mac, Linux , FreeBSD ….and Haiku). I found out a big show stopper for this was the lack of a recent Go compiler with which many useful tools are written. I know there’s a thread about this specific issue.

My point is that maybe there should be some tree structure somewhere on the site (or a dedicated external site as first test) where we could list basic dependencies so that people interested in coding for Haiku could see what is more desired in a structured way. And also users needing apps know who / what to support.

For example in the case of (recent) Go:

  1. :white_check_mark: bootstrap
    —- 2. :pray: recent go compiler
    ———— :pray: lazygit (172)
    ———— :pray: fzf (77)
    ———— :pray: walk (12)
    ———— …

Or for a QT app:

  1. QT 6 libraries
    :white_check_mark: QT Creator
    :white_check_mark: Neochat
    :clock3: Tokodon

Where the numbers represent how many users expressed interest. Maybe with some oAuth login linked to this very forum (is that possible ?)

Of course a first simpler version could be a mere webpage per subject.

There is a thing like coding for Haiku or coding for third-party applications, I’m not familiar with Haiku aside from building the tree once in a while, for haikuports one could have a look into the recipes as to what is required to build/run a package (runtime/buildtime).
I for one mostly just grab a source (for something new) and run a local build in Terminal, there are tools in cmake/configure/meson … that can show you what options to use and/or what is required. Else the build will fail and this should also give an indication on what is missing, this should be common knowlidge when it comes to porting and I guess most of those that use it already know how to tackle that.
Just my 2 cents. :slight_smile:

“Need” and “want” are relative. We see a lot of “I think I’d use Haiku, but I need _, and _, and _ …” I’ve seen people advocate for needed programming tools - that they admit they wouldn’t know how to use. It’s hard to get meaningful numbers by counting instances of these needs when they may vary so much in nature.

2 Likes

What Haiku really needs is Hardware Acceleration.

I hear thats in progress, though, which is good to hear.

Hardware acceleration is an obvious one everyone wants. Finding people with enough knowledge and time to bring it to life is really hard though. Aside from helping to gather funding there’s not much I can do. In a sense porting other small stuff attracts people which in turn can help fund these big tasks.

Anyway the goal of such a small site wouldn’t be to force anything but just collect information on what people desire in an organized manner.

Haiku still misses many things to be a daily driver but it’s improving a lot lately. It it still secondary and a hobby for me too but I care.

I think viewing “needs” as a tree can be useful because for example in itself isn’t very interesting. Go programmers already work daily on other platforms so Haiku just isn’t an option. The list of small apps & commands that go would bring matter.

If you look at what @Begasus has been doing you can see how having QT makes porting a vast amount of stuff possible. At first I thought “meh slow Linux ports” but in the end I realize it’s a bunch of small things I am happy to have because it means that for this or that I don’t have to go back to Mac or Linux.

Working with a lot of shell commands lately I got frustrated specifically by both Go & Rust not working as they are getting a lot of traction and not having them sort of blocks a lot of stuff.

4 Likes

A tree, or better yet, a…

Hierarchy of needs?

2 Likes

But what would you do with it? I don’t understand it. By itself, it wont change anything. The system may feel a little bit faster or a little bit slower, or it might not change anything at all.

So, what do you really want? Is it running AAA games? Open source 3D games? Blender or some CAD tools? Is it about improving video playing? If so, in which apps?

“Hardware acceleration” is a very strange checkbox to want to tick, as an end user.

Also, personally I do not have any needs for any of these things, which is enough to disprove your “everyone wants it” :sweat_smile:

2 Likes

My brain automatically replaces every occurances of “Haiku needs” with “I want”.

3 Likes

It would be funny for me to insist specifically about hardware acceleration. I am aiming for lower hanging fruit in said tree / hierarchy. You’ll notice I started the thread mentioning terminal tools, not blender :slight_smile:

Hardware acceleration isn’t very high on my personal list. I just agreed it was a common desire (and a very hard goal to reach with the current resources). It never hurts to have 20 videos playing overlayed smoothly in the browser but that’s not the priority now for developers.

The whole idea I am suggesting is to have a visual tree of progress and dependencies fulfilled / required. To see better what’s moving well, what stalled and what a number of people wanted to use it.

One of the things Haiku needs is to attract more developers and this kind of thing could help. I think it makes sense to focus a lot on dev tools for various languages.

One of the things that motivated me to come back (like every year or so since BeOS times :sweat_smile:) was seeing posts about Genio . Made me think I could do one day what I do in Nova (Mac) on Haiku . I don’t write C# but I saw positively the possibility of it becoming a first class language in the future. Because that’s one more ways devs will come.

The examples I mentioned in the top post are really stuff I use in daily life in the terminal across all platforms. Does everyone want fzf and lazygit ? I don’t know but maybe we’d know more if such a visual tree existed.

The way I see it, it could grow organically with people posting what they miss. It doesn’t need to list everyone who says “I want photoshop”.

2 Likes

It depends what your goal is. For the Haiku project, one of the goals is to provide a consistent environments, both for developers and users. That means sticking to one single language (for better or worse) and personally I put this consistency goal quite high in the priority list. Since a lot of my work is investigating and fixing bugs in many applications, I don’t want to be jumping between C++, Go, Python, Rust, … all the time. I think it will be detrimental for users as well, as there is a risk of applications that behave slightly differently because they are written in different tech stacks (even if they look the same).

So, yes, we can build a huge “tech tree”, but it’s very hard to say what is important in it and what isn’t. Mainly because every developer you ask, will have a different opinion. Both on things that should be done, and things that could turn out to be bad ideas or a massive waste of time.

since you seem to be focusing a lot on existing tools, I think the best thing to do is to build the tree out of haikuports tickets (yes, I am determined to turn every conversation in tis forum into bugreports :sweat_smile: ). You can have bugreports at haikuports asking for one piece or another of software to be ported. It is possible to mark it as “blocked by” another one. With levels of recursion if needed (dependencies of dependencies of …).

And overall this is quite different than what the core OS, Haiku itself, needs to be completed. It’s “only” tools and apps.

1 Like

You are right indeed that HaikuPorts already contains this tree in a way . I will make tickets for all these (fzf & lazygit). I may ask in the ticket itself for help on how to make them dependent on this recent golang port.

What I think would be cool as a “new” user is to be somewhat guided when I search for a package such as lazygit , to see that there’s a ticket for it and that it depends . Maybe the “votes” could be just people who follow a ticket.

This could one day be turned into some nice visualization where people who see what the next steps are and how to help (code / donate).

2 Likes