[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)