Which of the following languages would you most like to be able to use the Haiku API in?

Haskell
7% (6 votes)
Lua
14% (12 votes)
Perl
5% (4 votes)
Python
51% (42 votes)
Ruby
17% (14 votes)
Scheme
4% (3 votes)
Squirrel
2% (2 votes)
Total votes: 83

Comments

Re: Which of the following languages would you most like to ...

Why not Object Pascal? The Free Pascal compiler is already ported to Haiku and there are many developers that use Delphi and Free pascal supports it (and Turbo Pascal too) so I think it would be a great way to get many new developers to Haiku.

Re: Which of the following languages would you most like to ...

Python is definitely the preferred language of the ones to pick from.
It's got a mature library and definitely the one that will contribute the most to the development of programs to Haiku.

From a persona perspective, I really miss the most interesting language out there: Falcon

http://www.falconpl.org/

Re: Which of the following languages would you most like to ...

Haskell for sure! It's elegant and pleasant to use. Although, python seems to win when it comes to popularity!

Re: Which of the following languages would you most like to ...

Thanks for emphasizing the role of Vitamin D in the absorption of calcium. Vitamin D is essential for bone maintenance. It enhances calcium absorption; reduces losses of calcium from the body and promotes calcium deposition into bone. Jonestown Real Estate

Re: Which of the following languages would you most like to ...

Python. Easy to learn, interactive and google seems to like it. ;)

Re: Which of the following languages would you most like to ...

Python is the ugliest language that I ever seen, python must die, i'd like ruby.

Re: Which of the following languages would you most like to ...

Ruby is the ugliest language that I ever seen, ruby must die, i'd like GO.

Re: Which of the following languages would you most like to ...

Go isn't object-oriented programming language, => must die.

Re: Which of the following languages would you most like to ...

It's a feature!

Re: Which of the following languages would you most like to ...

Heh, well Go has no type hierarchy like in C++ but by using interfaces you can develop in a (imo very flexible) object oriented style. I like both C++ and Go. And while I certainly feel more comfortable in C++, I find there's an elegance to the Go language which I'm drawn to. That said, I probably wouldn't do a project in Go versus C++ unless I wanted to utilize Go's emphasis on concurrency.

Re: Which of the following languages would you most like to ...

I voted Scheme, because Lisp has already proven itself for this sort of thing (Emacs, Gimp, games, sound editors, music editors, etc.), but they are all good programming languages, and I wouldn't mind seeing bindings for any or all of Lua, Perl, Python, Ruby, and Haskell.

Squirrel? I had to search for that (http://www.squirrel-lang.org/): It seems to be Lua with OO and C syntax. If the OO part fitted really well with the way Haiku does object things, then maybe.

Lua has already proven itself for video games and graphic applications, so it might be the best choice, since it is explicitly easy to bind to C++, and not just C. It is also very portable.

Re: Which of the following languages would you most like to ...

Forget the languages. Just make the best IDE for development possible. I consider C# to be the best language to develop for simply because of its excellent IDE (Visual Studio). Debugging, Visual design etc. really make a huge difference. If you need a bunch of different apps (one for code, one for design...) and need to execute all kinds of console commands just to see your latest change then I for one will not be happy. (I know this is a bit off topic)

Re: Which of the following languages would you most like to ...

I certainly love me some C#. Given that this thread is about porting the Haiku API, I am not sure that Visual Studio is on topic though.

Visual Studio is of course Windows only and the Haiku API is not going to do you much good on Windows even if there are .NET (C#) bindings. It is not like you could use Visual Studio to write your Haiku apps.

The need for good IDE support on Haiku is a related but separate topic to binding the Haiku API to new languages.

Re: Which of the following languages would you most like to ...

yab would love to see as an integral part of haiku :-)

Perl is needed

Re: Which of the following languages would you most like to ...

I totally agree, it would be a very good idea to have yab in the mainstream distribution.

Re: Which of the following languages would you most like to ...

+1

If yab was an official part of Haiku (not the whole thing, just the binary) then yab developers could deliver their apps just as a script instead of having to bundle it with nearly a mb of binary. I suggest Lelldorin's hacked version that does not require ncurses to be installed.

Re: Which of the following languages would you most like to ...

I agree in pushing yab into the mainstream. It seems simple enough to be used as a catalyst into programming. Yab would make a great fit to get things done simply and fast. This type of programming environment could spark curiousity in budding programmers (including children) and expand into some contributing users and the popularity of Haiku in general. I could imagine my nine year old using it to solve math problems and for possible scientific experimentation. The BASIC dialect should still be used this day as an easy way to spark logical thinking.

Currently I use python but it's hard to ask a newbie to start with this - it's too abstract.

Is this project still being maintained?

It seems Haikuware offers several versions. Maybe it would be wise to eliminate the ones that are outdated/unnecessary.

Re: Which of the following languages would you most like to ...

Well I voted python, but given that my development languages are primarily c,c++ and python that likely just mirrors my personal bias.

I would also be interested in seeing Haiku Api exposed to Go sometime in the future but that would of course require a port of Go itself to begin with.

Re: Which of the following languages would you most like to ...

Well that doesn't seem to be much of a popular choice but I'd love to see c# supported through Mono. Of course that's mainly because I use c# for work every day, but also MonoDevelop is a very nice IDE.

Re: Which of the following languages would you most like to ...

I would very much love to see Mono supported in Haiku as well. There has been some effort to port it in the past but I am not sure of the status.

One of the biggest advantages of porting Mono is that it would bring not just C# (which would be great) but all the .NET languages. Porting Mono really means enabling CIL (Common Intermediate Language) programs to run. All .NET languages, including C#, are compiled to CIL assemblies. So, if you can run CIL, you pretty much automatically support C#, F#, IronPython, IronRuby, Boo, Nemerle, Clojure, Visual Basic.NET, and all the other .NET languages (many) as well.

The same would be true of the Haiku API. Creating the bindings for C# really means creating Haiku API bindings for CIL (Mono and .NET). The Haiku API would then be usable from any of the languages listed above.

I would love to use Haiku as a base to write my Mono apps. It is the multi-language nature of Mono that makes it a killer option for me. The cross-platform nature of the platform is also killer of course. It is awesome in Mono to be able to share all the complicated (and error prone) application logic between platforms while being able to access the native GUI API to create a native feeling (and looking) user experience for each platform.

Sadly, Mono support under Haiku would not automatically bring us the excellent MonoDevelop IDE. For that, we would also need the GTK+ (and GTK#) libraries. MonoDevelop running on Haiku would be awesome though. With that, I might be able to move to Haiku as my primary desktop.

Re: Which of the following languages would you most like to ...

Tcl! I know it's relatively unpopular, but it is my favourite. More than anything else I'd just want to see a port of Tk to Haiku's UI system.

Re: Which of the following languages would you most like to ...

I voted for Python because seems the best out of those choices.

Looking at SourceForge can gauge which are the popular programming languages used by open-source developers. Below lists # of programs available for each but the Java number could be off.

Java       46,507
C++        37,122
PHP        30,220
C          28,222
C#         13,607
Python     13,483
JavaScript 11,378
Perl        9,248
Ruby        1,846
Lua         1,040

Also, Python seems easier to learn for many from the syntax and grammar used. See:
http://blog.slickedit.com/2007/09/comparing-python-to-perl-and-ruby/

And performance is pretty good:
http://blog.famzah.net/2010/07/01/cpp-vs-python-vs-perl-vs-php-performan...

The Computer Language Benchmarks Game is timing out so could not compare against that.

Re: Which of the following languages would you most like to ...

I would say Python, but I voted for Lua because I thought it should be ranked second. It's got excellent performance and efficiency for a high level scripting language, especially LuaJIT, and like Python it will mix nicely with C and C++.

Clojure doesn't seem a great idea to me because it depends on Java and hence is deemed to be a resource hog.

See the computer language benchmarks game for more or less objective data:
http://shootout.alioth.debian.org/
(offline at the time of posting but should probably come back)

Re: Which of the following languages would you most like to ...

+1

Re: Which of the following languages would you most like to ...

I can't comment on the Computer Language Benchmarks Game beyond the few things I can see in Google's cache (…of bite-sized thumbnails). Would be very interested to see for myself once the site is back online.

I'll grant you that Clojure's dependency on the JVM gives it a large memory footprint. Realistically, the need for a JVM port might be enough to put it completely out of the running.

But for speed, the current JVM and CLR based implementations are still top-notch for highly-parallelized tasks, what with Clojure being a Lisp. If we were still in a single core world where devices had little RAM to work with, I'd gravitate more towards Python. Python has really made some impressive gains in its performance over the past decade.

However, I've seen enough promise from this (admittedly, very young) Lisp that I think it's got legs, and it's so nice to work with a language where multithreading doesn't feel like an afterthought. Which, I admit wouldn't be as much of a concern of mine, if I hadn't been doing a fair amount of work with shaders for highly parallelized GPUs and marveling over the possibilities. YMMV. :)

Re: Which of the following languages would you most like to ...

Maybe I've misunderstood a few things, but wouldn't JVM and CLR, and hence Clojure, only let you program for the CPU? Isn't the only way to take advantage of parallelization on the GPU to use a framework like CUDA or OpenCL, which are both focused on C and C++?

As for the CPU, there are also frameworks for C and C++ that make parallelization less of an afterthought, such as OpenMP and FastFlow. Both of these should be fairly easy to make accessible for Python and Lua.

Also, I also think it's a charming property of Haiku that it currently doesn't need much RAM to work, unlike most common platforms. This would change dramatically if the JVM were added.

Re: Which of the following languages would you most like to ...

Yes, I've worked with OpenCL and CUDA. It's not quite what you'd expect.

All communication with a GPU from the CPU has to take place asynchronously on a single thread, typically the main thread. The GPU itself performs several operations in parallel. With shaders, I have the ability to fine tune how it's performing these parallel operations, and GPGPU environments such as OpenCL/CUDA are built on top of shaders. And because OpenGL is derived from Fortran, there's some interesting limitations, especially in the ES2 world. Lots of arrays! Just to clear that bit up.

I'd like to be able to do that on the CPU, but it's never quite as pleasant as it is on the GPU.

OpenMP and FastFlow are solutions, but they're still stuck in C. It's always challenging to get a good tradeoff between atomicity and efficiency on any C-derived platform. Threads, locks, and pools are good solutions, but they force the developer to write functions and classes that anticipate threading to varying degrees depending on where the bottlenecks lie. Libraries help, but they still force you to set up memory barriers (especially OpenMP and the compiler pragma directives. Ugh), perform verification at runtime, and other complex bits like that.

Lisp is quite a bit more elegant when it comes to anticipating threading issues, and it's easier to write code that's re-entrant. Simple, no. But easier. I'd support the Lisp-derived Scheme instead, but that… well, it has its own issues.

As for RAM, we'll have to agree to disagree. I prefer the model where an environment takes advantage of idle memory for aggressive caching, which the JVM does well. You say poh-tay-to, I say poh-tah-to. :)

Re: Which of the following languages would you most like to ...

What about Objective-C?

Re: Which of the following languages would you most like to ...

+1

Re: Which of the following languages would you most like to ...

I'd vote for Clojure, if it was an option.

Clojure's a very elegant, dynamically-typed Lisp dialect made with concurrency in mind, and it's very simple to use. At a time where every modern CPU for the foreseeable future has multiple cores, I believe Clojure support would be the most forward-thinking option available. Considering Haiku's very young (in OS years :) ), and shares the BeOS philosophy of pervasive multi-threading to take advantage of multi-processor systems, I think this is the best fit for Haiku, by far.

Overview; http://java.ociweb.com/mark/clojure/article.html

It's also supported by Google's AppEngine. So not only do you have a powerful, modern language that embraces multicore systems, but you also have the option of using that language to create scalable web apps on a widely supported, mature platform.

Regardless, I voted for Python. It's a mature, fast scripting language that has enough in common with C that it's easy for C and C++ developers to dig in. Ruby, Perl and Lua all solve roughly the same set of problems as Python, so I wouldn't mind support for any of those.

As for JavaScript, I don't know. WebPositive's WebKit port should take care of that; JavaScriptCore comes as part of the package.

Re: Which of the following languages would you most like to ...

The problem of course is the JVM. One would have to port OpenJDK, and even then there's a whole package of licensing issues with it (see what's happening to Android?). That's I guess the reason why Java isn't listed above.

Re: Which of the following languages would you most like to ...

I would like to see JavaScript as an option too (voted for python).

Re: Which of the following languages would you most like to ...

I'm interested in JavaScript also. Node.js seems like a perfect fit in many ways. I might play around with it on my own.

I created a repository on GitHub, if anyone is interested: https://github.com/benjaminoakes/node-haiku

Re: Which of the following languages would you most like to ...

Logged in to vote for Python. The Javascript recommendation is also wise.

Re: Which of the following languages would you most like to ...

JavaScript is the language you want, it’s all over the place, really popular and quite a lot of users write it!
Voted for Python though because it’s the best of t… well, ok, it’s the only choice there. Ruby, seriously? Mac heads.

Re: Which of the following languages would you most like to ...

I would prefer ruby over python and I dislike macs. So your theory is bogus.

Re: Which of the following languages would you most like to ...

Meh, so you're one anomaly in all the ruby fans I’ve bumped into.

Unrelatedly:
Shame the JVM still isn’t on Haiku, with that you would get a large range of languages (including clojure, python, java), though it is hardly the lightest of run-times :)

Re: Which of the following languages would you most like to ...

Basic

Re: Which of the following languages would you most like to ...

This seems like it would be a good opportunity for range voting - that way we could rate each language by importance rather than just pick a single one we prefer the most.

Re: Which of the following languages would you most like to ...

Even though my vote went to Python, I think if you would include Javascript (through node.js or rhino), you would get quite some response.

Re: Which of the following languages would you most like to ...

My vote also went to Python. JavaScript would definitely be cool though.

Re: Which of the following languages would you most like to ...

Why Scheme and not Lisp? I'd rather like to see Lisp I wrote a quick little sudoku solver in Lisp and I'm pretty sure it would be a nice programming language for apps on Haiku.

There are many implementations though I would suggest ecl clisp and sbcl as being the best. I don't remember if they run on Haiku though they might require a bit of fixups in the configure scripts.

Re: Which of the following languages would you most like to ...

Probably because there is already a fully functional scheme compiler/interpreter and lisp has yet to be ported.