Slashdot Mirror


Programming Languages Will Become OSes

Anonymous Coward writes "A couple of months ago, at the Lightweight Languages Workshop 2002, Matthew Flat made a premise in his talk: Operating systems and programming languages are the same thing (at least 'mathematically speaking'). I find this interesting and has a lot of truth in it. Both OS and PL are platforms on which other programs run. Both are virtualizing machines. Both make it easier for people to write applications (by providing API, abstractions, frameworks, etc.)"

21 of 456 comments (clear)

  1. Programming languages become OSes? by Anonymous Coward · · Score: 5, Funny

    Already happened: Microsoft BASIC ==> Microsoft Windows

    1. Re:Programming languages become OSes? by RetroGeek · · Score: 4, Interesting

      You are closer to the truth that you suspect.

      The original IBM PC's would start up with ROM BASIC if no other OS was present.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
  2. Oberon anybody? by sofist · · Score: 5, Informative

    Just remember the past. Oberon was an OS an a PL at the same time and I think most of the readers didn't ever heard about it...

    1. Re:Oberon anybody? by CoolVibe · · Score: 4, Informative
      Oberon? Smalltalk! Now there's something you could turn into an OS.

      Although, Oberon is not the past. It's still being actively developed, in both it's OS and PL incarnation.

  3. Use Emacs by aridhol · · Score: 4, Funny

    If you use Emacs, you have a programming language, OS, and editor all in one happy package.

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
    1. Re:Use Emacs by SquadBoy · · Score: 5, Funny

      Yea but you would have to port VIM to get a *good* editor.

      --

      Cypherpunks: Civil Liberty Through Complex Mathematics. Those who live by the sword die by the arrow.
    2. Re:Use Emacs by NetRanger · · Score: 4, Funny

      Perhaps, but VIM doesn't include free pshyciatric help for after you've used it. Think about it.

      --
      -- We live in a world where lemonade is artificial and soap has real lemon.
    3. Re:Use Emacs by bperkins · · Score: 5, Funny

      Found in someone's sig file:

      Emacs: It's a nice OS, but to compete with
      Linux or Windows it needs a better text
      editor. - Alexander Duscheleit

  4. Happened before... by meringuoid · · Score: 4, Insightful

    ... the home computers of the early '80s didn't really have OSes, they had programming languages. You'd boot a BBC Micro and it would fire up into BBC Basic - with a few * commands for file system manipulation. Or you'd boot a Spectrum and you'd get the same: the name of the system and a prompt to begin typing your program.

    --
    Real Daleks don't climb stairs - they level the building.
    1. Re:Happened before... by Transient0 · · Score: 4, Interesting

      Yes, and interestingly, the article isn't even really saying that OSes and programming languages are the same thing. What it is saying is that any programming language worth it's salt has the potential to become an OS and that it will probable eventually do so for security reasons. Then he tacks on "There will perhaps be new PL's designed with isolation as one of their main goals--or current PL's might be improved/redesigned--so hopefully this requirement of having a 'multiuser PL' will be fulfilled in the future." as his last line.

      The bulk of his argument is sound and has convincing precedent in the examples you give(Micro, Spectrum, etc.) and I could add a few of my own, not to mention the modern example of Java. As for his ad hoc specualtion at the end that programming languages will eventually replace OSes. I'm prepared to call that bullshit until he presents some evidence. I don't see it happening, who wants to code on a machine that can only use one language?

      Of course, the response is that new language will be written to run inside the OS-Language and that coders can work in either these sub-languages or the OS-level meta-language. But really how would this be any different than the current situation with many languages vs. assembler as meta-language only with an additional obfuscating level of go-between.

      my two cents.

    2. Re:Happened before... by -dhan-101 · · Score: 4, Insightful

      your machine can already only use one language, machine language. fortunately, on top of this, humans have made a bunch of aliases and shortcuts for various commonly used sequences of operations, which developed into "higher level languages" like assembly and then C and then ...

      if people want to use the machine (or OS), but don't like the language it understands, they will build translators from whatever made up language they like to the language the machine does understand (i.e. compilers and virtual machines).

  5. Really? by teetam · · Score: 4, Insightful
    While this may be conceptually true, there are different considerations involved when picking an OS and a language. A programming language is more like a tool that is selected because it is good for a particular operation.

    A single machine could have multiple languages co-existing for different tasks. Some of these tasks require quick and dirty scripting, some require high performance and some other application programs might concentrate on object oriented features and such.

    The operating system, on the other hand, is typically only one per machine and performance and stability might be the major considerations (other than compatibility with the popular applications around!)

    --
    All your favorite sites in one place!
  6. FORTH by turgid · · Score: 4, Interesting

    FORTH was and still is such a combination. It's compact, easy to implement and incredibly fast and felxible.

  7. Sure, the distinction is artificial/arbitrary... by dpbsmith · · Score: 4, Interesting

    ...the partitioning of computer environments into applications, OS, "drivers," "libraries," etc. etc. is arbitrary, cultural, traditional, etc. To some extent it's also based on modularity considerations, and to some extent on marketing/commercial considerations. There's no fundamental logic to "the way things are."

    A few decades ago, MANY environments blurred the distinction between OS and language: FORTH, MUMPS, SMALLTALK, and, indeed, most early versions of BASIC, to name four.

    The traditional textbook discussion of an OS ("provides four interfaces, to the filesystem, to devices, to applications, and to users") is just a discussion of what IBM evolved in the sixties or thereabouts.

    Incidentally, the very name "operating system" indicates the original rationale and function of these pieces of software. They were intended to automate the functions that previously required the manual services of an "operator," thus increasing utilization and decreasing payroll.

    Another example of the arbitrariness of the term "OS" is the way in which various applications programs are now considered to somehow be part of the OS. In Digital's glory days, these were sometimes referred to as "CUSPS"--Commonly Used System Programs. Is grep "part" of UNIX? Is Windows Explorer (not Internet Explorer, but Windows Explorer--the application that displays directory contents and that "start" button at the bottom of your screen--Windows' graphical "shell") part of Windows?

    At one point Apple said Hypercard was "systems software." Perhaps iTunes is "part of" OS X?

  8. Re:Smalltalk as OS by tpr · · Score: 5, Insightful

    It so happens that I know a bit about Smalltalk so perhaps I can help a little.
    Smalltalk was originally the entire system on the original hardware. Indeed, Dan Ingalls said back then (paraphrasing, I don't have the exact quote handy) "An operating system is a collection of things that don't fit into a programming language. There shouldn't be one".
    The reality of commercial machines caused those of us interested in using Smalltalk to accept the limitations (and it must be said, benefits) of OSs. Even so, there have been several occasions where an attempt has be made to use Smalltalk as the entire system: the Active Book and the Momenta machines for example and more recently the Interval Research MediaPad (where the RTOS was written in Smalltalk).

    These days I'd be inclined to 'soften' Dan's statement to something like "An OS is a collection of things underneath the language. There shouldn't be any way to tell the difference". That is to say, the language ought to be able to make full use of anything available without having to burden the programmer with wierd crap.

  9. Confusion by The+Bungi · · Score: 4, Interesting
    The author of the article is confused. He almos defined the term architecture but he missed it by a hair.

    Systems architecture (and to a certain extent application architecture) revolves around creating "environments" where other applications operate, (note emphasis). Architectures provide services to these applications, which in turn may provide different services to yet more applications (components, web-based solutions, etc.). Thus you can argue that by sitting down and designing and implementing a specific or generic purpose architecture, you're creating a "mini-OS". That much is true. But the OS is simply a lower-level architecture than, say, Java or COM or .NET. It's a more complicated and extensive one, but one nonetheless. The stuff you do with a programming language (or as they like to be called these days - platforms) is essentially a higher-level abstraction than the real OS happens to be.

    So we can argue then that we're moving towards the platform concept where things are interconnected via well-defined interfaces and entry points (that's your APIs) where the OS itself is just another component.

  10. I'd like to point out... by pyth · · Score: 4, Interesting
    It is an incredibly retarded idea to integrate the programming language with the OS. Allow me to demonstrate what a PL does: make it easy to write machine code.


    The truly wise path to go is to define an OS/bytecode combination, so that (in a very LISP-like way) security is accomplished by "thought-controlling" programs rather than action-controlling (the MS/Linux model).


    What I want to know is this: Is the LISP bytecode the best, or should a more modern one be used? JavaVM?

  11. no, they won't by g4dget · · Score: 4, Insightful
    UNIX had it right: put all the isolation stuff into the kernel, and put all the programming outside of it. It's called "modularity". Yes, you do pay a performance cost for it in some cases, but the benefits in terms of simplicity of design are tremendous. Determining what a process can do in UNIX is a fairly simple affair, as is limiting what it can do.

    The best attempt at isolation at the language level is probably Java. The internal security architecture is rather complicated. And even after half a dozen years, Java still does not provide anything like "ulimit" and I wouldn't trust it to isolate arbitrary code within the same VM.

  12. Addendum by Amsterdam+Vallon · · Score: 4, Funny

    Java OS - True object orientation meets platform-independent code. Boot once, run it on anything. However, it takes 10 seconds alone to start each application's virtual machine. Early benchmarks indicate cold program starts of the Mozilla browser approaching the 60 minute mark on a dual Pentium system. Future benchmarks are planned and will be measured using a sun dial.

    --

    Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
  13. Re:Sure, the distinction is artificial/arbitrary.. by iankerickson · · Score: 4, Insightful

    No, it's because the term "OS" is commonly used to mean "OE" or "Operating Environment". Linux, being the kernel, is an OS. sh, and all the other shell tools are the OE. You don't have to use sh for your shell or init or any other shell tools, replacing them with other valid executables. A real world example of this is the FreeVMS project. In making a free/libre version of VMS, they don't want to duplicate the work of writing drivers and developing a kernel -- they want to focus on developing analogs of DCL, TPU, the Queue manager, etc. So they're using Linux or FreeBSD for their kernel and writing their own userland.

    Same with Windows Explorer. The "My Computer" icon is part of Windows' operating environment. You can, believe it or not, use Windows without using Explorer (using the command line or a replacement shell like LiteStep). Windows just isn't designed or intended to have its core components replaced so easily. I think there was a court case about it... Anyhow, I used to run Windows NT with just cmd.exe as the shell, which was fun for a few weeks, figuring out how to set control panels from the shell. With cywin & GINA installed, you could put a nearly complete UNIX face on NT and still be able to run Win32 apps.

    Sun is one the only companies I've seen distinguish between an OS and OE. They used to (still?) call it the Solaris Operating Environment, with the SunOS kernel as the underlying OS. The truth is nobody cares. _My_ eyes are glazing over just writing about this. My sincerest condolences to your disintigrating brain. But on the bright side, without the ambiguous use of technical terms, slashdot readers would have a lot less to argue about, and this site would degrade into a competitive festival of increasingly embarrassing personal confessions on sex, drug use, music, government secrets, scams, circumventing the law, satire, and other boring stuff like they have kuro5hin. If we should be so lucky.

    --
    Democracy. Whiskey. Sexy. Pick any two.
  14. The application becomes the shell by frovingslosh · · Score: 4, Funny
    I'm waiting for the application to bcome the shell.

    You are in a directory, there are many files here. A path leads to the the south and down labeled Mydocuments.

    > look

    There are files here labeled read.me, config.sys and autoexec.bat. A path leads to the the south labeled Mydocuments.

    > take read.me

    taken.

    > kill read.me

    You smite the file labeled read.me and it crunbles to dust.

    There are files here labeled config.sys and autoexec.bat. A path leads to the the south labeled Mydocuments.

    > South

    You move through the passage and reach the grand chamber of Mydocuments. There are many files here. Passages lead further south and down labeled Mymusic and Mypr0n. To the north is a passage leading up......

    --
    I'm an American. I love this country and the freedoms that we used to have.