Wednesday, July 4, 2018

Another one bites the Rust

And another one gone, and another one gone (capitalization sic):

As Herwig Bauernfeind from Bitwise Works made clear in his presentation he gave at Warpstock 2018 Toronto, Firefox for OS/2 is on its way out for OS/2 after version 52 ESR. The primary reason is because Firefox is switching to RUST. Rust is a general purpose programming language sponsored by Mozilla Research. It is unlikely that RUST will ever be ported to OS/2.

Rust was the primary reason we dropped source parity for TenFourFox also (though there were plenty of other reasons such as changes to the graphics stack, the hard requirement for Skia, Electrolysis and changes to ICU; all of this could have been worked around, but with substantial difficulty, and likely with severe compromises). Now that Firefox 52ESR, the last ESR to not require Rust support, is on its last legs, this marks the final end of "Warpzilla" and Firefox on OS/2. SPARC (and apparently Solaris in general) doesn't have rustc or cargo support either, so this is likely the end of Firefox on any version of Solaris as well. Yes, I use Firefox on my Sun Ultra-3 laptop with Solaris 10. There are probably other minor platforms just hanging on that will wink out and disappear which I haven't yet discovered.

Every platform that dies is a loss to the technical diversity of the Mozilla community, no matter how you choose to put a happy face on it.

If you were trying to get a web browser up on a new platform these days, much as it makes me sick to say it, you'd probably be better off with WebKit rather than wrestle with Rust. Or NetSurf, despite its significant limitations, though I love the fact the project even exists. At least there's Rust for the various forms of PowerPC on Linux, including 64-bit and little-endian, so the Talos II can still run Firefox.

With FPR9 TenFourFox will switch to backporting security updates from Firefox 60ESR, though any last-minute chemspills to 52ESR will of course be reviewed promptly.

UPDATE 7/5: Someone in the discussion on Hacker News found that at least $12,650 was raised by the OS/2 community, and they're going to port a Qt based browser, which means ... WebKit. I told you so.

16 comments:

  1. https://forge.rust-lang.org/platform-support.html lists Rust support for SPARC Linux, SPARC Solaris, and x86_64 Solaris, although I don't know how good support is.

    ReplyDelete
    Replies
    1. It's not. You just have std for those and only one has rustc (a single Tier-3). None have cargo. It's a start, but hardly complete.

      Delete
    2. Eh, the page is out of date. rustc and cargo package for sparc64 is in the Debian archive right now. I will let them know.

      Delete
  2. Why cannot Rust be ported to OS/2? Is there an LLVM port for OS/2? Are we talking x86/x86_64 OS/2? Or something else? Rust doesn't need much once LLVM can target OS/2. Just a compliant libc/allocator for std to link to and perhaps some OS specific extension API in std.

    ReplyDelete
    Replies
    1. There's no LLVM. That's a big job. We don't have a working current LLVM for OS X PPC either.

      Delete
  3. Is it sad to see platforms dropped? Sure. But is it worth compromising the experience for the users of more mainstream platforms, just to satisfy the tiny minority using OS/2?

    Because all those things that make your job more difficult for TenFourFox - they've been hugely beneficial to the rest of us... the Quantum release was the biggest improvement to the Firefox browser since the project started.

    ReplyDelete
    Replies
    1. Just think about the blood of platforms lost as you use your computer, then, and appreciate those sacrifices as we move to a computing monoculture. Oh, wait, you don't.

      Delete
    2. On the contrary - I have no more love of monocultures than you do... but the monoculture I'm concerned about is Chrome.

      Seriously, I don't think I'm exaggerating to say that the Quantum release saved Firefox... they've been taking an absolute beating in recent years, bleeding users to the point where hardly anyone in my office was using anything other than Chrome. In the past eight months or so since Quantum was released, an informal survey suggests it's now roughly even...

      So yeah, I agree it's tough for projects like yours... but sacrificing support for those minority platforms has unquestionably been good for both Mozilla, and for the health of the web in general...

      Delete
    3. Ah, so you're perfectly fine with *some* monocultures, because getting us minor platforms off the Web improves the Web? That's rich.

      Delete
  4. My four disjointed takeaways:

    1)----------------

    This is the end result of Mozilla's decision to end embedded support for Gecko. This is what killed Camino and other smaller browsers along with the ecosystem around Mozilla. There were complaints that dropping embedded support was a terrible idea, but Mozilla developers went ahead with it anyway because they felt embedded was too hard to support at the time. This was one war Mozilla couldn't afford to lose and instead they ceded the whole battlefield to whomever wanted it and that happened to be Webkit/Blink. The last I had heard of Mozilla getting back into embedded products was with the Servo web browser, but that seems to be in distant future beyond the horizon.

    2)----------------

    Mozilla's decision to go with Rust for a programming language is understandable. Rust is best seen as 'C++ without the propensity to shoot yourself in the foot'. Using a language with similar syntax and better underlying security features is a good idea. Using a language that is bleeding edge and doesn't have OS/Processor support outside of mainstream offerings is probably not such a good idea.

    3)----------------

    OS/2, I thought that was dead. ArcaOS, I never heard of it. Diversity is great and all, but there is such a thing as diversifying oneself into nothingness. Mozilla supports the following OSes: Microsoft Windows, Apple Mac OS, Linux/BSD, and Android. Mozilla supports the following CPUs: x86, x86_64, ARM7. I had to look up both OS/2 and ArcaOS. These OSes are pretty off the beaten path, even more so than PPC Mac OS and Amiga. I'm not surprised that support for Firefox is slipping from this small group. Saddened, but not surprised. I just don't see ArcaOS ever being the next big thing. Supporting them would take resources better spent elsewhere (provided and assuming Mozilla does spend resources better elsewhere).

    4)----------------

    The other problem listed by the OS/2 developers is Firefox's growing complexity and merry-go-round libraries. Mozilla keeps chasing Chrome in the web browser space and fads like being a smart phone OS or the 'Internet of Things'. This leads to a constantly morphing product that can never be pinned down. I keep hoping that Quantum, even with all its headaches, is Mozilla focusing on making Firefox the best version of itself and growing it out from its core competencies.

    ReplyDelete
  5. Hi, I can definitely understand your frustration there, but we're sadly a project with constrained resources, just as yours. _But_, we are also FOSS, so we can see if we can change that :).

    What would be needed (at minimum) to improve your work here? Would you need a cross-compiled version of rustc working on PowerPC and OS/2 or do are there additional requirements (like Rust libraries not supporting your specific OS).

    I know we have porting enthusiasts at some of our meetups and I'd definitely be willing to try to find people that make a port happen - no guarantees for success, though.

    Feel free to contact community@rust-lang.org to find out how we can assist you.

    ReplyDelete
    Replies
    1. Sorry, Blogger doesn't seem to get my name and logo right. I'm Florian Gilcher.

      Delete
  6. The problem is how software will always basically exist to sell, and at the suffrage of hardware (since nobody really watches ads they don't have to). I'm typing this on a VERY old Compaq Presario upgraded from Pentium D to Xeon Core 2 Duo 2.66GHz ($8 on eBay) and it is very peppy, but ONLY because I have LXLE ultra-light Linux on it. Even Mint won't run satisfactorily on it anymore, much less Ubuntu. BUT when it comes to the apps I use, they are perfectly fine on the machine (actually rivaling my brother's Mac Pro for saying making an MP4 of a movie from my collection, and quite close to how they would run on a newer distro - on newer hardware). So why does the OS have to be the center of story? Because hardware drives software. It's stupid (and honestly backwards), but there it is. Sadly, as much complexity as software dev-ing has these days, who has time/money to work on peripheral projects? The answer is increasingly few. TenFourFox may well be one of the last great efforts to fight this trend.

    ReplyDelete
  7. CAN you specify what computer exactly is your ultra-10 portble? thanks

    ReplyDelete
    Replies
    1. The Sun Ultra-3 is a rebadged Tadpole Viper, a SPARC-based laptop. Mine runs Solaris.

      Delete
  8. Gentoo had an informal "port" of Firefox to Linux/HPPA (PA-RISC) - actually a patch set to make it compile and run at all - that did not appear to survive oxidisation either.

    The ex-Moz in me does not want to give up on Firefox, but WebKit is right there, and probably 5,000 LOC from having JIT support for PPC and SPARC. The fact Rust is so non-portable and so terrible to bootstrap (see https://adeliedev.blogspot.com/2017/11/official-stance-on-rust.html for our "official" stance on Rust) just makes me care less about the Fox.

    And that's really sad.

    ReplyDelete

Due to an increased frequency of spam, comments are now subject to moderation.