Programming languages available in Haiku?

Hi

is there a webpage listing all the programing languages already available in Haiku?

Also, could someone please provide some comments regarding the expected level of support for each language, roughly?
I mean which are the languages (apart from C++) that will be used the most?

Thanks

HaikuYeah

1 Like

I think a site like this is not available but if you does not have installed haiku yet, do it now.

  • Open haikudepot
  • Switch the cathegorie in development
  • Browser the list of development Tools and there versions

Haiku is written in c and c++

Haiku has awk, which is a fine programming language up to a point and is sure to be fully supported for the duration. Do you want to know about stuff like that, or do you have some more specific objective in mind?

Myself I am mostly interested in easy programming languages for beginners/amateurs (like me). I already know about yab, which I will soon start dabbling with. Also, the fact that FreePascal and Lazarus has been ported to Haiku is very exciting to me as I have some background in Pascal.
More in general I believe that if we want to attract developers to the Haiku platform we need to publicize all we have got to offer in terms of programming resources. And we should start doing it now.
Ideally by the time 1.0 is finally released there should already be a number of developers seriously interested in Haiku It’s up to us to pique their interest and entice them.
That is why I was asking about the already available programming languages.
I guess there may already be a webpage somewhere listing them, along with the availability of external libraries that can be used with them.
If such a webpage does not exists it should be created.

Anyone knowledgeable about this can help us?

Maybe, but i think a serious developer can gather the information easily. As told: the depot can tell you if a programming language/environment available or not for Haiku, but one can make a page with the basic information and create a pull request here:

Not really. We need some PR to attract developers. If they never used Haiku, but justh eard of it, they would not necessarily even bother to check if their favorite language is available.

8 Likes

I’m not convinced it’s a question with an answer. To take Haskell for an example, there’s a GHC build on the depot. What does that mean?

Building Haskell on Haiku is a little challenging - I’ve done it and I wasn’t even trying to make a “port” out of it, so I know someone went to a lot of trouble to make that happen.

But it’s kind of an old port. People move on, and you can lose the committed maintainer just like that. GHC is a project where they’re always tinkering with the language, things have changed in the years since, and it may not be exactly ideal to live with that version indefinitely. Like to try upgrading? You can use that one to bootstrap, luckily because GHC depends on itself, and see how far you get.

I don’t think you’re going to get it working on 64 bits, though - I worked on that for a while, but there are problems with PIC code generation that no one else has because they don’t use ld -shared, and … I just came to the breakthrough realization that I was wasting my time with Haskell, seriously period.

That’s just my personal perspective, as someone who has spent a lot of time on it, and has an application of my own written in it, but am not the maintainer. Meanwhile – we’re in beta, which can affect how people think about committing to support a specific version, given that the platform underneath it hasn’t reached a final supported state (am I porting to the last beta release, or to a daily snapshot, …?)

And what’s more, since I’m already running on way too long here … the API is C++. I’m always fiddling around with this or that language binding, but don’t kid yourself, even if we can put up native BWindows and BListViews and so forth in that favorite language of ours, we’ll never quite have full access to the API. As it becomes more the Haiku API as opposed to Be API, that full access recedes even farther from reach. I haven’t tried binding the layout template stuff, but I’m not optimistic. What does “supported” really mean, then?

1 Like

Thanks Donn for your clarifications. I think a good starting point would be to make it clear for pontentially interested developers how easy or difficult it would be for them/someone else to create bindings to the Haiku API. Developers need to know and to be clear on this, otherwise they woukd not even bother to start with. Are there any tutorials about writing a wrapper around Haiku’s C++ API? I think this is one of the major points to be tackled.

Questions for Lelldorin:

  1. how difficult was it to write the bindings to the Haiku API for yab?
  2. could you share some of your experience regarding that, possibly writing a tutorial or article that could be useful for writing bindings for other languages? This could be crucially important!
  3. as a starting point, could you please focus specifically on the bindings to Haiku’s GUI? You did a wonderful job with that, and it was extremely useful. Having a user-friendly way of writing (at least) simple GUI applications is a MAJOR priority, as nobody wants to read pages of manual stuff just to write a simple message box. Yab’s simplicicity in this regard is an outstanding achievement.

That’s a question with ambiguous answers, too. I have made API wrappers for a couple of languages, and they worked - could write applications that used the native API for windows and so forth. Likely it can be done for others, and in fact I’m getting there with one for another language.

They aren’t pretty, though. Could I have made more satisfactory bindings? Don’t know. There’s always a degree of mismatch between two different languages, and one-to-one native bindings are going to suffer. Does your language have C++'s parameter overloading? Probably not, and that’s going to make a big dent. Etc.

I have no expierience in c or cpp. Yab is written by jan__64 in the past and some people do there hands on it if things are broken.

So i could not do tutorials for other languages. But for yab we have many tutorials online on our haiku knowledge base besly.

Http://www.besly.de
Http://www.old.besly.de (old stand of our knowledge base)

On our software repo you can find a tutorial finder app for better searching our knowledge base and other tutorials like haiku tips server, etc.

Https://software.besly.de

People Who have interest to do tutorials are welcome to our knowledge base. Writing tutorial and or articles about development and expierience can help out here.

Http://www.besly.de

I am not a scripting Guru, but can we get a list of development packages and there version number from pkgman?

Yab use flex and bison to do the api Bindung, iirc.

Jan__64 do a tutorial about adding new commands to yab in the past. The tutorial is available in our knowledge base too.

Just as an initial answer to the original question, I regularly use Python and Ruby. They both work as one would hope. (IRB --“Interactive Ruby” – has an annoying bug in the current version that it doesn’t echo input, but otherwise it’s flawless.) There is also lua, which a lot of people like but I haven’t played with it much myself.

Create a bugreport at Haikuports please.