I am following the Haiku OS development for quiet some time now. Years to be honest. I do like it very much and even as I do not contribute to its development because of steady lack of time, I would like to use it in my projects badly, but can not, as features I really do need are not present and features I do not need are present or worth, be paid to be there. As I never raised my voice, I really can not blame anybody but myself, if I am unhappy with the current status of HAIKU.
In my dream HAIKU runs fluidly on cheap hardware, ARM and X86 alike, AMD64 support is meaningless for me. HAIKU helps me with my hardware projects as well as small software projects and makes my life a lot easier. I use it as a secondary, tertiary OS, which helps me in situations were Windows, MacOS and Linux/BSD are too thickly battered in security or my tablet is insufficiently equipped. My projects don’t need multi-user support, they don’t need security. If the OS is accidentally messed up, it doesn’t matter. Important things are backed up on a SD-Card or a VCS.
In my dreams I re-created the old Commodore CBM610 housing and placed a little ATX board inside, running HAIKU on a 17" display next to my three 24" display setup running EDA tools on windows and the iPAD on the other side.
In my dream I can make projects happen fast, due to HAIKUs easiness and helpful features. The OS provides less, in comparison with the major ones, but what it does is easy to understand and to deal with. I can create device driver in user space and therefore extend the system, I mean without the need to recompile the kernel or sign papers with the OS Vendor for a digital signature. I do device driver development for a living for WinCE and Linux, I know what I am talking about. I really would appreciate a system I can develop test cases on and connect it with the embedded hardware easily. Different customers have different devices and drivers, programming test scenarios under HAIKU in an interpreted language with or without c/c++ parts would be nice as it saves my time, nerves and would free me up to give things back to HAIKU. In form of money or software. But there is currently no foundation to work with and the priorities of HAIKUs roadmap are unclear to me. I do not see a fixed goal, but a heavy roller coaster ride with random shotgun shootings at blurry targets.
In my dream HAIKU is easily extended in user-space and the system is thoroughly programmable with an interpreted language, so I do not have to hassle through C++ if I do not have the need to. I see examples in source code, nicely sorted in sub directories as well as some howto papers.
Chatting on IRC and being pointed to the kernel sources is not what I am looking for. I do not need the IRC for that kind of information. I also do not want to crawl 2GiB of source code, unsure where to look, I simply want to know how to write a user-space device driver for USB, I2C or whatever! There is one document for display drivers…well guys…yeah! Many people need those…cool, thanks! If I install the development tools for HAIKU I expect to find examples and skeleton drivers in an examples directory. Small HowTos as .txt files. It works for Linux, it will work for HAIKU! What do I find currently, PDFLIB support files…what the heck! I learned, that mostly those systems attract people, which are easy to work with. Maybe I am too stupid or lazy or both, but I really would like to use HAIKU, just not in its current state.
In my dreams I can use HAIKU to build my simple applications on. A system wide GUIAppServer, which reads YAML based GUI-object files, builds and stores windows and frames and shows or hides them when told to. It interacts with interpreted languages or C++ via >>ports<<. If you think now of something similar to AMIGA-OS’s ARexx or OSX Scripting, then you are not too far away. Not far at all…
However, these ports can be redirected to UART. TCP/IP sockets or USB ports, thus I can let the GUI be updated by a different computer system, altogether, even multiple if needed. Each application owns exactly one Master port to the GUIAppServer and can spawn multiple replica from it. As an example, on a multi RS232 card, four arduino boards, which are collecting data from a machinery, are attached and send periodically data through RS232 to the GUIAppServer or receive data from it. I can specify within the YAML file, or via the application, port re-directions to the UART (COM) ports, TCP/IP sockets or similar. My application doesn’t care about the arduino data, as it might not need to know. Need to know data, can be either gathered by the application, by controlling the device directly, or by letting the data be forwarded by the GUIAppServer from the client to the application or vice versa. Easy! In essence it is something similar to androids ADK, but on steroids.
In my dream a GUI builder is avail able, but writing the YAML files in a modern version of PE editor would be fun, the nifty widget placement strategy makes it a no-brainer. Due to the inter-widget-notification concept, with features like:
on_*** events (on_key_down),
do_*** actions (do_hide),
be_*** property changes (be_visible),
or user created ones (“user_event”),
I can connect widgets within the YAML file to update/exchange values, switch each other on and off, etc. and the embedded minimalistic BASIC like language brings this even one step further and helps me to build a smart GUI without cluttering my main application, using IF-THEN-ELSE-ENDIF, FOR-NEXT, ON-EVENT-DO, expressions with mathematical functions and variables. Events, actions and property changes can be triggered by the script or a script can be executed on.
In my dreams HAIKU on ARM/x86 helps me to communicate easily with hardware I created, via USB, I2C or GPIO ( like a parallel port, etc), even an old RS232 or UART port might just be the way. I am aware, that I do not have MMU secured hardware abstraction or different layers of multi user security functionality which prevents intruders from compromising the system. If I wanted or needed something like that, I would not look at HAIKU >>.<<
If I would be interested in multimedia creation, manipulation, etc. I would use a system with OpenCL support. Otherwise I also would be a person who happily starts mining bitcoins with a RaspPi.
OpenCL is or will be included into mainstream browsers, soon, as it is important for physics calculations in games…which is the next big thing for browsers. We will soon see that the browsers scrolling behavior will be controlled by the OpenCL physics engine for a nicer, more accurate feeling for touch enabled OSes. And no, HAIKU is not one of them. Other means of leverage the power of OpenCL will be discovered soon after. In a not so far away future GPU accelerated OpenCL support will be mandatory on desktop OSes and its browsers. I doubt, that HAIKU will have GPGPU support for any major hardware platform, at any time, as it still lacks hardware 2D/3D acceleration. If the HAIKU community can’t take that step, OpenCL will be unavailable, too. The future starts with the new MacPro, mark my words.
I do see, that there should be a BeOS compatible system, to let old software run on new hardware. I mean that! The HAIKU community should finish that goal, show it to the world, and be proud of it, really I mean it, it is really great! But leave it exactly there, and rethink the future. Do not develop a Jurassic Park, we all saw the movies, we know what happened. BeOS had its chance.
Make clean cuts, do not mix!
As GCC 4 is incompatible with the old binaries, it makes no sense to look back. Instead the HAIKU community should, in my opinion, discuss now, for a Post-BeOS-HAIKU-GCC2 time a new purpose, a new identity. What can be done now, what would be a good road to be on and how does HAIKU attract a large user base now, not tomorrow with GPGPU support. How can this be achieved with little to no additional development?
Have a look of what you have right now worth marketing. Do not spend resources on dubious eye candy or soon obsolete features. People should ask themselves if HAIKU becomes really that more attractive with a native webkit browser and animated eye candy a la OSX, in terms of user base that is. Everyone can and should have dreams, if multimedia and 3D creation is yours, and you want to see it (back) in HAIKU, well, make the system be used by many, many people to attract hardware companies developing drivers.
We talk millions here to attract the big hardware houses. RasPi needed two million, or 1% of the total chip’s market to gain broadcoms attention to open the drivers, and they did not gave the DSP code for the video codecs, nor the hardware description to do it by yourself. For NVIDIA/AMD you might need the same amount of users, for each, that’s 4 mio…Without good hardware information, video will stay to be a CPU cry baby, as will 3D support.
How to get those many guys and esp. gals? With a system without proper hardware acceleration support? HAIKU is not as fast as Linux, even without hardware acceleration, how do you want to pull off multi channel video decoding/encoding in HD without hardware acceleration on a 4K monitor? HAIKU can not run its desktop without tearing on a 900MHz VIA C5 CPU at 1024x768px.
I wondered why a native, modern browser in HAIKU is really that important that people like to spend money on it? Why is the QT webkit not enough and spending money on a reliable and maintained port of QT a bad idea, or a better documented system? I really did, and still do, wonder!
I have currently a HAIKU system installed on a super cheap VIA C5 board, with ruby, lua and python. I all quiet like. Can I use those for a small scripted GUI-project? No! OK then, doesn’t matter, cheer up mate! I installed the BASIC YABS, which is not bad, but not really good either - unmaintained it is, thus I refuse using it. So what can I do with HAIKU now? I mean now, at its current state? If one does not wish to use C++, HAIKU is not useless, but (very) limited. And let me humbly add, HAIKU did not remotely achieve yet, what BeOS offered twenty years ago in terms of C++ development productivity, compared to the standards back than. Where is a modern IDE/Editor, Paladin - yikes, that hurts! I really can not see how one could use HAIKU for even a small project. Before one would spend time in crawling in obsolete documentation or wast amounts of system sources (entire system sources), he/she might finish it in the same time under AROS (AmiLua with gui) or even Linux frame buffer console and HAIKU styled python in an initrd, which means - plain as yogurt, but boots and fires up in an instant.
On the other side, there is this large base of people all over the world with the need for an easy to program system, which can be easily extended and offers a nice GUI and nifty features. Who wants to undergo Linux device driver development on a system like ubuntu? Who can even configure a reliable working Linux kernel for it? Who wants to do that for Microsoft Windows 7++ or OSX? No one! Exactly! A lot of people, companies however are in the need of special device driver! How many companies would like to include such an OS for their machinery, etc…We do not speak of millions of copies, there is no mistaken. It is a niche market, occupied currently by WinCE and similar OSes. For system prototypes or companies with solutions for up to 500 customers HAIKU would be ideally suited, esp. as Windows XP support is over, and USB driver for younger Windowses are a nightmare to create and spread. And there are a lot of these companies out there…That sort of thing might be worth targeting. Maybe HAIKU goes realtime (turbo) some time and becomes the base for the 3D Printer community, or someone ports arduino support with YABS…who knows. But one thing is certain, that a native webkit browser will not be much of a help there!
HAIKU might have a purpose for the Maker and Tinker community, but it does not have a future for the multimedia, office desktop or browser community, accept that and start making a HAIKU to work with, not to look at!
I am interested in helping, supporting actions (money) which lead to a useful, robust HAIKU-GCC4, which enables, even invites people to work with it, in form of developing solutions with or creating, maintaining, supporting solutions for this purpose.
Best Regards,
BeWang