1. 19
  1.  

  2. 11

    I’ve used MorphOS between 2.7 and 3.8(?) releases on PowerBook G4, Mac Mini G4 and PowerMac G4 for some years. Even if it they were a second class machines at my desktop (only one at once, I changed models after year or two) and it didn’t satisfied me in 100% of my tasks, I know people who actually use MorphOS on PowerPC as their main (and sometimes only) machine to this day. I also know some people from MorphOS team and it would take at least a medium-sized book to describe their weird and complex attitude towards open source (but not positive I should say), rights mangement and licesinsing system.

    I can answer most of your questions about MorphOS, but at the time writing (~00:36 CEST) I’m not even trying to do some kind of writeup in advance, but I’ll be answering questions trough the day if you like.

    1. 8

      I have a G4 laptop I might put it on in the future. I like that it has beautiful, responsive design. Thought it might be useful for PowerPC development or minimalist system along lines of Oberon. Maybe have a mix of console-style and lightweight GUI apps that are cross-platform.

      So, what’s their position on open-source? And who are they anyway? They a loose collective of developers, a company that does stuff day to day with this being a side product, or what?

      1. 28

        Damn, you drawn my attention replying so fast and I started writing that before I even noticed where I got myself… :D

        This is a tough topic honestly. Let me answer your questins in reverse order to clarify the situation around that.

        Who are they anyway? They a loose collective of developers, a company that does stuff day to day with this being a side product, or what?

        It’s hard to explain all of that without the whole history of Amiga computers line and the current state of all its trademarks and property rights (for now it’s just good to know that Android can’t even compare).

        Please note that the story is told from an European perspective, especially Poland which is one of a strongest Amiga fan-bases and demoscene members nowadays. All of things described below might be completely invisible or irrelevant for Americans back in the day.

        We start at the moment when Commodore collapses with a bakruptcy due to bad management, poor marketing and weird choices (like manufacturing Amiga 500 and C64 for too long, where A1200 was fully compatible and cheaper at some point, also losing a focus on high-end video/graphics/DTP market which was using Amigas widely as hell).

        People started to seek hope in a new owners of Amiga trademark holders which also got rights to hardware, AmigaOS3.x sources and so on. It was mostly a one-side relation, because the property owners were mostly limited to making raw cash from selling old stocks, re-bundling them with games and completely ignoring the further development, then moving rights to another company when they ran out of money or moved they focus to PCs assembling. Most ambitious company was Haage&Partner which developed something called AmigaOS3.5 and 3.9 which were basically a 3.1 with new libraries, updated standard tools and rewritten Preferences (AmigaOS was modular as hell so even if this sounded like major updates for an OS like that it was just a pick-and-place of components from Aminet).

        There was also a hardware-wise shift. Last “home” market model, A1200 was using a Motorola 68020 as stock and high-end models were 68040 in most beefy configurations. And this is where things are getting interesting. Many companies were founded to provide aftermarket expansions to run highly clocked 68030/68040 and 68060 CPUs with loads of RAM (everything past 030 included had a 32-bit address bus). This was nice and extended the life of Amiga with little effort.

        But this wasn’t enough. As Amiga hardware was designed to be extedable from the ground up (except for some ugly chipset←→cpu design flaws which are also another cup of tea). People reached the limits of graphics chipset (OCS/ECS then AGA, the latter was supposedly made in a rush to fill waiting gap between never-released AAA chipset) so they started to release full-blown graphics cards using Zorro II/III slots which were almost always above-PC grade until late-90s (3D acceleration hit).

        And then PowerPC upgrades came. They were sold in tandem of 68060@crazyMHz + PowerPC (most common was a 603e@200MHz in Blizzard PPC cards) CPUs with shared (in theory) RAM, SCSI extension to release the chipset and many other goodies. The problem was that OS wasn’t completely prepared for that, but clever people from Phase5 found a way - they made their own microkernel (called PowerUP, later WarpUP) and some kind of library with more-or-less wisely designed API to lend the tasks from m68k CPUs to PowerPC running in its own blackbox (had no access to chipset/CHIP RAM, only to Zorro, later PCI bus) which was a good thing to solve tasks people which had problems with on m68k, like smooth MPEG-3/4 audio/video playback, high-volume data processing (graphics filters) and so on. The microkernel got some updates and grown too much so it had loadable modules served from the context of m68k AmigaOS and treated like libraries. But not as Amiga-world definition of libraries, they were shared libraries.

        Technical node - on AmigaOS, you were supposed to “open” and “close” libraries on your own - it was copying the lib from disk (or mapped from ROM, which was amazingly well done), registering handlers and so on. But these were static objects accessible to any code in memory (there was no memory protection, it had some nice side effects even when you might say “WTF” at this in 2018) and you could done everything with them. On the other side, interferecing with PowerPC from m68k was more UNIXy from their point of view. And there was a few reasons why the wave of hate (running to this day) started:

        • With the PPC accelerators or later via magazines, there was some Linux distributions able to run on PPC upgrades with all its potential. And it was shitty as hell. You know the state of Linux on PCs in 1995? If yes, then double your frsutration and feel of being lost and move it onto Amiga ground. Plus almost no drivers beyond these poorly written (like using AGA as a simple framebuffer with 2MB of memory). People started to treat a Linux as a trash, scam and not even standing up to the holy and superior AmigaOS3

        • Some later development toolkits, server thigs (like HTTP server Apache) and utilities were ported from other OSes, mainly Unices. There was a library called libnix or later ixemul having POSIX API calls translated to Amiga style calls. This was a crap too, and interop with native software, even filesystem felt like walking in the fog. It also didn’t grant any sympathy or popularity to Unix-world from their view.

        • AROS (Amiga Research Operating System) came in 1995 and it was open-sourced from the beginning and claimed to be a successor of OS3.x with all its good. To be honest, it was just a crap, but it’s still developed today. This wasn’t its fault, the problem was lack of manpower, docummentation and the community criticism, almost nobody tried to use it for real, no bugs were reported from end users, some people even considered it as a scam to grab money from Amiga properties (it was still a trademark crazy shifting phase)

        • Open Source term was new. And sometimes completely irrational for people there, who were working on developing Amiga software, commercialy or not, even for demoscene. Games were cracked, software too – but nobody bothered about that oo much, even major companies overlooked that as a “fair use” (many people couldn’t just afford some new games or high-end software, keep in mind that prices were completely different). The common term was “you can get this software for free, anyhow you want, but don’t ever ask for sources, keep your hands from the binary and drop that debugger too” (I experienced this peronally a few times too). Releasing source code was a some form of blasphemy to many of these people who has a shifted view of property rights, so they couldn’t udnerstand “open-source licenses” (and it’s a problem today, too).

        Back to the topic, people wanted to do more and more on Amigas and never drop them in favor of PCs (though the fanbase was shriking every year) and tried to found a way to prolongate the life of an Amiga for next 10-15-20 years.

        Then someone got an idea to re-implement AmigaOS 3.x-compatible OS (on API level) using PowerPC only. He wans’t a single person thinking about that and two things happened in a matter of 1-2 years:

        • Some demoscene guys, commercial Amiga programmers fans started building MorphOS. There was no people connected with Commodore directly or OS3.x developers which is kinda weird, but things were going pretty nice. There’s a myth that original non-public and some first public released were based off from OS3.x sources stolen from somewhere (there’s also a legend that they were recovered from OS3.1 installation disks inproperly written) but let’s say everything was done as intended. They started in late-90s, first public release is dated at 2000 (according to Wikipedia).

        • Some other people got rights to AmigaOS sources, Kickstart (ROM) sources, design docs and half of trademarks during that crazy wheel of business, law and trademark shifting between companies. They called Hyperion and with full access to the predecessor source code, they started building AmigaOS 4.x, which was released in 2006 (with few preview releases before). NOTE: Hyperion got closed few days ago due to bankruptcy, but it’s also another story.

        Both of these operating systems shared API compatibility with OS3.x, but only MorphOS got it right, even with ABI - the clue was to run m68k-PPC JIT as a system process and you could even run legacy software only when it wasn’t calling hardware directly (which was not that obvious - Amiga hardware was meant to be called directly) and patched system calls on the fly to match MorphOS API. It was a hit, and developers had a loads of work to make it better for users.

        As the Amigas got more or more expanded and aging at once, there came something like “sandwich problem” - you had a 68060 + PPC, PCI bridge, graphics card, sound card, network card, TV card, SCSI disk array, loads of RAM, “clockport” expansions and programmable coffe maker attached, you moved all of that from desktop to tower box, used stronger CPU, but the system collapsed on its own weight. Drivers weren’t loading, system hanged at random times, patches were conflicting, hardware was acting like crazy… That famous extenadbility reached its limits, so people started to seek something to replace Amiga. At this point, most people moved to PC (in Windows XP era, 9x were a topic of jokes on Amiga scene) so the userbase was collapsed and contained only most hardcore, edgy and ambitious users. Few things happened, again:

        • The “blues” (MorphOS Team) got partnered with bPlan (later Genesi) which found MorphOS a nice target OS for their PowerPC G3/G4 boards: EFIKA, Pegasos I, Pegasos II and some R&D boards not publicly known. They pumped some serious money into project, hired some developers full-time for few years and generally accelerated the development, also releasing brand new hardware which allowed users to run their AmigaOS-esque things and resist the PC era.

        • The “reds” tried to collect all the dragon balls trademark and properties, but they partially failed. The result was a partnership of three companies, the first was focused on AmigaOS4, the second was producing hardware and the third was keeping a hand on legacy (old ROMs, installation disks, documentation) and selling them in PC-runable packs called “Amiga Forever”, and now selling the new Kickstart ROMs and patched AmigaOS floppies as the retro-hype skyrocketed in late-2010s. Hardware topic was a tough one there, they managed to partner with some other companies making PowerPC based devboards, rebranded them, reskinned cases and called them AmigaONE. It was a mess, you probably know something about AmigaONE X1000 released in ~2013. It had a high-end PPC CPU (bought from some army-related company which probably used it in F-xx fighters and other planes), nice chips and even something pretending to grind on the Amiga myth on “custom chips” - a simple, empty FPGA array with its own controller and system-visible API which sounds actually cool but it was unused. Even if it looks nice, the project was so poorly managed that it lacked essential drivers (onboard sound, bundled Radeon graphics 3D accel., flaky network stack) that even the head of the project was spotted using Ubuntu for PowerPC on his machine as a daily driver. The company bejind OS4 still delivers the updates, but currently their own boards are a second-class target. Main target (since 4.1FE release) is… emulated PowerPC environment on WinUAE Amiga emulator (which is cycle exact and insanely well written trough lat 25 years) and marketed based on the nostalgia. It’s also supported on all of these beforebentioned PowerPC accelerators on real Amiga, as well as Pegasos II (which was internally used for 4.x dev and “accidently” released as a target with some OS update).

        For “blues”, old Macs were an only hope when bPlan/Genesi stopped its sponsoring at some point and Apple shifted from PPC to x86 and the only active PPC steels were an IBM POWER fridges not acceptable for desktop usage. And a PS3s, but let’s not talk about it. Huge effort was made to bring up on the G4 Macs and it still limited - only very specific models are supported, laptops were added in ~3.5 release (with no WiFi during first 6 months), you need ATI Radeon-powered GPUs only, there’s no SMP on G5 machines (added few years ago, but the second CPU is shut down in 3.10 to save energy, previously there were some little plans to use it but they failed) and some features (like fans in notebooks) were missing or poorly implemented. The complete list of supported hardware is strictly described on their website. As you see, Macs weren’t an easy road too, probably not even worth that all effort - it’s 2018 and they start to break, hardware is failing and compilers/libraries are starting to drop support on anything below PPC/G4 or POWER6. More on this later.

        As MorphOS was a spare time project (but acting like commercial one), releases came irregulary. The longest breaks were 2.7→3.0 (almost 2 years, 2011-2012) and 3.9→3.10 (1010 days! everyone thought the project is dead!) where AmigaOS4.x had a most successful release (that 4.1 Final Edition I mentioned, but the previous 4.0 release was in 2006, with some minor bugfixes in between). We could look into some facts from 2018 point of view as some form of summary:

        • MorphOS is a proprietary product. License is kinda expensive - it was 150EUR at the beginning, now it’s split into 2 tiers based on target machine - 45 and 75 EUR.

        • License is bound physically(!) to the machine. If you want to register, you should connect it to the internet, run “RegTool”, fill up the registration form (with some sensitive data), wait for a PayPal link on email, pay your price, wait few days for manually generated key and receive a… deivce driver. Then you install it in DEVS: alias so the kernel knows that machine is licensed (with owner’s full name in some places) after a reboot.

        • You can download the ISO image of the OS from the wbsite and run it, but your session will be stopped after 30 mins with nagging popup about full version. It can be dismissed via hacks, but them something funny happens - OS starts the process which eats CPU cycles and RAM to completely collapse and lock down your machine until next reboot. This is ridiculous and I’m still looking for some way to patch around it just to prove that it’s “too much” for me if it comes to the anti-piracy measures, but I’ve got info that the code is highly polymorphic and hard to crack after 2.7 release (which got cracked for a short period of time)

        • The OS itself is kinda anachronistic:

          • It has no memory protection at all…
          • …but it runs fully-fledged WebKit based browser called Odyssey
          • I’ts using a Quark kernel which is L4/seL4 based without any copyright info, but the whole OS is implemented as a single process called ABox which provides a “Amiga environment”
            • There were some efforts to run 2 ABoxes on both of PowerMac G5 CPUs and connect them via some IPC, but it broke compatibility
          • Even if the kernel can, OS can’t allocate more than 1 gigabyte of RAM (or maybe 2?) even when Amiga could theoreticaly allocate 4GB of RAM in 32-bit address space.
        • The system was built with GCC 2.95.3 to this day and it’s a cursed version of GCC. It’s old, slow and buggy, but majority of Amiga scene thinks that it generates best optimized 680x0 and PPC code, even when Cahir/Ghostown recently proved that newest GCC/Clang does that even better…

          • …but they provide GCC3/4 in official SDK toolkit, along with whole GNU coreutils/binutils/autotools…
          • …using their own POSIX-like API completely ripped off from some OpenBSD release (even manpages were kept intact), but stripped symbols and maybe did some obfuscations…
          • …but when you check out the IRC channel, you can hear that “reading linux code gets you pimples”, with bashing on Linux, GNU and even BSD (because all of that “sucks” - you’ll never find another community which abuses that word so hard).
        • Head developers consider shifting on another new architecture, rumors say that would be x86_64 or ARM, it would be fun to see another m68k→PPC→$newarch JIT.

        • There’s about 3000-3500 registered machines. If your machine is broken, you can transfer your license for free, but you must prove that your machine was actually broken, then it gets blacklisted. Same for computers sold/transferred between users, you must rename your license.

        • From all of my knowledge there’s only a single German company which bought about 30 licenses late 2000s for their work machines and nobody actually know what they really do

        • No new commercial software is released exclusively on MorphOS, except some AmigaOS/MorphOS “multiplatform” games. The majority of software are ports or little tools replacing old Amiga tools which are unable to run on new OS.

        • There’s also a ton of SDL games ported since someone released a libray called PowerSDL. I did some ports of emulators as well so I got a little grasp of development on MorphOS few years ago, but it’s greatly criticized because “you don’t bring up original software”, while others do nothing to actually help with that.

        • Speaking about this, there’s only single GUI library called MUI (Magic User Interface) grandfathered from 3rd party AmigaOS library set called MagicWB and modified as hell. Actually there are 2(3?) implementations of MUI, for AmigaOS3.x/4.x, MorphOS and AROS (called Zune to avoid trademark bites).

          • Anything else is fscking hard to port (but AmigaOS4.x tried to port Qt4/5 with some success) or nearly impossible in MorphOS. Don’t even count on Team to help you with that
          • It’s an object-oriented library. But object-oriented as OOP was in the end of 80s! Native language library is C (but there are bindings to REXX, Lua, broken Python and ObjC in 3.10 which sheds some new light on it) and as C isn’t OOP at all, you interfere with “language independent” object model called BOOPSI (Basic Object Oriented Programming System for Intuition). Maybe my intuition was failing on me, but I couldn’t manage anything beyond simple dialogbox in it, and you probably can’t too unless you’re old long-bearded Amiga coder.
        • No supported office software exists. You can run some old Amiga word processors or spreadsheets, but even when they’re OS-only, the experience isn’t even smooth. That’s almost killing MorphOS as workhorse, but hardcores started to using Google Docs as soon as they got WebKit based browser or even learnt LaTeX to deny the reality.

        • No Vim or Emacs. This is ridiculous, especially of Vim whch was being initially developed on Amiga, but dropped support at 6.0. These was some patched version for MorphOS for some next releases, also containing interop features, but author wanted you to order it on CD as a binary only. Now the website is down, but I tried to manage Vim 7.x running on my PowerBook G4 some years ago. I asked on MorphOS IRC channel for help, everyone turned off as “it’s a linux shit, get away with it” and some guy jokingly sent me a patch on PM (which actually worked) but asked to not tell anyone in the community about it and don’t try to credit him in any way. Crazy times.

        • The system itself looks actually well planned and designed, developed with passion and love. But it has some irrational design issues and the community is horrible when you can’t get their spirit of old grumpy Amiga user who’s angry at everything around and frustrated from 20 years waiting for “next Amiga” which never happened.

        I might add something later, as it’s 3:20 AM and I probably forgot about some details.

        PS: I’m 21. I was born after Commodore had collapsed, and even when I current have m68k Amiga on my desk, used both MorphOS and AmigaOS, my point of view is pretty different from people who lived back in the day. The whole writeup might seem over-opinionated, but it’s just a conflict between philosophies of completely different communities. Also it might be full of spelling/grammar errors (I’m not native English speaker), minor fact confusing or even some fake info that I heard from someone else in the community.

        But if you found something incorrect or you’re unsure about something, I’ll explain it as well as I can.

        1. 5

          That was easily one of the best historical reads I’ve seen this year. Incredible story! Thanks for writing it up. :)

          That’s some seriously hackish stuff going on behind the scenes of what looked like a really-polished OS at a distance. I appreciate you saving me from wasting time or money on it for things like security-via-diversity. It using knockoffs of stuff from Nix world defeat that a bit. Might as well keep the PPC machine a Mac and/or use an embedded OS/board.

          Too bad they’re screwing it up so much, though, cuz it might’ve made a nice kiosk OS or something in worst case. I know the folks behind THEOS cleverly sold their lack of software as a benefit: the workers can’t screw around with apps in spare time if there’s nothing but your business apps on it. “Our lack of apps improves productivity!” Brilliant marketing whether it worked or not lol. Finally, I got some people doing boring stuff on Mac/PPC after it was EOL’d since they were worried about Windows malware more than anything. They demanded the obscurity. That kind of thing might explain the German company buying 30 copies of MorphOS. I also thought it might be Runesoft or someone porting software to MorphOS but I think that’s too many copies.

          And you said from Poland perspective. I figured people in Poland doing demoscene stuff must be small world. You’d have to have run into mulander even before Lobsters. (Looks at profile.) Sure enough. ;)

          1. 4

            nick,

            Mobile Safari just ate my epic post, so until I can come up with it again, I’ll just say the community is not nearly as bad yet lots worse than skyzrp describes.

            Not to offend anyone, but these projects are all lead by strong personalities who believe their projects are the One True Right and Proper Way, and everyone is obsessive-compulsive and mildly autistic. They are also the largest collection of absolute geniuses you are likely to see in one place - well, three or four places… there is empire building and not-invented-here and usually a minimum of 4 different implementations of the same thing, often without direct cooperation, between the AOS39, AOS41, MorphOS, and AROS communities. This gives you a vast and diverse but somewhat disorganized “ecosystem of ecosystems” that is the modern Amiga community.

            I can say that AROS, while initially as horrible as skyzrp said, has made, via incremental steps, massive improvements and come together quite nicely. The AROS team isn’t one pure team either, it’s a loose set of developers, most of whom are the ones who will be advocates for and users of open-source software. AROS itself was built with a similar approach to Wine or ReactOS in that they started by strictly creating a reimplementation, starting with the of the AmigaOS 3.1 API’s, using C and open-source tools. Once that was done, big binary blobs of “real” AOS3.1 get dropped in and tested to excercise the reimplemented parts compatible with the original, and then repeating this process over and over, until everything is reimplemented.

            The idea was born in 1993 or 1994, and work was progressing in earnest by 1995. You have to fast-forward to the end of 2017, and the work is nearly complete. They have, essentially, a open-source release of something that is not exactly unlike something that is AmigaOS 3.1 (with bits and pieces of 3.5/3.9).

            They reached a mile state state around 2012 where you could finally cross-compile an AROS release from sources and get a system that works more or less identically to the original AmigaOS software and running on a real Amiga 1200 sustems.

            However, being open-source and portable, the same sources can be built for x86, PowerPC, and ARM as well. The issue here is similar to the dilemma faced by the “alternate” architectures of Windows NT, that of compatible software, but complicated greatly by the fact that by this point, most of the source code for most of the commercial products was never available, and while it should be trivially easily rebuild on AROS for all the architectures, the companies are all gone and the rights situation often “complicated”.

            AROS worked to solve this by adding 68K emulation to allow the original m68k binaries to run seamlessly and unchanged. Last I tried it around 2013 or 2014, it still required using some of the original AmigaOS binaries to achieve them, but you could make a new “Amiga” running AROS on PowerPC or x86 that is capable of running original m68k software as well.

            The concept, while not implemented for practical reasons of speed, (and that most any x86/PPC/ARM AmigaOS binary can simply be recompiled), can be extended to allow any AROS platform to run any architecture binary, using emulation when the code isn’t native.

            With this functionality complete, there is a concept of AROS distributions similar to Linux distributions, who maintain sets of software, which is quite a massive undertaking because they are putting together a hodgepodge of both new and old open source ported packages and new and old binary-only packages of abandoneare and freeware, and often having to do extensively patching and hacking to get it all working.

            The “main” big distro is Icaros. They charge a fee of about $15/month if you want to get access immediately to all the new releases, as well as development and point releases. The previous release is freely available to all, if you want to try it out.

            They now have just recently gotten AROS working natively on the Raspberry Pi 3, as well, but it will likely need more time (or more help) to stabilize.

            These projects are all essentially labors of (unrequited) love and (dangerous) obsessions. The (almost disturbing) level of devotion to these projects produces results that are testaments to developer devotion and dedication.

            There is really nothing else like it.

            BUT,

            Sometimes, it all feels surreally quixotic, like bailing the Titanic, where you are doomed to be forever enslaved to this bizarre “dead” platform, driven by pride (and “sunk cost” fallacy).

            Sometimes users and developers will burn out, or get fed up, or go insane and set everything on fire and disappear.

            And, Sometimes, a few years later, they pull the Amiga stuff out of the closet again.

            =)

            Amigaaaaa

            1. 2

              Just letting you know I read and enjoyed that last night. I just didn’t have much I can add. I am curious if there’s any redeeming value worth installing MorphOS or AROS on a Mac if one doesn’t do so for nostalgia or appreciation of hackery that went into building it. When doing a diversity plan, I was going to mix MorphOS with Free Pascal since the two should’ve been different. Plus, a Pascal should iterate fast even on an old Mac if combined with a responsiveness-oriented OS. I’m not totally done with the possibility but skrzyp’s whopper of a post certainly argues against it as a solid base proving anything about what it builds or even that it’s free from mixing with UNIX stuff. ;)

              Haiku is another hobbyist project I like. They gave up at one point of it being a real alternative to main OS’s: fun and research OS instead. Still, it carries on lineage of BeOS which had interesting advantages. I think someone said it was C++, though. Ironically, the greater safety and organization it’s supposed to bring over C blocks all the C-specific tooling one could apply to the OS. There’s always C++-to-C compilers or crazier ideas but that’s pretty big blocker for custom development on it for high correctness/security. Maybe still usable as a diverse or fast base platform for something, though.

              1. 4

                Huh? We’ve not “given up” per se. Yeah, we’re a little short on developer time, which means that right now it’s not really end-user-oriented… but anyone who is acquainted with Linux maintenance will have no problem using Haiku, and we’re getting closer to a “average Linux user could switch” in terms of functionality and ported software (Calligra, LMMS, modern WebKit are recent ports.)

                Yes, our kernel is indeed mostly C++, although for the most part it’s C++98 without exception handling. I don’t know what C-specific tooling you mention that we couldn’t use…?

                1. 1

                  Although I lost the bookmark, there was a post from Haiku project’s site or mailing list someone gave me some time ago saying the project was resigned due to limited resources to being an experimental or fun OS rather than an alternative to something like Ubuntu. It sounded defeatist, but honest, vs the early write-ups on the project wanted to make a full, alternative desktop BeOS-style if they did get the resources. That’s what I meant. What you say seems to confirm it if anything although better than before with the Linux user could switch part.

                  “ I don’t know what C-specific tooling you mention that we couldn’t use…?”

                  The best tooling for C includes analysis, verification, generation, and compilation. There’s just tons of work out there for these things that hasn’t been built for C++ due to its complexity. Lots of FOSS, too. My submissions over past year or two have a lot of examples with things like Scheme-like metaprogramming on top of C, safer languages compiling to it, static analyzers or model checkers, several ways to certify compilation, etc. When a project goes with C++, it forfeits almost all of this minus a few projects with a C++ front end. Those are not only fewer in number: they appear or get extended at a much slower pace due to C++’s complexity.

                  The popular wisdom around when I learned about C was that C++ was a better choice for its enhanced safety or programming in the large. I’ve found over time that C enhancements plus C’s tooling in its ecosystem are much better value proposition. Those that stuck with it still benefits of the kind of tooling that I just described which outsiders bring in. The ones that switched to C++ have less safety over time. There’s even an upgrade path for safer, systems languages like Rust or Nim interoperating well with C.

                  1. 3

                    was resigned due to limited resources to being an experimental or fun OS rather than an alternative to something like Ubuntu

                    For the time being, perhaps, but it’s not a permanent change of goals, not a temporary one. We already are more than a viable replacement to BeOS, and the few companies that had commercial software distributions for BeOS (e.g. TuneTracker) have switched to Haiku now. But if the average Linux user could switch, and we already have vastly simpler system configuration & administration than Linux does… then all we lack vs. Linux are a couple major features (graphics drivers…) So, we’re not “dead” by any means.

                    The best tooling for C includes analysis, verification, generation, and compilation. There’s just tons of work out there for these things that hasn’t been built for C++ due to its complexity.

                    Such as…? clang_analyzer and Coverity are the two major projects that come to mind; and both of those have first-class C++ support, and we use both.

                    things like Scheme-like metaprogramming on top of C, safer languages compiling to it

                    Do any major projects written in C, like Linux, even use these? If not, then what’s your point? Let’s maybe surpass Linux before we try something even it hasn’t done.

                    When a project goes with C++, it forfeits almost all of this minus a few projects with a C++ front end.

                    Again, I have actually no idea what projects you’re referring to here at all, seeing as there are robust static analysis and model checkers for C++ that Haiku uses extensively.

                    The ones that switched to C++ have less safety over time

                    I would be very surprised if you could prove causation and not correlation on that one. Haiku obviously is far behind Linux in terms of security; but that’s mostly due to lack of resources, and it certainly isn’t due to our use of C++.

                    How much of Haiku’s source code have you read? How much of Linux’s or FreeBSD’s? Because most people who have read significant portions of all three generally agree that Haiku’s is better organized and structured and better commented (in the parts we actually wrote, that is) than Linux and FreeBSD. A large part of that is our use of C++ and its paradigms (RAII, smart lockers, classes, virtual base classes), although some of it is also our mindset, which is admittedly very different than those of other OSS operating systems.

                    1. 1

                      (Edit: Quick revision esp noticing I don’t remember saying “dead” or anything that strong so much as it might stay niche versus a big, mainstream project.)

                      Be calm! I’m a fan of Haiku team’s work. :) Told plenty of people about it in early days trying to get yall users or contributors. Good to know you all are still rolling with lots of progress. Although I didn’t see the code, I saw the UI consistency plus visual tours on website which were even better to me vs what I normally see in Linux distros. I’m sure you’re using what you can to improve your C++ code. That you chose it indicated you wanted the help it could provide you in avoiding problems over C. Don’t take what I say as negatives about the project since I don’t intend them that way. More like showing where extra value could be had in this project or another if the base language was C plus lots of tools. Onto that a bit.

                      Far as tooling, it’s pretty much all of them rather than any one I could tell you about. The only major one you left off that has both C and C++ support I remember off top of head is KLEE. Their publication list shows they build amazing prototypes on it. Far as the rest, it’s any model-checker, static analysis, test generation, etc tool for C since they each tend to catch errors the others miss. That’s confirmed my empirical tests of them on lots of code with known vulnerabilities. One team at NASA already uses about 4 in combination due to this. The more you have the better. The more you can run overnight on new and old code the better. There’s more for C now, they cover more ground, and that will only go up later continuing at a faster rate than C++ analysis just due to lower barrier of entry for types of folks that develop them.

                      Far as meta stuff or surpassing Linux, that misses the point of these. The only empirical tests we have show that the safe, higher-level languages beat C consistently on both defects and productivity. The highly-interactive, malleable ones like LISP and Smalltalk ran circles around everything. That means using or building tools that let you get those benefits with seemless integration with C would get you to Linux parity faster with possibly fewer errors. That people were using advantageous techniques wouldn’t be an argument against them: more indicative of social or economic trends. I’m not pushing anything else about this as I need to write-up an publish some ideas I have on it first. Likewise, I plan to do another survey of tools I was alluding to in the future so I can just drop it here without spending 30+min digging through bookmarks.

                      Btw, how’s WiFi and browser support these days? I wouldn’t mind another test drive of it in future.

                      1. 2

                        KLEE

                        This looks interesting and I hadn’t heard of it before. Bookmarked.

                        That means using or building tools that let you get those benefits with seemless integration with C would get you to Linux parity faster with possibly fewer errors.

                        Even if so, C++ has a lot of momentum behind it that makes this essentially an experiment, and experiments of questionable benefit are something we don’t have a ton of time for.

                        Btw, how’s WiFi and browser support these days? I wouldn’t mind another test drive of it in future.

                        Nobody’s had time to upgrade the FreeBSD compatibility layer since 9.3, so, we’re still on the 9.3 WiFi drivers. The WebKit port is more or less up to date (I can’t recall what version we’re on now), and has enough features enabled so that YouTube works, at least.

                        1. 2

                          C++ does have a lot of momentum. The experimental approaches may or may not help. A valid justification for sure. Far as hardware or web support, I appreciate the update. I might fire it up in another VM in near future.

              2. 2

                There are also some links and cooperation between the various operating systems in the AmigaOS-family and alternate other operating systems, resulting in shared code and concepts.

                Some of the more interesting things I can think of are Haiku (the open-source BeOS implementation) running on PowerPC Amiga systems like Acube/AmigaOne, efforts towards a Haiku m68k port that can run on real classic Amiga hardware - there is video at http://www.generationamiga.com/2017/09/03/haiku-os-for-amigaone-500-computers-68k-port-in-development/

            2. 2

              Wow, a great post. Thanks!

              I don’t actually have a MorphOS system running right now. I have plans to make one from an eMac Q86J I purchased from a local educational decommissioning sale around 2008 - I would need to be able to transplant the mainboard into a more conventional case, ditching the CRT, however. I know this has been done before, I’m just not sure what is involved and I’ve not fully researched my options due to lack of time. I am quite familiar with AmigaOS and AROS, however.

              For editors, the “standard” Amiga text editor is ED. It’s still maintained and documented here. Matthew Dillon, the famous Amiga developer now known more commonly for Dragonfly BSD, produced the the “DME” editor, and various ports of MicroEMACS should be available still - earlier AmigaOS 3 releases included a port as “MEmacs”, and other Emacsish editors such as Mg should still be available.

              It is my understanding the current editor of choice is µgolded, an evolution of the famous GoldEd product, and is freely available, and is the standard editing component of the popular (and commercial) Cubic IDE.

              Off-topic: Also, I find it amusing that Showgirls was renamed to Showcase, seemingly giving in to political correctness and outrage culture, which never even seemed prevalent in the community. Meanwhile, if you ever attend an event for Coq - pronounced as “cock” - French for ‘rooster’ of course - the entire event is certain to devolve into a double entendre festival, rife with grinning nerds discussion their “coq extensions” and obsessions with Hoares [type theory]. I personally find it more cringe-inducing than offensive, but still, just an observations.

              1. 2

                I wonder if the Amiga community hates DragonFly as much as other open source, or is there a special exception for Matt Dillon…

                Off-topic: at least for me, it’s really obvious that “Showgirls” is a truly awful name, while “Coq” double entendres are just silly fun. I’m glad they finally renamed the image viewer!

                1. 4

                  Oh, I sort of agree, and I do think the whole thing is funny, but we now live in a culture of seemingly random selective outrage, where lame jokes about dongles at a Python conference led to widespread mainstream media coverage of concerns over these allegations of systemic sexism, followed by disruptive protesting, and continued to snowball, reaching the point of multiple credible death threats, massive distributed denial-of-service campaigns against the employers of both the accuser and accused companies, etc, with the war ending only after the companies fired everyone involved… and then you have Coqcons making coq-jokes. I just don’t understand society these days. At all.

                  The whole thing is sort of reminiscent of the great CMU finger controversy only inverted, the incident responsible for entrenching the act of students gleefully “fingering” each other all day. This was a tounge-in-cheek act of protest, a reactionary defiance of the puritanical school administrators, who declared that “finger” be renamed to “where” in an attempt to quash the long-standing illusions to sexual behavior or flipping the bird! Sort of sad that only a generation later, everyone is either so offended by everything or afraid to offend someone that we self-censor.

                  Perhaps I should just breathe a sigh of relief that the mathematics community still has a collective sense of humor and some phallic humor isn’t considered an act of tyrannical oppression, at least not yet.

                  Sure - Showgirls was a truly terrible and cringe-inducing name for the image viewer, yes, but was whimsical and chuckle-inducing and refreshingly counter-corporate. At least it wasn’t renamed to “Image Viewer”. I thought “Eye of GNOME” was probably the worst name of an image viewer ever, but that’s being replaced with … “Sushi”! Everyone knows the ACDSee software by name too. There is sort of a tradition of silly names for image viewers.

                  I think these censors are winning now, because I sure think twice before I say anything or write anything down, especially to call out what I see as hypersensitivity or a lack of mental resiliency in society today, as there is now a very real possibility that I’ll wake up and find myself forever unemployable and staring down a raging mob armed with pitchforks and torches.

                  1. 1

                    I don’t know what the Amiga community thinks of Matt’s BSD, but the BSD community recently hated Matt …

                    https://bsd.slashdot.org/story/03/02/03/239238/freebsd-core-developer-thrown-out - Matt is like the Theo of 2003.

                    Reminds me to complete my port of Matt’s DICE-C to CP/M-68000.

                2. 2

                  Please write a series of blog posts! This is fascinating! And I’m still curious about them using open source (eg WebKit) but simultaneously hating it…