3 ms·
Compared to Unix, is Haiku built with modularity and simplicity in mind?
by klrr 14y ago
Compared to Unix, is Haiku built with modularity and simplicity in mind?
- fusiongyro 14y agoHaiku is built on object-oriented principles, so the question is really whether you consider C++ as used in the project to be modular and simple. The API is pretty clever, mostly built on implicit threading and message passing. I consider it a pretty decent API, so I would say yes. The existence of replicants is a pretty compelling demonstration of the flexibility it affords: any view can be marked as "replicable" and then copied onto the desktop or any other replicant target. Now, because data is exchanged almost exclusively using BMessages and everything is C++, if you're using C++ it's highly modular. If your definition of modularity and simplicity implies Unix processes passing plain text between them using pipes, you probably won't find it all that inspiring. My knowledge is all vintage BeOS R4 so I don't know whether Haiku is more multilingual today; I'd guess probably so, but if not, that would be a detriment since I'm not overly fond of C++ and wouldn't consider it "simple."
- asiekierka 14y agoIt's not multilingual at all, unless you use the GTK ports or stick to console.
- fusiongyro 14y agoThat's a shame. With swig it ought to have been easy to support other languages, but maybe it's too hard to port.
- chubot 14y agoI wouldn't consider SWIG the foundation of multi-language support; it seems more like a legacy wart that you don't want to port to a new OS. Especially with C++. AFAIK it's an ad hoc C++ parser written in Perl! They can do better by ditching the legacy.
- ZenoArrow 14y agoLimited support for Python and Perl already exists: https://www.haiku-os.org/tags/perl https://www.haiku-os.org/tags/perl
- pjmlp 14y agoWell, unless something better comes along, C++ seems to be taking C's place in OS development on non-UNIX systems.
- tqh 14y agoI would say that it was a key concept in BeOS and still is in Haiku. Haiku development actually started by replacing one module at a time in BeOS so several userland modules were actually working before there even was a bootable kernel.