Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Friday December 01 2017, @04:42PM   Printer-friendly
from the if-some-is-good,-and-more-is-better,-than-too-many-languages-is-not-enough dept.

Google will contribute changes to Apple's Swift programming language, and will support the language in the Fuchsia OS, a presumed replacement for Android, ChromeOS, etc. that is designed to work on all devices:

Fuchsia is Google's not-at-all-but-kind-of-secret operating system that's being developed in the open, but with almost zero official messaging about what it's for, or what it's built to replace. (Android? Chrome OS? Both? Neither?) The operating system's core is written in mostly C and C++, with Dart for the default "Flutter" UI, but other languages like Go, Rust, Python, and now Swift have also found a home in the project.

Of course, just because you'll be able to compile Swift to run on Fuchsia doesn't mean you'll be able to instantly port any iOS app to Google's new OS when or if it ships. While Apple has open sourced the Swift language itself, much of the iOS platform (like the UI stuff, for instance) is closed source, so code that relies on those closed Apple libraries won't be portable.

One possible future in a world where Fuchsia is an important and relevant platform for apps is that you write the "core logic" of your app in your language of choice — Swift, Go, Rust, JavaScript, etc. — and then you build a custom UI for each platform — Android, iOS, Fuchsia, Linux, Windows, the web — using the appropriate tools for each.

Also at Android Police.

Previously: Google's New Non-Linux OS: Fuchsia
Google's Not-So-Secret New OS
Google Fuchsia UI Previewed


Original Submission

Related Stories

Google's New Non-Linux OS: Fuchsia 46 comments

Google is designing a new operating system (also at Github) based on its own new kernel (Magenta), which may be intended to unify/replace Android and ChromeOS. It is also expected to run on a wide range of ARM and x64 devices, such as Chromecast, Raspberry Pi 3, smartphones, laptops, and desktops.


Original Submission

Google’s Not-So-Secret New OS 23 comments

TechSpecs Blog ponders:

I decided to dig through open source to examine the state of Google's upcoming Andromeda OS. For anyone unfamiliar, Andromeda seems to be the replacement for both Android and Chrome OS (cue endless debates over the semantics of that, and what it all entails). Fuchsia is the actual name of the operating system, while Magenta is the name of the kernel, or more correctly, the microkernel. Many of the architectural design decisions appear to have unsurprisingly been focused on creating a highly scalable platform.

It goes without saying that Google isn't trying to hide Fuchsia. People have clearly discovered that Google is replacing Android's Linux kernel. Still, I thought it would be interesting for people to get a better sense of what the OS actually is. This article is only intended to be an overview of the basics, as far as I can comment reasonably competently. (I certainly never took an operating systems class!)

To my naive eyes, rather than saying Chrome OS is being merged into Android, it looks more like Android and Chrome OS are both being merged into Fuchsia. It's worth noting that these operating systems had previously already begun to merge together to an extent, such as when the Android team worked with the Chrome OS team in order to bring Update Engine to Nougat, which introduced A/B updates to the platform.

Google is unsurprisingly bringing up Andromeda on a number of platforms, including the humble Intel NUC. ARM, x86, and MIPS bring-up is exactly what you would expect for an Android successor, and it also seems clear that this platform will run on Intel laptops.


Original Submission

Google Fuchsia UI Previewed 38 comments

Google's Fuchsia System UI can now be previewed. The operating system could potentially replace Android and even ChromeOS:

Google, never one to compete in a market with a single product, is apparently hard at work on a third operating system after Android and Chrome OS. This one is an open source, real-time OS called "Fuchsia." The OS first popped up in August last year, but back then it was just a command line. Now the mysterious project has a crazy new UI we can look at, so let's dive in.

Unlike Android and Chrome OS, Fuchsia is not based on Linux—it uses a new, Google-developed microkernel called "Magenta." With Fuchsia, Google would not only be dumping the Linux kernel, but also the GPL: the OS is licensed under a mix of BSD 3 clause, MIT, and Apache 2.0. Dumping Linux might come as a bit of a shock, but the Android ecosystem seems to have no desire to keep up with upstream Linux releases. Even the Google Pixel is still stuck on Linux Kernel 3.18, which was first released at the end of 2014.

[...] This all leads us to an interesting point right now: the Fuchsia interface is written with the Flutter SDK, which is cross-platform. This means that, right now, you can grab chunks of Fuchsia and run it on an Android device. Fuchsia first went public in August 2016, and but back then compiling it would get you nothing more than a command line. Thanks to Hotfixit.net for pointing out that the Fuchsia System UI, called "Armadillo" is actually pretty interesting now.

It's possible to download the source and compile Fuchsia's System UI into an Android APK and install it on an Android device. It consists of a wild reimagining of a home screen along with a keyboard, a home button, and (kind of) a window manager. Nothing really "works"—it's all a bunch of placeholder interfaces that don't do anything. There's also a great readme in the Fuchsia source that describes what the heck is going on.

It's about time for Linux Torvalds' domination of the smartphone industry to end.

Also at BGR, ZDNet, ComputerWorld, and The Register. Preview video.

Fuchsia on Google Git.


Original Submission

Google's Fuchsia OS Adds Emulator for Debian Linux Applications 22 comments

Google's Fuchsia OS will support Linux apps

Google's non-Linux-based Fuchsia OS has added an emulator for running Debian Linux apps. Like its upcoming Linux emulator for Chrome OS, Fuchsia's "Guest" app will offer tighter integration than typical emulators.

Google has added a Guest app to its emergent and currently open source Fuchsia OS to enable Linux apps to run within Fuchsia as a virtual machine (VM). The Guest app makes use of a library called Machina that permits closer integration with the OS than is available with typical emulators, according to a recent 9to5Google story.

Last month, Google announced a Project Crostini technology that will soon let Chromebook users more easily run mainstream Linux applications within a Chrome OS VM. This week, Acer's Chromebook Flip C101 joined the short list of Chromebooks that will offer Linux support later this year.

Previously: Google's New Non-Linux OS: Fuchsia
Google's Not-So-Secret New OS
Google Fuchsia UI Previewed
Google to Add Swift Language Support to Fuchsia OS
ChromeOS Gains the Ability to Run Linux Applications


Original Submission

Google's Cross-Platform Flutter SDK Moves Out of Beta With Release Preview 1 7 comments

Google has updated a mobile framework that targets Android, iOS, and the in-development Google Fuchsia OS:

On Wednesday, Google's cross-platform mobile framework Flutter reached Preview Release 1, a designation that places the code somewhere between buggy beta and less buggy 1.0.

"The shift from beta to release preview signals our confidence in the stability and quality of what we have, and our focus on bug fixing and stabilization," said Google group product manager Tim Sneath in a blog post.

Introduced in May 2017, Flutter provides a way for Linux, macOS and Windows developers to create mobile apps in the Dart programming language that can run on Android, iOS or Google Fuchsia, an operating system that Google is working on.

Apps would be bundled with the Flutter engine:

Flutter is Google's second swing at a mobile SDK (the first being a little platform called "Android"). Flutter's claim to fame is that it's cross-platform—Flutter apps run on Android and iOS—and it's really fast. Flutter apps sidestep the app platforms of Android and iOS and instead run on the Flutter rendering engine (written in C++) and Flutter framework (written in Google's Dart language, just like Flutter apps). When it's time to ship a Flutter app off to Google's and Apple's respective app stores, the requisite Flutter engine code gets bundled up with the app code, and the Flutter SDK spits out Android and iOS versions of your single code base. Each version comes complete with built-in app themes for Android or iOS, so they still feel like native apps. Along with Android and iOS, Flutter is also the platform used for apps in Google's experimental Fuchsia OS.

Related: Google's New Non-Linux OS: Fuchsia
Google's Not-So-Secret New OS
Google Fuchsia UI Previewed
Google to Add Swift Language Support to Fuchsia OS


Original Submission

Google Hires a 14-Year Apple Veteran to Bring Fuchsia to Market 30 comments

Google has hired 14-year Apple engineer Bill Stevenson to help bring the Fuchsia OS to market.

We learned in 2016 that Google was working on an entirely new operating system called Fuchsia. Development continues with new features and testing on a variety of form factors spotted regularly. Google has since hired 14-year Apple engineer Bill Stevenson to work on its upcoming OS, and help bring it to market.

[...] Remaining in the OS X organization, he became a Senior Engineering Program Manager four years later. New responsibilities included serving as PM and Technical Lead for AirPlay, Find My Mac, iCloud for Mac, and AirDrop from 10.6 Snow Leopard to 10.9 Mavericks. Most of these features are notably backed by cloud services.

[...] It’s not surprising why Google would want someone with that background and experience to bring up Fuchsia. In a LinkedIn post shared yesterday, Stevenson specifically notes “joining Google to help bring a new operating system called Fuchsia to market.”

Google seems to be all aboard the Fuchsia train.

Previously: Google Hopes to Replace Android with Fuchsia in Five Years
Google's Fuchsia OS Adds Emulator for Debian Linux Applications
Google to Add Swift Language Support to Fuchsia OS


Original Submission

Google's Fuchsia OS Appears ... on a Nest Hub 11 comments

Google is officially releasing its Fuchsia OS, starting w/ first-gen Nest Hub

Google's long-in-development, from-scratch operating system, Fuchsia, is now running on real Made by Google devices, namely, the first-generation Nest Hub.

Google has told us that as of today, an update is beginning to roll out to owners of the first-generation Nest Hub, first released in 2018. For all intents and purposes, this update will not change any of the functionality of the Nest Hub, but under the hood, the smart display will be running Fuchsia OS instead of the Linux-based "Cast OS" it used before. In fact, your experience with the Nest Hub should be essentially identical. This is possible because Google's smart display experience is built with Flutter, which is designed to consistently bring apps to multiple platforms, Fuchsia included.

We've been tracking the development of Fuchsia since 2016, starting from an ambitious experimental UI, to running on Google's many internal testing devices for Fuchsia, ranging the full gamut of Google's smart home and Chromebook lineup. In the time since then, the OS has gradually progressed and recently even begun a steady release schedule.

Google Fuchsia.

Also at The Verge and Notebookcheck.

Previously:

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 3, Insightful) by Uncle_Al on Friday December 01 2017, @05:15PM (2 children)

    by Uncle_Al (1108) on Friday December 01 2017, @05:15PM (#603966)

    Lock people into proprietary libraries/environments that only work on your hardware.

    • (Score: 4, Informative) by takyon on Friday December 01 2017, @05:25PM (1 child)

      by takyon (881) <takyonNO@SPAMsoylentnews.org> on Friday December 01 2017, @05:25PM (#603969) Journal

      [Google Fuchsia] is distributed as free and open-source software under a mix of software licenses, including BSD 3 clause, MIT, and Apache 2.0.

      Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. [...] Initially a proprietary language, version 2.2 was made open-source software under the Apache License 2.0 on December 3, 2015, for Apple's platforms and Linux.

      --
      [SIG] 10/28/2017: Soylent Upgrade v14 [soylentnews.org]
      • (Score: 2, Insightful) by Anonymous Coward on Friday December 01 2017, @07:13PM

        by Anonymous Coward on Friday December 01 2017, @07:13PM (#604010)

        There will be tons of proprietary libraries and binary blobs just like there are today!

        Look, software is basically a solved problem for FOSS. The real beast is hardware; we need FOSH.

  • (Score: 2) by DannyB on Friday December 01 2017, @06:34PM (10 children)

    by DannyB (5839) Subscriber Badge on Friday December 01 2017, @06:34PM (#603995) Journal

    Does Swift offer any particular advantage over other modern languages? Such as Dart, Go, Rust, JavaScript, or lisps?

    --
    To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
    • (Score: 2) by RamiK on Friday December 01 2017, @09:26PM (9 children)

      by RamiK (1813) on Friday December 01 2017, @09:26PM (#604058)

      Define "modern language".

      Also, no.

      --
      compiling...
      • (Score: 3, Funny) by DannyB on Friday December 01 2017, @10:02PM (7 children)

        by DannyB (5839) Subscriber Badge on Friday December 01 2017, @10:02PM (#604066) Journal

        Modern, I think of:
        * feels dynamic, but is compiled to executable
        * has strong typing, but infers types rather than being "duck" typing
        * has GC
        * I realize I also conflate "modern" with "higher level, more abstract, further from bare metal"

        Rust is modern, but not what I want to program in.

        --
        To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
        • (Score: 0) by Anonymous Coward on Friday December 01 2017, @10:09PM (5 children)

          by Anonymous Coward on Friday December 01 2017, @10:09PM (#604067)

          Wikipedia [wikipedia.org]:

          Lisp was a difficult system to implement with the compiler techniques and stock hardware of the 1970s. Garbage collection routines, developed by then-MIT graduate student Daniel Edwards, made it practical to run Lisp on general-purpose computing systems, but efficiency was still a problem. This led to the creation of Lisp machines: dedicated hardware for running Lisp environments and programs.

          You know what's modern? A language that allows you to choose what kind of memory management your software will use, including garbage collection; a modern language is one that is built around the notion of "zero-cost abstraction". That language is C++.

          • (Score: 2) by RamiK on Saturday December 02 2017, @02:55AM (2 children)

            by RamiK (1813) on Saturday December 02 2017, @02:55AM (#604131)

            a modern language is one that is built around the notion of "zero-cost abstraction". That language is C++.

            C++ abstractions might not cost you run-time directly (compared to C), but they take longer to develop, optimize and debug which ends up costing you run-time indirectly. Now, if you're a big corporation that can pour money the problem endlessly, you might be able to hire enough smart programmers until you're in the "we're faster then the competition" zone. But the resulting code-base ends-up so hairy that the next feature will take longer to develop and the following will be even harder... Until one day you're stuck like Microsoft with a code-base you can't even afford maintaining.

            Btw, personally if I wanted to go low-level with an opt-in GC and modern language facilities and could satisfy my personal flavor-of-the-month, I'd look at one of the concatenative languages. Kitten [kittenlang.org] for instance, while still young, is looking like everything you'd want from a modernized Forth.

            --
            compiling...
            • (Score: 0) by Anonymous Coward on Saturday December 02 2017, @11:08AM (1 child)

              by Anonymous Coward on Saturday December 02 2017, @11:08AM (#604213)

              Kitten [kittenlang.org] for instance, while still young, is looking like everything you'd want from a modernized Forth.

              "There is an interpreter written in Haskell, and a work-in-progress native code compiler." http://kittenlang.org/faq/ [kittenlang.org]
              If there is a more definite way to spell "stillborn", I've yet to see it.

          • (Score: 2) by Wootery on Saturday December 02 2017, @12:21PM

            by Wootery (2341) on Saturday December 02 2017, @12:21PM (#604234)

            Funny how comments as misguided as yours are always submitted as AC...

            You know what's modern? A language that allows you to choose what kind of memory management your software will use, including garbage collection

            You seem to be using the word 'modern' to mean 'something I like the sound of'.

            Anyway, when it comes to the garbage collection question, modern languages generally pick a side and commit to it, and for good reason: going half-way just confuses things.

            C++ uses RAII extensively, to the point that it doesn't make a lot of sense for them to get serious about supporting GC.

            D supports mixed-mode, but I couldn't name another language that does.

            That language is C++.

            No, it isn't. C++ supports pointer-arithmetic. It lets you do XOR linked lists, for instance, but means you'd better be careful if you want to use it with garbage collection, or the GC will collect still-live objects.

            Almost as disastrously, C++ semantics mean you can't use a garbage collection algorithm that relocates objects, something that all modern GC algorithms do.

          • (Score: 2) by DannyB on Monday December 04 2017, @02:46PM

            by DannyB (5839) Subscriber Badge on Monday December 04 2017, @02:46PM (#605053) Journal

            A language that allows you to choose what kind of memory management your software will use,

            I must strongly disagree with that.

            I don't mind if the system allows you to select which GC algorithm to use. And if it provides lots of knobs and controls to tune it. (See Java runtime system.)

            But GC must be built into the underlying runtime for any king of application programming language. For Systems and Microcontroller programming, stick to C, C++, Rust, etc. Although microcontrollers already are capable or running Java, Python, Node.js and other GC languages / platforms.

            Why must GC be in the runtime platform?

            This is one of the hidden strengths of Java. There are C and C++ programs and libraries galore. A major problem is that they have so many different memory management disciplines which make them all incompatible. Or make it difficult for a program to introduce another library that requires yet one more different memory management discipline.

            In Java, there are libraries galore. An absolute embarrassment of riches. But they are all compatible. I don't care who creates what data structure. And nobody thinks about anyone being "responsible" to dispose of it. When it is no longer referenced, the GC will eat it.

            I would also point out that GC has come a long way since the 1970's. A modern JVM can have dozens or even hundreds of Gigabytes (not Megabytes) of memory and only 10 ms GC pauses. Multiple vendors offer various solutions. Even the stock OpenJDK GC is amazing. But see Azul Systems Zing runtime for Java. You can have hundreds of cpu cores and hundreds of gigabytes and only 10 ms max GC pauses.

            --
            To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
        • (Score: 2) by RamiK on Saturday December 02 2017, @12:06AM

          by RamiK (1813) on Saturday December 02 2017, @12:06AM (#604104)

          * has gc

          Swift counts references and has you release or hold memory to resolve circular references manually as well as handle any locks and the like unlike parallel languages. So, it doesn't really qualify as having a GC. I guess you can also look at these half-manual memory management aspects as features...

          Disregarding that, I guess, advantages wise, it has generics and OO that Go doesn't have; It's stable unlike Rust; And, it isn't as bat-shit crazy broken syntactically like Javascript... Oh, and you're forced to use it or obj-c for iOS development and the latter doesn't qualify as a modern language according to your bucket list.

          --
          compiling...
      • (Score: 2) by Gaaark on Friday December 01 2017, @10:19PM

        by Gaaark (41) on Friday December 01 2017, @10:19PM (#604072) Journal

        Any language that includes saying "He my babby-daddy"

        --
        --- Please remind me if I haven't been civil to you: I'm channeling MDC. ---Gaaark 2.0 ---
  • (Score: 0) by Anonymous Coward on Friday December 01 2017, @07:47PM

    by Anonymous Coward on Friday December 01 2017, @07:47PM (#604013)

    Currently, Fuchsia has a fake UI with a bunch of placeholders.

    Why?

    Any interesting new operating system isn't going to have work being done at that level yet. So, I doubt it will offer anything novel in terms of OS design, other than what has been stolen adopted from other people's long existing work; Wikipedia:

    Fuchsia is based on a new microkernel called "Zircon", derived from "Little Kernel", a small operating system intended for embedded systems, which was developed by Travis Geiselbrecht, a creator of NewOS kernel used by Haiku OS.

  • (Score: 0) by Anonymous Coward on Friday December 01 2017, @10:41PM (1 child)

    by Anonymous Coward on Friday December 01 2017, @10:41PM (#604081)

    Sounds like something for hipsters in skinny jeans.

    • (Score: 0) by Anonymous Coward on Friday December 01 2017, @11:06PM

      by Anonymous Coward on Friday December 01 2017, @11:06PM (#604088)

      See subject.

(1)