I'm not raining on your parade. I'm just trying to help in the thought process. Don't let anyone get in the way of your dreams.
I'm not raining on your parade. I'm just trying to help in the thought process. Don't let anyone get in the way of your dreams.
That said, I think there is huge room for improvement in a couple areas. One is rethinking the programming environment - how easy it is to get into, how fragmented it is by a hardware ecosystem, how can you gain C-level performance while making the environment less rigid, how can you make dependencies a no-brainer, how can you make a UI system so good that nobody will want to use anything else - the list goes on and on. I would love to rethink hardware but realistically that is the difference between a million dollar startup and a billion dollar one. That said, the superficial aspects of hardware have room for improvement or niches that can be attacked. For example, I would love to have a portable device (like a laptop) that is able to compete with the comfort of my desktop (and yes, I regularly use the best laptops - they do not compare to my desktop in my experience :) ). I.e. something that can be ported around easily, but does not necessarily have to rest on my lap.
Does the world need another OS? Technically not - because need is a very strong word. :) Does the world want a better OS? To be honest, I am not sure how strong the demand is or how great the apathy is there - I think only the real-world market could tell.
In a way, its really similar to the question "do we need any more programming languages?" We can make do with what we have, but I would be arrogant to say we could not produce anything better. :)
The answer to this question, and other variants like it -- "does the world need another ____" to me boils down to ethics and vision. Maybe we don't need another version of this product, but maybe we can have a product just a good with a better vision and supports making more ethical decisions, and then we can expect over time the technology or the engineering, or the manufacturing process to catch up.
Another thought I have is deeply experienced operating system developers seem to be fading away. I could be wrong, and maybe the world doesn't care but we shouldn't take forgranted that OSes have gotten as good as they will get. Maybe a new OS will help inspire another generation of OS developers. (I would be one. Would love to hack on some low level, hard computer science problems instead of the same, mundane, line of business apps I build every day)
It is also something I find worrisome. Programmers spend their lives building up unique knowledge, only to have it fade into oblivion. We keep reinventing the wheel but don't care to invest in keeping the wheel rolling. :)
Nostalgia, and you can't really resurrect nostalgia. I loved my Commodores when I was growing up, but times have changed. The BBS software that I ran and modded are long gone, the friends I would post with are long gone, the doors would be fun for about 5 minutes.
It was great, but it's like meeting a great childhood friend that you haven't seen in 20 years. Most of the time, it's fun to reminisce, but there's nothing new there. We've both changed.
From a software developer's point of view the Amiga is worth resurrecting because the operating system design represents a promise that you can get great power and flexibility out of modest means, by keeping complexity at bay.
It wasn't always so rosy, but you could pack quite a punch by developing products for the Amiga. The system gave you a lot of leverage, which architect Carl Sassenrath rightly referred to as "empowering the user". The development environment (a 'C' compiler, a debugger and a decent text editor would see you through) and the operating system documentation were solid enough. You could comfortably hold the entire design of the system and its APIs in your head. That kind of knowledge is rare these days, given how complex our platforms of choice have become.
I have been an Amiga software developer for more than three decades now, through the good times and the less good times (it used to be a hobby, became a business, now it's a hobby again). It does give you perspective, and not everything that came around in these last three decades measured up so well: how much of the power of the hardware platform ends up in the hands of the user?
The (for lack of a better word) "thin" Amiga operating system layer allowed you to squeeze a maximum of performance out of the hardware. I recall that during the late 1990'ies Amiga networking software, tested against a HP-UX based logic analyzer's networking performance in the lab, came out on top.
It has been cloned:
http://www.red-lang.org/p/about.html
Both are open-source. Red has a Windows GUI and the OSX GUI is close. The language ranges from high-level DSLs to system programming.
On one hand, I want a language as simple as possible, with as few paradigms as possible, and as close to the metal as possible (or at least the ability to compile it down to something with C-equivalent performance). This would encompass the core of the language.
On the other hand, the language would have a wide variety of built-in libraries for UI, access to graphics hardware, networking, input, etc. The language's paradigms would also be easily extensible, perhaps as an added layer of compilation / meta programming.
https://bjoernkw.com/2016/03/13/load81/
"Because the C64 boots directly into BASIC the main user interface of the machine is an easily accessible programming environment."
Though I only realised it on a subliminal level back then, booting your computer and being able to program it right from the boot prompt with immediate feedback was one of the magical properties of the C64 and to some extent the Amiga. In a way you could say these computers offered the first general purpose REPL.
This property is severely lacking from every mainstream OS nowadays, which of course is intentional because for the most part these operating systems target consumers and hence quite understandably try to hide perceived complexity at all costs. Ironically, the environment that comes closest to these early desktop programming environments is Microsoft Excel. In fact, my father (whom I'm incredibly grateful for introducing me to computers at a young age) although not a programmer by profession used to develop business applications on his C64 while just a few years later he resorted to Excel for the same tasks, which in some ways of course made things easier but also was limited in what you could do with it.
I'm quite sure a modern, well-designed programming environment in that vein would be conducive to both business application development and education.
Sometimes in attempting to hide complexity we introduce further complexity. For example, many modern IDEs make some tasks more difficult than they need to be, when editing a text file would suffice (and provides more programmatic flexibility).
I think that it probably is too harsh to boot into a terminal, but to make a terminal readily available for users with a friendly programming interface would not hurt - and this exists in some form today but still lacks the magic of QBASIC/etc.