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.)"

456 comments

  1. Slashdotted by Anonymous Coward · · Score: 0, Redundant

    A couple of months ago, at the Lightweight Languages Workshop 2002 [http://ll2.ai.mit.edu/], Matthew Flat made a premise in his talk: Operating system and programming language 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, abtractions, frameworks, etc.)

    Intro, Isolation, Perl

    The difference between the two, Matthew continued, is that OS focuses more on non-interference--or isolation between OS processes. The main task of a multiuser OS is to let several users use the computer simultaneously. Thus, it is important that no user can take over the machine or use up its resources permanently. Also, no processes shall be able to terminate other processes, peek into their resources, or do any other things that violate privacy unless it is permitted by the OS security policy.

    On the other hand, PL focuses on expressiveness and cooperation. PL provides high level constructs and facilities so that one can write programs in less time and with less amount of effort. 10 lines of higher level PL code might be equivalent to 100 to 1000 lines of machine/lower level language code. Additionally, PL provides means for people to share reusable code through the concepts of modules, shared libraries, components, etc.

    As time progresses, OS'es are becoming more like PL. And vice versa. OS now provides more and more ways for cooperation/sharing: IPC, threads, COM, etc. PL now provides ways to do isolation: sandboxing, processes, etc.

    However, in all programming languages that I am currently using (Perl, Python, Ruby), none of them had been designed from the ground up to do isolation. Thus, none of the isolation mechanisms really work well.

    This article will focus on above three languages. It would certainly be interesting to also discuss Scheme, Smalltalk, Java, and Erlang--however since I'm not adequately familiar with any of them I'll leave the readers to give feedback on these.

    Why Isolation In PL?
    As people construct more and more complex systems, the need for isolation becomes apparent. Complex systems usually untrusted user-level code that need to be restricted. Several examples follow.

    Database systems usually provide some sort of stored procedure. A remote client can connect to the database and triggers stored procedure to be executed. It is important that if the stored procedure crashes or loops, other clients can continue to use the database.
    Business applications usually allow users to specify business rules or constraints. Both are basically some simplified high level code. Users might specify these rules incorrectly and the application must ensure that those errors have any unwanted impact.
    Web application servers usually allow pages/templates to contain code. Since generally the interpreter itself (e.g. Perl or PHP) is exposed to do the execution of the code, the application must somehow ensure that no templates can crash the application.
    Other applications might allow users to specify regular expressions. Regular expressions is actually a language, though a mini one. Overly complex regexes--either specified accidentally or on purpose--can cause the regex engine to loop endlessly doing backtracking.
    So, in essence, complex applications are usually a platform by itself, running subprocesses/subprograms (in a single OS process). Thus, this requires that the PL has isolation mechanisms beyond those provided by the OS: like restricting a piece of code from accessing a certain part of the filesystem, from using more than a specified amount of memory/CPU time, from accessing certain functions/modules/variables. Unfortunately, most PL don't have enough of them.

    Perl
    The two main security models in Perl are tainting and safe compartments. Tainting are mainly for tracing data, so I will not discuss it here.

    In Perl 5.6/5.8 there are about 400 bytecode-level instructions, called opcodes. All Perl code will eventually be compiled to these opcodes. print is actually a single opcode. So are open, sysopen, mkdir, rmdir, fork, gethostbyname, etc. To see the complete list of Perl opcodes, see theOpcode documentation [http://search.cpan.org/author/JHI/perl-5.8.0/ext/ Opcode/Opcode.pm].

    Two things are apparent. One, Perl opcodes are higher level than machine level instructions or even Java bytecode instructions. Two, Perl is a monolithic beast. Many facilities (like directory manipulation and even DNS-related stuffs) are built into the language. Perl5 is monolithic because of historical reasons. Perl6 will also be monolithic--so I heard--because of speed reasons.

    Every single opcode can be enabled or disabled. This is done in the compilation step. If there is a forbidden opcode encountered by the compiler, the compiler will refuse it and compilation will fail. This has the advantage of speed: the cleansed code will absolutely have no run-time speed impact. The disadvantage: one must be careful to compile code at run-time--otherwise untrusted code can be compiled with dangerous opcodes in it.

    The Safe.pm is a standard Perl module that allows a piece code to be compiled with a specified opcode mask (a list of opcodes that are to be forbidden). In addition to that, Safe.pm will do a "namespace chroot". It will make Safe::Root0 (or Safe::Root1 for the second compartment, and so on) as the code's main:: namespace. This means that the code in the compartment cannot access variables in the original main:: namespace, so global variables like $/ is not shared with code outside the compartment (Some variables like $_ or the _ filehandle is shared, though).

    That's basically what Perl offers us for security. In practice, Safe.pm is not practical. Choosing a reasonable set of "safe" opcodes is not always straightforward. An opcode like open can range from "rather safe" to "extremely dangerous". Perl's open is so powerful and has many functions: it can open a file for reading, for writing, it can execute programs, open a pipe, duplicate a filehandle, etc. You can't, for instance, make Perl allow only read in open. Overriding open() doesn't make it safe, because the code in compartment can always refer to the builtin version using CORE::open(). Moreover, Perl can be told to read/write files without using any opcode at all (for example, using $^I). Thus it is not possible to restrict an unstrusted Perl code from accessing filesystem. To do this, one must resort to using OS facility (like Unix's chroot or BSD's jail).

    The show-stopper for Safe.pm: most modules don't work under Safe.pm. DBI, for example. Embperl 1.x uses Safe.pm but drops it in the 2.x versions. Virtually no other web application servers uses Safe.pm these days. Even Perl experts say that Safe.pm is too broken.

    Conclusion: Perl has some sort of sandbox, but it works at the compilation step only. It's not very flexible and it's not very useful. Perl is also monolithic and many functions are built into the interpreter. Thus, it is harder to isolate functionalities.

    Python, Ruby, Conclusion

    Python
    The Python language design is very simple and clean. Amongst the security models of the three languages, Python's is the one I like the most. Python security model is capability-based, meaning that: if you don't want a certain code to be able to do stuff, you don't give a reference to the module/function that provide that stuff. Python is also much more modular: the core functionality is much less than that of Perl. For example, OS specific services--like unlink or rmdir--are located in the sys and os module. This means we can more easily restrict access to those services by depriving the code from importing the appropriate modules.

    Here's Python's execution model: each code runs in a frame ("a context"). In a frame, there are two namespaces: the local and the global namespace. A namespace is a mapping between names and objects. You get reference (=capability) to objects from a namespace. Every time a variable/function/object/module name is mentioned, Python will look for it in the namespaces. The local namespace will be searched first, then the global. If the name is not found in either, Python will give a NameError exception.

    We can manipulate a namespace easily, since it is available as a dictionary. We can even execute a code and give it our custom dictionaries to be used as the code's local and global namespaces. This way, we can limit what objects are available to the code. That's basically how the security model works in Python.

    Actually, there's a third namespace that will be searched when a name is not found in a local and global namespace: the builtin namespace. The builtin namespace contains basic functions like open, exit, execfile. Most of the Python's builtin capabilities are provided through this builtin namespace. The rest is creatures like print or exec which are statements, not functions/objects.

    rexec is the standard Python module to do sandboxing. It basically does what is explained above: run the sanboxed code with a custom local and global namespace. Additionally, rexec creates a custom builtin namespace and provides a safer substitutes for functions like open or __import__. This way, we can tell rexec to forbid the untrusted code from opening a file in write mode. Or from importing dangerous modules.

    rexec is pretty flexible and indeed has been used successfully in several applications. Guido's web browser Grail, for instance, allows running Python applets. However, rexec seems to be not flexible or fine-grained enough, because Zope chooses not to use rexec. Instead, it uses its own home-growned module to do restricted execution.

    There are several things that rexec can't do. Resource limiting, for example. To do that you need to resort to the OS (like using Unix's setrlimit). Also, since Python does not have private attributes, you can't give an object to an untrusted code without the fear that the code will use the Python reflection mechanism to "peek into the guts" of your object (and from there gain references to other objects). There are two separate solutions to the last problem: the Bastion and mxProxy C extension modules, which essentially provide private attributes.

    Conclusion: Python has a nice and simple security model. However, rexec cannot do all kinds of isolation that one might need, like resource limiting. Guido once also said that rexec is not tested enough and it might contain security holes.

    Ruby
    One of the main goals of Ruby seems to be "to replace Perl". In that respect, it has copied many Perl features. Tainting is one of them. In Perl there are two running modes: tainting mode on (-T, setuid) and off (no -T). Ruby extends this concept a bit by providing four different "safe levels" (indicated by the global variable $SAFE). The different safe levels is as follows.

    Safe level 0 (default mode): no tainting is performed.

    Safe level 1: tainted data cannot be used to do potentially dangerous.

    Safe level 2: in addition to level 1 restriction, program files cannot be loaded from a globally writable locations (e.g. from /tmp).

    Safe level 3: in addition to level 2 restriction, all newly created objects are considered tainted.

    Safe level 4: in addition to level 3 restriction, the running program is effectively partitioned in two. Nontainted objects may not be modified. Typically, this will be used to create a sandbox: the program sets up an environment using a lower $SAFE level, then resets $SAFE to 4 to prevent subsequent changes to that environment.

    It's evident that, as with tainting, the safe levels are primarily concerned with data security and are not very sandbox-like (in the sense of "isolating subprocesses from another" sandbox). Matz confirmed this in the ruby-talk mailing list by saying that Ruby currently does not have any sandbox yet. Running a code in safe level 4 is usually too restrictive to be practical, plus it does not provide enough isolation.

    The problem with isolation in Ruby is that all objects are accessible from any code through the ObjectSpace facility (including the code running in safe level 4). This is of course in direct conflict with the capability concept, in that you don't give a reference/capability unless necessary. However, Ruby does protect an object's attributes and has a #freeze method to make an object becomes read-only.

    Conclusion: Ruby doesn't have a sandbox (yet).

    Other PL's
    Java has a sandbox security model and a bytecode verifier. Tcl basically has the same. Erlang is evolutionary more advanced in providing isolation, in that it has a notion of "PL-level processes" (a process is isolated in all ways from another).

    Conclusion
    As people construct more and more complex applications in PL, PL's are required to have adequate security/isolation mechanisms. Current PL's in mainstream usage do not have adequate security mechanisms, so programmers are often forced to fall back to using facilities provided by the OS. This has drawbacks such as lack of portability and reduced efficiency. 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.

    About the Author:
    Steven is a software developer residing in Bandung, Indonesia.

    1. Re:Slashdotted by Anonymous Coward · · Score: 0

      Who is the idiot who moded up this??? Please mod it down. The site is NOT slashdotted, works just fine for me.

  2. Lisp by Anonymous Coward · · Score: 0, Informative

    Seems to me that this is old hat. Lisp has been an OS since the 60's. We just don't feel the need (often) to call it that.

    1. Re:Lisp by Anonymous Coward · · Score: 1, Informative

      I use Lisp frequently. It is not an OS. It is an interpreter. There is a huge difference. If still not convinced, take a look at the source for GCL and the Linux kernel.

    2. Re:Lisp by Anonymous Coward · · Score: 2, Informative

      Don't spread misinformation. Lisp is often interpreted, but in production use it is always compiled. GCL, for instance, is most assuredly a compiler.

      The point is not that the code to a Lisp compiler is anything like the code to an operating system; rather, it is that each advanced programming language provides its own set of high-level abstractions for what are traditionally OS-level services.

    3. Re:Lisp by Raiford · · Score: 1
      Although there are Lisp OS projects past and maybe present, LISP OSs aren't prevelent. You may be thinking about LISP machines which are designed specially to run LISP programs and provide an optimized environment for LISP development.

      --
      "player 4 hit player 1 with 0 stroms"
    4. Re:Lisp by Anonymous Coward · · Score: 0

      Fine, GCL is an interpreter\compiler. That issue was important in the 60's and 70's, but not anymore.

      The "point" is that an OS must have code to communicate with the BIOS, hard drive, memory managament, optimization of the use of registers, ...

      A programming language is a specification of how code should be interpreted\compiled and an implementation of that specification interprets\compiles the code, hopefully, according to the spefication. The Lisp language does not include code on how to deal with AMIBios or a Pentium IV processor!

    5. Re:Lisp by Anonymous Coward · · Score: 0

      Lisp CAN be just an interpreter. However, it can also be the entire operating environment. You may want to google on "LISP machines" for starters.

    6. Re:Lisp by Anonymous Coward · · Score: 0

      You're looking at operating systems from the wrong end. If you look at them from the bottom up (from the CPU's point of view) they don't look much like operating systems at all. If you look at them from the user's point of view... Lisp/Java/Python/whatever provide abstractions for filesystem access, networking, memory management, concurrency/threads, event handling, and the like. High-level language implementations provide these services in ways that vary much more between different languages on the same OS than on the same language on different OSes.

      Of course, once you've provided these abstractions in the language, there's no reason why you can't provide them without help from a traditional operating system (written in a low-level language). Witness the Lisp machines, or the various Java-based operating systems, or the running of Squeak smalltalk on the bare metal.

  3. 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. Re:Programming languages become OSes? by los+furtive · · Score: 1

      Commodore 64's operating system was also BASIC. Too bad we couldn't boot up into GEOS....you all remember GEOS, right?a>

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    3. Re:Programming languages become OSes? by reynaert · · Score: 1

      Disconnect your disk drives and floppy, and even current systems will probably say "NO ROM BASIC" :) (Last time I tried that was on a Pentium 200).

    4. Re:Programming languages become OSes? by iNub · · Score: 1

      Mine says something along the lines of "OS not present." But I have a cheap board. ;-)

      --
      "The image is a dream. The beauty is real. Can you see the difference?" -- Richard Bach, Illusions
    5. Re:Programming languages become OSes? by Anonymous Coward · · Score: 0

      Most recent (1998+ or so) BIOSs I've seen say "Operating system not found".

    6. Re:Programming languages become OSes? by Anonymous Coward · · Score: 0

      I know I have a 486dx and a pentium pro that also say "operating system not found" so it's not even as new as 1998 (maybe it wasn't as popular until then though)

    7. Re:Programming languages become OSes? by proj_2501 · · Score: 1

      The TI 99/4 series and all Apple IIs have ROM Basic that is used as a shell as well.

    8. Re:Programming languages become OSes? by rusty+spoon · · Score: 1

      Aww crap. I *had* fond memories of it until followed your link.

      Damn it was awful ;-)

      I prefered my old VIC20 with built in assembler - now that was groovy. If it crashed you could reset it and hold down a key to prevent it from wiping the memory when it restarted. It was the VIC20 that got me started commercial programming - selling stuff to Commodore Computing International magazine. Oh the memories...

    9. Re:Programming languages become OSes? by Anonymous Coward · · Score: 0

      Also, if you let the clock become unset, it'll boot into BASIC.

    10. Re:Programming languages become OSes? by Zathras11 · · Score: 0

      I started on an Apple ][+ which ran DOS 3.3
      and Applesoft BASIC (built-in) standard.
      It looks like things are coming full circle!

    11. Re:Programming languages become OSes? by Zathras11 · · Score: 0

      Oh, and it is nibble, not "nybble".
      Very funny SIG otherwise!

    12. Re:Programming languages become OSes? by Anonymous Coward · · Score: 0

      Even earlier - Apple ][ did the same thing (except it went to Integer BASIC:-))

    13. Re:Programming languages become OSes? by IntlHarvester · · Score: 1

      Better yet was the IBM ThinkPad 701 "Butterfly", which was a Pentium machine that actually had good ol' Microsoft ROM BASIC.

      --
      Business. Numbers. Money. People. Computer World.
    14. Re:Programming languages become OSes? by Anonymous Coward · · Score: 0

      I wish someone would code a OS with this (E, the secure distributed pure-object platform and p2p scripting language)... could this potentially save us from Palladium etc?

      Shouldn't we provide good, free, open security, before the money-grubbers do it?

  4. Emacs! by Anonymous Coward · · Score: 0, Interesting

    Emacs is Emacs Lisp.
    Emacs is an Operating System.
    Emacs Lisp is an Operating System.

    QED

    1. Re:Emacs! by ketamine-bp · · Score: 1, Funny
      Just to elaborate (and make it funnier.)

      Emacs is Emacs Lisp.

      If Emacs = Emacs Lisp, either that Lisp is 1 (universal truth) or Emacs is 0 (universally untrue).

      Hence, this statement is somehow applicable to both vi zealots and emacs zealots, and should not be considered Emacs-speak ;-) (supporters alike - i prefer no flames on this matter, please.)

  5. 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.

    2. Re:Oberon anybody? by Anonymous Coward · · Score: 0

      Check out Squeak [squeak.org]. It's Smalltalk and a bunch of OS type tools within a virtual machine.

    3. Re:Oberon anybody? by Corporate+Troll · · Score: 1
      Oh, boy... You bring up memories! We had to use Oberon as a programming language at University in the first year! They did this because they didn't want anyone familiar with C/C++, Pascal or Basic to have an advantage over the people who did not have experience with any programming language. Of course this was stupid, because it really was Pascal in more fancy. (Pascal -> Modula2 -> Oberon... All Wirth Languages I think)

      Actually Oberon -the OS- wasn't that bad. The version I had ran on top of DOS. Don't know if that applies as an OS then though. Oberon also has a strange filesystem for diskettes. I still have some disks formatted for it somewhere in a box. Probably unreadable with anything I have today.

      Ah, the late night hacking sessions on my 486DX/2 laptop in my student room, together with my best buddy and a few bottle of wine! Those were the days!

    4. Re:Oberon anybody? by Anonymous Coward · · Score: 0

      Learned it at NDSU. One of the top 10 CS schools in the country(for the B.S.).

    5. Re:Oberon anybody? by Anonymous Coward · · Score: 0

      Certainly Oberon is not the past. As a matter of fact, it's a shame that it took so much time for mainstream software engineers to understand what Wirth and the people at Xerox PARC understood almost two decades ago.
      Oberon was developed after Wirth paid a brief visit to PARC. He caught the idea of developing a new language and its operating environment from PARC's Alto project (just like Apple did).
      Currently Oberon is very active in embedded and real time programming (component pascal).

    6. Re:Oberon anybody? by Anonymous Coward · · Score: 0

      Anyone seriously interested in thoughts similar to this should look at the Tunes Project

  6. TRS-80 by Anonymous Coward · · Score: 2, Interesting

    my TRS-80 had BASIC as the OS

    1. Re:TRS-80 by eberry · · Score: 1

      An interesting note, it was "Microsoft Extended Color Basic"

      --
      Whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa, whoa. Lois, this isn't my Batman glass. - Peter
  7. Well I think.... by Anonymous Coward · · Score: 0

    mozilla has proved how sucessful that approach is.

    1. Re:Well I think.... by captain_craptacular · · Score: 2, Funny

      Gee, I didn't realize mozilla was a programming language. I'm going to go now and arrange my tabs into a lexographic sequence and get them to do something new, maybe say hello world.

      --
      They who would give up an essential liberty for temporary security, deserve neither liberty nor security
  8. 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 Anonymous Coward · · Score: 0

      I've always felt that Emacs is an editor, a programming language, an operating system and a religion. I've been using it almost every day for 14 or so years. There is not much else that I can talk about in a family newspaper that I've been doing as regularly . . .

    3. 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.
    4. Re:Use Emacs by Anonymous Coward · · Score: 0

      I bet the right-hand side of your keyboard knows what you've been doing (unless you're left-handed). The springs on the keys on that side get compressed more because your right hand is stronger from all the vigorous excercise.

    5. 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

    6. Re:Use Emacs by Anonymous Coward · · Score: 0

      or Mozilla for that matter...

    7. Re:Use Emacs by isomeme · · Score: 1

      Emacs has an editor? :)

      --
      When all you have is a hammer, everything looks like a skull.
    8. Re:Use Emacs by aridhol · · Score: 1

      If it is a religion, I've (almost) converted away. I now use Vim as my primary editor. I'll be switching over to Mutt for email (from Gnus) once I've figured out how to transfer my old emails.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    9. Re:Use Emacs by Jason+Earl · · Score: 2, Interesting

      It's actually pretty easy to migrate your email to another client because Emacs will happily create mbox files. Fire up info on GNUS and read the bit about "Incorporating Old Mail" and simply do it in reverse.

      The short but sweet synopsis is that you enter the group that you want to export, type 'M P b' to process mark all article, and then type 'B r' to respool those articles. When it asks for the backend to use choose 'nnmbox'.

      Don't forget to make backups of your email first (I have had problems with really large groups).

      As a side note have you tried some of the Vi-emulation modes in Emacs. Vim is pretty good stuff, but it doesn't do everything that Emacs does. Vi-style keystrokes on top of Emacs is the best of both worlds (IMHO).

    10. Re:Use Emacs by Hober · · Score: 1

      Use Viper!

      --
      -- Edward O'Connor ted@oconnor.cx
    11. Re:Use Emacs by aridhol · · Score: 1
      As a side note have you tried some of the Vi-emulation modes in Emacs. Vim is pretty good stuff, but it doesn't do everything that Emacs does. Vi-style keystrokes on top of Emacs is the best of both worlds (IMHO).
      The main reason I'm switching is because the operating system I was using at my last job (QNX Neutrino) didn't (at the time) support Emacs - it was extremely difficult to convince Emacs on QNX at that time. However, they did have Vi. So I got to learn to use and love Vi, and later Vim when it was ported over.
      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    12. Re:Use Emacs by susano_otter · · Score: 1
      Fire up info on GNUS and read the bit about "Incorporating Old Mail" and simply do it in reverse.

      I can see it now: "In Emacs, old mail incorporates you!"

      --

      Any sufficiently well-organized community is indistinguishable from Government.

    13. Re:Use Emacs by dacarr · · Score: 1

      Ed is the standard editor!

      --
      This sig no verb.
    14. Re:Use Emacs by civilizedINTENSITY · · Score: 1

      Viper-mode gives you vi under emacs (and emacs motion keys work in vi-insert mode). Interesting blend...:-)

    15. Re:Use Emacs by The_Dougster · · Score: 1


      Hmmm... I'm suprised that somebody hasn't tried to use OSKit to build an Emacs kernel. Think of it... Hurd could replace GNUMach with Emacs! Wow!

      GNU/Hurd/Emacs - Press [Meta][Bucky][Cokebottle]X to enter kernel debugger mode.

      --
      Clickety Click ...
    16. Re:Use Emacs by Anonymous Coward · · Score: 0
      As a side note have you tried some of the Vi-emulation modes in Emacs. Vim is pretty good stuff, but it doesn't do everything that Emacs does. Vi-style keystrokes on top of Emacs is the best of both worlds (IMHO).

      Where can I find more information on this? I'm really interested to migrate to EMACS and this may be the less traumatic approach.

    17. Re:Use Emacs by Jason+Earl · · Score: 2, Informative

      Assuming you are on a Linux box with Emacs (and info) properly installed you might be able to simply type 'info viper'. The info file included with viper is pretty darn good.

      Or you can just start up Emacs and type M-x viper-mode. viper-mode has a start-up message that is pretty handy, it should get you started without too much trouble. If you set the viper-expert-level variable low enough Emacs will act just like vi.

      If you are really interested in using Emacs, however, I would suggest learning to use Emacs' built in info browser. There is a ton of functionality built into Emacs that is not immediately apparent. I have been using Emacs for years now, and I still find amazing new functionality on a regular basis. Time spent reading the documentation will pay for itself quickly.

    18. Re:Use Emacs by rusty+spoon · · Score: 1

      C'mon moderators, quit sleeping at the wheel and mod him up funny.

    19. Re:Use Emacs by Ian+Bicking · · Score: 1
      People think this is funny, but Emacs is an operating system, at least for some definitions of operating system.

      Obviously Emacs is an environment to build applications. Many applications have been built on Emacs beyond text editing. News reader, instant messengers, email readers, a web browser... these aren't even all that text-editor like (and strangely word processor isn't really on that list).

      But it's more than that. When you are programming an Emacs program, you are programming in a fairly insular environment. And the result of your code can be run on multiple operating systems (Emacs is fairly well ported). It's providing the basic services that an operating system might provide. It provides ways to selectively load and execute code, it provides a user input/output mechanism, and it even provides a (tiled) windowing system. It's a high-level OS.

      It doesn't fit into the article very well, but the article is kind of stupid. Emacs doesn't have any real protection, but it's a single-user OS. That's not that unusual.

    20. Re:Use Emacs by Isle · · Score: 1

      Actually VIM has been ported to emacs, it is called viper.

      Ask yourself has emacs been ported to VIM?

    21. Re:Use Emacs by mmunari · · Score: 1

      I was reading /. by (oort)gnus in Emacs.
      Emacs is unclassifiable, nor is the example by which
      the classification sometime has no sense.
      This discussion could be like the one we could have
      if we try to classify human being intelligence.

  9. 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 dillon_rinker · · Score: 3, Insightful

      who wants to code on a machine that can only use one language?

      The Feds. They've done it before (Ada) and, I'm sure, wouldn't mind doing it again.

    3. Re:Happened before... by OvertlyPedantic · · Score: 1

      Actually the BBC Micro is a bad example, because it did have an operating system and could run Pascal, COMAL or a number of other languages (all using the same OS commands) You could even take the BASIC ROM out and just have the OS.

    4. Re:Happened before... by Jester99 · · Score: 1

      Who wants to code on a machine that can only use one language?

      Ever hear of a Forth Machine? Some computers were specifically geared to run Forth, and only Forth. As a primitive operating system and progamming language all rolled into one.

    5. Re:Happened before... by evocate · · Score: 1

      If I am correct in my understanding of most VMs (including Java), they are not language specific. They provide a low-level assembly language which various high-level language compilers can target.

      The trouble seems to be that the high-level language builders always implement their own VM. And so most VMs only support one language very well. Independent VM development could help with this. Would any language builder like to throw away their custom VM and use a VM built by someone else for their language? Can you imagine building a corporate rapid prototyping language, basing it on .Net, and then trying to position it against Visual Basic? I can't. Can you imagine trying to implement Lisp on .Net?

      There are other issues: performance problems, high level instead of low-level library implementations, scope of VM operator set, concurrency, and on and on. But "only one language" really isn't a big problem. If VMs were obviously such a good idea, the world would have already flocked to Lisp machines, or Smalltalk systems, or 200-Proof Java. Since it hasn't, I have to believe that the compromise we are using today has good reasons to exist.

      In theory there's no difference between theory and practice. In practice, there is.

    6. 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).

    7. Re:Happened before... by reallocate · · Score: 1

      Old machines like the Sinclair, VIC-20, C-64, etc., didn't have real operating systems because it's hard to shoehorn something into the tiny memories they had -- 5k, I think, in the VIC.

      --
      -- Slashdot: When Public Access TV Says "No"
    8. Re:Happened before... by Junks+Jerzey · · Score: 1

      ... 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.

      That doesn't mean BASIC was the OS, just that there was no desktop or GUI or whatever, and that BASIC started by default. Replace the Windows Explorer--which is just a user-level program, after all--with a BASIC interpreter and you'll get the same effect.

      This isn't what the author of the cited article was talking about, in any case.

    9. Re:Happened before... by WatertonMan · · Score: 2, Interesting
      I'm not sure Java's virtual machine counts as a full operating system. I do think that Microsoft's .net strategy is much closer. In the .net languages (C#, managed C, VB.net, ASP.net) you really do start to blur the lines between the language, the class library and the OS. It hasn't gone all the way, of course. Further the fact that there are multiple languages undermines the idea of a language as the OS. With .net it is multiple languages.

      There are excellent reasons to go this route though. While I'm definitely no Microsoft lover, I do think .net is pretty cool. Even if figuring out what they mean by that is more than a tad confusing.

      Of course in practice the distinction between language and OS has always been somewhat blurry. Take Unix. At what point to you separate Perl, gcc, and the shell from the OS? In a way, in the older versions of Unix it was even more pronounced. Using LaTex involved many shell scripts and custom programs and even writing in it was in effect programming.

      Even early versions of LISP were their own OS and one could argue that UCSD Pascal was as well. (Especially the version for the old Apple II)

      So this is hardly a new thing. The only time I think we can truly make an OS - language distinction is when people start trying to make languages portable and make it used for development. The move to do everything in C for all platforms in the late 80's is a great example of this. This lead to many companies using C instead of Pascal for development and also pushed ANSI C and then the C++ standards. Class libraries tended to be quite separate from the language. However lets be honest. All of this was more of a short blip in the history of languages rather than the typical situation.

      Even going back to "prehistoric" times, when people wrote Fortran code with punch cards could they tell what was the program and what was the OS easily?

    10. Re:Happened before... by Anonymous Coward · · Score: 0

      Merging the language platform with the OS platform certainly seems to be the direction that Microsoft is heading in with .Net. The CLR interprets the OS-level meta-language (intermediate language), and all the other languages compile down to that. Also, Microsoft has vowed to create all expose all the new APIs of the underlying OS through .Net (only).

      The difference between this and the old model should have an important practical difference: the base class library represents the OS, and it can be uniformly accessed no matter what the language. Currently, you have to be able to do C-style function calls, marshal parameters, etc. This is a headache in a number of languages.

    11. Re:Happened before... by Lumpy · · Score: 1


      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.

      but there IS an operating system there..

      the resulting disk commands are the operating system. the Basic interpeter is running in the operating system. People think of today as Windows as an OS and linux as an OS... they are right with linux... as linux is ther kernel and underlying OS that runs your /bin/bash program to give you a human interface.. windows KERNEL is the os that loads the programs that give the human interface... the TRS-80 color computer had and OS that loaded and ran the basic interpeter and basic editor/human interface.

      The only computer I have ever had that DID NOT have an operating system is my KIM-1, my 68hc11 test board, and every one of my microchip PIC processors... you have to load a program into them and they run that program only... I can WRITE an OS for them... but they dont have one on them.

      --
      Do not look at laser with remaining good eye.
    12. Re:Happened before... by meringuoid · · Score: 1
      they are right with linux... as linux is ther kernel and underlying OS that runs your /bin/bash program to give you a human interface..

      So that's the OS, then? I was told that the userland tools and the kernel together comprised an OS, and therefore we should call the operating system GNU / Linux rather than just Linux. Richard Stallman wouldn't have lied to me, would he?

      --
      Real Daleks don't climb stairs - they level the building.
    13. Re:Happened before... by patter · · Score: 1
      5k, I think, in the VIC.

      I would have KILLED for 5 K :P


      Commodore Basic V.2
      1024 Bytes Free
      Ready.


      Or something like that.. the vic had 1 K or ram, and I'm not sure what the rom had, but of course, that's semi-irrelevant anyway :P.
      --
      -- If at first you do succeed, try to hide your astonishment. -- Harry F. Banks
    14. Re:Happened before... by patter · · Score: 1

      Never mind, I'm an idiot .. yes.. they could have had like 3 or 4 K of rom to put the 'os'/basic interpreter into :(

      --
      -- If at first you do succeed, try to hide your astonishment. -- Harry F. Banks
    15. Re:Happened before... by gmcclel · · Score: 1

      Absolutely - the Basic Four machines and their competitors in the early 80s (Rexon, Pertec, etc) all had a Business Basic as the interpreter/OS. Everything you did on the machine was done through Business Basic. FWIW, the language still lives - see The Business Basic Page

      --
      --- Gary McClellan
    16. Re: Happened before... by Black+Parrot · · Score: 1


      > > who wants to code on a machine that can only use one language?

      > The Feds. They've done it before (Ada) and, I'm sure, wouldn't mind doing it again.

      Uhmmm... What machine was that?

      Ada was adopted because the DoD wanted a language standard, not because they had hardware that would only run that particular language. If your hardware is a von Neuman machine you should be able to program for it in any language. All you need is an appropriate back-end for your favorite compiler.

      --
      Sheesh, evil *and* a jerk. -- Jade
    17. Re: Happened before... by Anonymous Coward · · Score: 0

      Hey, everybody! Black Parrot is a liar! He claimed that "Microsoft destroyed my company," but when challenged, he refused to post any facts to back that statement up. See this thread for all the gory details. Black Parrot is an anti-Microsoft zealot and a liar! Whenever he posts an unsubstantiated assertion, tell him to "post or retract" and watch the backpedaling begin! Don't let anything he says go unchallenged!

      (Not only is he a liar; he's also an idiot. He doesn't know the difference between a Von Neumann machine and a Turing machine. Pfft.)

      This message was brought to you by Trolls Aligned Against People Who Are Really Stupid (TAAPWARS).

    18. Re:Happened before... by MeanMF · · Score: 1

      Can you imagine trying to implement Lisp on .Net?

      These guys did a Scheme compiler for .NET (and the JVM)... Lisp isn't much different.

    19. Re:Happened before... by mrdlinux · · Score: 1

      You're wrong in both respects.

      The Hotdog compiler for Scheme does not support full continuations on the .NET and JVM backends, because these VMs are just too brain-dead to be able to do it sanely (ie. control over the stack). Without that, it's not really Scheme.

      As for Lisp, I would love to see an implementation of multi-dispatch methods and method combination on .NET and JVM. Can you imagine adding the condition system restarts, too?

      (Yes, Lisp and Scheme are very different. Time to start reading if you don't believe me.)

      JVM and .NET were designed for crappy languages with little expressivity, such as Java and C#, not for the more powerful languages such as Common Lisp or even Scheme.

      --
      Those who do not know the past are doomed to reimplement it, poorly.
    20. Re:Happened before... by GMontag451 · · Score: 1
      Or something like that.. the vic had 1 K or ram

      The VIC-20 had 20K of RAM, thats why it was called the VIC-20. Just like the C-64 had 64K and the C-128 had 128K.

    21. Re:Happened before... by jpkunst · · Score: 1

      It was fun going up to a Commodore 64 (or something similar) on display in a store and typing

      10 PRINT "Something"
      20 GOTO 10

    22. Re:Happened before... by jpkunst · · Score: 1
      Even early versions of LISP were their own OS

      See here for extensive information about dedicated Lisp machines.

    23. Re:Happened before... by Pseudonym · · Score: 1
      I don't see it happening, who wants to code on a machine that can only use one language?

      You've never tried to implement a non-C language for a Unix-like OS, have you?

      High-level languages pretty much have to compile down to C under a Unix-like OS, because of the semantics of signal delivery, which requires a C stack and a valid stack pointer to be present. This kills potential optimisations (e.g. requiring a C stack to be maintained even when the language does not require it).

      Even C++ is broken under most Unix-like OSes (one exception being Solaris), because if you cancel a thread, the destructors for that thread's stack are not run.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  10. Ridiculous by PhysicsGenius · · Score: 1, Troll
    The operating system is the "government" of the computer. (It's a totalitarian dictatorship, but still.). Programming languages are...languages. Would you say that "English and Democracy are practically the same thing, look there's an English word for 'vote'!"

    Whoever gave this talk needs to go back to CS 101.

    1. Re:Ridiculous by Anonymous Coward · · Score: 0

      Your analogy is very loose and hardly detracts from the article. Maybe if you could explain why the relationship between a government and a natural language like english is the same as the relationship between an operating system and a programming language, it would make more sense. Ever heard the term "mixed metaphor?" Just because an OS is like a government in some sense, and a programming language is like a natural language in some sense, doesn't mean that when you put the two metaphors together the relationship is also analogous.

    2. Re:Ridiculous by Anonymous Coward · · Score: 0

      I cant think of any truly democratic English speaking countries, im hoping the US can maintain its republic status however...

    3. Re:Ridiculous by wackybrit · · Score: 1

      Can you name any sizable truly democratic countries at all then? I can't think of any. Pure democracy is too hard to do in a country with more than a few thousand people. That's why the Republican system (or the Parliamentary system) exists.

    4. Re:Ridiculous by blueminder · · Score: 1

      Ah, but that problem will be fixed in the next Newspeak dictionary. Pretty soon, there will be no word for freedom! (/orwellian moment)

  11. 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!
    1. Re:Really? by Kynde · · Score: 1

      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.

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

      I disagree with you there, and I think you didn't think that through yourself. Currently mainstream OSs are designed and optimized for common case. But as we already see, we have demands like Real Time, high throughput and good interactivity that aren't really met by main-stream OS.

      A lot of people have been asking that such decisions would be left tunable in linux for example. Last fall during the quest for high throughput and all those db benchmarks resulted in extremely POOR desktop feel. Software compilation in another window jammed your editor for example, which for a desktop developer is something you never want to be face to face with. Even now the only way to achieve good feel with 2.4 is to buy more memory and turn off swap all together.
      Naturally that nullifies all the benefits that the "clever" mm does for throughput in linux.
      (for the record 2.5 behave a lot better)

      In any case the language selection like you said is alread taking place also with OSes. Neither Linux nor Windows is suitable for hard real time for example.

      --
      1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
    2. Re:Really? by Raiford · · Score: 1
      A lot of comments that are being made here seem a little funny to me. I think the term OS is being confused with the concept of emulation layers and applications that provide a lot of functionality. Statements like Emacs and Mozilla are operating systems. Does Emacs or Mozilla control low-level I/O or memory management ? Do they provide process scheduling ? No ! Then things like these are not OSs in the traditional sense.

      --
      "player 4 hit player 1 with 0 stroms"
    3. Re:Really? by l0ss · · Score: 2, Interesting

      What about development platforms like .NET? These unifeid environments aim to resolve many programming languages, and resources in a unified bundle. This has been a long standing goal for many development environments. We've seen all kinds of Java and C++ wrappers emerge that allow integration into various other languages, platforms, and environments. That said, I think there is a alot to be said about how similar OSs and PLs really are.

    4. Re:Really? by ThunderRiver · · Score: 1

      Well, I don't really think OS is restricted to "one per machine" You can always do dual boot ;)

      If I put my own definition for OS and programming language, I wouldn't really consider that they are the same. Programming language is a tool that facilitates people's ability to interact with comptuer by creating permanent programs that you don't have to rewrite all over again, next time you reboot the computer. As for OS, well, it is a collection of programms and framework for other future generations of programs to run on. It is kinda like a cycle thing...
      Programming language => collection of programs => OS => a more powerful programming langauge tools => new born programs => Programming language => collection of programs => OS...

    5. Re:Really? by Anonymous Coward · · Score: 0

      The operating system, on the other hand, is typically only one per machine

      If you include consumer home-PCs in your survey of machines, then this is true.

      If you consider real computers, however, this is not the case. Many machines can run multiple OS at the same time. Virtualization and emulation are also now available in the x86 home PC world, through things like bochs, vmware, and even the JVM (which is, after, an entire computer, OS, and language in one).

    6. Re:Really? by Brown · · Score: 2, Interesting

      "A single machine could have multiple languages co-existing for different tasks."

      Just as quite a few computers 'round here have multiple OS's installed.

      On this machine, I currently have 2 different installs of Linux, and one of Win2000. They are used for different things; one of the Linux instances is for my desktop machine - customisation, and my 'feel' is important. Another is for testing/playing with, while the windows install is for any apps I need which still aren't around on linux (practually none that I use these days actually).
      I'd suggest that this kind of arrangement is analogous to having differnt languages for different purposes, and is quite common amongst computer hobbyists.

      I'd also hope that performance, stablity/security and compatibility are important criteria when selecting programming languages as well as OS's!

      - Chris

    7. Re:Really? by jgerman · · Score: 3, Funny

      A lot of comments that are being made here seem a little funny to me


      Ahem. That's because they're jokes.

      --
      I'm the big fish in the big pond bitch.
    8. Re:Really? by kin_korn_karn · · Score: 2, Funny

      Spock! Is! That! You?!?!?

      "A joke.. is a story with a humorous climax?"

    9. Re:Really? by calethix · · Score: 1

      True, however I think the point he was trying to make is that even though you may have Windows and Linux installed on your PC, they don't run at the same time. i.e. you can't have Apache serving web pages under Linux while you play minesweeper in Windows.

    10. Re:Really? by Anonymous Coward · · Score: 0

      With virtual machines, yes you can. Forget Q3 for now though.

    11. Re:Really? by patter · · Score: 1

      like Emacs and Mozilla are operating systems. Does Emacs or Mozilla control low-level I/O or memory management ? Do they provide process scheduling ? No ! Then things like these are not OSs in the traditional sense.

      I think most of us were joking in saying that Emacs is an OS.. the reason people may get confused in Emac's case is it's as big as a bloody os used to be (30 Meg?). :).

      --
      -- If at first you do succeed, try to hide your astonishment. -- Harry F. Banks
    12. Re:Really? by stephanruby · · Score: 1
      What about development platforms like .NET? These unifeid environments aim to resolve many programming languages, and resources in a unified bundle.

      Yes, both .Net and the Java VM would qualify. It's no coincidence that many of the people, who have worked on .Net and Java, are some of the same people who brought us several iterations of SmallTalk.

    13. Re:Really? by Minna+Kirai · · Score: 1

      Thing is, a close look a the term "Operating System" shows that it is maddeningly poorly defined.

      I mean, there's almost no semantic content provided. "A system that is operating". Could be almost anything, as long as it runs.

      Computer Science hasn't been around long enough for these "traditional meanings" to acquire much historical force.

      There are two definitions we could use for "Computer Operating System": "the thing that runs ontop of the electronic hardware" or "the thing that runs beneath the software programs"

      In the past, computers were weaker and could hardly contain a single operating system and one or two programs, so those two definitions were essentially equivalent. Today, we have more freedom to run convoluted arrangements of software, so those definitions have diverged. The question then arises: "Which definition is more useful?"

      I prefer the latter ("under the software"), although the bulk of "OS research" in the past 30 years has favored the former. The software-view is from the perspective of the user of an OS, not it's creator, and thus has more utility for more people.

      Do they provide process scheduling ?

      The marketplace has seen many successful products labelled as Operating Systems which provided no process scheduling. Yet I can think of a few modern application programs which do provide it.

      Does Emacs or Mozilla control low-level I/O or memory management ?

      Both emacs and mozilla can run programs on top of them (Written in either elisp or javascript). They provide memory management to those programs. And they control their low-level I/O. You might be biased and think that "low-level" necessarily means "on the metal", but that doesn't have to be the case. It might just be "relatively low", from the point-of-view of the application program.

      Look at it this way: Is MS-DOS an "Operating System"? Most people agree it is- why, it's even there in the name. Take a program like "Leisure Suit Larry"- it was written for MS-DOS, and needs an Operating System to work.

      But I can run DOSemu on top of Linux, and then run Larry ontop of that. You can't claim Larry is running without an OS, so DOSemu must be viewed as providing it's OS (either by itself, or in combination with Linux, however you prefer).
      From it's perspective, DOSemu is the operating system. Everything below that (Linux) is the "hardware".

      Then suppose I also run Emacs on Linux, and then run Tetris on Emacs. The Tetris/Emacs/Linux block diagram is exactly the same as for Larray/DOSemu/Linux, so the argument for calling Emacs (or any sufficiently expandable software) an Operating System is quite strong.

      (And besides! You don't have real "hardware" at all! Those wires and chips are all emulated, running on top of The Matrix)

    14. Re:Really? by mjpolanco · · Score: 1

      You are not actually making an insteresting point. Bottom line, every programming language boils down to machine code. PLs are actually methods of expressiveness for the developer, somewhat like brushes on a canvas. Furthermore, you are displaying a narrow mindset in performing an analysis based on a single machine. Hello? We are in the network computing age. You ought consider, "What is the meaning of OSs and PLs in a network environment?" What you will find is that programming languages, debuggers, and operating systems are merging into single frameworks to support distributed network components. We consider this a 'web services' conversation today, and that is only because we lack the maturity to 'get' that the complexity of what we are tyring to accomplish today requires a completely different level of abstraction.

    15. Re:Really? by OeLeWaPpErKe · · Score: 1

      Funny you should mention that, as both Mozilla and Emacs have both I/O, memory management and process scheduling.

      -> if you think a little bit about this, both have been ported, and thus need at least a wrapper around the os-specific functions. But linux & windows are quite different in the I/O department, so basically you write an abstraction layer that does part of the work on windows.

      -> as for memory management, every programming language has it's own form of memory management, so both Elisp, XUL and javascript have it (some simply copy other's routines, generally the C library, but they still have a wrapper for it, but the C library only has alloc() and free() and the programming language generally has to call these, and this is part of the memory management) (btw yes, I know some languages (C comes to mind) force you to do everything yourself).

      -> as for process scheduling, both have an event system, which fullfills the exact same role as a scheduler. Both activate pieces on code when an event occurs (wether that event is a timer, or a mouseclick) (and yes, both linux and windows activate an application if it gets a keypress or mouse click) (generally application schedulers are cooperative instead of pre-emptive, except in multithreaded applications)

      Any other questions ? ;-)

  12. Add the Hardware component ... by Anonymous Coward · · Score: 0

    And you have a Lisp Machine.

    All mathematically the same!

    Hmmmmm.

    1. Re:Add the Hardware component ... by Anonymous Coward · · Score: 0

      Or even a Turing Machine...

      But as for a "multiuser PL" - sounds like a recipe for disaster (conversely, do I want to check out my disk space in order to save to it?)

  13. Amusing... by j_kenpo · · Score: 1

    This is funny. This exact thing appeared on OSNews earlier this week... and was promptly followed by an unrelated article entitled "Future of Operating Systems: Simplicity". So which is it, simplicity or programming?

    1. Re:Amusing... by __past__ · · Score: 1

      lilo: Booting Logo...

    2. Re:Amusing... by Mac+Degger · · Score: 1

      Now /that's/ funny :) Thanks for brightening up my night...god, the turtle-shaped memories :)

      --
      -- Waht? Tehr's a preveiw buottn?
  14. Well, duh. by AsOldAsFortran · · Score: 1

    Bill Gates and company figured this out when Java was released. This article is much more interesting that that simple observation, though.

  15. C64 by dardem · · Score: 2, Funny

    Glad I didn't throw out my C64!

    --

    "Ceilean Súil an ní ná feiceann..."
  16. what I want by kin_korn_karn · · Score: 1

    I want an OS that will write apps for me. Until then I don't think there will be any more than incremental improvements to any software.

    1. Re:what I want by Xiarcel · · Score: 2, Informative

      Have you seen The Tunes Project?. It sound like what you claim to want, even if it's still a work in progress...

    2. Re:what I want by ites · · Score: 1

      So what you want (if the article is correct) is a language that will write apps for you. My company makes such a thing - an open source tool called GSL. There is an old version available online and a newer version here.
      Email me if you need help. And you will.
      Also, a PDF on code generation that may enlighten.

      --
      Sig for sale or rent. One previous user. Inquire within.
    3. Re:what I want by JohnFluxx · · Score: 1

      The pdf says "All aplications have repitive code"

      Isn't that why we have functions, libraries etc.

    4. Re:what I want by kin_korn_karn · · Score: 1

      No, what I want to see is an OS that will take an English (or language of choice) description of an application and construct that application on the fly. If you want a lightweight text editor, it'll create vi or notepad. If you want a full-featured word processor, it'll create Word or Writer. If you want to play an audio file, the audio hardware driver will handle the D/A conversion and playback, but you can fully define the interface - in plain english, not a Winamp/XMMS style skin.

      Computers have taken a computer-style interface about as far as it can go, now they need to start working like humans do.

    5. Re:what I want by Anonymous Coward · · Score: 0

      I want an OS that helps me fundamentally in writing correct software.

    6. Re:what I want by koali · · Score: 1

      Use Google. Type in the description of your program and you are set :)

      The network is the programmer :-b

    7. Re:what I want by jbolden · · Score: 1

      Well you might want to look at UML tools that generate code based on detailed descriptions. Rational Rose for example will do this.

      I'd say this though, be careful what you wish for you might just get it. My guess is that once you see automatic code generation you'll like the old way better.

    8. Re:what I want by Mac+Degger · · Score: 1

      Nah, you'll never get there: you can't bribe/threaten/beat or otherwise "enthuse" a computer to do all that. When the moment has come that we can coerce our machines to do work, then that'll happen; not before.

      --
      -- Waht? Tehr's a preveiw buottn?
  17. Behind the times? by Mordant · · Score: 3, Informative

    I guess Mr. Flat (what a name!) hasn't ever heard of the LISP Machine..

    1. Re:Behind the times? by Anonymous Coward · · Score: 0

      Mr. Flatt is a programming language expert and
      if you would look up his credentials you would
      find that he is certainly familiar with the
      existence of the LISP Machine.

    2. Re:Behind the times? by Anonymous Coward · · Score: 0

      I was at LL2. Dan Weinreb was in the front row. I was across the aisle from Dave Moon. I do not recall whether Greenblatt was there. These guys all know each other. Don't be silly.

  18. great... by jpsst34 · · Score: 1

    Programming Languages become one and the same as Operating Systems. Then Microsoft will come out with "FrontPane," the WYSIWYG OS editor that allows everybody and their brother to create shitty OS interfaces inside of an editor, while writing autrocious code "behing the scenes."

    Shittier than Luna, that is...

    --
    How are you going to keep them down on the farm once they've seen Karl Hungus?
    1. Re:great... by Anonymous Coward · · Score: 0

      please offer up something more interesting than the generic 'i'm a monkey that hates microsoft troll'.

  19. Chicken Before the Egg? by Anonymous Coward · · Score: 0

    Historicaly, which come first ? Operating system or PL ?

    1. Re:Chicken Before the Egg? by Anonymous Coward · · Score: 0

      Programming languages, or at least machine code as a programming language, though not many people could program a computer that way.

  20. I hate to be a killjoy... by Anonymous Coward · · Score: 0

    But this idea has been around a long time. Remember the plethora of 8-bit computers back in the 80's that "booted" to BASIC?

    Can you say C-64 redux?

  21. And all this time by pete-classic · · Score: 3, Funny

    I though web browsers and OSes were the same thing.

    -Peter

    1. Re:And all this time by esarjeant · · Score: 1

      Funny -- I thought web browsers and the Internet were the same thing.

      --

      Eric Sarjeant
      eric[@]sarjeant.com

    2. Re:And all this time by Anonymous Coward · · Score: 0

      Funny, I thought your face and my ass were the same thing??!

    3. Re:And all this time by IcEMaN252 · · Score: 1

      Only when an office suite is a programming language too!

      --
      CitrusTV (http://www.citrustv.net): the Nation's Oldest & Largest Entirely Student-Run Television Station
    4. Re:And all this time by Corporate+Troll · · Score: 1

      VBA... *sigh*

  22. Bah by p3d0 · · Score: 3, Insightful
    That's like saying doctors and scalpels are really the same thing because they both perform surgeries.

    OSes and programming languages have some superficial features in common, but they are totally different concepts. This is so manifestly obvious that I'm not even sure how to argue the point.

    However, Mr. Flat's suggestion that languages need better isolation capabilities is a good one. It all goes back to Fred Brooks' point that one in ten programmers is a superstar. I think isolation facilities in a programming language allow the superstar to set the rules that the other nine programmers must follow, making the system more coherent by the guidance of one mind.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    1. Re:Bah by Kynde · · Score: 1

      OSes and programming languages have some superficial features in common, but they are totally different concepts. This is so manifestly obvious that I'm not even sure how to argue the point.

      Your lack of ability to argue it kinda shows how you were also unable to see the similarities.

      Naturally they're not the same thing, but they have a lot more things in common than "superficial features".

      The interface that an OS offers is exactly the same as with languages, i.e. system calls. Granted that there's no lexical syntax involved, but there's a shit load of rules how you must use them, just any other API out there.

      There'd be a ton more to say, about PL intermediate representations and functional binary programs within an os etc. But I'll just say that try remember what Turing et al taught us of computing theory. Where the HW is a turing machine so is an OS.

      And I also disagree with the mythical man-month remark. The other nine should have their license to code revoked.

      --
      1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
    2. Re:Bah by p3d0 · · Score: 1
      Your lack of ability to argue it kinda shows how you were also unable to see the similarities.
      Granted. However, I don't care how many similarities you find between the surgeon and the scalpel. Even if they are both made of matter, and both cut through skin, and whatever, they are still totally different.
      The interface that an OS offers is exactly the same as with languages, i.e. system calls.
      If you think the primary purpose of a language is to give access to system calls, then we have nothing more to discuss. I don't have the energy or inclination to argue otherwise.
      And I also disagree with the mythical man-month remark. The other nine should have their license to code revoked.
      The one superstar simply can't type quickly enough to get products to market in time to beat the competition. You can't build houses very quickly if you insist on hiring nothing but architects.
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    3. Re:Bah by sgml4kids · · Score: 1

      They are all the same thing functionally. This was lecture #1 of my 2nd year computer organization class 12 years ago: The capabilities of hardware and software are interchangeable. Functions of an OS or a PL could be built into hardware and hardware functionality (except device control) can be built into the OS or PL.

      I wonder why this concept is new and controversial to so many slashdot readers...

    4. Re:Bah by Anonymous Coward · · Score: 0

      He has a good point though. Some programming languages come with a runtime so elaborate that it rivals most OSes.

    5. Re:Bah by jovlinger · · Score: 1

      I went to ll1, but was still in seattle for oopsla during ll2. However, given the dynamic of ll1, presenters are encouraged to "stir the pot", to make bolder claims than they normally would to get people from the trenches and the ivory tower talking to each other.

      Last year, it was basically scheme (PLT people) against perl (Simon + Dan) hackers. This year, I think the organisers went for controversial topics that weren't so personal.

    6. Re:Bah by p3d0 · · Score: 1
      Ok, now we're finally getting into some concrete arguments that I can rebut.

      Your comment is apparently based on the notion that the most important aspect of a programming language is what it can make the computer do. I think that notion is the single biggest mistake that programmers make today.

      A programming language is an expressive medium for algorithms (that happens to be sufficiently unambiguous to be executed by a machine), while an operating system is a collection of software services. Programming languages come with libraries; and if you squint really hard, you could see those as part of the language; and since libraries do much the same as OSes, you could conclude that languages are the same as OSes. However, to me, this similarity is incidental, and the difference between a language and an OS is everything.

      To continue the surgeon-and-scalpel analogy: you wouldn't compare scalpels based on their experience and expertise. Similarly, you don't rely on your OS to be an elegant expressive medium for your ideas. That's just not its job.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    7. Re:Bah by Anonymous Coward · · Score: 0

      But how do you characterize things like Java and the .Net framework? The runtimes which are intimately bound-up with the languages they support have much of the functionality of full-fledged OSes. I have to agree with you, there is a difference between the runtime and the formal language definition, but the point of Mr. Flat's argument is that the feature sets of OSes and languages are merging. And this is undeniably true for these two most important and most recent entries isn't it?

      Furthermore, isn't it possible to imagine a time when you could have a CPU boot straight up into a VM similar to one of these?

    8. Re:Bah by p3d0 · · Score: 1

      Java+JVM is both a language and an OS, in that sense. There's a very clean, unambiguous separation: the JVM is the OS, and Java is the language.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    9. Re:Bah by sjames · · Score: 1

      And I also disagree with the mythical man-month remark. The other nine should have their license to code revoked

      That's a waste of manpower. There are those who should be run out on rails, but most of the other 9 Brooks refers to are quite competant, just not superstars. They can be quite important in supporting roles during a project. A good architect can easily produce more design than one person can code. Those other 9, following that spec can make the difference.

  23. 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.

    1. Re:FORTH by Anonymous Coward · · Score: 0

      Look at colorForth for a modern conception of FORTH; from the original creator of FORTH, Chuck Moore.

    2. Re:FORTH by TerryAtWork · · Score: 1

      You beat me to it.

      I was going to say 'And FORTH people have known this for how many years?'

      I remember writing a VM with Kernel-like memory paging in Miller FORTH on a TRS 80 mdl 1 back in the old days.

      FORTH is the greatest, if you can handle it.

      --
      It's Christmas everyday with BitTorrent.
    3. Re:FORTH by farrellj · · Score: 1

      Forth has always been both OS and Programming Language...and with some Processors, is the microcode too!

      Forth is hard, very hard, but like assembly can be very, very fast. And is excellent for embedded systems....I mean, it was originally designed to control radio telescopes!

      ttyl
      Farrell

      --
      CAN-CON 2019 - Ottawa's only book oriented Science Fiction Convention! October 18-20, Sheraton Hotel, Ottawa, Canada h
    4. Re:FORTH by Anonymous Coward · · Score: 0
      I once used a machine (a Siemens K11) with an OS written in Forth. You could crash it by typing
      1 0 /
      Bad times...

      -j
    5. Re:FORTH by TerryAtWork · · Score: 1

      I forgot to mention - someone should write a *nix in forth and also most video cards have FORTH driving their chips.

      --
      It's Christmas everyday with BitTorrent.
    6. Re:FORTH by CyberKnet · · Score: 1

      do you have any articles/whitepapers to back up that forth driving video cards claim? I'd be interested to see them...

      --
      Video meliora proboque deteriora sequor - Ovidius
    7. Re:FORTH by smell_the_glove · · Score: 1
      Don't get me wrong -- I think Forth is beautiful, surely one of the most elegant conceptions in the history of programming languages. HOWEVER, to argue that Forth is "incredibly fast" is simply false. It's only incredibly fast if you write a lot of your words in assembly language. Otherwise, the overhead from the threaded interpreter totally kills speed. In addition, a stack-based computational model as opposed to a register-based one limits the possibilities for instruction-level parallelism, so more modern processors don't help you nearly as much as they would with (say) C. Forth gets some speed back by being 100% untyped (no run-time or compile-time type checking), but this is a very dubious "feature" when the rest of the computing world is moving towards more secure environments.


      I've done some informal tests using Gforth, and I typically find that Forth is no better than 1/5 of the speed of C with that implementation. I've been informed that other Forths (e.g. Bigforth) can do better, and some Forths can even dethread the code, which might in principle put them in the same ballpark as C. This is not common practice, though, and makes the implementation quite a lot more complicated.


      That said, Forth code *is* very compact, and Forth's niche has consequently always been in embedded systems. In such a system, the notion of the programming language being the same as the OS also makes more sense than it does in a more traditional computing environment.

    8. Re:FORTH by Anonymous Coward · · Score: 0

      Forths that care about speed on contemporary processors compile to native code, some include macros to inline code for additional speed. If the implementer spent time on speed, the Forth in question will be no slower than C, with a compiler complexity much lower than C.

      Typing is not for security, but because it is thought by some that typing can eliminate bugs of a certain kind. Typed forths are very much possible, but perhaps no Forth programmer has thought it necessary, or thought was not worth the effort or complexity.

      Finally let me say that concept of a Forth OS very much appeals to me. I see no reason for Forth to be restricted primarily to embedded systems.

    9. Re:FORTH by Wdomburg · · Score: 1

      >Look at colorForth [colorforth.com] for a modern conception of FORTH; from the
      >original creator of FORTH, Chuck Moore.

      Great, a programming language that 8% of the male population can't use. Primo idea. Really.

      Matt

    10. Re:FORTH by jbolden · · Score: 1

      What is hard about forth? RPN isn't all that tricky. Stack manipulation doesn't take too long to get a handle on (and for anything really compicated you can always define variables). As languages go it strikes me as pretty streight forward. And issues regardling large libaries are the same as with any library.

    11. Re:FORTH by jbolden · · Score: 2, Interesting

      Forth gets some speed back by being 100% untyped (no run-time or compile-time type checking), but this is a very dubious "feature" when the rest of the computing world is moving towards more secure environments.

      I don't think the typing battle is anywhere near over. After C/C++ and Jave the 3rd most popular language on /. is Perl which is very weakly typed. There was recently a thread on Microsoft X# which is true would mean Microsoft is bring out a weakly typed language. SQL is weakly typed and has completely taken over the more strongly typed languages for database access....

    12. Re:FORTH by Anonymous Coward · · Score: 0

      Of course not. Did you forget that this is Slashdot.

    13. Re:FORTH by jcast · · Score: 1

      Yeah, but when you say ``weak typing'' you mean dynamic typing, right? I mean we're not talking about Classic C-style ``here's an int, treat it like a pointer to a string'' weak typing. (I.e., ``here's an open invitation to core dumps.)

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    14. Re:FORTH by jbolden · · Score: 1

      Well you don't tend to get core dumps on genuinely weakly typed languages because the code checks for type mismatches and variables carry around information about their type; to use OO language weakly typed languages are highly polymorphic. And what that means is that the sort of behavior that caused core dumps in C becomes just a simple error in weakly typed languages. If you try and dereference an int you get a null returned and a message to stderr; not a memory violation.

      And what that means is that programers get the flexability of weak typing without the dangers.

    15. Re:FORTH by jcast · · Score: 1
      What you call a ``genuinely weakly typed language'' is really a strongly (but dynamically) typed language --- like Lisp.

      So in other words, you just agreed with me.

      However, you were replying to this:

      Forth gets some speed back by being 100% untyped (no run-time or compile-time type checking), but this is a very dubious "feature" when the rest of the computing world is moving towards more secure environments.

      Which means, if it's true, that the kind of checking and safety you're talking about is simply not happening.
      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    16. Re:FORTH by jbolden · · Score: 1

      OK I see the problem I just reread your original response.

      Well the problem is that there were two discussions going on at the same time:

      a) weak typing vs. strong typing
      and
      b) issues specific to FORTH

      Forth is a weird case because it can easily go either way. On the main environment / OS typing "1 0 /" will cause a system crash. So you run code in sub environments and these can respond to somthing like:

      "23" 72 +
      any number of ways ("2372", 95, error, etc..) depending on how much overhead you want. So in terms of Forth the real answer is "it depends"; which doesn't allow for much discussion. Certainly where Forth is used the most (hardware) the typing is weak in the classic sense so:
      "23" 72 + = x3233 + x0048 = x327B =
      "2{" and at the same time (int) 12923.
      OTOH many Forths might even go as far as lazy evaluation so

      "23" 72 + is kept as an expression so that:
      "23" 72 + (round) = 95
      "23" 72 + " " = "2372 "

      Now with respect to the specific thread what I was addressing was that it was quite possible to write very stable Forth; you just simply used "dynamic strong typing" (as you called it) or lazy evaluation.... In other words "weak" (used in the typical sense) typing does not lead to insecure programming its "weak" typing in your sense which does.

      In my response to you I was really addressing the safety of "strongly dynamically typed". So in summary (since the above is kind of confusing):

      I agree there are many systems of typing:

      a) weak (new sense)
      b) strong
      c) strong dynamic
      d) strong lazy dynamic

      I agree that (a) leads to insecure programming. I agree that most languages are moving away from (a). OTOH I think that (c) & (d) are often confused with (a) and that (c) and (d) are becoming more popular not less popular with time.

      Forth the language supports all 4 modes and for a programmer it is usually pretty obvious which one they want.

    17. Re:FORTH by jcast · · Score: 1

      So FORTH has no inherent type checks, but you can layer on any system you want? That sounds eminently reasonable.

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    18. Re:FORTH by jbolden · · Score: 1

      So FORTH has no inherent type checks, but you can layer on any system you want?

      Pretty much, but I don't like your phrasing. You really can't talk about Forth outside of an environment; its much more like Java than C in that respect.

      Let me rephrase. The language definition for FORTH takes no position on type checks. Environments can have any kind of type checking they want; and further applications can spawn subenvironments which have different forms of type checking than the main environment.

      We hadn't really talked about that; but it is very useful. A not uncommon situation is a giant program and a few routines that have to be super super fast. I can keep the dynamic types for most of the program (to eliminate bugs) while giving a few routines the right to execute at assembly language speeds (which means no checks of any nature, up to what the OS will allow). That gets you the development speed of a Perl with the performance better than C.

      Incidentally this model is probably how your printer works (assuming its postscript). The high level postscript environment is more dynamic than most any environment you'd see anywhere else. For example it has a very abstract stack that supports all sorts of wild types (variable names containing a function some of whose routines are fully compiled and others which need to interpreted at execution time). The low level forth which is slapping dots on the page only supports a very small number of types, will crash in a second if anything is out of sorts and runs no slower than if it were handcoded assembly. The two environments are passing messages betewen one another all the time.

    19. Re:FORTH by jcast · · Score: 1

      So, the language FORTH has no type checks, but in oreder to use FORTH you have to have a (current) environment (which may be different for different parts of the program) and that environment specifies (I'm assuming among other thins) what kind of typing is used. Is that correct?

      --
      There are reasons why democracy does not work nearly as well as capitalism.
      -- David D. Friedman
    20. Re:FORTH by jbolden · · Score: 1

      Yep, now you got it.

  24. That's why MS is so afraid of Java by rmayes100 · · Score: 3, Insightful

    Microsoft is always pretty quick to recognize new products that could threaten windows dominance. In some ways platform independent languages (most scripting languages, Smalltalk, Java) already implement their own OS on top of the OS they're already running on.

    1. Re:That's why MS is so afraid of Java by 3am · · Score: 1

      There is already a perfectly good term for what Java does, and that is "virtual machine". It's pretty far from an operating system, unless you consider a sophisticated script interpreter that manipulates an object model built around calls to the OS's API's an operating system.

      I mean, I'm not writing an MP3 player if I create a new skin for WinAmp...

      --

      A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
  25. Why, yes, this was what I was missing all along! by NetRanger · · Score: 1, Funny

    This astute piece of observation has made me become far more transcendental. Now I realize that we're all just connected.

    Yet I shall take this wisdom even further: the digital universe is based upon everything being opposite, where you have everything and nothing.

    That's deep, man.

    --
    -- We live in a world where lemonade is artificial and soap has real lemon.
  26. don't think so by jacquesm · · Score: 3, Insightful
    This is *not* going to happen.
    For one the wall between OS space and user space is there for a good reason (security) and second different people like to use different languages, and you'll lose a good part of your developers by forcing them into the straightjacket of a single language for a certain os.


    it's been tried before (smalltalk, java) and failed, for these and a whole bunch of other reasons.

    1. Re:don't think so by Anonymous Coward · · Score: 0

      It IS already happening. There already exists a raw port of Squeak (Smalltalk-80 derivative) that runs on raw hardware, with no other "operating system". Ditto for Oberon.

      As for the straitjacket, why do you believe this would force you to use one language? What's to stop someone from implimenting a C compiler in Smalltalk or Java? Or any other language for that matter.

    2. Re:don't think so by jacquesm · · Score: 1
      yep, and there is a forth running on the novix and sun has some experimental java chip. Some of that stuff is 20 years old. (The novix powers the cruise missile if I'm not mistaken).


      re-implementing all kinds of languages in other languages usually comes at a pretty high performance hit (there always is some cross compiler for machines like that but everybody that is serious about them programs them native).


      Even the java virtual machine is a forth engine at heart.


      An os will always be written in some language or other, but if you think you have a virus / security issue now wait until what happens when you blur the lines further.


      Note that NONE of these hybrids has ever been used in a hostile environment like the internet, unless they were running on some other os.

    3. Re:don't think so by russellh · · Score: 1
      it's been tried before (smalltalk, java) and failed, for these and a whole bunch of other reasons.

      They "failed" because they were ahead of their time. Babbage tried to build a computer (the analytic engine) and failed. The tools and materials he needed did not exist. Imagine the frustration.

      --
      must... stay... awake...
  27. Isolation by Gimpin · · Score: 1

    ...chroot should do the job for all you evil buffer-overflow script kiddies out there

    --
    "Simon Says, Fuck You" - George Carlin
  28. Idealism by PourYourselfSomeTea · · Score: 3, Insightful

    Actually you see this reflected in modern systems designs such as Cocoa/OC or Java. They are in themselves virtualized operating systems. Adding classes in these adds reusable functionality to the overall system, much like adding functions in Lisp adds functionality to the system.

    1. Re:Idealism by Anonymous Coward · · Score: 0

      And Microsoft's .NET which is essentially an abstraction of all the operating system services which can host multiple languages. Gee, just like a "real" operating system... I call these systems "component platforms". They effectively virtualize the operating system so that the applications can run on multiple platforms (yes, even applies to .NET, which is actively being ported - the non-gui portions - to both BSD and linux).

  29. This is especially true of the VM languages by UpLateDrinkingCoffee · · Score: 3, Interesting

    Like java... I think a likely evolution will be towards a single VM that runs all your programs instead of the one VM per app generally used now. More and more of the process switching and memory management will be built into the VM's probably to the point one day where java VM's become operating systems in their own right and only need the underlying OS for drivers to talk to the hardware.

    1. Re:This is especially true of the VM languages by BigJimSlade · · Score: 1

      I think a likely evolution will be towards a single VM that runs all your programs instead of the one VM per app generally used now

      FYI, Microsoft is doing this with .NET, so get ready for it. It'll be interesting to see how much acceptance the "one VM to rule them all" gets.

    2. Re:This is especially true of the VM languages by enjo13 · · Score: 1


      Java, technically,has had the capibility to serve as the runtime for many different languages since its inception. There are compilers for several different languages that all compile to "Java the Platform" and run just fine on it.

      --
      Turn s60 photos into awesome videos with mScrapbook for all S60 3rd edition phones!
    3. Re:This is especially true of the VM languages by sahala · · Score: 1
      Java, technically,has had the capibility to serve as the runtime for many different languages since its inception. There are compilers for several different languages that all compile to "Java the Platform" and run just fine on it.

      This is actually a very common assignment for college CS classes (Programming Languages or some theory class). Basically kids come up with a new language spec and writing a compiler that compiles to JVM bytecode. Pretty cool way to learn all that stuff.

      Of course I have no idea what's going on in college courses now. Hopefully something harder.

  30. The 2008 Operating System Review by wackybrit · · Score: 3, Funny
    In the future, when all programming languages will become operating systems, there'll be a lot of competition. Choose the operating system that works the best for you:

    C OS - Every single task you want to achieve has to be split into fifty bite size actions.

    COBOL OS - The literati's dream OS! No longer must you click and drag, but instead type bizarrely syntaxed English to do your work! PROGRAM OPEN CALCULATOR AS NEW PROGRAM

    Perl OS - An open source OS worked on by a bunch of extremely crazy (but clever) bearded anoraks. You can do EVERYTHING in one click or one line of code. Oh, face it, it's just the future of Linux.

    PHP OS - This OS was originally the shell for Perl OS, but some wimps who couldn't work out the Perl way of doing things decided to turn it into their own 'paint by numbers' OS. Unfortunately you can only access the Internet with PHP OS, no off-line facilities are available.

    C++ OS - A simple upgrade to C OS. Still just as complicated, but the ++ makes it cooler to use and adds a host of useless features that are non standard across all implementations. Besides, C OS is for old fogeys.

    Python OS - Supposedly this exists, but since no-one cares, we won't go into it.

    Ruby OS - EVERYTHING is an object. Want to open your calculator app? calculator.open; please. Need to enter some numbers? calculator.buttons[8].press; It's long, tedious, but at least it makes logical sense.

    BASIC OS - Joe six pack's answer to operating systems. This is Microsoft XP in the future. Anything can be done with point and click, but it's slow, crashes a lot, and is totally lame. Oh, I'm already talking about XP here aren't I?

    1. Re:The 2008 Operating System Review by delta407 · · Score: 1
      C OS - Every single task you want to achieve has to be split into fifty bite size actions.
      I think you mean fifty DWORD-size instructions. ;-)

      COBOL OS ... but instead type bizarrely syntaxed English to do your work!
      Sounds like SQL OS...

      Perl OS ... You can do EVERYTHING in one click or one line of code. Oh, face it, it's just the future of Linux.
      Ditto with, say, bash. Given bash, sed, awk, and netcat one can do pretty much anything at the prompt. Oh, and bash is already the present of Linux.

      PHP OS ... no off-line facilities are available.
      I've been using PHP in command-line mode for quite some time; I don't know what you're talking about.

      C++ OS - A simple upgrade to C OS. Still just as complicated, but the ++ makes it cooler to use and adds a host of useless features that are non standard across all implementations.
      True that!

      Python OS - Supposedly this exists, but since no-one cares, we won't go into it.
      Python is a serious language, though it has some 'features' I find irksome (whitespace as syntax element), it is nonetheless quite powerful and is actually used in the real world.
    2. Re:The 2008 Operating System Review by mewsenews · · Score: 1

      C OS - Every single task you want to achieve has to be split into fifty bite size actions.

      Also known under the informal name "Unix"

    3. Re:The 2008 Operating System Review by iceburn · · Score: 1

      If Perl OS is the future of Linux, and nobody cares about Python OS, its time for me to throw away my computer and never look at one again. :)

      --
      A sphincter says what?
    4. Re:The 2008 Operating System Review by kin_korn_karn · · Score: 1

      I can't believe some people are taking this seriously. Why is it that people lose thier sense of humor when they're talking about OSes?

    5. Re:The 2008 Operating System Review by Anonymous Coward · · Score: 0
      I've been using PHP in command-line mode for quite some time; I don't know what you're talking about.
      This is true, you can use PHP on the command-line, however I never would. I'd just use Perl or Python.

      Also, I'd like to take a stand for PHP, it's not just a simple wrapper for Perl. I much prefer it for web stuff, you have to do so much more in Perl, I mean doing something in Perl instead of PHP isn't teriffically hard or anything, but there are just so many things that takes a few lines to do in Perl, but only one in PHP or sometimes NO lines. PHP is a language with a mission in life and Perl is the language for everything, but just because you can do something easily in Perl doesn't mean that it's the easiest way to do something.
    6. Re:The 2008 Operating System Review by Flambergius · · Score: 1

      Python OS - Supposedly this exists, but since no-one cares, we won't go into it.

      Nah.

      Python OS - Reliable, powerful and with intuitive GUI. However, nobody uses it because it comes with an spell- and grammar-checker that forces you to write correct English in clear and mild-mannered style.

      --Flam

      --
      Computers are useless. They can only give you answers - Pablo Picasso
  31. Funny he did not mention .NET by watzinaneihm · · Score: 3, Interesting

    If any programming language/framework has a chance it will become an OS it is .NET.
    And Java is half an OS already, it has its own threading moodel, has memory management etc. Though frankly I believe this paradigm of PLs becoming OSes will be first be seen on handhelds etc. Note that many Cellphones run Java etc. (though now sybian is more commoon).

    --
    .ACMD setaloiv siht gnidaeR
    1. Re:Funny he did not mention .NET by iggymanz · · Score: 1

      or at least Microsoft's marketing stooges have everyone confused now about whether .net means an OS or a library or a language or a framework.....that's certainly one way of unifying OS & language.

    2. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 1, Insightful

      So coffee is also an OS?

      Java has many meaning. Platform, language, coffee, and anything people put at it.

      Don't screw up between the Java platform which has threading and other stuff (which the java language has the capability to use), the java language thread is just a way for the dev. to talk to the platform thread.

      Note, if anyone still confused, then here's the clearification:

      a language provides way to hook into platform.

      So, a language's thread is not the same as platform thread. They are a same name, but one is a syntax to use to get into the real one.

      Just like the word *pen* in the language:
      "give me a pen" is not the same as a real physical pen, but you can use the language, to get access to some physicall word (if there's a running system that listen to your word)

    3. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 0

      But the language thread is an abstraction of essentially the same concept as the OS thread (and may or may not use the latter for implementation).

    4. Re:Funny he did not mention .NET by Schnapple · · Score: 3, Insightful
      If any programming language/framework has a chance it will become an OS it is .NET.
      Which, if it turns out to be true, explains why Microsoft is not only doing .NET but why they went out of their way and hired Corel to port the CLI and C# compilers to FreeBSD, Mac OSX, and (apparently) Linux (the Rotor project). It's been theorized that in the grand scheme of things .NET is helping Microsoft prepare for the day in which Operating Systems are irrelevant or at least not the way they're done today. And of course the complete class libraries the .NET framework relies upon will only run on Windows, and even when/if the open source reimplementations of them ever catch up, they'll still (in theory) always run best on Windows, to say nothing of the Visual Studio .NET tool always running in Windows.

      Of course the other reason MS might be pushing .NET so much is the money they stand to make off of the hundreds of books they've written on the subject.

      Note that .NET is not a programming language (and I've already seen it used this way in this thread). .NET is a platform (the CLI is like the Java VM) and a framework (the class libraries) but it's not a language. C# is a .NET language, VB.NET is a .NET language, (language).NET is a language, but .NET isn't a language.

      Tip: If you ever ask someone what they're writing their app/web site in and they say ".NET" and can't say anything else (like C# or ASP.net) then they don't know what they're talking about (and I should know - I used to do it myself).

    5. Re:Funny he did not mention .NET by jgerman · · Score: 1

      He didn't mention a lot of things, no functional langauges at all (which completely ignores LISP machines). I'm thinking he's really not qualified to espouse an opinion on this subject, but the article is so badly written I can't finish it to find out.

      --
      I'm the big fish in the big pond bitch.
    6. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 0

      You touch a very good point. Shallow thought, I thought you were wrong. But thought again, I thought you had some good point, and maybe right. Then deep thought, I think you're wrong.

      A very interesting logic to examine:

      When a language like C or assembly use thread, you show 2 cases:
      1) Use the OS's thread, or platform thread, whatever.
      This shows that the language is not a platform, but it commands the platform to do things.

      2) If, it implemted thread itself, it's not a whole platform yet. You can argue *but it's part of a selfcontaine platform*. Ok, Russel paradox. However, whatever you say, it's still not a platform or even part of a platform, here's why:

      The language itself did not do anything a platform or OS does, that is executing multithreadedly. The code the language produced is a platform or subplatform, not the language. You see my point? The code that was produced, not the language.

      You don't install a language into a computer, you install what humman (so far) command by way of language.

      This is how Unix, Max, WindowsXP, and others was done. It was written by a language/languages. Then when compiled, then the produced code is the OS, or the platform. (same for java).

      You can argue, what if the code was interpreted, not compile? Well, same thing, the code you produced in c, basic, whatever, is the platform, not the c language itself.

      I think the what the guy really mean (I did not read the article), is the platform that run code produced by a language has start to replace the OS. The truth is: the OS start to be virtualized, interpreted, etc. The final implication is the same though. That is M$ would have less influence, because the virtualized OS creep into their current OS, so they want to control the new virtualized OS, instead of letting others control it. This is where the language make it even more confused.

      The language also has as much influence as the OS. If everyone write in Java, then compiled to byte code, then people would move to Linx over night, because it's so easy to use now (almost like Windows). The only part is that people don't write using a cross platform language. And the language itself is not good enough.

      I talked about that because I don't want people say *again, language is the OS*, no, they have equal influence, but not the same thing (unless you only see things has how much influence they are)

      Get back, Java is not good enough for Device drivers (if it is, and all device driver is written in java, then everyone will use linux). C was standard, but not to the graphics, thread and other level. There's stanrd on thread, network, etc, but not on ANSI C, it's on POSIX or whatever, which is different, and bad enough, not everyone embrace fully that standard, so that's why language does not produce code that completely make OS obsolete yet. Maybe the next one such as Java or C#, but I am not sure about that.

    7. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 0

      How in the hell does this get modded up? What are you people smoking? Do ANY of you know ANYTHING about computers? Typical slashdot ignorance. Don't you people ever check anything out? I was AT LL2, and every other audience comment centered around Lisp-style macros. At one point, somebody asked for a questions "that were not typical MIT Lisp" snide comments. For christ's sake check the mailing list at: http://www.ai.mit.edu/~gregs/ll1-discuss-archive-h tml/maillist.html

    8. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 0

      >Note that .NET is not a programming language
      >(and I've already seen it used this way in this
      >thread).
      Well, it's definitely confusing fitting .Net into the old categories of 'language', 'framework' and 'os'. But to take Java as an example, in common usage the Java API is considered to be part of the language, isn't it? The VM, certainly, is not part of the language. But a programming language is always two things - the syntactical/lexical grammar AND the supporting 'standard' library. The library is half of what gives a language its particular flavor and usefulness, and an extremely important reason for choosing a language (arguably much more important than syntax).

      So in this sense, it does make sense to discuss the .Net framework as a language: it contributes a core part of the language for many of the .Net languages.

    9. Re:Funny he did not mention .NET by senderista · · Score: 1

      Plus .NET supports "OS features" (application isolation, capability-based security) better than any of the languages he discusses. .NET (i.e. the CLR) really does provide something close to a "virtual OS". E.g., you have AppDomains, which are the analog of OS processes and provide application isolation, and have GetData/SetData methods which are the equivalent of environment variables in an OS process. And of course the CLR has its own threads (which don't necessarily map directly onto OS threads), and memory manager (really not essentially different from Java in this respect). The security model is capability-based all the way; a method and all its callers must have the appropriate permissions to perform any potentially dangerous operation.

      --
      "It amounts to the same thing whether one gets drunk alone or is a leader of nations." -- Jean-Paul Sartre
    10. Re:Funny he did not mention .NET by Anonymous Coward · · Score: 0

      .NET is not a language, it is not an OS, it is not a framework, it is not an API, it is not a business model, it is not a new religion, it's not Spiced Ham, it isn't sex, it isn't a philosophy, it isn't a science, it's not dark matter, it's not the missing link, it's not fluff, it's not the cure to AIDS.
      You can't believe in .NET, you can't taste it, feel it, smell it. .NET will not help your business, it won't make apple juice for you, it won't recover lost porno files. Attempting to hook up an improbability drive to it will only lead to tepid tea. .NET just is. If you attempt to seek .NET you will not find it, if you attempt to understand it you will only be confused.
      Only Bob and the Word Paperclip truly have experienced .NET, and they have been constantly reincarnated over the millenia of Windows to provide us with subtle guidance to .NET.

      Ohmmmmmmmmm....

  32. JavaOS by Greenisus · · Score: 1
    I'm still waiting for the day when someone makes hardware that runs Java bytecode as its assembly.

    Maybe it has already happened, but I haven't heard of it.

    1. Re:JavaOS by trailerparkcassanova · · Score: 2, Informative

      Ajile Systems JEMCore and there are others.

    2. Re:JavaOS by Anonymous Coward · · Score: 0

      There's no point, it would be slower than current implementations. JIT compilation onto fast register-based machines is where it's at.

  33. Offtopic? You bloody moderators. by Anonymous Coward · · Score: 0

    Yep. The bare truth!

  34. Sounds familiar by Amsterdam+Vallon · · Score: 1

    Plot: In the year 2003, the technologically-starved masses depend upon the United States government-manufactured item Microsoft Windows to exist and manage their day to day activities. But in the midst of an investigation, a hacker uncovers the chilling source of the product...

    Microsoft Basic is Microsoft Windows!
    *louder*
    Microsoft Basic is Microsoft Windows!
    *shouting at top of lungs*
    Microsoft Basic is Microsoft Windows!

    --

    Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
    1. Re:Sounds familiar by Yossarian2000 · · Score: 1

      Mmmmmm .... Solent Windows.

      --
      You're not allowed to rent here anymore!
    2. Re:Sounds familiar by Anonymous Coward · · Score: 0

      Mmmmmm .... Solent Windows

      Soylent Windows.

      And frankly, the joke would have been funnier if it had said Microsoft Windows ISN'T people!

  35. Re:SHORTEST AND LONGEST BOOKS EVER WRITTEN by Anonymous Coward · · Score: 0

    What are you talking about? The Slashodot crew any you only wish you guys were gay. Gay people are so much cooler. ;)

  36. It naturally follows. by ketamine-bp · · Score: 1

    When it was ENIAC, somebody wires. Then somebody even wiser put that 'wiring part' into solid-state, electronic controlled one. That's the 'machine code'.

    Then, it is the punch card era, and then somebody think it is better to write words other than bunches of 1 and 0's, hence, we have assembly language, and it comes with the operating system.

    After that, somebody thinks that writing assembly language is too cumblesome and too hard to learn for some people, for example, your workmate and me, then, higher-level languages like C and FORTRAN arrives, and it comes with the operating system, yet, machine-code level tools no longer comes with the majority of the machines.

    Then, when it is the year that most of the users isn't programmer, the programmer make the computer comes with programs that let you select task rather than instructions to do things, and results in 'shells' or 'command.com' (for win'ies.), it comes with the OS at that point, and programming tools are disappearing from the original package.

    When it was the year that too many computer illiteracies want to learn and use computer, yet some wise men write programs that allow a user to use a mouse to click on somewhere to do some job, and hence it comes to the GUI era, and it is shipped with computer, computer no longer comes with command-line tools.

    Now that the people are way too lazy to do the job even with assistance with the computer, they actually want the comptuer to do it for themselves, some eventually somebody wise enough will develop a system that allows the user to key-in the objective and the computer will automagically do it.

    Don't see the analogy?

    Every operating system is just some sort of translator that translate your use of language (e.g. BASH command) into machine readable thing. however, note that the above sequence need not be step-by-step completed, i.e. it may go something like this:
    User command --> C program --> Machine code instruction.

    In general, though:

    MACHINE CODE <-- computer level
    ASSEMBLY LANGUAGE <-- (e.g. AT&T assembly)
    STRUCTURAL PROCEDURAL LANGUAGE (e.g. Pascal)
    SCRIPTING LANGUAGE (e.g. PERL)
    COMMAND-TYPE LANGUAGE (e.g. SQL)
    POINT AND CLICK (e.g. X, MacOS, etc.)
    DESCRIPTIVE (Natural human language, e.g. English)

    Correct me if I'm wrong, follow-ups welcome.

  37. For fuck sakes by cp5i6 · · Score: 0

    Read the previous message people.. LISP/EMACS has been mentioned over 300 times.
    How can you NOT see that someone else already posted some shit already..

    This is supposed to be a fucken discussion not "blalblab LISP.. blalbla EMACS"

    talk about USEFUL things... I dunno like if an OS was built around perl and discuss how easy it would be to setup yer various unix jobs. Or if every form of data on your computer was saved to XML instead of all the propietary file formats nowadays.

    or if every program on yer computer was all written in one language including the OS itself.. I dunno wahtever...
    but make it a fucken interesting discussion instead of Lisp or EMACs does this.
    if you wish to talk about LISP or EMACS... whip out the technical docs and fucken tell me all the system hooks that LISP or EMACS uses in it's VMs to qualify it as an OS.

    1. Re:For fuck sakes by delta407 · · Score: 1
      I dunno like if an OS was built around perl and discuss how easy it would be to setup yer various unix jobs.
      Unix systems already have a quite programmable interface. See the Advanced Bash Scripting Guide if you don't believe me.
      Or if every form of data on your computer was saved to XML instead of all the propietary file formats nowadays.
      Too bad it'd be really, really slow. There's a reason database servers use binary formats -- you don't have to do any string processing to do a lookup on a table given an integer primary key. And, in most cases, you know exactly how long each row is, so you can go to an arbitrary row by performing an fseek(row * row_len).

      If you're not bent on the rather dumb idea of eliminating binary formats, you sould check out what some other people have already thought of. Check out the future of ReiserFS and the "filesystem as database" concept.
  38. 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?

  39. Functional relations by leandrod · · Score: 1

    That is why my dream is a funcional, relational OS -- something built around a Scheme or Lisp D, as in Date and Darwen's The Third Manifesto.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:Functional relations by iggymanz · · Score: 1

      Have you looked at SmallTalk?

    2. Re:Functional relations by jasonditz · · Score: 1

      Nevermind that, I want smalltalkOS

    3. Re:Functional relations by leandrod · · Score: 1
      > SmallTalk?

      It isn't neither functional nor relational.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    4. Re:Functional relations by leandrod · · Score: 1
      > I want smalltalkOS

      That should be possible by running GNU SmallTalk as a GNU Hurd server.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    5. Re:Functional relations by jasonditz · · Score: 1
      That should be possible by running GNU SmallTalk as a GNU Hurd server.

      Great, so I should be able to do that some time around 2015? :)

      Seriously though, I was thinking more along the lines of a true OO from the ground up OS (maybe resembling squeak)

    6. Re:Functional relations by axxackall · · Score: 1

      It would be much simpler to write Smalltalk on Scheme or Lisp, than Lisp (or even Scheme) on Smalltalk.

      --

      Less is more !
    7. Re:Functional relations by leandrod · · Score: 1
      > I should be able to do that some time around 2015?

      The GNU Hurd is already running and available for developers. What is missing is some ease of use and scalability features necessary for achieving general availability status, also known as version 1.0.

      So the missing piece is the groundwork to transform GNU SmallTalk from a C userland program into a GNU Hurd server.

      > I was thinking more along the lines of a true OO from the ground up OS

      And that is what you would get, because the SmallTalk server could be in equal footing with the C library server, which would provide POSIX compatibility. Once you had enough of an useable OS recoded in SmallTalk, you could even ditch POSIX compatibility from your environment.

      The question: is SmallTalk adequate as a system programming language? C is, Lisp even more, but I think perhaps OO complexity and conceptual confusion would complicate things at the kernel level.

      BTW, that is how MS-WNT was intended to be.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    8. Re:Functional relations by iggymanz · · Score: 1

      If one confines oneself to a subset of what some languages allow, one can do functional & relational programming in many modern languages...often with less typing & easier maintainability in a collaborative context than LISP.

      BTW, I was paid to professionally code LISP in a non-academic occupation for over 7 years.

    9. Re:Functional relations by voodoo1man · · Score: 1

      Except that functional and relational paradigms are the foundation stones of Lisp, instead of subsets or side-effects of something else. Sure, pure functional or pure relational styles can be expressed more easily with other syntaxes, but you quickly run into problems with multi-paradigm programming. The fact that Lisp can be so easily and cleanly extended (or transparently reduced into, via macros) to other paradigms ("structured" style control structures for programming efficiency, OO, and more recently constraints, parallel/distributed programming, and design-by-contract extensions to CLOS).

      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

  40. Well, C++ is a very insecure "OS" then... by Carp(310) · · Score: 0

    Obviously, I think most of us with a reasonable schooling in software would agree that applications written in C++ are the biggest security threat for PCs today. This is why you've been seeing more and more Java based applications on the PC lately. Most of the C++ vulnerability comes from a single, well known, and often exploited bug in the Windows C++ virtual machine. This bug allows C++ programmers to access protected and private data that is SUPPOSED to be secured by the C++ virtual machine. Here's a simple example of a crack that would allow a C++ programmer to access improperly secured data:

    Let's say we have this class called PersonalFinances:
    Class PersonalFinances
    {
    private:
    char creditCardNumber[16];
    };

    To bypass the Windows C++ security manager, all we need to do is write some code like this:
    Main( )
    {
    PersonalFinances finances; // Forge a pointer to peek inside the class
    char *cardno = (char*)
    printf("Stolen credit card number = %s\n", cardno);
    }

    Simple as that... we have stolen "secure" data. Curiously enough, this code sample came from O'Reilly's "Learning Java" book. This book was first printed in 2000, which means that this critical security bug has been known for over 3 years! I find it quite unbelievable that this lack of response (from Microsoft) is tolerated in the software community. Why haven't they responded? Simple... MONEY. Rather than maintain old code, Microsoft would rather push their new .Net framework as a new standard and make big cash off of its widespread adoption. Another way that MS will profit from this security hole is by pushing their dreaded Palladium scheme on us. Palladium, put simply, is just a hardware solution for this exact sort of security issue. Meanwhile, we consumers sacrifice our privacy through insecure software so Microsoft, Intel, and AMD can reap big profits sometime in the future.

    If you are fed up with these monopolistic profit schemes, this is what you do. Start or support an open source Windows C++ virtual machine project. A port from the Linux VM should be possible.

    We DEMAND better protection of our privacy!!!

    --

    color flashing, thunder crashing, dynamite machines.

    1. Re:Well, C++ is a very insecure "OS" then... by Anonymous Coward · · Score: 0

      Why are you such a retard?

  41. etlinux: Linux + TCL by studboy · · Score: 1

    Etlinux takes a tiny kernel, then adds radically stripped-down versions of the standard demons, rewritten in TCL!

    This might in fact be your daddy's Linux: 2.0 kernel, and the TCL is a very-stripped-down one. Why? Reduced resource requirements: it'll run on a 386sx with 2M ram and 2M disk/flash!

    More features:
    - embedded cgi-capable WEB server
    - a telnet server
    - an email server, with the ability to execute commands sent by email from a remote site
    - CORBA support
    - easy-to-use remote file management
    - a flexible package selection scheme, allowing an easy customization of the system
    - source code available for every component

    1. Re:etlinux: Linux + TCL by Anonymous Coward · · Score: 0

      Sounds great, but TCL.... nope.

  42. Black and white thinking by God!+Awful+2 · · Score: 1

    Saying that OSes and PLs are the same thing is a silly semantic argument, and it strikes me as an example of black and white thinking. The fact is, there is some overlap between what OSes and PLs typically do, so sometimes there is a bit of a grey area where a PL is doing an OS-like thing or vice-versa. But to say that "I cannot draw a hard and fast line between the definition of a PL and the definition of an OS therefore they are the same thing" would be wrong. OSes and PLs are different abstractions that serve different purposes, and it seems likely that there will continue to be a conceptual distinction between the two.

    -a

  43. He with the most distinctions.... by pied · · Score: 1

    He with the most distinctions at their death WINS!

    So now I'm suppose to erase favored distinctions rehashing it all.. again.. and again.. and again... BULOCKS! Its C/C++ and no more updates...

  44. 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.

  45. Huh? (Was Re:Lisp) by Anonymous Coward · · Score: 0

    Does Common Lisp handle security? No.
    Does Common Lisp handle network connections? No.

    Please tell me how Lisp is an OS.

    1. Re:Huh? (Was Re:Lisp) by Anonymous Coward · · Score: 0

      Do all operating systems handle security? No.
      Do all operating systems have a network stack? No.

      Please tell me how your dumbass comment was meant to be insightful.

    2. Re:Huh? (Was Re:Lisp) by Anonymous Coward · · Score: 0

      Please read the article.

  46. His languages influence his perception by snStarter · · Score: 1

    I note that the languages he mentions as the ones in which me most often works are substantially scripting languages and so their deep roots into the OS are to be expected.

    This is not what I thought I would find before I read the article. I thought I would be reading about a Smalltalk environment which really IS an OS abstracted on top of an OS. Or a Java IDE perhaps

    I would say that old languages like FORTRAN, PL/1, C are all quite separate from the OS that supports them. Indeed C was abstracted by design with its run-time libraries holding the only knowledge about the environment in which they work.

    More modern languages are seeming to migrate closer to the OS that holds them. But I would argue this is not a Good Thing because it binds a language too close to a given OS designer's viewpoint of what is important and how to look at the mechanisms under which data are displayed.

    For the continued health of human-interface design, and of operating system design, I would hope that languages continue to hold the environment at bay and deal with abstractions, letting interface libraries or processes take care of display and human interaction.

  47. Needs to be taken seriously - and generalized by kovas · · Score: 1

    The way people use computers is determined by the whole of the environment they are confronted with... and generally no matter what kinds of interfaces people are presented with they will start gluing them together to get various tasks done. This is a pretty universal thing, but unfortunately the history of computing has ended up producing a rigid user/programmer distinction (although the *nix community has been doing a lot to blur the line)

    No matter if you are using a GUI or a traditional programming language, the end result is that you are instructing the computer to do something. The thing is tho is that "programming" is so time consuming and difficult (compared to the GUI) that generally people only switch into that mode when they want to do something over and over again. Yet looking at the way people use GUI's, they do the same actions over and over again. Why? Because its impossible to script most GUI's in anything like an quick-and-easy fashion, or to combine elements of different programs into "meta" applications.

    People have been talking about more holistic environments for years, but inevitably these projects fail. IMO its because people keep trying to use languages that are too low level and are too unstructured - causing enormous efforts to be expended on simply converting data formats or wrapping APIs and such, or chasing down buffer overflows, and not enough time developing programming environments that can program and extend themselves.

    Currently I'm working on such a project based on the mathematica programming language.. stay tuned...

  48. good idea by Anonymous Coward · · Score: 0
    Quick, somebody! Come up with an OS/language environment that actually is useful!


    I'm still waiting...

  49. Soylient Green is people!!! by ravic · · Score: 1, Funny
    Must be a slow news day. If this news story can make it, why not try these posts?
    1. Programming and C are the same thing
    2. North Dakota and South Dakota are the same thing.
    3. Sneakers and tennis shoes are the same thing
    4. Pop and soda are the same thing
    5. Fat and big boned are the same thing
    --
    Dont eat yellow snow
  50. In the Old Days by Anonymous Coward · · Score: 0

    Once I worked for ICL, a British computer company.

    One of the operating systems we had, VME/B, had strong support for several programming languages, including what today the nuxi world would term its shell language.

    These languages all used the same architectural calling conventions, so one could call shell language as a function from S3 (the main implementation language for the system, based on Algol 68)

    And call Fortran from shell.

    There was no concept as limited as "main". A program was just a library, once loaded any of its functions could be called.

    As a former colleague said in the early 80s, "the best that can be said about unix is that it only put operating system development back by 20 years".

  51. In other news by interstellar_donkey · · Score: 2, Funny

    Steering wheels and tires are the same thing.

    Both are required for the succesful opperation of a car. Each require steel in their construction for structural reinforcement. In a pinch, and with a little engineering, theoretically one could be used to replace the other.

    But most striking in their simularities: Both are round.

    --
    The Internet is generally stupid
    1. Re:In other news by Anonymous Coward · · Score: 0

      Your silly analogy would be relevant if you could build a car out of tires.

    2. Re:In other news by interstellar_donkey · · Score: 1

      As opposed to being able to build a computer out of a programming language or opperating system?

      --
      The Internet is generally stupid
  52. Ad Campaign? by silvakow · · Score: 1

    "The network is the computer" -- Sun Microsystems
    "The programming language is the computer" -- Matthew Flat

    Am I the only one who thinks this is funny?

    --
    In the long run, we're all dead.
    1. Re:Ad Campaign? by mstyne · · Score: 1

      No, actually, I was going to say the same thing. This sounds almost as dumb as "the network is the computer". No, the computer is the computer.

      The network is the network.

      The OS is the OS.

      The PL is the PL.

      time for a coffee break!

      --
      mstyne: real name, no gimmicks
  53. Programming Language == OS? by Anonymous Coward · · Score: 0

    Only on Slashdot.

    And still they wonder why Linux isn't a desktop platform...

    1. Re:Programming Language == OS? by Anonymous Coward · · Score: 0

      Thank you for your comment. I agree wholeheartedly

  54. Bad Titles..! by Steveftoth · · Score: 2, Interesting

    Argh, this paper starts with an interesting idea, that PLs are more like OSes then we realize it, provides some genesis for the idea, but FAILS to back it up..

    All of his examples, the bulk of the paper, are examples of how the RUNTIME system restricts the PL. He talks about the runtime system security model and somehow this is supposed to extend to the definition of the programming language? No, this is not how it works. The runtime system, the sandbox or whatever you call it, is a restriction defined seperatly from the language itself. The JVM is defined seperatly from the Java language. That's why products like JET exist that can compile Java code to something other then bytecode. Because the runtime enviroment is not defined in the language. You don't have to have a security manager, like in perl, you don't have to support a trusted mode in your perl runtime. It's a feature of the runtime, not the language.

    The runtime, by definition is like a mini-OS. Usually, a vm runtime (for perl, java, python, etc...) takes non-native instructions, parses them and translates them into some sort of binary instruction. Since there is no processor that can execute perl natively, this is how it works.

    Neat idea, bad paper.

  55. Re:Why, yes, this was what I was missing all along by k98sven · · Score: 0, Funny

    To paraphrase "the tao of programming":

    "I don't know whether I am an operating system dreaming that I am a programming language,
    or a programming language dreaming that I am an operating system!"

  56. Lisp Machine's Language (Was Re:Behind the times?) by Anonymous Coward · · Score: 0

    Did you know that there were parts of the Lisp Machine kernel that were not written in Lisp? Small sections were written in assembly.

  57. 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.

  58. Re:Punch Card Systems by VoidEngineer · · Score: 1

    Hmmm. Well, harking back to days of yore, I recall that punchcards were the basic in/out system of computers.

    I suppose that one could look at the article at hand in terms of whether or not punch cards contain linguistical features (language support) or systemic features (operations support).

    As such, I'm not all that sure that the method of transfering information from a punch card was/is the same as decision making operations utilized by the machine itself.

    Call me crazy, if you will, but it seems to be a text/context dichotomy to me, where one cannot have a PL without an OS, and vice versa. That is, they go hand-in-hand, and each are somewhat inherrent in the definition of the other.

    But I'm no computer scientist... =)

  59. Intent (Was Re:great...) by Anonymous Coward · · Score: 0

    Was your intent to sound crazy or stupid?

    1. Re:Intent (Was Re:great...) by jpsst34 · · Score: 1

      My intent was to catch the pigfuckers who don't understand sarcasm.

      --
      How are you going to keep them down on the farm once they've seen Karl Hungus?
  60. Isolation capabilities... by MosesJones · · Score: 1, Insightful


    So what Mr Flat is really saying is that he hasn't looked at Eiffel, Ada, OCL or any design by contract work.

    This really is a bizarre article that most first year students would get marked down for.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:Isolation capabilities... by p3d0 · · Score: 1
      So what Mr Flat is really saying is that he hasn't looked at Eiffel, Ada, OCL or any design by contract work.
      Well, I know a thing or two about Eiffel and contracts, so let's start there. Are you talking about the fact that Eiffel has no "private" features? I can't speak for Mr. Flat, but in my mind, that's fine because Eiffel provides an even more flexible and powerful way for the superstar to set the rules: contracts.
      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    2. Re:Isolation capabilities... by Anonymous Coward · · Score: 0

      Can you "meta-program" Eiffel. Ie, emulating "private" by using contracts?

      I can't see how it can work out, but I don't really know Eiffel that well..

  61. Actually by _avs_007 · · Score: 3, Interesting

    Take a look at SavaJe. It is a JVM that is also an OS.

    1. Re:Actually by proj_2501 · · Score: 1

      A JVM is not exactly an OS. You can write programs in other languages besides Java that can still be compiled to run on a JVM.

      Now the class libraries that make up part of what is called Java could easily be considered part of the OS, and you still kind of need them to do useful things. I assume these are written in Java but i guess I could be wrong on that one.

  62. 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?

    1. Re:I'd like to point out... by Anonymous Coward · · Score: 0

      The first year of university we were given the equivalent of "programming 101" in Oberon, an environment that basically is both a programming language and an OS (though there are oberon versions which run inside other OS's, and oberon compilers which don't come attached to the environment). I can assure you that it IS a useful way of working. Since everything was a program (even if it was only a one-liner), you could literally change ANYTHING while it was running. Wanted some button to do some extra action? Easy, just open up the code and change it, without even shutting down the app. Want a label to have a bigger fontsize? Done in a snap. Ofcourse, the oberon language was/is kinda lame, and the environment had some really weird ideas with regards to UI design. But, as a concept, I always thought it showed potential.

    2. Re:I'd like to point out... by voodoo1man · · Score: 2, Informative
      Huh?

      By Lisp (no, it's not spelled all uppercase anymore) bytecode, do you mean Lisp Machine microcode? Because aside from that (and it wasn't even a standard), there is no such thing as "the Lisp bytecode." If that's what you mean, then the processor microcode won't do you any good as it's not any different from writing assembler.

      If, like you state in your second paragraph, you just want a VM sitting on top of the OS executing all the code, go buy some .Net or something. Then come back in a couple of years once everyone's realized the "thing" is incredibly slow*, and doesn't really do anything security-wise.

      Also, it's "funny" you mention that programming languages and OSes shouldn't be mixed, and then talk about Lisp. Have you actually used a Lisp environment in the past 20 years? The philosophy that the language is the OS (at least from the application's and the editor's point of view) is the pervasive paradigm for Lisp coding - and not only does it work, but it is also incredibly useful and efficient.

      * There is no such thing as the perfect (or even best) universal VM - the fact that different hardware architectures as well as different languages exist now and evolve at a rapid pace prevent it from existing.

      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

    3. Re:I'd like to point out... by ttfkam · · Score: 1

      Ummm... I'd like to point out that that is exactly what UNIX/Linux are. C is very much integrated with the OS. The only reason you don't notice is that you've never know anything different.

      Here's a hint: When was the last time you saw a garbage collector in the kernel? Why don't kernel functions allow for variable number of parameters? Why aren't there any kernel objects?

      Without C, there is no UNIX. But I forgot. You were suggesting a LISP model for the OS. Yeah... That's not integrating the language with the OS...

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
  63. Oh, God no! by ucblockhead · · Score: 1

    You mean that programming languages are going to get even more bloated and overly complex!?

    Bleah. Count me out.

    What happened to the idea of modularity? Programming languages shouldn't be OSes. They should have access to a modular interface to different OS elements. But now, "modern" languages include all kinds of crap, like GUI code, that should be kept in nice, modular libraries. You know, so that you, the coder have choice.

    --
    The cake is a pie
    1. Re:Oh, God no! by ttfkam · · Score: 1
      They are in nice, modular pieces.

      java.awt and javax.swing are separate from java.util and java.lang. Perl keeps its modules separate. So does Python. Maybe you were talking about the underlying C/C++ portion of those VMs?

      C/C++ doesn't have nice, modular libraries. They give you a choice between many monolithic programmatic libraries. Can you simply drop in MFC, Qt, GTK, FLTK, etc. into your app? No. You choose one and you're effectively stuck with it. That's not modular my friend. You can't be modular in a language without first defining interfaces: something C and C++ won't do because ignorant geeks incorrectly attribute completeness for bloat.

      There's nothing stopping Sun from splitting the C portions of the JVM into multiple shared libraries...oh wait! They already do!
      ./jre/lib/i386/native_threads/libhpi.so
      ./jre/lib /i386/server/libjvm.so
      ./jre/lib/i386/server/libj sig.so
      ./jre/lib/i386/client/libjvm.so
      ./jre/lib /i386/client/libjsig.so
      ./jre/lib/i386/libjsig.so
      ./jre/lib/i386/libverify.so
      ./jre/lib/i386/libj ava.so
      ./jre/lib/i386/libzip.so
      ./jre/lib/i386/l ibhprof.so
      ./jre/lib/i386/libjcov.so
      ./jre/lib/i 386/libnet.so
      ./jre/lib/i386/libnio.so
      ./jre/lib /i386/libjsound.so
      ./jre/lib/i386/libdcpr.so
      ./j re/lib/i386/libmlib_image.so
      ./jre/lib/i386/libaw t.so
      ./jre/lib/i386/libfontmanager.so
      ./jre/lib/ i386/libjpeg.so
      ./jre/lib/i386/libcmm.so
      ./jre/l ib/i386/libioser12.so
      ./jre/lib/i386/librmi.so
      . /jre/lib/i386/libJdbcOdbc.so
      ./jre/lib/i386/libja wt.so
      ./jre/lib/i386/libjaas_unix.so
      ./jre/lib/i 386/libjdwp.so
      ./jre/lib/i386/libdt_socket.so
      ./ jre/lib/i386/libjavaplugin_jni.so
      ./jre/plugin/i3 86/ns4/javaplugin140.so
      ./jre/plugin/i386/ns600/l ibjavaplugin_oji140.so
      ./jre/plugin/i386/ns610/li bjavaplugin_oji140.so
      ./jre/plugin/i386/ns610/lib javaplugin_oji.so
      Looks pretty well split up to me. As for the classes and interfaces, the JVM never invokes the classloader on a class until you request it.

      Next issue?
      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    2. Re:Oh, God no! by ucblockhead · · Score: 1

      Oh, yeah, right, letting you use any GUI toolkit as long as it has exactly the same interface...that's smart.

      It's one of the reasons why 90% of client apps are written in something other than Java.

      Anyhow, you do realize that all those C/C++ libraries you listed are modular, right? Shared libraries? DLLs? Ring any bells?

      Demanding everone use the same interface is tantemount to demanding that everyone use the same library. This results in a complete lack of choice in terms of GUI toolkits.

      --
      The cake is a pie
    3. Re:Oh, God no! by ttfkam · · Score: 1

      On the contrary, the reason why 90% of client apps aren't written in Java is because Swing is dog-slow and a memory hog.

      The Swing API on the other hand, is quite elegant and usable. MVC all the way. The interfaces were great. It's just too bad the implementation sucked.

      All of those C libraries I listed (none of them were C++) are loaded on demand in the background. The developer never sees them. All he/she sees is the interface. Want a different implementation, just swap JVMs. Your code still runs. Want to use a different XML parser? Start the JVM with what amounts to an environment variable.

      Now let's examine the pure C side of things. If you code to GTK, you are locked into GTK. You have no alternate implementations of GTK. If you want to switch to FLTK, you must completely rewrite the GUI layer of your app. If you code to libxml, your app is tied to libxml, and any other parser will require retooling.

      That is not modularity; That's segmentation. The standard C library is an example of modularity. If I want to manipulate a string -- however poor those facilities may be -- it doesn't matter whose implementation I use. Even though the implementations are different, strcmp is strcmp is strcmp. If glibc doesn't fit the bill, use another implementation. Why? It has nothing to do with shared libraries. It has to do with the fact that the standard C library has well defined interfaces. I happen to think that a header file with functions is a fairly weak interface, but it's a modular interface nonetheless.

      Your idea of modular apparently is arc-welding the wheels to the axle of a car. When you need a new pair of tires, you just pry them off and weld a new set on.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
  64. Obvious by neosiv · · Score: 1

    Anybody who's been programming long enough should have already come to this conclusion.

  65. Interpreted languages maybe... by Ashurbanipal · · Score: 1

    If you ignore enough details, interpreted languages like perl and gawk are similar to OSes. Those that are integrated with a programming environment, even more so; the RSTS/E Basic environment was a language that worked as an OS. VAX/VMS included interpreted DCL, and thus was an OS that worked as a language.

    However, compiled languages are fundamentally dissimilar to OSes, because the compiler is not needed to run the program once it's compiled. Your OS is not as easily dispensed with!

  66. 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.

    1. Re:no, they won't by Jon+Taylor · · Score: 1
      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.

      Check out Janos. From their page:

      The Janos Virtual Machine (JanosVM) is a virtual machine for executing Java bytecodes. Unlike any available virtual machine, the JanosVM supports multiple, separate processes (called "teams" in JanosVM) within a single VM. Based on KaffeOS (and thus Kaffe), the JanosVM supports per-team separate heaps, per-team garbage collection threads, inter-team thread migration, safe cross-team reference objects, and a spiffy tutorial. Designed to support asynchronous termination of uncooperative or malicious Java bytecode applications, the JanosVM provides robust and scalable multi-process support within a single virtual machine.

    2. Re:no, they won't by swordgeek · · Score: 1

      Hmm. Interesting way of dividing OS from app functionality. I don't have any formal background in OS design (or even programming) so I don't know if that's a standard idea or not.

      But it begs the question: Does putting more and more app-level services (i.e. NFS servers, etc.) into the kernel go against that philosophy? It seems to me that it does.

      --

      "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
    3. Re:no, they won't by g4dget · · Score: 1
      But it begs the question: Does putting more and more app-level services (i.e. NFS servers, etc.) into the kernel go against that philosophy? It seems to me that it does.

      Yes, it does go against that philosophy. Still, UNIX developers are pragmatic--that sort of thing may be OK for a few key services.

      However, in Plan 9, the original UNIX developers have been trying to address this issue better.

  67. Cringley agrees; run windows on Linux by ChaosMt · · Score: 1

    Ironic this post comes at the same time of Cringely's comments on the subject. Now, not only am I a solaris admin, I guess I'm also a Forth admin!

    1. Re:Cringley agrees; run windows on Linux by kalidasa · · Score: 1

      I wonder what Cringely has been smoking? Despite what he says, "Even today, you can still get to a C: prompt under Windows XP, which means a disk operating system is hiding there no matter what Microsoft wants us to believe," the XP prompt is NT based (and so more OS/2-like than the MS-DOS under Windows 98).

      Anyway, I don't see that as necessarily the same thing as we're seeing here. Cringely is saying that MS should make Windows a Window Manager package and compete with Motif, Gnome, and KDE. Lessen Windows, rather than broaden the reach of a PL to be an OS.

    2. Re:Cringley agrees; run windows on Linux by Kourino · · Score: 1
      Despite what he says, " Even today, you can still get to a C: prompt under Windows XP, which means a disk operating system is hiding there no matter what Microsoft wants us to believe,"

      He said that? Errrm. I should hope a "disk operating system" is hiding under Windows somewhere. I rather like reading things off disks ...

      It would be interesting to see an Explorer WM. Since they more or less have the interface separated from the kernel anyway, they'd just have to port Explorer. Or port Win32 to POSIX, which would be ... interesting. But then you could run "Windows programs" on any Unix Win32 is ported to with just a recompile (barring portability issues due to "all the world's an x86" syndrome).

      Of course, Windows being one of their top two revenue streams, Microsoft would never do this :) Although I wonder why nobody else made a library that implements the Win32 API as a library. *remembers his Win32 days* Err, nevermind.

    3. Re:Cringley agrees; run windows on Linux by kalidasa · · Score: 1

      Yep, he said that.

      Although I wonder why nobody else made a library that implements the Win32 API as a library.

      Isn't that what Wine is?

      Wine is an implementation of the Windows Win32 and Win16 APIs on top of X and Unix. Think of Wine as a Windows compatibility layer. Wine provides both a development toolkit (Winelib) for porting Windows sources to Unix and a program loader, allowing many unmodified Windows 3.x/95/98/ME/NT/W2K/XP binaries to run under Intel Unixes. Wine works on most popular Intel Unixes, including Linux, FreeBSD, and Solaris.

    4. Re:Cringley agrees; run windows on Linux by Kourino · · Score: 1

      My bad; you're right. It's been so long since I'd touched Wine I doubted. And I only ever dealt with the program loader, so it was easy to totally forget about the library ... ^^;

    5. Re:Cringley agrees; run windows on Linux by kalidasa · · Score: 1

      Hell, it's damned easy to forget what's what sometimes.

  68. Re:Punch Card Systems by Anonymous Coward · · Score: 0

    Very ridiculus indeed.

    Did anyone in here bought a programing language and install them lately because he/she is upset at M$?

    Come on. Wake up.

    Go back to gramma school maybe more appropriate.

    Something has some parallel features/goal does not means they are the "same".

    Like a chair to put *me* on, and the table to put *computer* on. Since they're both support objects against gravity, they're the same.

  69. Not langs, Database! by Tablizer · · Score: 1

    I see more in common between DBMS's and OS's than languages. OS's must keep track of a bunch of stuff. User lists, process lists, memory allocation areas, disk section limits, etc, etc.

    This is more database territory than language territory it seems to me. I see too many applications that reinvent the database from scratch or using wimpy, tangled array thingies. If you don't like database API's or features, and that is why so many of you reinvent your own, then lets look at DB API's and languages (includind SQL) and fix them.

    IBM's AS/400 allegedly uses a RDBMS for many of its OS functionality, I would note. I have not used it extensively, but it usually gets high praises from techies who have.

    Perhaps these "OS's are really X" arguments are ridiculous, but a database is as good a candidate as anything.

  70. Abstractions ~ OS services (Was Re:Lisp) by Anonymous Coward · · Score: 0

    Closures are traditionally OS-level services?
    Multiple dispatch is traditionally an OS-level service?

    Please explain how Lisp (compiled to native code, compiled to a byte code or interpreted) is an OS.

  71. Inefficient! by DigitalCrackPipe · · Score: 1

    Bah. It's an interesting concept but the fact is we evolved OSs and programming languages as *layers*, one on top of the other, to increase efficiency. The point is that everyone on some platform (say NT-based) has a common set of interfaces. However, to program NT I don't need to know all of the windows API calls unless I really need to delve into them. I can use C++, or run IDL, or maybe even code some assembly. If each was its own OS, I'd have to reboot into that OS rather than switching applications, so having a single entity would be very ineffective for any real engineer.

  72. Not quite true by ThinkTiM · · Score: 1

    A Programming Language Runtime environment might be the equivalent of an operating system, but not a Programming Language itself.

  73. The two lines summary by gmarceau · · Score: 3, Insightful

    I see alot of people getting upset at Mathhew without having read the article. For them, and for those who are reading in diagonal, I'll summarise the important point here.

    At LL2 Matthew Flat posed that, while OS's and programming languages both support application development, by providing libraries of function calls, their difference in focus fundamentaly sets them appart. OS's focus on isolation of code, for security and for stability. Programming languages focus on cooperation, and try to maximize code reuse and efficiency.

    Basicaly, OS hacker and the PL hacker have alot to learn from each each other. They would win at from cross-pollination between the two fields. Matthew then proceeded to show his implementation of what operating system concepts would look like in a programming language, by demoing DrScheme, a programming environment which can run (and debug) itself recursively.

    --
    This post was compiled with `% gec -O`. email me if you need the sources
  74. jesus by Anonymous Coward · · Score: 0

    it is not funny, it's old and played out, i wish i could mod... i would mod you down to -10billion, STUPID.

    1. Re:jesus by TheShadow · · Score: 1

      no way... it's damn funny.

      BTW - In soviet russia, -10 billion mods YOU!

      --

      --
      "What do you want me to do? Whack a guy? Off a guy? Whack off a guy? Cause I'm married."
    2. Re:jesus by Anonymous Coward · · Score: 0

      You CAN mod!

  75. Where do you draw the line? by Anonymous Coward · · Score: 0

    How about a processor's native language? Thanks to the advent of Instruction Set Architecture, the ISA exposes all the functions and programming environment of a particular architecture. Could this be considered an "operating system". I don't believe so.

    An operating system does more than just memory and process managemnt. An OS must also manage things that make computers useful...like user accounts and permissions, driver interaction/abstraction, auditing...etc.

    Applications are just that. They are developed using a language as a tool, but what application developer wants to handle traditional OS functions like user account maintenance, driver interaction...etc? That seems like alot of work to dump on an app developer.

    While languages COULD be an operating system eventually, currently they are not...and won't be for some time to come.

    -ted

  76. 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.
  77. Programming Language != OS by Anonymous Coward · · Score: 1, Insightful

    Sorry, an OS provides access to hardware. It schedules every task on the computer. It provides IRQs, schedules memory access, etc. A programming language only provides librarys to make system calls to the kernal. An oS is also not equal to an environment (such as perl or Lisp).

    1. Re:Programming Language != OS by Theatetus · · Score: 1
      Sorry, an OS provides access to hardware.

      I dunno... most of the time the OS just talks to the BIOS, which in turn provides access to the hardware. Why not say that only the BIOS is "really" an operating system.

      --
      All's true that is mistrusted
    2. Re:Programming Language != OS by voodoo1man · · Score: 1
      most of the time the OS just talks to the BIOS

      This used to be true for DOS and a lot of early PC operating systems, but isn't anymore. Hardware is accessed directly - the hardware drivers are now the intermediaries between the OS and the hardware. That being said, there is a reason people stopped using the BIOS for hardware access (besides the fact that the BIOS limited what and how you could use devices) - it was slow. Same thing with a sandwhich layer OS, except now you are getting the benefits of architecture abstraction.

      Which brings me to the next point - the OS doesn't have to talk to the hardware in a "sandwhich" OS. See for example the Flux OSKit project - it just provides a layer of hardware drivers with a common interface for higher-level OS facilities. It's being used for a lot of the current language-as-an-os projects.

      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

  78. Lisp is not Lisp Machine (Was Re:Lisp) by Anonymous Coward · · Score: 0

    Lisp Machines are not the Lisp language as it is known today or for over a decade.

    Lisp Machines have security (better than Unix or Windows). Common Lisp does not offer this security as part of the language spec.

    Your logic is similar to saying C is a OS because of Unix.

    You should take your advise.

  79. OS==Library by Doomrat · · Score: 1

    In my eyes, an OS is more like a huge dynamic library than a programming language.

    1. Re:OS==Library by mce · · Score: 1

      Stroustrup is often quoted for having written: "Library design is language design".

  80. Hey, computers are the future!!! by ites · · Score: 1

    Sorry to be a little sarcastic, but the notion of programming languages as OSes is old and familiar to everyone who used (especially micro-) computers in the 80's. Basic, Forth, Smalltalk, Lisp, mainframe assembler,... even Unix was conceived as a set of language as much as an OS.
    The remarkable thing is how people have accepted OSes that do not work like programming languages: MS-DOS and its Windows brood being the most common examples, though many other firms have produced non-programmable (and non-abstractable) OSes in the past: IBM OS/400 being one wonderful example that still gets the Pavlovian juices flowing. Brrrrr.
    The question is not about "mathematical identity". If that's all that matters, I can say that people will eventually become sweet corn. We are, after all, mathematically identical at many levels: consider the structure of living cells or organic molecules.
    The question is how we build and use tools to hide and digest complexity. We program by creating models. Models encapsulate complexity. Can the OS do the same? If so, it's a programming language. Does it impose a single static designer model? If so, it's a crippled OS.

    --
    Sig for sale or rent. One previous user. Inquire within.
  81. Games as O/Ss by TechMangler · · Score: 1

    All fine and dandy, I'm waiting on Quake, the O/S
    Talk about realtime fun with objects!

  82. If you think an O/S and a P/L are the same by ColonelPanic · · Score: 1
    ... you probably don't understand either concept, and have certainly never implemented them.



    Bah.

    --
    "Skill shows through where genius wears thin." -Wittgenstein || Religion: uniting aviation and architecture.
  83. *less* bloated OS by gosand · · Score: 3, Funny
    If you use Emacs, you have a programming language, OS, and editor all in one happy package.

    Yes, be we want OSs to get LESS bloated, not more.

    --

    My beliefs do not require that you agree with them.

  84. Doesn't anyone remember PICK? by gaudior · · Score: 2, Interesting

    Pick systems were a database, an OS, and a programming language, all in one. It was a very cool system to work in.

  85. that they are equivalent dosn't mean they'll merge by autopr0n · · Score: 1

    I mean, minivans and SUVs are practically the same thing given how most people use them, but that doesn't mean that all SUV drivers are going to switch to Minivans.

    Besides a programming language does something that an OS is never supposed to do, make things human writable (and hopefully readable). Back in the days of DOS you could say people coded to the OS as much as the PL (especially if you were talking about writing ASM) but today they are vastly different.

    Another difference is that the OS does it's job in real time, while a PL doesn't need to.

    If you want to say that programming 'environments' like the Standard Template Lib, the JVM, .NET, the stuff in CPAN are equivalent to OSs, then that makes sense. But the language itself is not an OS.

    --
    autopr0n is like, down and stuff.
  86. Safety and Efficiency by e+aubin · · Score: 2, Interesting

    Modern programming languages can perform some of the safety features that operating systems provide. Many functional languages "can't go wrong". (meaning the compiler can prove a program does not access memory outside of its own space). Some languags like value Microsoft's Vault programming language can make sure an API is used properly. Check out Kernel Mode Linux for an example of how a "safe" scheme program can be speed up by executing in kernel space.

  87. PL abstracts machine code, OS abstracts hardware by davidpfarrell · · Score: 1

    A programming language is essentially an abstract way of generating machine code. Machine code, in and of itself, is not a on OS. An OS is essentially machine code that abstracts the hardware.

    A programming language does not abstract the hardware, it abstracts the machine code

    Now if you use a programming lanuage to write an operating system, then use that same programming language to write programs for that operating system, it may *appear* that the programming language is the operating system.

    But only until someone comes along and uses your programming language to write their programming language to run on your operating system.

    Linux is written mostly in C. C is not an OS

    --
    Cube On! (http://stores.ebay.com/PuzzleProz)
  88. Or vice-versa by crawdaddy · · Score: 1

    Linux PL - You can specify only the specific functions, objects, etc needed and thus makes programs very small and compact. Several "flavors" exist, only a few of those are taught in schools. However, the language is highly customizable...even to the point of completely changing what every built-in function does. This will result in several local dialects of Linux PL, some of which are only known to one person: the geek that made it.

    Mac PL - Very easy drag and drop interface...and has lately actually just added a Mac PL GUI to a version of the Linux PL...so basically, see Linux PL.

    Windows PL - Easy to use, save the random crashing of the compiler. Also, very slow. Some things, whether used in a program or not, have to be included to compile (one of these is a web browser). Essentially, just drag and drop what you want and add a small bit of code to each object for a fully functional program. People that only know how to program in Windows PL have the nerve to call themselves programmers, even though they do not understand many programming concepts. To sum it up in two words: Visual Basic.

  89. Exactly by acomj · · Score: 3, Insightful

    Microsoft was threatened by the java api. You only have to use the Java VM and on that platform your software doesn't have to use the windows api anymore. Takes away the advantage of developing on a operating system with a rubust api.

    1. Re:Exactly by droleary · · Score: 1

      Takes away the advantage of developing on a operating system with a rubust api.

      What does that have to do with Microsoft?
      But, seriously, Apple seemed to be able to bridge Java for their Cocoa API. The problem on Windows is Microsoft's wanting to control everything, not Java (aka, Sun wanting to control everything).

  90. PerlOS:\ by LoRider · · Score: 1

    Ok. So the dude thinks that Perl should now be built to operate as an OS?
    Seems silly to me. I agree that there could be an interesting use for a high-level language that is completly independent upon the underlying OS or be the OS, but I don't think the languages he discusses are going to work.

    Perl is a scripting language that is a bastardized version of every other language. I love perl, so don't think I am bashing Perl. It does a great job at what it does, but making it secure enough to run a multi-user OS is crazy. Look at how strange it does object-oriented stuff, it's ugly. I just think retrofiting a language to do something that it was not ever designed to do is wrong.

    If you want a high-level language that is the OS and also the language you write user applications in, you better create a new language. Java is the closest I have come across that could run as an OS.

    Start from the ground up and build a high-level language that handles, printing, DNS, user authentication, the file system, and every other thing the current OSes handle now as well as provide a kick ass development environment for application programmers.

    Some day we probably will have a language that can do everything but it won't be Perl, or will it?

    --
    LoRider
  91. Re:Sure, the distinction is artificial/arbitrary.. by dillon_rinker · · Score: 1

    This is EXACTLY why RMS demands the nomenclature "GNU/LINUX". Linux is a kernel, but GNU is what people actually use.

  92. And in other news... by angst_ridden_hipster · · Score: 1

    ... text editors will also become operating systems.

    Oh.

    Wait.

    Emacs already *is* an operating system.

    --
    Eloi, Eloi, lema sabachtani?
    www.fogbound.net
  93. bash the OS by gabbarsingh · · Score: 1

    1. Boot computer

    2. Hit 'shift' at lilo prompt

    3. type 'init=/bin/bash'

  94. OS subset of PL, PL = OS by definition by SparafucileMan · · Score: 1

    Wait, am I missing something? Aren't OSs already a subset language of full "programming languages" (that is, lambda calculus)? And all these languages, imo, are just using what has been available in lisp for now near 40 years. Programming languages haven't _improved_ worth a jack since then, though maybe they have become more _efficient_ (corporate whores!). lol

  95. App servers becoming OSes by unknownbug · · Score: 1

    More than languages becoming OSes, what it seems to be happening is that application servers (specially J2EE ones) are starting to offer facilities that were traditionally part of an OS, therefore creating an OS-independent layer that contributes to commoditize the traditional OS even more (at least for server-side biz apps).
    Just take a look at the internals of some of them (ie. http://www.jboss.org), providing component life-cycle mgmt, pooling, transactional services, messaging, directory services...

  96. Whatever... by PincheGab · · Score: 1
    What is it about this was not said about Java years ago? Most of all, what in this argument/theory has come true as predicted about Java?

    The "language as platform" is a nice academic idea, but it is not about to become reality any time soon.

  97. It works, but you don't want to go there. by Animats · · Score: 1
    It's not a totally unreasonable idea to blur the distinction between the operating system and an associated programming language. It's been tried several times. Overall, the results have been disappointing.

    The problem is that the people who build such things are usually evangelists for their One True Language. PARC's version of Smalltalk, Symbolics's version of LISP, and Wirth's Oberon are classic examples. Nobody uses them any more. Sun started down this road, but, fortunately, was forced by the success of Java as a language to back off from Java as an operating system. (Remember all those JINI/JXTI/Java machine announcements?)

    Interestingly, the big win for programming systems tied closely to the OS is in the non-textual components of programming. "Resource editors" and screen design tools are more closely tied to the underlying environment than textual languages. Such tools have achieved more acceptability than the closely tied languages and operating systems.

  98. You learn something new every day. by twfry · · Score: 1

    I wasn't aware that C++ or Java automatically handled a disk's file structure. Cool

  99. Baseless comparison by NaugaHunter · · Score: 1

    A similarly baseless comparison would be "Novels and dictionaries are the same thing, mathematically speaking, since they both have words."

    A programming language is something used to build (read: design & write) a coherent body of logical statements (read: code) that could be set in motion (read: executed) usually with the goal of reacting to its environment (read: use input & generate output). On the other had, an operating system, however it came to be, is something previously written and ready to execute and perform input and output functionality. The fact that it has API's that other executing code can use is analogous to a book having page numbers that can be referred to by other books.

    Of course, that distinction can get muddled when looking at script languages. Script languages seem to be used more for queueing commands to programs than for being individual persistant programs, since they aren't often directly interactive. (By that I mean they are passed or read certain attributes at the start of execution, and quit when their goals are accomplished.) In this way, they are more of a to-do list for instructing other, whether against an operating system or some other program like a web or database server.

    And yes, the line between clear-cut programming languages and clear-cut scripting languages is getting blurrier. However, the results of both can be split along behavior between 'script-like' and 'interactive', regardless of how they were created.

    Too make a long reply short (too late), operating systems are created using programming languages, but they are specific things that actually accomplish specific objectives. Programming languages are merely constructs for creating a variety of things to accomplish various objectives.

    --
    R: That voice. Where have I heard that voice before? B: In about 365 other episodes. But I don't know who it is either.
  100. Re:Why, yes, this was what I was missing all along by Anonymous Coward · · Score: 0

    well, the 1 does fit through the 0, even though it is larger.

  101. Oh! I've got one, too! by jwakko · · Score: 1

    Both Apples and Oranges are platforms for seed distribution. Both are fruits. Both make it easier for people to live (by providing vitamins, minerals, etc.)

  102. This is coming to Java by tullmann · · Score: 1
    Java will soon have support for "multi-processing". Effectively, the JVM will become an OS virtualizing the Java API for use by multiple apps. (Processes/Tasks/Teams are called Isolates in Java).

    See JSR-121 http://jcp.org/en/jsr/detail?id=121. (Note this JSR is in public review -- please provide feedback.)

    Operating systems that virtualize hardware and allow different binaries to run will always exist. However, that doesn't preclude programming langugages from providing some of the same OS-like features to their programs.

    Isolation is a powerful concept, and one that hasn't really been taken advantage of in the past. (Pilot/Mesa and Oberon, and a few others have done it, but no one seems to have noticed). Putting it in Java will make a few more waves...

  103. Errrg.... by jgerman · · Score: 1
    ... this article is hard to get through, and sometimes just plain misguided:


    Regular expressions is actually a language, though a mini one


    That's just horrible, and wrong. I'm assuming the author used such generic language for simplification, but come on. I also have trouble taking someone who is talking about language theory seriously when his only apparent experience is with Ruby, Perl, and Python.


    Oh well back to the article, maybe I can make it past that line this time. I'm sure there's got to be some good stuff in there somewhere ;)

    --
    I'm the big fish in the big pond bitch.
  104. Re:Sure, the distinction is artificial/arbitrary.. by stereo_Barryo · · Score: 1

    I remember when stuffed shirts would say that the micro-computer OSs weren't really OSs since the didn't have some specific text editor, as if these bundled programs WERE the operating system! But they all were OSs, just not as complex as the Unix - VMS types were.

  105. How about emulators? by phorm · · Score: 1

    A lot of what is done on an actual machine is in hardware, integrated with an OS. So with an emulator you actually have:
    an OS (win/linux/etc)...
    which communicates existing hardware to act like another piece of hardware through software intervention... another OS

    And the rest of the program, which would handle the actual code behind the console/etc being emulated: another OS

    You could say they're just programs too... but really you have a system mounted on another with the purpose of loading varying forms of data. I guess it depends on your definition of an OS.

  106. A Microprocessor *IS* a language Interpreter by bokumo · · Score: 3, Insightful

    When you get down to heart of the matter, all computers use just one kind of language: the processor's binary instruction set. So you could make an argument that all (Von Neuman architecture) computers are just interpreters for a particular instruction set. Operating systems and programming languages just provide abstractions which make the programmer's job easier. Making a division between operating system and programming language is an engineering decision on where you want to position your layers of abstraction to achieve a good balance between ease of use and speed. It is all just a matter of where you decide to put your abstractions.

    --
    Physicists do it with a big bang!
  107. I'm suprised no one mentioned this by bigsexyjoe · · Score: 1

    My ass is really the same thing as a hole in the ground.

  108. If C becomes an OS ... by Skapare · · Score: 1

    If C becomes an OS then how would we code the Linux kernel?

    --
    now we need to go OSS in diesel cars
    1. Re:If C becomes an OS ... by AtrN · · Score: 1
      Obviously C is not expressive enough alone to write a program such as a POSIX kernel. Such a kernel has certain requirements such as threading, interrupts, etc... which need to be implemented and the implementation language of this program needs to be able to express such concepts. C doesn't. Hence the need to do some things in assembler - a language that allows such expression, but typically does not directly support it, e.g. most instruction sets don't have a thread abstrasction, we create one using the interrupt abstraction that is supported.

      As Sara Lee said "Layers upon layers upon layers".

  109. One word - FORTH by nurb432 · · Score: 1

    That was both OS and language long long ago,,,

    Nothing new here to see. move alone..

    --
    ---- Booth was a patriot ----
  110. 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.
  111. Interesting conclusion... by mfh · · Score: 1

    Let's draw some analogies.

    An operating system is a collection of specifically ordered instructions from a programming language defined by arbitrary symbols (low-level assembler, high-level C, for example)

    A structural blueprint is a collection of specifically ordered instructions from a language defined by arbitrary symbols (low-level lines and letters, high-level beams, studs, poles, etc).

    A novel is a collection of specifically ordered instructions from a language defined by arbitrary symbols (low-level language defined by the 26 letters of the alphabet, and a high-level language defined as English.)

    To say the programming language (letters and numbers) is the same as the operating system is like saying structural blueprints are the same as shapes and lines and novels are the same as English.

    --
    The dangers of knowledge trigger emotional distress in human beings.
  112. RPGs Will Become Puzzle Games! by HarveyBirdman · · Score: 1
    Spreadsheets will become word processors!

    Athlons will become G5s!

    Cats will become dogs!

    Ach! Where will it all end, I ask you?

    It's the end times. The END TIMES!

    --
    --- Ban humanity.
  113. Definitions by Anonymous Coward · · Score: 0

    Languages: Set of rules for expression and Communication
    Programming Languages: Computer-Human or Computer-Computer Languages

    OS: One or more set of programs compiled via a plularity of programming languages to provide a basic set of services necessary for computing functions

    Hacker: A programmer who uses a keyboard, mouse and terminal to write programs in a particular language. And, oh -- they are usually convinced that they are right.

    Computer Scientist: A person who understands computers -- no computer understands these though.

    Software engineer: A highly paid hacker

    Perl, Python: A hacker's language

    LISP: A Computer Scientist's language -- good for the high priests, but of little use elsewhere because it needs human intelligence.

    C: A software engineer's language -- practical yet imperfect

    C++, C# and Java: bad languages

    Evolution: A branching process that may end up in progressive as well as regressive solutions in reaction to a problem or stimulus.

  114. This is news? by Anonymous Coward · · Score: 0

    My Computer Organization professor went over this on the second day of class.

  115. ...And Software Becomes Hardware... by Slur · · Score: 1

    Indeed, in some distant future your incredibly useful 3D-transformation algorithms, fast fourier transforms, and Bresenham procedures will all be absorbed into the Hardware, and some will become part of the main processor, and still others will be inherent to the graphics cards.

    Which leads to OS->Software->Hardware. I put OS at the top because the OS is an abstraction derived from all the combined software elements, libraries, executables, and data formats. For Apple, the OS is also the look and feel and style that ties it all together. The graphical interface lives on the same plane as the available frameworks and interfaces.

    From a developer perspective, I see the manipulation of interactive applications as a form of programming. The contortion of data by an agent, the user, to achieve some communicable form. The programmer who types C all day makes it possible for the end-user to liberate himself from those details and focus on his interaction.

    Magic mirrors, these computing machines are.

    --
    -- thinkyhead software and media
  116. Easy definition of OS... by kazad · · Score: 1

    ... everything you didn't write to get your program to run?

  117. CmdrTaco by Anonymous Coward · · Score: 0

    That makes me, CmdrTaco.

  118. state machines by Anonymous Coward · · Score: 0

    Yes!! everything running on a computer is a state machine. You have state machines running on top of state machines and yet more state machines running on top of those state machines. Its called abstraction, the downside is loss of efficiency the upside is the ability to handle more complex tasks. So the moral of the story is that programming languges are like operating system as well as browsers as well as the machine it runs on.

    1. Re:state machines by rrobles · · Score: 1

      ...and when you are programming you are creating a state machine, the state machine aproach will help you to find some interesting corner cases. State machines are good for GUI validation.

  119. Flatt, with two #t's by dsandler · · Score: 1
    Absolutely. Mr. Flatt was a graduate student at the Rice CS dept. while I was an undergrad (thanks for your help in lab balancing parentheses, Matt), and while the department's Seasonal Lisp Machine may not actually have lived in his office, I'm quite sure he saw it once or twice. :-)

    ,\

  120. redundant enlightment... by noisyb · · Score: 0

    ...by someone who obviously never used UNIX..

  121. Re:Sure, the distinction is artificial/arbitrary.. by Milo+Fungus · · Score: 1

    Quote from RMS in The GNU Project:

    "An operating system does not mean just a kernel, barely enough to run other programs. In the 1970s, every operating system worthy of the name included command processors, assemblers, compilers, interpreters, debuggers, text editors, mailers, and much more. ITS had them, Multics had them, VMS had them, and Unix had them. The GNU operating system would include them too."

    He seems to feel that an OS includes CUSPS. If not, we may have had a complete GNU OS back in '89 or so.

    [tangent] What would have happened to the Linux kernel if GNU had been fully functional in the early 90's? Would it have become the illegitimate child of the GNU Project that it is today? Would RMS be so bipolar in his reaction to it? Just a thought to ponder...[/tangent]

  122. Lucent did a virtual OS - Inferno by DrSkwid · · Score: 2, Interesting

    Inferno's not an OS/Language hybrid but it is a virtualised unix like OS that will run with identical interfaces, including GUI, on differing hardware & software combinations. It will run natively on some hardware [such as my IPAQ] and hosted elsewhere - such as Windows & Linux.

    It was a project started before Java and shares many of it's aims but went that one step futher by retaining the concept of an OS where you can read and write files etc.

    Dennis Ritchie talks about Inferno and other things

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  123. ducks float by Anonymous Coward · · Score: 0

    so therefore, if she weighs the same as a duck...

  124. What a load of BS! by Alex+Belits · · Score: 2, Interesting

    The article is an act of mental masturbation, and typically for such acts it takes one property of the unfortunate subject of such "research" and builds a whole theory based on it, regardless of its relevance and applicability.

    Languages are supposed to be designed to allow a programmer to express the implementation of his design. The OS design is supposed to give the program implemented by a programmer means to perform various actions that the programs may need. Between those two things there are libraries that include implementations of various procedures that programs perform.

    This clearly separates what is the environment common for all programs and carries no application programmer's ideas at all, what is designed specifically to be used by a programmer for his specific purpose, and what lies in between, and may be close to the specifics of application (say, SDL) or to be an interface to the OS (libc).

    In this way VMs are OS-like components that run over the OS, and the fact that many VMs are tied to their languages does not mean that this is a good design. In my opinion the fact that there are ties between OS and language beyond straightforward "OS is written in a language" and "language operates within an OS" are what I call "noosphere pollution". It's true that many people when they develop a new OS or language want to make "The Grestest Program Ever" and spill their ideas into areas where they do not belong. This is at best misguided attempt to coerce others into their model of thinking, at worst an attempt to create a system so closed and convoluted inside that no one ever will be able to affect it, leaving the initial developer the only "true expert" in the area. And unless that developer has influence of Microsoft or at least Sun, usually the response is "Screw you, and your giant blob of code!" because it's not possible that developers will happen to agree with every single idea developed by a single person, or a small group of them, even if most of those ideas are sane (do you hear me, Pike?).

    Good (or semi-good) operating systems are designed with a very clear separation between themselves and languages that are used. Nothing required Unix to be separate from C, yet if one looks at the system calls interface and libc he will see nothing that can tie the two together like siamese twins -- there is no builtin type in C that corresponds to any Unix internal structure -- no directories, files, sockets, inodes, etc, all those things are represented by language-neutral and OS-neutral integers, and only libc makes actual OS-specific primitives visible for the programmer. This is why Unix is used with many languages, and C is used with many OS, or without any OS at all.

    This demonstrates the strength of the C and Unix designs, authors were confident enough that their ideas can stand on their own so they didn't add any hidden (and not-so-hidden) strings to trap the user in a messy OS-language symbiotic monster.

    Later people started making giant libraries that LOOK like OS libraries but are tied to some environment that has nothing to do with OS, and tied to a language that they can't be separated from. This was a step back -- it wouldn't if those libraries were more modular, but one glance at monstrosity like MFC gives an idea how much Microsoft wanted "to rule them all". But no, that wasn't enough -- languages with ridiculously large and complex VMs, totally inaccessible from anything but themselves appeared, imitating the behavior of interpreted languages. Java, now C#, I am sure there will be more of this. But there is a difference -- perl has to have a complex interface inside because it is an interpreter and can't just call OS. Java chosen to have an interface deliberately different from anything else, and to build VM and libraries that implement the ideas of its creators and nothing else. And of course, control freak Microsoft didn't make anyone wait before it made its own version -- with some lip service about "multiple languages" that looks like "multiple languages as long as they have Microsoft object model rammed into the middle of them, or it will be a pure hell to use".

    So IMO the "siamese twins" designs are inferior to clearly defined and well-designed interfaces, and are the realm of hacks and control freaks -- with some exceptions for interpreters and things like Forth that are specifically designed not to scale beyond systems where any full-blown OS is too much (Forth developers may take it as an insult, but I believe that it's a good thing that such a closed system stops scaling where its applicability ends).

    --
    Contrary to the popular belief, there indeed is no God.
  125. Cool factor? by axxackall · · Score: 1
    It was a very cool system to work in.

    No, it wasn't. Otherwise, where is it now?

    Where are all those cool systems, like BeOS, Amiga and others?

    LISP was the cool language and interpreter since 1957 and stays cool here. TCL, Perl, Python, Ruby, Scheme, Haskell and OCAML are cools languages and interpreters. Linux and BSD are cool systems. PostgreSQL is a cool database. And they stay cool without any commercial support.

    But all those "cool" languages and systems, which are failed and forgottent immidiately after dropping of their commercial support, they are not cool. And never been.

    What will happen to Java if Sun will drop its support? Same questions about Erlang, MySQL and MacOSX. Noone will remember them.

    --

    Less is more !
    1. Re:Cool factor? by jbolden · · Score: 1

      Minor correction here but Erlang was actually dropped. I think Ericson killed it (since it wasn't C++ and management wanted to make the place a C++ shop) and the internal programs kept using it. Once someone else (I believe Nokia) picked it up suddenly management saw the light....

    2. Re:Cool factor? by axxackall · · Score: 1

      Well, if Erlang will stay without Ericson and Nokia support than it's a cool language. Otherwise it was not. Simple.

      --

      Less is more !
    3. Re:Cool factor? by Anonymous Coward · · Score: 0

      Where are all those cool systems, like BeOS, Amiga and others?

      First of all, if you think "cool" is synonomous with "popular", then you must have some serious self-esteem problems.

      Second, BeOS isn't dead, and neither is Amiga.

      As for BeOS being "cool", its OS architecture is infinitely better than Linux. Software like Linux, BSD, TCL, Perl, etc. succeeds because it is free, not because it is "cool" or better.

  126. when a bike becomes a vehicle.. by noisyb · · Score: 0

    when a tiger becomes a carnivore... when blabla becomes bullshit..

  127. Ha! by Deflatamouse! · · Score: 1

    OS's and programming languages are both building blocks of a computer system but at different levels of abstraction. PL's are more of a mathematical abstraction while OS's are the implementation of that mathematical model. Obviously they have the same mathematical properties, but they are not the same.

  128. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  129. Rational R1000 - Ada 83 as an OS by rwsorden · · Score: 2, Informative

    Back in the mid-90's, I worked for Computer Sciences Corp. (CSC) on a project that used the very-cool Rational R1000 platform for development and source-code control. In summary, the R1000 was a custom Ada-oriented development platform (even the hardware was custom-made, I believe). The operating system was fully implemented in Ada and featured a "command prompt" that required you to write snippets of Ada code (expressed as anonymous blocks) instead of shell commands. All errors were thrown as Ada exceptions. The "command prompt" editor even featured code completion and had a built-in debugger. It was even possible to auto-generate custom DOD-STD-2167A design documents (SDDs, IDDs, etc.) by embedding specialized comments in your Ada code (ala Javadoc) and using the built-in document generation modules. It was definitely cool for its time!

  130. This is news? by Old+Uncle+Bill · · Score: 1

    Uhhh, so this guy just figured this out? Maybe my university was the only one to cover that. Not that it took me until then to figure it out...

    --
    Yes, I am an agent of Satan, but my duties are largely ceremonial.
  131. Nightmare scenario conjured by your comment... by MamasGun · · Score: 1

    Imagine this: Visual Basic, the OS! Yeah, I know VB's not entirely platform independent. But imagine what a beastly trainwreck of an OS that would be! [shudder]

    --
    "But you've already got a DVD. It lasts forever....In the digital world, we don't need back-ups..."
    -- Jack Valenti
  132. savaje OS by rhyd · · Score: 1

    savaje OS is a Java operating system for the ipaq and mobile phones. It is not a virtual machine for an OS, the virtual machine is the OS. If you've got an old ipaq you can download the installer and give it a whirl. Impressive things about it are:

    its fast
    its small for full j2SE (the whole OS is about 20mb)
    its complete - the same java as on your desktop (not just the mobile version)
    the os API is the full J2SE Java API with swing and Java 2D, so Java programmers don't need to learn anything new
    existing java programs don't need to be recompiled or ported
    it plays mp3s!


    unfortunately the company developing/marketing have proven themselves to be untrustworthy and foolish. What was once a promising little developer community around the OS has recently been deserting in droves.

    Still it was interesting to play with, and definate proof of concept that Java 2 standard edition makes a rich and compact OS all on its own

    --
    'Be the change you want to see in the world' - Al Gore
  133. Going Forth? by Montreal+Geek · · Score: 1
    Interrestingly enough, there is at least one language who has provided the services normally tought to belong to the OS since its conception:

    Forth.

    While many modern implementations delegate much of that responsibility to some other OS they cooperate with, all imbedded Forths still provide them entierly (mostly due to there being no OS to delegate to on such platforms).

    Java is, of course, the modern example.

    But when you really think about it, most "real" general purpose languages do exactly that. What is the standard C library except an API specification to an OS? In most cases I know of, the actual work is delegated to the host OS but there is no requirement that this be the case.

    1. Re:Going Forth? by Alex+Belits · · Score: 3, Informative

      What is the standard C library except an API specification to an OS?

      Standard C library is not a standard library of C language for Unix, it's a standard library of the Unix system that is used with C language (and every other language on Unix). Of course, for applications portability purpose it was ported to other systems, however it's still not really a part of the language design -- say, variable arguments list is a part of C design, but [v[s[n]]]printf strictly speaking isn't.

      --
      Contrary to the popular belief, there indeed is no God.
    2. Re:Going Forth? by Anonymous Coward · · Score: 0

      This makes absolutely no fucking sense. Period.

    3. Re:Going Forth? by Alien+Being · · Score: 1

      Stdlib is a required part of ANSI C (circa 1990) regardless of which platform it runs on.

    4. Re:Going Forth? by Alex+Belits · · Score: 1

      1. stdlib != libc
      2. It's still not a part of language
      3. When I compile a program for embedded system, the second last thing I care about is what ANSI thinks about it (the last one is what personally Bill Gates thinks about it).

      --
      Contrary to the popular belief, there indeed is no God.
    5. Re:Going Forth? by Alien+Being · · Score: 1

      1. I know that and never stated otherwise.
      2. It *is* a part of "the language". The fact that printf is a function rather than an operator doesn't matter.
      3. Whatever subset of ANSI C you happen to use is irrelevant.

    6. Re:Going Forth? by Alex+Belits · · Score: 1

      2. It *is* a part of "the language". The fact that printf is a function rather than an operator doesn't matter.

      No, it is not. C compiler writer may never know how printf looks like, yet his compiler will be fully compliant. I think, latest "standard" for Unix from TOG declares that Unix must implement STREAMS, and include CDE (how convenient! TOG owns it!), what does not prevent me from spitting into their general direction and call FreeBSD and Linux flavors of Unix despite them having neither.

      BTW, atrocity called Standard C++ Library has nothing to do with C++ language either, regardless of how many times ANSI committee declares it a part of the C++ standard.

      --
      Contrary to the popular belief, there indeed is no God.
    7. Re:Going Forth? by Alien+Being · · Score: 1

      "C compiler writer may never know how printf looks like"

      But there's more to a language than the syntax and grammar. The compiler writer may not know about the preprocessor, but it too is a part of the language, according to Kernighan and Ritchie anyway.

  134. An old fart reminisces by PGillingwater · · Score: 1

    Back in 1980, I developed a small computer which included FigForth. Forth was indeed a very nice example of merging the o/s and the language.

    Around that time, the IBM PC was released. It came with a choice of three different operating systems -- PC-DOS, CP/M-86 and UCSD-p System. The last was a very nice development environment for Pascal, based on its own pseudo machine, with an operating system as well.

    Now an unrelated question -- does anyone know of a standalone Embedded Linux system with a Java Swing toolkit, that doesn't rely on X? Perhaps Qt....

    --
    Paul Gillingwater
    MBA, CISSP, CISM
  135. Keep the list going by PourYourselfSomeTea · · Score: 1

    XML OS - Not really a PL or an OS, but if you install it on your manager's box, and tell him its XML, he won't know the difference, and you'll get promoted and published in a trade journal! SCHEME OS - The user is given as documentation a BNF grammer and a tutorial on finite state machines written in math jargon and is told that in theory he/she has everything they need to use the computer, except that it hasn't been built yet. EMACS - The user is told that the OS documents itself, that it does anything, and that all your tasks can be accomplished through it. Unfortunately, after poring over the miles of "documentation" that tells the user nothing about how to use it, the user takes his/her monitor, scoops out the contents and uses it as a cereal bowl. OCAML OS - A great little OS that has lots of features and actually runs fast, but got banned by a bunch of parents' groups hwo decided it promotes smoking. Haskell OS - EVERYTHING is a function. Want to open your calculator app? Just remember that it's not actually a calculator app, but a series of stateless functions that appear to your eyes like they are a caclulator app. Want to enter some numbers. You have to understand the concept of MONADS first! It's long, tedious, but at least it makes mathematical sense.

    1. Re:Keep the list going by Anonymous Coward · · Score: 0
      OCAML OS - A great little OS that has lots of features and actually runs fast, but got banned by a bunch of parents' groups hwo decided it promotes smoking.

      No, that's JoCaml OS.

  136. when asked, I say ".NET" by sirshannon · · Score: 1

    because I am writing off of the .NET platform, usually using a combination of VB.Net and C#. It's easier to explain as just ".NET", because that's really all that matters.

    Just like I used to say my web apps were written in "ASP" instead of saying "HTML, JavaScript, VBScript, T-SQL, and Visual Basic"

    1. Re:when asked, I say ".NET" by Schnapple · · Score: 1

      I guess I meant to say that when someone says ".NET" and you ask them to be more specific and they just look at you like you're stupid and they don't know the names of what exactly they're using then they don't know what they're talking about.

  137. Uh.... by IcEMaN252 · · Score: 1

    performance and stability might be the major considerations

    Then what does MS make?

    --
    CitrusTV (http://www.citrustv.net): the Nation's Oldest & Largest Entirely Student-Run Television Station
  138. Abstract machines by Anonymous Coward · · Score: 0

    This is a very old concept. Every machine, concrete or abstract, has an interface whereby you access and control it. The interface that's presented to you by an old 386 is one that has things like real and protected mode, a few registers, memory, etc. The interface that ISO C assumes is one that features variables, floating point arithmetic, etc. It's up to your C runtime to ensure that floating point arithmetic is emulated properly when you compile a program for a 386 processor (no FPU, remember?), that the values of variables are kept in registers or in memory etc. In that sense, the C spec defines an abstract machine and some of its properties.

    Anybody remember Java OS, by the way? Did that every move beyond vaporware?

  139. Assembler is not the meta-language by alienmole · · Score: 1
    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.

    The "meta-language" in OSes like Unix and Windows is actually C - it's primarily C conventions and architecture that defined the basics of APIs, program linking, etc. The fact that the meta-language is higher-level than assembler is important - it imposes rules and minimum conditions about how functions can be invoked between languages, etc., without which, it would be much more difficult for programs to communicate with the OS or with each other.

    One of the consequences of what Flatt is saying would be to raise the bar of the lowest common denominator language in an OS. If this were done in such a way as not to limit the applications that could be developed on the OS, it could only be a good thing.

    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?

    We already do - if your language is not C, it better have good ability to integrate with C, or you'll be limited by that lack. In fact, most languages on current OSes are implemented in C, either directly or indirectly, for exactly these kinds of reasons. As long as the meta-language is sufficiently efficient and powerful to be used to implement other languages, there really shouldn't be any problem, theoretically. The barriers to getting commercially viable implementations of such systems developed and accepted, though, are quite large. That doesn't make the concept bullshit, it just means Flatt may be forecasting fairly far ahead.

  140. Programming language as OS? by Fredbo · · Score: 2, Funny


    10 A$="Who ever heard of that? It'll never work"
    20 PRINT A$
    30 GOTO 20

  141. With Emacs, you really NEED psychiatric help! by Doug+Merritt · · Score: 2, Funny
    Perhaps, but VIM doesn't include free pshyciatric help for after you've used it. Think about it.

    But if you use VIM, you won't need psychiatric help, whereas with Emacs, of course you do, so of course it provides it. ;-)

    --
    Professional Wild-Eyed Visionary
  142. Actually... Re:And all this time by Todd+AvErth · · Score: 1

    Actually, it's the same point. Whether it's an OS, a programming language, a scripting language, a web browser (that interprets markup and scripting languages) or some other application, it's all just a series of 0's and 1's that serve to translate human intent to machine output. There may be several layers of indirection involved - mechanical interfaces like keyboards, mice, displays, touchpads, etc. included - but that's what it comes down to. Get the user input and implement it.

    Of course, the indirection does serve a number of purposes. For instance, the web browser differentiates what parts of your instructions should be run locally and which should be sent to the web server for processing.

    Karma:insignificant

  143. If you wait long enough .... by crmartin · · Score: 3, Insightful

    ... in this business you'll eventually hear everything twice (or more). If you look back to (eg) Parnas, et al, and the A-7 project, you'll discover that back in the late 70's and early 80's a key notion was that both the OS and the language were part of the "hardware hiding" layer.

    On the IBM System/3 in the later 60's and early 70's, the RPG/II compiler generted a binary that was booted onto bare iron to run. (If you were really down-scale, like I was, the compiler was a bootable 4-foot deck of punch cards and the result was a freshly punched deck of cards that was itself bootable.) This included the code for both the "program" -- the business logic -- and the "operating system" that allowed the program to control card reader, printer, and disk drive.

    On the IBM 1401, people had decks of program cards that did specialized things, like control the printer; you added them to your program. I'm sure Goldstein and von Neumann had something similar.

    What I wonder sometimes, though, is whether this repetition of the same old idea, generation by generation, proves that "computer science" is essentially a dead topic?

  144. 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.
    1. Re:The application becomes the shell by AtrN · · Score: 1
      Old news (for those of us around at the time...)

      Adventure Shells

    2. Re:The application becomes the shell by burns210 · · Score: 1
      Oh, you are talking about ash...

      http://nadvsh.sourceforge.net/

      " You are in in Rene's room. (/home/rene)
      What now? cd ..
      This is the home of the lesser gurus and the neophytes. You see pasty people sleeping. Some have a keyboard pattern imprinted on one side of their faces. These people need to get out more. "

    3. Re:The application becomes the shell by burns210 · · Score: 1
      sorry, there is mud-shell too.
      http://www.xirium.com/tech/mud-shell/

      the cool thing about mud... it was inspired by a... slashdot post!
      http://www.xirium.com/tech/mud-shell/idea/index.ht ml

  145. Gears and pulleys by bluethundr · · Score: 1

    A number of years ago when I decided I would finally buckle down and start learning languages one of my main motivations was that I was naive enough at the time to believe that right behind the wheels, gears and pulleys (which is how I thought of the OS) was the guts of the machine.

    Of course, once I became acquainted with C and C++ what did I find? More gears and pulleys- in other words yet another layer of abstraction. I am comfortable enough in C++ and Java to think of them as OSes.

    I never found a need on a personal level to become profficient in Assembly language, but after a while I finally became acuanted with that as well- at least enough to learn that this was the final destination- what I had been after as my initial motivation to learn how to program.

    --
    Quod scripsi, scripsi.
    1. Re:Gears and pulleys by Anonymous Coward · · Score: 0

      s/acuanted/acquainted

  146. Remember the C64? by venomkid · · Score: 1

    Basic interpreter right out of the box. You could do "hello world" from the command prompt.

    I've heard it said before that an operating system is there to hide the deficiencies of a programming language. Seems now they're just there to make up for wonky and disparate platforms.

    --
    vk.
  147. GOATSE.CX warning!! by Anonymous Coward · · Score: 0

    click if you want, though..

  148. Multiple translations make JVM slow by yerricde · · Score: 1

    they will build translators from whatever made up language they like to the language the machine does understand (i.e. compilers and virtual machines).

    But the more translation layers there are between the source code and the hardware, the slower the code will run. Look at the difference in performance between C++ code, which is compiled directly to machine code, and Java code, which is compiled to JVM bytecodes and recompiled at runtime to machine code.

    Do you really think you would want to write a GCC backend that emitted Ada source code?

    --
    Will I retire or break 10K?
    1. Re:Multiple translations make JVM slow by smittyoneeach · · Score: 1

      Do you really think you would want to write a GCC backend that emitted Ada source code? GCC already compiles Ada, if this is accurate.
      Do you mean a de-compiler? Why?

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    2. Re:Multiple translations make JVM slow by Minna+Kirai · · Score: 1
      But the more translation layers there are between the source code and the hardware, the slower the code will run.

      That's not really true, although it happens that way in many cases.

      Looking at the example of Java vs C++ specifically, the slowness is actually (sometimes) due to the heavier semantics of the Java language. For instance, take a complier (like gcc/gcj) which can turn both C++ or Java code into a finished native executable.

      Program some time-consuming math alg (Fibonacci, Newtonian integration?) in both, and measure the runtimes. Java will be slower by almost a constant factor.

      Why?
      • Maybe skill of the compiler-authors (The GCC team just does't know how to do java well yet?)

        If we accept this point, that some compilers are simply better than others, than we can imagine a situation where compiling C++ into Ada is beneficial: You recieve a powerful NSA-surplus machine which only runs Ada, and you'd like to run Apache and Mozilla on it. Rather than re-writing those in Ada, it may be faster to use a "cxx2ada" preprocessor on the application source code.

        (That's not likely to happen, but with the new "hardware JVM" chips coming out, you may find a computer which can only run Java programs, and compiling C++ into Java might be a viable intermediate build-step)

      • Or maybe because the semantic's of Java's arithmetic operators require it to check for math exceptions (overflow, underflow, zero-divide) after every operation?


      You'd have to dig deeply into both compilers to find why.

      OTOH, the reverse assertion, that source code which is further separated from the hardware will perform faster, has sometimes been demonstrated to come true. (Although most modern compilers are still hobbled by legacy application-building techniques, and can rarely achieve such awesome successes)
  149. No one remembered Brainf*ck OS by Anonymous Coward · · Score: 0

    I'm disappointed :-)

  150. OSes API determine Programming languages by Anonymous Coward · · Score: 0

    If you look at the UNIX kernel and (g)libc. It is obvious that these were written in C. The system and library calls use arguments in a C style fashion.

    Windows code contains alot of object orientation and C++ was used. Its system/library calls reflect this. You pass objects and handles.

    Of course you can use any language for any OS, but the OS API will define what most applications will be written in.

  151. Throwback by dirk · · Score: 2, Interesting

    So does this mean we are returning to the days where my Radio Shack TRS80 booted into basic? Maybe we can find a great way to store data on audio tapes next.

    --

    "Information wants to be expensive" - Stewart Brand, the same guy who said "Information wants to be free"
  152. Smalltalk, APL, Forth ... by linuxdoctor · · Score: 1

    The Programming Language as Operating System is old news. Remember Smalltalk out of Xerox? How about APL\360 which is a language and an OS.

    Other posters have remarked on Java and the possibilities there. Then there is Forth which is also a language and an operating system rolled into one.

    The prediction of the lanaguge rolled into operating system talking over has been made before, The thing that inevitably happens is that somebody, some day will have a need for a computer to do something new and unique and then have to throw out all the existing computing constructs.

    The magic of Unix is the fact that the operating system itself was designed to allow programmers to do new and interesting things using the tools they need -- or create -- to do the job.

    In the end, I predict that it is Unix that will take over and not any single language. It is Unix that will be used to create the next latest and greatest, and Linux will become the Unix of choice.

  153. Get in the way back machine.. by Joseph+Vigneau · · Score: 1
    to 1996:

    JavaOS has been built to be fully ROMable for embedded applications, and can run with as little as 512K ROM and 256K RAM. For network computers, an entire system with JavaOS, the HotJavaTM Browser and space for downloading Web content and applets requires only 3MB ROM and 4MB RAM. JavaOS can be this small because it is almost completely written in Java.
    1. Re:Get in the way back machine.. by jbolden · · Score: 1

      That's probably true. Back in the late 1990s Java was aimed at very simple programs.

  154. Language Runtime and OS are merging by bzhou · · Score: 1

    All those languages that works almost like OS:

    Lisp machines

    Smalltalk-80

    Forth

    UCSP-Pascal

    Java

    .Net languages

    have one thing in common, in addition to the language itself/themselves, they all rely on the language runtime. The more the dependence on the language runtime, the more they look like OS. If you look at the most fancy runtimes, they manage memory, processes/threads, lots of similarity!

    So Mr. Flat does have his point. But it probably can be stated more clearly as: language runtime (not language itself) and OS are merging. We went thru the phase of building better machines to support optimized compiler, now we are trying to build better support to the running of computer languages.

  155. What about .Net? by Anonymous Coward · · Score: 0

    I agree about the problem of single-language for an OS (but this is essentially what we have now for Unix/Windows - C is the OS language. Other languages have to be able to make C-style calls in order to use the OS features.)

    BUT What about the .Net framework? It provides the same base OS features to any number of programming languages. Microsoft has stated that they're going to publish all future functionality in Windows through .Net (i.e., NO more C apis - no .Net wrappers around C APIs; the OS will be exposed as objects).

  156. Parrot by jbolden · · Score: 2, Interesting

    The VM for Perl called Parrot so far supports: Perl 6, Quick Basic, GW Basic, Python, Ruby, Java. :Perl 6 was the target language;
    Python, Ruby were considered important add ons
    Java allows the Parrot VM to be the main VM
    The Basics were ported as a test of porting a language that Parrot was not designed to support (i.e. a test of how good a generic VM it is)

    1. Re:Parrot by Anonymous Coward · · Score: 0
      "Supports Python, Ruby, ..."

      Well, yes, if you define "supports" to mean "doesn't yet run".

  157. Am I the only person that remembers... by EvilTwinSkippy · · Score: 1

    Well you had C which was written for Unix which was written for C. You can't understand one without the other.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  158. It's been done before... by voodoo1man · · Score: 1

    As a matter of fact, it's how Smalltalk started out (well, alright, Smalltalk wasn't used as a systems language on those machines, but it was used a lot for the interfaces and other stuff).

    --

    In the great CONS chain of life, you can either be the CAR or be in the CDR.

  159. This only happens when someone wants to look smart by E_elven · · Score: 1

    The premise gives is really pretty bad.

    The operating system is the piece of software that manages all the resources and all user processes on a single computer.

    An OS is written in a programming language, usually (be it VB, C, Assembler or anything else.)

    A programming language can be used to request the OS of the machine to perform the functionality the coder has written.

    Java Virtual Machines are operating systems, in a sense. However, they also make requests to the OS proper of the machine. The VMs are simply pieces of software intended to facilitate other software to be run over an intermediary layer. However, even given these considerable accommodations, the VM isn't a programming language, it is software, written in some programming language.

    If an operating system is written in LISP, it's an operating system -but LISP isn't. The operating sytem just is written in it.

    If one must try to prove their intelligence in some manner, the proper way would be to relate the abundant virtual machines to operating systems, but this, this is just a waste of time.

    E

    --
    Marxist evolution is just N generations away!
  160. Re:A Microprocessor *IS* a language Interpreter by AtrN · · Score: 1

    At last someone who understands! And I don't mod :(

  161. OK, I'll bite... by fishbot · · Score: 1

    The idea of a programming language and an OS being even conceptually similar is absurd. Sure, parallels may be drawn in that they both allow people to access the system, but in fundamentally different ways.

    A program language is just that, a language. It is a method for a programmer to instruct the system to perform tasks. This is then converted into something the operating system can understand by the compiler/linker, or the interpreter. The OS then has the responsibility of loading the executable, assigning memory, timeslicing, virtual memory management, and ultimately allowing it access to the real hardware underneath.

    Always there are 4 levels:

    hardware -> OS -> compiler/interpreter -> language

    There are those who point out that old IBMs loaded ROM BASIC if there was no other OS. This does _not_ mean that BASIC is an OS! It means that a very small OS with only enough nouse to access the BIOS functions (which in this case is acting as th e barrier between user and hardware, the OS) via the interpreter built into the ROM. There are the 4 levels again.

    A similar argument is made for the various 8 bit home computers, which apparently had BASIC for an OS. But take the BBC B. What happened if you remove the BASIC ROM? Can it now not boot due to having no OS? Of course it can, because of the OS built into the ROM. It was roughly equivalent to a modern BIOS, with a simple commandline interface (the * commands) but it knew enough to be able to load and execute binary files from disk or other ROMs. The same 4 levels existed, the interpreter being the BASIC ROM, and the language being the files on disk.

    I'm rambling a bit now, but to bring it to a modern perspective, there are folk who say that JAVA is (or can be) an OS, because of the virtual machine. However, there are still three levels (language->bytecode compiler->VM) which still needs the OS and hardware underneath. The Java VM concept actually needs more levels of abstraction than a conventional language!

  162. Fixing bugs in the OS by regarding it as a PL by bauzeau · · Score: 2, Insightful

    A very cool instance of the duality has been under research at Stanford, in Dawson Engler's group. They look at kernel "rules" as a programming language, and then they run a compiler checker on it to catch semantic bugs.

    For example, lots of cases where locks where aquired but never released, or aquired twice in sequence in the Linux kernel were identified by considering the sequence "lock(x); ...; relase(x);" as a language construct, and then looking for device drivers or modules that didn't abide by it.

    I believe there was a Linux kernel subversion named after these guys, for finding a gazillion deadlocks and such bugs in an automatic fashion.

    Take a look at their first paper on this.

    They have a whole slew of updates to this at
    Engler's web page. I believe there's a similar project at Berkeley as well.

    Cheers,

    bauzeau

  163. FORTH by chillywillycd · · Score: 1

    I'm really surpsied no comments on FORTH have been moded up. pbForth was one of the 1st language/OS combos i ever heard about. i guess Forth's just not as popular as Smalltalk...

    and here i thought i was in the geek land of obscure is cool...

  164. Software by Anonymous Coward · · Score: 0

    I've always said that software patents steal from those who made the hardware and the compiler, I find this similar in concept.

  165. The name or the kernel by jbolden · · Score: 1

    I don't RMS is actually bipolar with regard to the Linux kernel. In everything from changing the scope and priority of Hurd to Debian to even his contributions he is very supportive of the software as part of the GNU project.

    I think he doesn't personally like Linus very much and he hates the fact that massive number of people are being exposed to the GNU project without understanding the underlying idealogy. This btw is quite true. I bring up basic FSF 101 stuff here like the notion that software but not hardware constitutes an artifical economy and many people act as if they are hearing this for the first time.

    So no I don't think he is bipolar at all. The battle has changed from creating a free system to getting the people using the free system to understand how and why the ground was laid. When RMS is dealing with Linus he is dealing with a guy considerably younger than himself who wasn't there when a great deal of the important battles of the 70's were fought and therefore doesn't understand the context that he is working in.

    But I don't think RMS is at all unhappy that the FSF operating system is about to become the #2 operating system in the world. That is a major victory by any standard.

  166. Re:Smalltalk as OS by Smurfboy · · Score: 1


    Let us not forget the mighty Squeak:
    http://www.squeak.org

    Nachos for Life!

    --
    k.h.
  167. Insightful! by stephanruby · · Score: 1

    This article describes a universal characteristic of most seminal languages that most of us had to learn. The fact that the author just figured this out tells me something about his age.

  168. Smalltalk/MacOS by chillywillycd · · Score: 1

    now people have heard of that supposedly GUI based OS called MacOS right?

    as the story goes (according to me), Xerox PARC develops a language called Smalltalk. this OO language has this funny little feature that a user interacts with it via Graphics. They also develop the computer to go along w/ the language that's based on the same idea. the user interacts w/ objects on the computer via graphics.

    Apple likes the idea, and adopts it for a new computer named Lisa. The Lisa becomes the Macintosh and gets popular...

  169. An easy definition by jbolden · · Score: 1

    I'm going to go with a pragmatic definition that the OS is all the software that is included free with the "operating system" box. So for example it's not even unreasonable to consider Office small business edition part of Windows, to consider MYSQL part of GNU/Linux, to consider iTunes part of MacOSX. Certainly these are all meant to be extreme examples but really they are what hold the OS together.

    What is Windows apart from the Productivity Suite? What is Linux apart from the thousands of GNU apps? Is Darwin anything more than a naked component of OSX?

  170. Been here for years: it's called Lisp! by Kaz+Kylheku · · Score: 1

    So what will happen is that the clueless masses will merely become *aware* of the possibility that there need not necessary be a sharp boundary between the programming system and the operating system kernel. Well, that's progress too, I suppose. ;)

    If the programming language is safe, and special privileges are required to load arbitrary machine code, you can do away with the kernel/user boundary that is enforced by the hardware, and the parameter validation overheads that entails. If a disk-writing function receives a byte array from the application, it can just trust the integrity of that object---that it doesn't contain unmapped pages, etc.

    Security credentials can just be an ordinary object that you inspect using an ordinary accessor. The language-level mechanisms ensure that you can't fake credentials, simply because you have no write-accessor to do it, and no way to fake one, not having access to writing raw machine language.

  171. Backend != frontend by yerricde · · Score: 1

    GCC already compiles Ada, if this [gnu.org] is accurate.

    I wasn't talking about GNAT, a GNU program that turns Ada code into machine code. That would be an Ada frontend for GCC, not a backend. I was talking about a program that would take C source code and output Ada, allowing a program written in C to be used on a system that allows only Ada.

    --
    Will I retire or break 10K?
    1. Re:Backend != frontend by smittyoneeach · · Score: 1

      Ah, so so so.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  172. So, one day we'll boot Perl? by smittyoneeach · · Score: 1

    That will be cool. Hopefully, "Larry" does better in the marketplace than "Bob".
    Seriously, we speak of information systems, and the discussion amounts to "Where shall we choose to draw lines in the abstraction hierarchy?"
    I submit that a similar discussion could be had on the similarities/differences between TCP/IP stacks and the OSI stack. Which is more pedantically pure? Who cares? Differences that make little difference, say I.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  173. Re:A Microprocessor *IS* a language Interpreter by Detritus · · Score: 2, Informative

    What is the real instruction set? The processor's user-visible instruction set may be implemented in random logic, FPGAs, microcode, traps to machine code or some combination of the above. There can be more than one level of microcode. Some processors have a writable-control-store, allowing the manufacturer and/or user to change/enlarge the processor's microcode and instruction set. Western Digital used to make a multi-chip CPU that could be a DEC LSI-11 or an UCSD Pascal p-Machine by changing the control ROMs. On an IBM mainframe, an operating system call may be implemented in machine code, microcode or hardware, depending on which model you have.

    --
    Mea navis aericumbens anguillis abundat
  174. All I have to say is.. by gatekeep · · Score: 1

    Load "$",8,1

  175. Apples and oranges by glenebob · · Score: 1

    Apples and oranges are the same thing too. They have at least these things in common:

    1) Grow on trees.
    2) Round.
    3) Taste good.
    4) Good for you.
    5) Make great juice.
    6) Same size.
    7) Used as an analogy for things that do not compare well.

    See? Apples will become oranges.

  176. Re:Sure, the distinction is artificial/arbitrary.. by agaznog · · Score: 1

    Quoting from --someone/somewhere-- "who wants to code on a machine that can only use one language?"

    You don't have to use only one language, since you can write any language you like by building a --compiler-- in the 'Single OS/PL language' proposed. This compiler takes code from your invented language(s) and translates it into the 'native' language of the machine. Hey wait a darn minute, that's exactly what we're already doing!

    And of course, by definition computers (read: Turing Machines) can simulate a Turing machine which can simulate a Turing machine, which can... which is really just a rewording of the above paragraph. So yes, the distinction made between PLs and OSs is artificial, a cultural artifact, when speaking in the strictest sense.

  177. Confusing the concept of a "Platform" with that.. by Anonymous Coward · · Score: 0

    of a programming language. They are in fact completely different things. Programming languages define the constructs for describing a process the computer needs to do.

    The platform OTOH defines APIs, memory models, etc. "C" is NOT an OS.. its a programming language. The POSIX APIs, Stdlib.h, etc. compose a platform you can compile C code against.

    Esentially the platform is a foundation upon which you use a programing language as a tool, in order to build the program on top of the foundation.

    Java is considered both an language and a platform. But that is incorrect. There is a Java language, and a Java platform. They are two different things. The platform defines the JVM and the standard APIs, the language defines a set of constructs used for describing programs.

    Evidence that this is the case can be found in the fact that other languages are available to compile against the Java platform.

    The same can be said of .Net. .Net is NOT a programming language, but merely a platform. There are a variety of languages (C#, VB, VC++, etc) that can compile against the .Net platform.

  178. Re:Sure, the distinction is artificial/arbitrary.. by Dan+D. · · Score: 1
    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?

    Well RMS seems to think so, at least about grep. Otherwise we wouldn't have to tiptoe on eggshells about that whole "Do you name your OS after your kernel?" ... but do we name our OS after our applications?

    --
    People who quote themselves bug the crap out of me -- Me.
  179. Or... by pb · · Score: 1

    You could just call the ROM BASIC interrupt.

    That was my first assembler program, too. :)

    If you do it in SoftWindows, a window will pop up that says "SoftWindows does not support ROM BASIC". :)

    --
    pb Reply or e-mail; don't vaguely moderate.
  180. That's right. by Anonymous Coward · · Score: 0

    We still have those today, although people have taken to calling them "byte code"...

  181. My language is licking your sister by Anonymous Coward · · Score: 0

    I want my computa to run a language/os based on intercal.

    Do you mind if I fuck your sister's ass while I wait for it? I'm sure she will enjoy the ftp process (get/put) running or her slot. Thank you for your cooperation.

    w007!

  182. Competition considered helpful by bill_mcgonigle · · Score: 1

    Language/VM/OS is a useful abstraction. So far, we have lots of Languages and lots of OS's, but relatively few VM's. For example, if one could compile Java to run on the JVM and Parrot, well - I'm not quite sure what you'd do.

    And that's my point.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  183. interesting.. by panic911 · · Score: 1

    This reminds me of my old Atari 800xl. Had BasicOS - a simple (yet fairly robust for the time) basic interpreter. Had to know a thing or two to be able to do anything with it though.

  184. Games please. by Anonymous Coward · · Score: 0

    I was always hoping games would replace my OS. Well, better keep trying.

  185. This is utterly obvious... by mrdlinux · · Score: 1

    ..to anyone who has ever used a Lisp Machine, Forth Machine, Smalltalk system, or any one of the other dynamic, interactive programming language environments.

    Here's a useful link:
    No-Kernel systems.

    --
    Those who do not know the past are doomed to reimplement it, poorly.
  186. Am I the only one? by Anonymous Coward · · Score: 0

    Who ever worked in a PICK environment?

    It IS the OS, and IT IS the Database...
    and it runs very nice on intel 8080, or Z80 processor...

    (Man, I must be oooooolllllddd!)

  187. With due credit to my professor by Anonymous Coward · · Score: 0

    An operating system is a resource manager and an abstract interface(Andresen 2002). A programming language is more nebulous, but if it can manage resources and present an abstract interface then I can't see how modern programming languages couldn't be considered Operating Systems in some respect. Most langauges offer memory management, mutlithreading support, etc, and many have a solid API for things like hardware interface (SDL...). Java borders closely on this, although it takes the JVM (which has probably been argued before to be an OS in its own right).

  188. Buffer overflow vulnerabilities? by TheLink · · Score: 1

    Isn't Forth just as prone to buffer overflows as C?

    It's great for drivers/firmware but once you go to the other layers, it seems to become as error prone as C.

    I don't see that many complex apps written in Forth. I've personally crashed a Forth webserver on practically my first test. It died and didn't come back up (the author has fixed the problem).

    As a general purpose language there doesn't seem to be as much going for Forth as say LISP.

    --
    1. Re:Buffer overflow vulnerabilities? by jbolden · · Score: 1

      Remember I was talking about complexity your hitting on other issues here.

      Isn't Forth just as prone to buffer overflows as C?

      No its probably a little less prone because Forth programs tend to use much dynamic types of storage. That is for cultural not tecnical reasons. In any case it would depend on the underlying structures.

      It's great for drivers/firmware but once you go to the other layers, it seems to become as error prone as C. I don't see that many complex apps written in Forth.

      Postscript is essentially Forth; so that's one. Mathematica's internals are very Forthy.

    2. Re:Buffer overflow vulnerabilities? by TheLink · · Score: 1

      You're right, I'm going a bit off topic.

      It's just that some computer languages can be very easy to write in if you don't care about robustness but a lot harder if you do care. Whereas with others writing a reasonably robust program doesn't take much more effort. (Humour me - I'm in the infosecurity line, we tend to look at stuff from different perspectives, with perhaps different priorities).

      It's just last year I was looking for info on secure programming in Forth (and LISP too), and found this:
      http://groups.google.com/groups?hl=en&lr=&i e=UTF-8 &oe=UTF-8&safe=off&selm=ttp2ma.7t7.ln%40cohen.pays an.nom

      Are you talking about the same sort of dynamic stuff as he is? Or he's screwing things up?

      I suppose people don't normally program that style? But what would be a secure style tho? I've heard another tip - keep the dictionaries separate. But such info seems pretty scattered and sparse.

      --
    3. Re:Buffer overflow vulnerabilities? by jbolden · · Score: 1

      Your link isn't working. With something like that I'd use the a href format to get slashdot to take it and preview. So anyway I can't respond to the specifics.

      Slashdot offers a preview command but you didn't use it; probably because the time invested in a response is fairly low and most things tend to work and so you tossed in the link untested. That is usually why people have reliability problems with dynamically typed languages. Initial programmer effenciency is so high that rigerous planning and testing often don't happen at the lower levels. Forth is generally dynamically typed so you'd get the robustness issues you would typically get. OTOH if you can get people to test their lower level command carefully the system should be very robust. And testing subroutines is really, really easy because of the interpreted environment.

      In any case error recovery is probably the biggest weakness of Forth. Function is very cheap because there is little setup between functions. But what that means is that if a long chain of function calls results in an error recovery can be difficult.

      The way this is often handled is by having forths inside of forths. That is your main program has its own stack and creates a new stack for an execution environment for subfunctions (which may call lots of others). If the function errors out then the main function gets the error message (which is hopefully detailed) and if not it gets the result. This makes function calling expensive but very robust (essentially subfunctions are executing on a VM). The nice thing is these levels can be added late in the process once the areas of poor reliability are known.

      So for example on a forth machine running at the lowest level typing "1 0 /" will crash the system with a divide by 0. OTOH throw up a VM and then you'll just get an "UNDEFINED" passed back to the higher level; which doesn't create much of a problem. Anyway that's the way I'd handle problems but again I'm not really sure what you are running into.

      As for where to find lots about Forth... well I'm a Perl guy not a Forth guy (though I know Forth). My experience has always been though that it is much easier to write high reliability software in dynamic programs because places where errors are likely to occur are obvious (bugs increase faster than the number of lines). In static languages debugging errors can come from all sorts of sources in dynamic languages the number of possibilities is more limited.

    4. Re:Buffer overflow vulnerabilities? by TheLink · · Score: 1

      Sorry. Strange, it worked when I tested it, doesn't work today.

      I'm not sure what URL to use. You can find it by doing a search on google groups for:
      forth overflow hangs

      It's to do with Bernd's webserver (that's not the Forth webserver I crashed tho).

      Separate stacks. Nice! Well you and a few other posts (on google groups) have convinced me that Forth can be significantly safer than C. Thanks!

      I'm actually not running into any problems with Forth. I haven't really even learnt Forth! My problem so far has been finding information on how to program Forth securely (or LISP).

      I'm aware of many of my limitations, so before I learn another computer language I'd like to know certain things about it. How to program in it securely is one. Better to see what are good habits and concepts first. There are so many languages out there - so if one doesn't care one might as well learn Java just for buzzword compliance ;).

      I'm a Perl guy too. So far it hasn't been too difficult to program robustly in Perl. There's a performance hit here and there tho. Oh well, hasn't been too bad when it comes to network stuff. And with the Intel-AMD battles, performance seems to be just 18 months behind ;).

      p.s. Is there a "Use this link" feature in Google Groops? A link that would keep working for medium term at least.

      --
  189. Re:A Microprocessor *IS* a language Interpreter by TheLink · · Score: 2, Interesting

    Mod parent up.

    Seems too many people forget that "rooms, walls and controlled openings" are a good idea. The bigger the building the more important they become. Sure you can have one huge room and put everything in it, but you'll end up partitioning it anyway. And even then either you resort to separate rooms or accept that the furnishings and decorations will be inconsistent within a room.

    Me: One man's impedance mismatch is another man's layer of abstraction.

    It's more likely that someone will add yet another type of "room" than for things to merge together.

    --
  190. A little older references.. by tuomoks · · Score: 1

    Anybody remembers Burroughs and Algol ( Espol ). What about DataSaab and Algol - way back - and just for fun.

  191. A keen observation of the UTTERLY OBVIOUS by hmatt · · Score: 1

    see title

  192. OS = Program by Loonacy · · Score: 1

    The way I see it, an OS is just a program. Applications compiled to run on an OS are basically just "plugins."
    Programming languages are used to make programs, but programming languages are not, in themselves, programs. There are strong relations, to be sure, but they aren't the same thing.

  193. Related comment by Anonymous Coward · · Score: 1, Interesting

    I am not convinced by the original article, but I do believe that we will move towards running multiple machines, operating systems or whatever they may be, at the same time.

    For example, one of my machines boots up with win2k. I can play games, my wife can run outlook etc. Then I have one or sometimes two vmware sessions running Linux. There I can do my programming, play around, and connect to work and run X against their servers. And my wife doesn't have to log out from her windows while I'm doing it. I can also access the linux subsystem from a Windows X terminal, and the filesystem as well, which in practice gives me an embedded linux kernel within my windows.

    There are a lot of fun and practical things you can do with a setup like this, especially if you are a geek. :)

  194. Very good reason to partition environments by Moderation+abuser · · Score: 1

    And it's not arbitrary, traditional or cultural.

    Simply, it's complexity management.

    By partitioning things into multiple layers you can mange the complexity of your computing environment.

    e.g.
    You have 5 different graphics card to support? You create a driver and write to it's API.

    Want to schedule the execution of multiple applications, you create a service and write to it's API.

    Operating systems are tools for managing complexity.

    *That's* the fundamental logic of the way things are.

    If you integrate these kinds of features into a single language, you still have an operating system underneath managing the complexity, it's just a language specific operating system, and *that* doesn't make any fundamental sense.

    --
    Government of the people, by corporate executives, for corporate profits.
  195. FORTH by Jayfar · · Score: 1

    subject sez all.

  196. That's not quite right by melonman · · Score: 1

    The BBC Micro is actually a fairly good example of separating the language from the OS. They were on two different ROM chips. If you unplugged the BASIC ROM, it booted to a shell prompt. If you plugged in a Wordwise ROM instead, it booted into a WP. Or you could put in a FORTH ROM... BBC BASIC was an application like any other.

    --
    Virtually serving coffee
  197. Erlang by Anonymous Coward · · Score: 0

    Erlang is built on the OS model to abstract the hardware and act as a multiplateform development environment.
    His threading mechanism is very efficient and do not use the OS one.
    You can have a look at: http://www.erlang.org/

  198. bullshit by mattr · · Score: 0, Troll

    this guy is confused, sorry.

    I wouldn't mind having a third as many articles per day if they had more clues and less cheerleading.

    Or is this a mutual masturbation and crawling into our navels society? Feh.

  199. Languages are more portable than OSs by melonman · · Score: 1

    I'm currently working on a project that needs to run on a Windows network, and when I started I didn't have a Windows machine. I've done the whole thing in Perl/Tk, and, apart from a couple of small routines that switch slashes to backslashes in filenames, the whole thing, back end plus interface plus data files, is transparently portable.

    Of course I could tie myself to a particular platform by using specific system commands or whatever, but sticking to the generic bit of perl (ie most of it) means that, for all intents and purposes, I can forget about OSs entirely.

    --
    Virtually serving coffee
  200. Re: [OT] Nybble vs. Nibble by Anonymous Coward · · Score: 0

    It is Nybble. It's a pun on "byte".

  201. Forth and Basic on the 6502 by Felinoid · · Score: 1

    Forth programming language was often used as a stand alone system on 6502 hardware.
    Many late 1970's early 1980's computers based on the 6502 used basic for the operating system.

    Commodore Pet/CBM,Vic20,64,128,B series
    Apple II series
    Atari XL 8 bits
    Cray 6502 pocket supper computer for mad scientists (Top secret) Oh wait you can't know about that one..

    Ummm Oh yeah and the latest one RIAA's recomended specs thow instead of a 6502 they use a Z8.

    --
    I don't actually exist.
  202. Old hat Re:Lisp by IXI · · Score: 1

    Seems to me that this is old hat.

    Contrary what others replied to your post you are damn right. This is a really old hat. Another example for an ancient programming language that was used and designed as an OS is Forth -- the language for "4th generation computers".

    --
    He saw some dirty arabs and fired. Too bad it was just some friendly kurds, BBC reporters and his fellow cowboys.
  203. But... by mschoolbus · · Score: 1

    I thought AOL was my computer and OS... =P

  204. increasingly embarrassing personal confessions on by wunderhorn1 · · Score: 1

    sex, drug use, music, government secrets, scams, circumventing the law, satire, and other boring stuff like they have kuro5hin"

    --
    Karma: Bored. (Thinking about resurrecting the "Anyone else is an imposter" joke.)
  205. oops by Anonymous Coward · · Score: 0

    I meant to say, before I accidentally hit return, that sounds exactly like everything2.com

  206. I'd have to vote for assembly language by Anonymous Coward · · Score: 0

    or has it been done already?...MU-WHA-HA-HA....

  207. Old News by $QIO · · Score: 1

    Programming languages have been operating systems for decades, e.g. FORTH etc.