Yea, so this is going to be a long post, sorry about that. So much to say. It is a little disjointed since I’m just kind of throwing my thoughts out there. I felt that I really need to write it all out, so I can also make sense of it and ask for help and maybe support? So here goes:
I want to build a commercial company that builds an awesome OS that many people will use. Specifically for desktop/laptop personal computing use. I want to use Haiku, since it has a permissive license (MIT) and because it has many of the same goals as I do. I have personally been really excited about Haiku, since 2004-2006 time (I don’t quite remember). I never used or heard about BeOS, before Haiku, so I don’t really have any connection with it, but seeing as how cool Haiku is, BeOS, must have been really amazing back then. I recently put in Haiku to try it for the first time, in a VM, and it was fast and looks like what I have been looking for. It still needs a lot of work, (VM - mouse issues, monitor resolution issues, etc…), but has so much potential. I think it needs a modern design and some interface improvements to really compete though. As well as a tightly integrated hardware experience as well.
A little about my background: I don’t really know much about OSes, but I would like to learn more. I know how to code in Ruby/Rails. I used to know C++ and Java, though not really well. And PHP, but we won’t go there. I’m not a particularly great programmer, since I rarely have devoted a lot of time mastering it, because I’m usually off trying new things out, but I think I could be much better if I had the time. I have a CSE degree, and I have been involved with computers for most of my life.
So the reason for doing so is because, the 3 major players of OSes right now all have problems and really irritate me. I also think it annoys a lot of other people, including nerds/geeks, programmers, power-users, creative content creators (artists, photographers, etc…). For example, Windows is problematic if you want to program non-windows software, Linux has too many configuration issues and just gets in the way (although is my favorite for programming), and Mac OSX is closest probably to what I want, but it has the issues of Apple just always saying “my way, or the highway”. I’m sure most of you have the same things and can make a book out of all the problems with the other major OSes, so I won’t list them here.
I have been wanting a better OS to do my work in and enjoy my media in for a long time. I’ve always thought, one day, once I become rich I will get someone to create a better OS. Then Haiku came along. For a long time, it still seemed so far away from completion, but now I see that it is getting close. I’ve put it out of my mind for a long time, but I still visit the homepage yearly to see the progress. I’m still not rich (or close to being so, unfortunately, hehe), but I feel that it is possible to do this now (maybe I’m just being naive, but I don’t care.) I want to do it anyways. Kind of like the Haiku developers who even dared to try to build this OS on their own.
I’m in a bad position though because I still don’t know much about OS or cannot really contribute code back to Haiku. I can donate some money, but I rather spend it on the company I will build. So since Haiku is not finished yet, I’m still split as to what to do. So the following are more descriptions of my goals and concerns and also questions. Please feel free to be brutally honest with me, but try not to make everything negative, but focus on what can be done. Thanks in advance!
Here are the Haiku objectives, which I totally agree with:
“a fast, efficient, simple to use, easy to learn, and yet very powerful system for computer users of all levels”
“a leaner, cleaner and more efficient system capable of providing a better user experience that is simple and uniform throughout.”
Specific focus on personal computing
Custom kernel designed for responsiveness
Fully threaded design for great efficiency with multi-processor/core CPUs
Rich OO API for faster development
Database-like file system (BFS) with support for indexed metadata
Unified, cohesive interface
"sane defaults, not maximum configurability"
My Added Goals
Modern Interface (not dumbed down, just looks nice)
Focus on programmers and power-users initially
- About privacy, I would like to prevent taking user info at little as possible and of that, I would do local client-side encryption for everything. This is in the future though.
- These are issues I really care about. I also believe that most people don’t care about them enough, but if I build it in to my system, others will just naturally benefit from it. But I don’t have the resources to handle these things right now.
The OS should make you feel good and fun to use your computer. It should not get in the way of doing work.
A way to think about this is, it should have the power/flexibility of Linux and the modern cleanliness of Mac OSX.
It should be open in the sense that, I would never go out of the way to prevent other use case scenarios, but I have my own goals
and will seek to make the experience as good as possible. Unlike Apple, I wouldn’t go out of my way to restrict the
OS from being used on other systems. There is no “walled garden”, just a garden, that you can come in and out as you like, but I will
try to make the garden as nice as possible, whether you like to use it or not. You can also extend the garden with your own or other
Open-source or not?
Eventually closed-source, to keep my proprietary code, so that I can keep my leadership advantage, just like any successful
business (ex: food industry - Coke would keep its recipe secret.)
I’m not sure about if at first, I want to keep the kernel open-source, or even just keep using the Haiku OS kernel for now and focus on
interface design and adding drivers and getting applications developed.
I also want to eventually provide a complete experience, that includes hardware.
- A desktop and a laptop.
- Customized for the OS.
- Higher-end hardware (not too high, for now). Future-focused.
- Tablet and phone, not on the roadmap yet (but possibly in the future, with complete new interfaces).
In the beginning I will focus on what’s available, with a desktop, that I can build. This keeps my costs down, while still providing a tightly integrated system. Therefore, I might just spend most of my time, at first getting drivers developed for the system I build and test it, and eliminate as many bugs as possible.
Afterwards, I plan to execute on those above plans and more money comes in, I can tackle more and more of those problems with more money for developers, designers, engineers, etc…
- I don’t really care about keeping BeOS compatibility, but if I can get new paid developers to work on it to finish it. Or donate to existing developers to spend more time to finish it. (I’m just worried that some of the money will be wasted on features that don’t expedite the process of getting a stable working OS out the door.) Having older BeOS apps work can add to existing apps, and draw more initial users.
- I also care more about using a modern compiler, GCC4, but is more a later stage concern.
- Maybe focus on 64bit only as well, but again, not for right now probably.
- I don’t want to sabotage the Haiku community either. I want people to still continue developing for it, so that users can still use it for free.
- Also, I’m not sure yet, but by keeping the same API for now, I can ensure that whoever develops for either platform, will be able to use the apps, wherever they like.
- I know that recently there have been talks about using the Linux kernel, for 1) to get Haiku finished faster, 2) to provide a more stable and tested kernel, 3) to have support for a lot of hardware already there. I’m still not sure where the consensus on Haiku developers stand, but maybe some will go and some won’t.
- I don’t want to use the Linux kernel, and I want to finish the existing Haiku kernel. I want it to be as clean as possible, therefore less bridging / layering needed in the future and I can control my own destiny (make changes to the kernel as needed).
- Initially, it will be targeted at programmers and power-users initially. This is who I think has the most pain in their current personal computing. If I target the average Joe, it will be much later down the road (and there wil always be a way to turn off unnecessary things, maybe have a beginner, intermediate, and advaned mode (like in Vuze)).
- High-end (quality over quantity or being cheap). I may start with cheaper models at first if thats what it takes to break into the market. This means it will probably be expensive eventually, but hey it costs money to get people to develop for you and all other business expenses involved.
- I know that there will be less and less people using the desktop/laptop in the future, that is OK with me since, I care about content creators and they will ultimately still like and use a desktop OS. If this changes, we will adapt, but for now and next 5-6 years, 10 years, I think this will still be case, if not for my whole lifetime.
- When this company becomes successful and I get a lot of money rolling in, I plan to attack other interesting problems as well, but those are future dreams/goals for now. (But hey, one can dream.)
- I want to make it look nice. Since I am focusing on programmers and power-users at first, I don’t want a dumbed-down/tablet/phone friendly interface. I know that many of you have this concern.
- Of course, we will disagree probably on the specifics on the final outcome, but I will try to make it be good.
- I also like options, but don’t want too many options, like Linux is all over the places sometimes. I will limit it to be too many choices.
- I don’t want the user to have to use the terminal at all to do anything, but it will be possible to use it if you wanted to.
- Need up to date and easy documentation for as much as possible, especially developers. Not saying it isn’t so already, I’ve heard that it needs work and I haven’t really looked, but this needs to be there.
Get work done, while having fun and being easy, with nice visuals at the same time. (Initially)
So, not corporate, not free spirits, and not hipster. I have no one name to group, it is, what it is.
Ok, so some questions/concerns that I have:
- Do you think that Haiku is the best OS for this purpose?
- Should I just donate money now to the Haiku project to get it finished ASAP? I don’t care about BeOS compatibility, but will this be a significant advantage for me?
- How far along is the Haiku kernel; what else needs to be finished?
- How far along is all the other features for R1 release?
- Should I worry about keeping compatibility with the Haiku API and keep the existing kernel and have those efforts support me, while I build up?
- I can browse the suggestion forums for more features, but you are welcome to add them here as well, or a future project site, when this gets going.
- Anyone think about some major Software Patent issues that I may face? About competition, I hopefully will go unnoticed by the big players until it is too late for them, but who knows, maybe they are reading this right now and hope to crush me here in the this thread. I have strategies to out maneuver them for now, but probably they won’t even care because most major OSes right now are focused on the average Joe type user, and I’m not.
- How many developers and in what fields do you think I should or need to start with? How much do you think I need to pay them, or can just offer stock options?
- One of the many concerns I have is with video cards and getting a good graphics experience for the user. Should I focus on just ATI or NVidia or something else. Since these hardware are mostly closed, is it possible to even get a great experience, without having direct knowledge, or spending a lot time/money figuring things out?
- This also applies to other hardware and driver development, how hard it is to develop drivers for other proprietary hardware?
- Should I focus on making a tightly integrated desktop version first, or just focus on a modern design first? What do think will draw more people and developers? Or something else?
- About choices, I like choices but too many is not a good thing either. One thing I don’t want to do is, prevent people from doing their own thing (or at least go out of my way to do so). Does that mean I need to open source the code? I would leave the other niche OSes, Linux, BSDs and even Haiku to be very hacker friendly, for people to do whatever they want. I just don’t want to turn into another Apple, which I won’t even use their products because of my distaste for them, and previously for Steve Jobs. But I need to have a successful business or else nothing will work, so I have to keep that in mind. Any suggestions here would be welcome.
- Also, I may setup a donation fund as well, maybe having a commercial company, with paid developers would encourage more pay for something that will get the necessary things done quicker.
This post is long enough and I can’t voice all my concerns and questions. I also don’t want to reveal every last detail about my strategies as well.
Anyone who has interest in the project, please let me know. I am open to any questions/suggestions. Thanks again for reading this and any input you may have!
Anyone who has a lot of experience in any of these areas, I welcome them to comment or PM me for more thorough discussion.
I’m not also not 100% positive I am going to do this yet, but it has a high chance once I figure some things out. I need to see if I want to commit the time and money to realize this through.
I know this is an ambitious undertaking and as well there are a lot of concerns here, but hopefully this thread can handle it. If not, suggestions on where to discuss this are welcome.