I repeat Inferno started out as a Java competitor. Dennis Ritchie and co were pulled out of Plan 9 to immediately work on Inferno.
How do you know, were you there?
I work with someone who was there. Someone who has been closely involved with the Labs from the earliest days of Plan9 and Inferno.
Your version of events certainly doesn't
correlate with his!
That's pathetic.
You shouldn't have to worry about such things.
Extending a base class! - why on earth should I have to do that? I thought the whole point was that the system was portable - straight out of the box. This is certainly the case with Inferno.
As for
Of course, it's idiotic to do something like:
path = "/usr/me/myfile"; in the first place. A much better way is to define a base path (or several), which is read from a config file and then you just add file names to that base path
So what is the representation in the config file?
Sounds like you are still going to have to do the same shitty conversions.
W.R.T. your comment about THINKing.
It is my experience that many people do not think, or even if they do, are ignorant of the issues. Having a language and operating system that minimises such pitfalls results in less buggy and more portable code.
It does indeed run outside of the browser.
In fact the plug-in is using the same
kernel code as the other hosted versions of inferno.
These exist for Linux, Windows(95/98/ME/NT/2000),
FreeBSD, Solaris, Irix and HP-UX.
Inferno also runs natively on the raw hardware.
Ports exist for Compaq IPAQ, various web-phones, various pieces of network gear including a firewall, set-top-boxes etc. etc.
Check out the Vita
Nuova website for info on ports and how to get the software.
As for targeting other browsers, yes there is already a Linux/Netscape version in production.
With others to follow.
But if I wanted to change the sample rate, I had to go use a non-file interface.
On inferno...
echo rate 22050 >/dev/audioctl
changing volume, encoding and all the usual audio parameters is done in the same way.
As for security. Inferno allows you to authenticate connections to your machine.
You can choose the namespace (and hence devices)
visibile to clients on a per connection basis, optionally authenticated, digested and/or encrypted.
Inferno (and the plug-in) comes complete
with a shell. The syntax is closely related to
rc, with all the usual shell script primitives and a whole load more - including a TK interface.
Given Inferno's namespace approach to devices and resources, the shell becomes very powerful. For example, network connections can be established with simple shell commands such as cat and echo. This makes it
possible to write things like Chat servers and clients using shell scripts - indeed this has already
been done!
Info on licensing...
The license for the plug-in is exactly the same as that for the free Inferno download
You can run Charon (the Inferno web-browser)in the plug-in.
I've done it!
There isn't much point until the networking
security model is established - the current
plug-in has networking disabled until the security
model is mature enough to enable it.
We could enable networking right now, but that would be irresponsible.
I have a version of the plug-in with networking enabled which Charon runs in without a hitch.
Pretty strange using one web browser inside another one!
Vita Nuova are
offering free t-shirts for anyone submitting
interesting (e.g. not hello world!) applets
for the plug-in.
To develop limbo applications you will need to download the free version of Inferno.
This comes with compilers, source code for all the standard applications and libraries, the Acme
development environment and full documentation.
More than enough to get you started.
There is even a paper on writting limbo applications for distribution using the
plug-in
There already is a win32 inferno emulator,
in fact, that is what is running behind the plug-in.
The same emulator is available for Linux, Solaris and FreeBSD. The plug-in enables another mode of distribution. It is a small download that enables people who would rather not download the entire Inferno system, including compilers and source code, to run Inferno applications
The plug-in download and installation is much smaller and more seamless because it is more
specifically targeted.
When wanting to demo your apps, what is a suit
more likely to use, a web browser and a small
plug-in or a separate, much larger, download that still requires you to fetch the files you wish to run from somewhere off the net - for which you will probably use your web browser!!!
Inferno is most definately an OS, it runs on my
IPAQ and my internet screen phone.
The point of the plug-in is that any app that I can run on my IPAQ or my screen phone, (or set-top-box, or on the Windows desktop, or Linux KDE, or fridge!) will work unchanged and without re-compliation, in the worlds most popular
web browser.
So I can let people try out my latest IPAQ application without having to download onto their IPAQ. They can play with it using IE (and other
browsers coming soon) and then download it onto the IPAQ if they like it.
Limbo is the programming language of inferno.
Inferno is an OS - it runs natively on
real hardware. It can also run hosted
(or emulated) on another OS (e.g. Linux)
The whole OS is emulated, not just the dis VM.
[dis is the name given to Limbo bytecode]
This means that the environment of limbo applications is the same no matter what platform
the OS is running on - this is most definately
NOT the case with Java.
Under Java you have to worry about crud such as what the path separator (/ or \) is on the platform you're running over.
I did notice some of the Styx functionality has been removed for security
Yup, I'm working on the security model right now
(when I'm not reading/. !!!)
Once we're happy with it, an update will be made available which will open up the networking support.
We have some pretty cool applets available that use
the networking. These will be put up on the
vita nuova web
site, with the plug-in update once the security model is right.
Imagine...
you have just implemented a really cool application
for your next generation (Inferno) web phone or PDA and you want your investors, or potential
customers to have a look at it.
How do you go about it? Screen shots? PAH!
Put it on your web site and let them play with the real thing. No recompilation is required.
The same app runs on your phone, your pda, your fridge, Windows desktop, Linux desktop, Solaris desktop, and now - Internet browser!
BTW: It is not Open Source, it is $300 for a source license
You actually get most of the source
with the free download, just not enough to
port to a new platform.
You do get all the source to the limbo applications including x509 and ASN1 support, a
javascript enabled web browser, the limbo version
of Acme (wily to some), image file converters, a simple http server and a whole bunch of the usual
Unix commands.
I prefer a language to loudly tell me what's going on, rather than putting a lot of meaning into puncation.
I have found limbo to be the most readable
programming language I have encountered.
Of course, any language can be used to write
poorly structured or obsfucated code. But some
languages make it difficult to write clear
concise and coherent code.
Contrary to your preference, I find that excessive
syntactic sugar gets in the way of quickly determining the intent of a piece of code.
(viz. source code with excessive comment lines - you soon lose the plot, especially since comments are almost always out of date w.r.t the code!)
I agree that such sugar can make poor code more readable by emphasising syntactic structures.
This is a poor substitute for good coding.
Alef was dropped from the latest version of
Plan9 (3rd Edition) It was proving
too irksome to port "yet another compiler" to
each Plan9 platform, so a C threads library was written and many Alef programs ported to use it.
Many Plan 9 ers have lamented the loss of Alef.
If you are interested in Alef like languages you
should check out Limbo, the inferno programming language.
Inferno runs hosted under Plan 9 and many other operating systems.
There's even an browser plug-in so that you can run limbo apps in an Internet Explorer web-page!
Rubbish - the type system is flawed and
the syntax is ugly.
and before you ask - yes I DO know
what I'm on about.
I worked on a Validated Ada compiler.
It was the most compact (lines of code) validated
compiler of its day.
I worked on several areas of validation suite compliance and an Ada Debugger.
I then went on to work on much more interesting things and a much more interesting and
elegant language - Limbo
For whatever reason, which we don't really need to know about as we are just programmers ... Face it, we are all going to have to learn this language sooner or later. Our management will see to that.
It's this sort of Head-in-the-Sand sort of attititude that means that M$ will continue to ply dodgy software that we all have to use.
Start telling your managers how poor this stuff is. Start showing them how good some of the alternatives are. Not condemming is as good as condoning. Make a noise - it's the only way to be heard.
Is it just a coinicidence that M$ announce C# the day after Vita Nuova announce the launch of 'Open' Inferno?
Inferno is a virtual OS that runs on many platforms, including tiny ones like Web phones. It even has its own programming language which is C-like, runs in a VM and has often been compared to Java.
Hmmm the lack of technical info on C# looks asif they have rushed this press release out rather quickly. One wonders if they are trying to detract from Inferno???
How do you know, were you there?
I work with someone who was there. Someone who has been closely involved with the Labs from the earliest days of Plan9 and Inferno. Your version of events certainly doesn't correlate with his!
You shouldn't have to worry about such things. Extending a base class! - why on earth should I have to do that? I thought the whole point was that the system was portable - straight out of the box. This is certainly the case with Inferno.
As for
So what is the representation in the config file? Sounds like you are still going to have to do the same shitty conversions.W.R.T. your comment about THINKing.
It is my experience that many people do not think, or even if they do, are ignorant of the issues. Having a language and operating system that minimises such pitfalls results in less buggy and more portable code.
It does indeed run outside of the browser.
In fact the plug-in is using the same kernel code as the other hosted versions of inferno. These exist for Linux, Windows(95/98/ME/NT/2000), FreeBSD, Solaris, Irix and HP-UX.
Inferno also runs natively on the raw hardware. Ports exist for Compaq IPAQ, various web-phones, various pieces of network gear including a firewall, set-top-boxes etc. etc.
Check out the Vita Nuova website for info on ports and how to get the software.
As for targeting other browsers, yes there is already a Linux/Netscape version in production. With others to follow.
On inferno...
echo rate 22050 > /dev/audioctl
changing volume, encoding and all the usual audio parameters is done in the same way.
As for security. Inferno allows you to authenticate connections to your machine. You can choose the namespace (and hence devices) visibile to clients on a per connection basis, optionally authenticated, digested and/or encrypted.
If you don't use those constants EVERYWHERE then you application will not be portable.
Which is easier...
path = "/usr/me/myfile";
or
path = pathSeparator + "usr" + pathSeparator + "me" + pathSeparator + "myfile";
The first one will work in Inferno on ALL platforms.
A paper on the shell is available here
Given Inferno's namespace approach to devices and resources, the shell becomes very powerful. For example, network connections can be established with simple shell commands such as cat and echo. This makes it possible to write things like Chat servers and clients using shell scripts - indeed this has already been done!
Info on licensing...
The license for the plug-in is exactly the same as that for the free Inferno download
I've done it!
There isn't much point until the networking security model is established - the current plug-in has networking disabled until the security model is mature enough to enable it.
We could enable networking right now, but that would be irresponsible.
I have a version of the plug-in with networking enabled which Charon runs in without a hitch. Pretty strange using one web browser inside another one!
To develop limbo applications you will need to download the free version of Inferno. This comes with compilers, source code for all the standard applications and libraries, the Acme development environment and full documentation. More than enough to get you started.
There is even a paper on writting limbo applications for distribution using the plug-in
The same emulator is available for Linux, Solaris and FreeBSD. The plug-in enables another mode of distribution. It is a small download that enables people who would rather not download the entire Inferno system, including compilers and source code, to run Inferno applications
The plug-in download and installation is much smaller and more seamless because it is more specifically targeted.
When wanting to demo your apps, what is a suit more likely to use, a web browser and a small plug-in or a separate, much larger, download that still requires you to fetch the files you wish to run from somewhere off the net - for which you will probably use your web browser!!!
So I can let people try out my latest IPAQ application without having to download onto their IPAQ. They can play with it using IE (and other browsers coming soon) and then download it onto the IPAQ if they like it.
This is just one example of why this is exciting.
Limbo is the programming language of inferno. Inferno is an OS - it runs natively on real hardware. It can also run hosted (or emulated) on another OS (e.g. Linux) The whole OS is emulated, not just the dis VM. [dis is the name given to Limbo bytecode]
This means that the environment of limbo applications is the same no matter what platform the OS is running on - this is most definately NOT the case with Java. Under Java you have to worry about crud such as what the path separator (/ or \) is on the platform you're running over.
Yup, I'm working on the security model right now (when I'm not reading /. !!!)
Once we're happy with it, an update will be made available which will open up the networking support.
We have some pretty cool applets available that use the networking. These will be put up on the vita nuova web site, with the plug-in update once the security model is right.
You have to write your control as a windowed control which is slower to start and uses more system resources - sigh.
Imagine...
you have just implemented a really cool application for your next generation (Inferno) web phone or PDA and you want your investors, or potential customers to have a look at it.
How do you go about it? Screen shots? PAH! Put it on your web site and let them play with the real thing. No recompilation is required. The same app runs on your phone, your pda, your fridge, Windows desktop, Linux desktop, Solaris desktop, and now - Internet browser!
That's pretty damn cool if you ask me.
You actually get most of the source with the free download, just not enough to port to a new platform.
You do get all the source to the limbo applications including x509 and ASN1 support, a javascript enabled web browser, the limbo version of Acme (wily to some), image file converters, a simple http server and a whole bunch of the usual Unix commands.
I have found limbo to be the most readable programming language I have encountered.
Of course, any language can be used to write poorly structured or obsfucated code. But some languages make it difficult to write clear concise and coherent code.
Contrary to your preference, I find that excessive syntactic sugar gets in the way of quickly determining the intent of a piece of code. (viz. source code with excessive comment lines - you soon lose the plot, especially since comments are almost always out of date w.r.t the code!)
I agree that such sugar can make poor code more readable by emphasising syntactic structures. This is a poor substitute for good coding.
Many Plan 9 ers have lamented the loss of Alef. If you are interested in Alef like languages you should check out Limbo, the inferno programming language. Inferno runs hosted under Plan 9 and many other operating systems. There's even an browser plug-in so that you can run limbo apps in an Internet Explorer web-page!
Rubbish - the type system is flawed and the syntax is ugly.
and before you ask - yes I DO know what I'm on about. I worked on a Validated Ada compiler. It was the most compact (lines of code) validated compiler of its day. I worked on several areas of validation suite compliance and an Ada Debugger.
I then went on to work on much more interesting things and a much more interesting and elegant language - Limbo
The M$ mind-police have been working overtime on their employees havent they!
Face it, we are all going to have to learn this language sooner or later. Our management will see to that.
It's this sort of Head-in-the-Sand sort of attititude that means that M$ will continue to ply dodgy software that we all have to use.
Start telling your managers how poor this stuff is. Start showing them how good some of the alternatives are.
Not condemming is as good as condoning. Make a noise - it's the only way to be heard.
Inferno is a virtual OS that runs on many platforms, including tiny ones like Web phones. It even has its own programming language which is C-like, runs in a VM and has often been compared to Java.
Hmmm the lack of technical info on C# looks asif they have rushed this press release out rather quickly. One wonders if they are trying to detract from Inferno???