[HN Gopher] Inferno: A small operating system for building cross...
       ___________________________________________________________________
        
       Inferno: A small operating system for building crossplatform
       distributed systems
        
       Author : hemloc_io
       Score  : 33 points
       Date   : 2022-03-17 18:43 UTC (4 hours ago)
        
 (HTM) web link (www.vitanuova.com)
 (TXT) w3m dump (www.vitanuova.com)
        
       | api wrote:
       | > Inferno applications are written in Limbo(r), a modern, safe,
       | modular, concurrent programming language with C-like syntax. It
       | is more powerful than C but considerably easier to understand and
       | debug than C++ or Java. It is easy to express the concurrency in
       | the physical world directly in Limbo's syntax. Any Inferno
       | application will run identically on all Inferno platforms.
       | 
       | I was amazed by what a great idea this is until I got here. You
       | have to use a special snowflake programming language.
       | 
       | This is the same thing that turns me off from Google's Flutter.
       | You have to use Dart, a language not used anywhere else.
       | 
       | It's not that these languages are bad. They may be fine, even
       | great. It's the cognitive load of learning _yet another
       | language_. For it to make sense this language would have to be
       | quite a bit more productive or otherwise better than Go, Rust,
       | C++, JS /TS, Python, Java, etc. Otherwise just let people use
       | languages they know. It's not that hard. We now have WASM which
       | can be targeted by all of those either directly or indirectly.
        
         | Jtsummers wrote:
         | The Limbo language predated Go by over a decade, and is, in
         | fact, a predecessor of Go. I think its creation and use in this
         | system makes more sense in the context of 1995 when it was
         | initially created.
        
           | salmo wrote:
           | Yeah, they both share Rob Pike and the Bell Labs heritage.
           | 
           | Weird side note: Renee French did both the Plan 9 and Go
           | mascot designs as well.
           | 
           | https://go.dev/blog/gopher
           | 
           | And to the further above, there are other languages and
           | compilers supported on Plan 9/Inferno. Like Go.
        
             | bear8642 wrote:
             | Well she is married to Rob Pike...
        
         | FpUser wrote:
         | If language is half decent I personally do not feel any
         | cognitive load of learning and using it (excluding brainfuck
         | like things of course). I do not change language for the heck
         | of it because I am a vendor / custom product developer and need
         | to see financial reasons first, yet it happens often enough
        
         | 7373737373 wrote:
         | > Portable programs: Inferno programs are written in the type-
         | safe language Limbo and compiled to _Dis bytecode_ , which can
         | be run without modifications on all Inferno platforms.
         | 
         | The point is that this and similar operating systems have
         | sufficiently different (and better) security models that extend
         | to the virtual machine level, which makes creating a new
         | languages that are compatible with them necessary. Other
         | languages could be (re)written to compile to the bytecode, or
         | at least live in emulated environments within the safe zones.
         | 
         | Our current operating systems, virtual machines and languages
         | are laughably insecure, whereas these advanced systems can give
         | the programmer and user more control over and guarantees about
         | the behavior of these systems.
         | 
         | If we keep using the current models, we'll have to keep using
         | and building domain specific languages, container protocols,
         | browser sandboxes, all kinds of incompatible and stacked
         | interfaces, whereas well designed systems recursively nest
         | sandboxes gracefully.
         | 
         | https://github.com/void4/notes/issues/41
        
         | [deleted]
        
         | ModernMech wrote:
         | > For it to make sense this language would have to be quite a
         | bit more productive or otherwise better than Go, Rust, C++,
         | JS/TS, Python, Java, etc.
         | 
         | Concurrent programming languages _are_ quite a bit more
         | expressive and therefore productive for distributed systems
         | than the languages you listed. Go, Rust, C++ JS, Python, Java
         | etc. are all imperative languages with sequential semantics.
         | Writing concurrent programs in these languages is much harder
         | than using a specialized language. There 's a reason Erlang and
         | BEAM is preferred by many to write distributed systems as
         | opposed to C++.
         | 
         | Languages designed with asynchronous, distributed, parallel
         | semantics from the ground up allow a higher degree of
         | expressivity when it comes to distributed systems. Obviously
         | you can write anything you want in imperative languages, but
         | the semantics really work against you to the point where
         | concurrent programming is generally considered "hard" by users
         | of these languages. It really don't have to be that hard, or at
         | least not any harder than sequential programming.
         | 
         | I would say if you only know the languages listed, then
         | learning a concurrent languages would expand your mind rather
         | than burden it.
        
         | akkartik wrote:
         | I built a computer with its own languages, and I consider it to
         | be _less_ cognitive load when everything is in 1/2/3 languages.
         | I don't have to worry that the next program I want to read the
         | sources will require "Go, Rust, C++, JS/TS, Python, Java, etc."
         | 
         | There are other metrics to consider besides your notions of
         | cognitive load and productivity. Inferno predates most of the
         | languages on your list. My computer
         | (https://github.com/akkartik/mu) uses custom languages because
         | I was able to design them to minimize total LoC, and to ensure
         | the dependency graph has no cycles (unlike all of the
         | conventional software stack, at least until
         | https://www.gnu.org/software/mes connects up all the dots).
        
         | imachine1980_ wrote:
         | Limbo is from 95 java is from 96 js from 98, go and rust from
         | 20xx something, and dart is made from the ground up to be
         | compile to multiple plataforms, I wish they make kotling in the
         | same way to be onest but I can't say is dumb flutter apps are
         | fast in comparison to react native becouse they don't need a
         | virtual Dom in the process
        
       | throw0101a wrote:
       | Inferno is the 'successor' to / a descendant of Plan 9:
       | 
       | * https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
       | 
       | * https://en.wikipedia.org/wiki/Inferno_(operating_system)
        
       ___________________________________________________________________
       (page generated 2022-03-17 23:01 UTC)