Sun offers the Solaris OS at basically zero cost, because more people will buy their hardware if they have an operating system to run on them.
Don't kid yourself. The cost of development is always passed onto the consumer. An inhouse OS development effort is an expensive endeavor. Every sparc we buy reflects the development costs that go into Solaris development.
I've seen uptimes of a year or more on both Solaris and Linux. However, I have seen uptimes of over a year on Solaris machines receiving over a million hits per day. To be fair, I haven't been allowed to give Linux it's shot yet.
Q: Should I rewrite this subroutine??
A: Please ask again later.
Q: Should I rewrite this subroutine?
A: Predition hazy.
Q: Should I rewrite this subroutine?
A: Maybe.
Q: Should I change the scope on this class field so that I can access it directly instead of using those silly getter methods?
A: Yes!
Q: Should I make my code backward compatible?
A: No!
The great thing about the internet is that there are computer simulated magic eightballs available to help you with major project decisions. This is indeed one of the major contributions that cutting edge technologies such as Javascript and ActiveX have made possible. Not many internet visionaries make mention of this fact, however I felt it was important to extol the many virtues of this incredibly useful project management tool.
I think that java approches being a really great language, but stops short because it is so god awful slow.
Don't confuse design with implementation. Java is a great language with mediocre implementations and monolithic amounts of class library rushed out the door to feed the ravenous programming public at large. Java has enormous room for improvement in the realm of performance.
The java language itself is rather elegant, right down the the bytecode operations.
However, at the moment, we're talking about Perl.
Before Perl, I would have defined a great language as one with a straightforward and clear design. Java qualifies, however, Perl is none of these in my opinion. Perl can't be described in BNF -- it requires a magical context sensitive tokenizer sprinkled with magic Wall-ian pixie dust. Yet, without question, Perl is a great language too.
Perl has forced me to redefine my definition of a great language as one which effectively fulfills the needs of it's users. This is something which even the angriest python evangelist would have to agree that perl does well.
There are tasks I can accomplish in a 1/2 hour of perl coding which would take me days to accomplish in java. Programming perl is also more fun to me...I don't know why. Perhaps this is due to it's "more than one way to do it" philosophy which provides me with countless options. Perhaps it's the unix based culture that I love. Or perhaps it's the overall goodhearted spirit behind the majority of the Perl community that Larry has carefully fostered.
I wouldn't, however, want to manage a million lines of perl code. One of the things I've noticed is that the better the perl programmer, the harder it is to read their code.
Perl is the language which allows you to do in 1 line, what you should have done in 20.
I think history shows that Larry will retain as much backward compatibility as he can while producing a truly evolutionary new version of Perl.
Perl is as much a culture as it is a programming language.
I personally do not like the idea of using the existence of "package" as a way to distinguish perl5 from perl6. While this works for the modules, what about non package applications?
There's already a require VERSION convention established. The new version of perl could require that this be supplied to activate perl 6 functionality. Scripts without this would be assumed to be at 5.x.
Alot of the comments made have come to fruition, looks like someone brought this article out of the mothballs.
Still, there were a few valid points. Documentation does need to improve. Developers line up in droves for programming tasks but a precious few actually focus as much on the documentation as well. Embrace them, they are few and they are special.
He's also correct that a large number of us speak in technical terms we've grown so familiar with that we no longer recognize them as technical.
If you can read this: "The MBR of the HD is fubar", then you know what I mean.
I do not like his recommended solutions. Practically every solution he offers moves Linux into looking more like Windows. There's already a Windows operating system, why build another? Linux fills different needs.
Windows is all about "canned apps hiding complexity". It's an operating system founded on the "least common denominator" of computer expertise. Linux is all about intricately configurable apps with tremendous versatility.
His solutions take away choices in the hopes of simplifying the user experience. Linux is all about choices. The gist of this article runs contrary to my beliefs of what Linux is and should be.
If Linux had to survive in the manner author suggests, then maybe it's better off dead.
goto/
You enter/. There are exits in the usr, etc, root and home directions. Vmlinuz and core are in the room.
look
You see vmlinuz and core. look at core
Core is a large fellow and looks to be very old. > kill core
The gods prevent you from acting. > cast 'sudo' kill core
You *massacre* the core. > look at core
The core looks pretty hurt. ...
You *obliviate* the core.
You kill the core dead! RIP!!! > cons vmlinuz
Are you mad!?!?
You know, I never thought of a lisp program as a parse tree, but you're right. That's exactly what it is. This fact makes lisp applicable in a number of other applications like genetic programming. Since the program contains the precedence by default, you can use gp algorithms to mate different lisp programs producing an entirely new beast altogether and have it spit out fully functional lisp programs. Try doing that in C.
When it comes time to pick a language, I first assess the task, then pick the language that's right for the problem space.
Too often, I see people "sticking to what they know" and applying the wrong technology. For instance, for 6 weeks a fellow at work was feverishly writing tens of thousands of C code. He was having a hard time and came by to ask me a few C questions. Turns out, he was writing a cgi-script in C!
The program limped along when one day I reimplented it in a few hundred lines of perl.
I caught another fellow writing C programs to invoke unix system commands. Sounds like a shell script to me.
Another fellow, when I was working at a scientific firm, loved lisp so much that he wrote an inline interpreter in lisp and henceforth wrote his modules in lisp.
My take on the languages is this:
C is a good low level language. You can do anything in it and it makes everything equally easy and equally hard.
C++ makes hard things easy and easy things hard. It can sing in the hands of a skilled programmer, but large programming organizations are subject to the gausian curve and programmers of lesser mastery of the language can do alot of damage to a code tree.
Perl is the swiss army chainsaw of scripting languages. I've always said that perl is the language where you can do in 1 line, what you should have done in 20. It's both a blessing and a curse to the language.
Lisp...lisp is a wierd beast. It takes me 2 days to transition to this language just to get my brain thinking recursively. I'm an iterative sort of guy. A handful of problems are solved quite elegantly and it's a great instructive tool, however, I'm convinced that lisp was invented by someone too lazy to write a decent parser.
Java is a great language for large scale projects that don't need the performance of something like C. I say that because it's possible for the lead programmer to architect a framework which tailors the development of the other group members through interface definition and judicious inheritance. However, it's thread support can get junior programmers in trouble.
Fortran is the tank - the number cruncher. Write it in fortran, and it'll port forever. I've seen 30 year old code surviving the test of time in it's original form, no worse for the wear. Fortran makes it hard to get in trouble, and it's problem space nowadays is mostly in heavy math shops like geophysic exploration.
I guess my point is that each language has it's strong and weak points. Picking your language should be a function of the problem space and computing environment.
I've been a long time Amiga user since I bought my A3000 back in '92 I believe. Really, it was an amazing system and still is. Windows refreshes never failed to happen in the blink of an eye, mouse cursor never locked on me. Amazing things happen when machines have chip level gui support.
AmigaDOS however, is primitive in comparison with what Linux offers. The best part of the Amiga was in the hardware, not software. I don't think anyone would want to trade HAM for true color nowadays:-)
Sounds like the new Amiga has kept the worst parts while migrating away from what made the Amiga special in the first place *the specialized hardware*.
From my limited understanding, it appears to me that the new Amiga's mirroring the Apple strategy of embracing and extending Linux/BSD to me - piggybacking on their success to ensure their own. All in all, I love it (Linux should benefit) and they may have a shot.
Personally, I am glad that SUN's owned java the past few years. It's unlikely that it could have evolved as quickly had it been owned by some committee such as ANSI.
It's radical change, however, is slowing and it might be time for it to settle down a bit and mature. The kind of maturity attained through passing ownership over to a standards committee.
This article couldn't come at a more opportune time. I've recently been promoted to the fill the role the lead developer of a large project. The first thing I started doing was drafting a base coding standard document and enforcing 3 hour code reviews for every 2 weeks of development time.
There was much moaning and groaning and attempts to override my decision by going over my head, but we just had our first code review today and it appears that the moaners and groaners had good reason to do so. Their code was basically cut and paste tripe which had obviously never been compiled into our system. Of course, I didn't say that at the meeting, I took a more tactful stance and marked certain aspects of the project as "critical". Translation, fix your code or you will become our newest business analyst.
The most important aspect of a code review is accountability. Peer review makes you accountable for the code you write. There must also be accountability with regards to addressing issues brought up at code reviews.
I pride myself in writing code which handles all exception cases. My motto is "If you haven't handled the second exception which results from handling the first exception, you haven't done your job".
Personally, I don't care what anyone says, Linux is Unix. If it smells like unix, looks like unix, tastes, sounds and feels like unix...so as far as I'm concerned, it's unix.
Linux's success isn't surprising to me. Until the last few years, unix never really had a decent desktop environment -- and please spare me the "What about openlook? (it's crap)", or the "what about CDE? (it's crap too)". Kudos to the Gnome/KDE people, they're really doing alot for the survival of unix (Not that I think it's in any immediate danger. NT wasn't quite the unix-killer that Gates' marketing staff hyped it up to be (big surprise). IT people are slowing learning that NT is crap with a nice GUI).
I've never cared which flavor of *nix survived and I never listen to the distro war garbage or FreeBSD/Linux wars. My only concern was that some form of *nix survive so that lots of companies look for Unix expertise and I can keep avoiding the windows platform like the plague.
That fellows comments were total garbage and it is obvious that he doesn't know what he's talking about. Someone should bitch slap him a few times for trying to pretend to be linux savy.
Linux in the corporation can be controlled as tightly as any other operating system, tighter in some cases.
First of all, he assumes that users have access to the source tree and can recompile their kernels at will. Last time I checked, you have to be root to do this and I don't think that the average corporation would allow everyone to administer their own machine. Besides, on a corporate machine, why would they install the kernel source in the first place?
As for the undocumented tweaks...haven't OS programmers been doing this all along? The difference here is that you can actually see them as you have the source code in hand. Sure, it may not be commented, or even worse have a red herring comment, but it beats the hell out of figuring out what's changed by experimenting with application behavior.
My company uses a product called surfwatch in conjunction with Netscape proxy server 3.5. One day the proxy administrator set up a filter to block all urls containing ^.*sex.*$
It turns out that sex occurs quite often in url encoded sites, especially dejanews. All of a sudden I couldn't get access to deja and it took one heck of alot of effort to get security to apply some more intelligent patterns (which I was happy to supply them with).
My thoughts on proxy filters is this, why not support a passive proxy instead of a proactive one. Logging can be much more effective than blocking but I guess that would support freedom of speech at the sake of personal privacy. It's a slippery slope...
In the long run, I think cell phones, pdas, and laptop computers will merge into a product such as the following:
It looks like a small pda, pretty much a handheld computer screen. It offers cell-phone, internet access, and a full blown computing environment running your os of choice: Linux, windows, beos, freebsd, or Darwin. Of course, it performs best when running linux, and people start to notice this despite the Microsoft OS marketing team's FUD tactics. Linux stock slowly rises.
Perhaps they'll also have standard docking station specification, Standard Docking Interface (SDI), so that and it could be assumed when travelling to another company or a hotel, that there would be docking stations available which would provide a keyboard and a large monitor. When making travel arrangements you specify, King size bed, wakeup call at 6:00 AM and ergonomic keyboard please.
P.S., did I also mention that the machine will have infrared capabilities allowing it to function as method of currency and other data transfer?
And the thing that people seem to be overlooking is that the legislation calls for the tag on the subject line so that email clients may automatically file spam into the waste basket where they belong.
This will reduce the effectiveness of spam considerably making it less attractive.
My only question is would adoption of this kind of legislation across the US only drive the spammers across political borders?
The other day I started playing an old version of Galaga. I forgot how enjoyable a simple shoot-em-up arcade game could be.
The old games were sort of like checkers, easy to learn and hard to master. The new games seem to be more like Chess, hard to learn and hard to master. The learning curve to most of the new games is much larger than the classics that got us hooked at the video arcades.
I still feel a tinge of nostalgia every time I see the original version of pac-man or galaxian.
I also miss the simplicity of the old style atari joystick, wish I could find a joystick like that for my pc.
This is a very interesting project. An attempt at creating a huge virtual computer in which micropayments are the form of currency used to reimburse a user for his donation of resources.
It kind of reminds me of DNS married to a Napster type client combined with something like DigiCash.
I was just thinking about the possibilities of webhosting in such an environment. The following is all supposition of how such a webserver might behave:
If you think about it, it wouldn't be too hard to write a webserver which utilized this network. For instance, you request an url, the server would simply serve it up as any normal webserver would (all locally). However, if the server reached some capacity threshold, it would begin to broker the requests out via redirects to other servers. Sort of like insurance against being slashdotted:-) The corporate webserver sort of serves as a SOA (Start of authority).
Such a webserver would probably have to send the webserver down to the various hosts (via Java or some other like technology) to ensure that the environments were identical (for example: if the site housed dynamic content served via servlets etc...).
While interesting, the security implications are tremendous. I'd hesitate before having a real e-business site hosted in such a fashion. How would certificates function in such an environment, or would they? Certificates guarantee that you're talking to the right organization, in this model it'd have to have some sort of mechanism to transition the user over to a sister and possibly untrusted site.
One last thing to think about, this sounds kind of like the Aglets with an accounting system.
Sun offers the Solaris OS at basically zero cost, because more people will buy their hardware if they have an operating system to run on them.
Don't kid yourself. The cost of development is always passed onto the consumer. An inhouse OS development effort is an expensive endeavor. Every sparc we buy reflects the development costs that go into Solaris development.
I've seen uptimes of a year or more on both Solaris and Linux. However, I have seen uptimes of over a year on Solaris machines receiving over a million hits per day. To be fair, I haven't been allowed to give Linux it's shot yet.
I prefer the magic eightball to a code partner.
Q: Should I rewrite this subroutine??
A: Please ask again later.
Q: Should I rewrite this subroutine?
A: Predition hazy.
Q: Should I rewrite this subroutine?
A: Maybe.
Q: Should I change the scope on this class field so that I can access it directly instead of using those silly getter methods?
A: Yes!
Q: Should I make my code backward compatible?
A: No!
The great thing about the internet is that there are computer simulated magic eightballs available to help you with major project decisions. This is indeed one of the major contributions that cutting edge technologies such as Javascript and ActiveX have made possible. Not many internet visionaries make mention of this fact, however I felt it was important to extol the many virtues of this incredibly useful project management tool.
- Pat
I think that java approches being a really great language, but stops short because it is so god awful slow.
Don't confuse design with implementation. Java is a great language with mediocre implementations and monolithic amounts of class library rushed out the door to feed the ravenous programming public at large. Java has enormous room for improvement in the realm of performance.
The java language itself is rather elegant, right down the the bytecode operations.
However, at the moment, we're talking about Perl.
Before Perl, I would have defined a great language as one with a straightforward and clear design. Java qualifies, however, Perl is none of these in my opinion. Perl can't be described in BNF -- it requires a magical context sensitive tokenizer sprinkled with magic Wall-ian pixie dust. Yet, without question, Perl is a great language too.
Perl has forced me to redefine my definition of a great language as one which effectively fulfills the needs of it's users. This is something which even the angriest python evangelist would have to agree that perl does well.
There are tasks I can accomplish in a 1/2 hour of perl coding which would take me days to accomplish in java. Programming perl is also more fun to me...I don't know why. Perhaps this is due to it's "more than one way to do it" philosophy which provides me with countless options. Perhaps it's the unix based culture that I love. Or perhaps it's the overall goodhearted spirit behind the majority of the Perl community that Larry has carefully fostered.
I wouldn't, however, want to manage a million lines of perl code. One of the things I've noticed is that the better the perl programmer, the harder it is to read their code.
Perl is the language which allows you to do in 1 line, what you should have done in 20.
I think history shows that Larry will retain as much backward compatibility as he can while producing a truly evolutionary new version of Perl.
Perl is as much a culture as it is a programming language.
I personally do not like the idea of using the existence of "package" as a way to distinguish perl5 from perl6. While this works for the modules, what about non package applications?
There's already a require VERSION convention established. The new version of perl could require that this be supplied to activate perl 6 functionality. Scripts without this would be assumed to be at 5.x.
- Pat
Sounds like they implemented an industrial version of the lego robot reported by slashdot earlier in this article.
Neat stuff...
So basically, this is populous on 'roids.
I always thought that Neal was using a clever pun in choosing FINux as the name of the OS. Fin, obviously due to Linus Torlvalds heritage.
Now if we could make a computer out of these atomic transistors, just think at how fast the Java VM would run!
Alot of the comments made have come to fruition, looks like someone brought this article out of the mothballs.
Still, there were a few valid points. Documentation does need to improve. Developers line up in droves for programming tasks but a precious few actually focus as much on the documentation as well. Embrace them, they are few and they are special.
He's also correct that a large number of us speak in technical terms we've grown so familiar with that we no longer recognize them as technical. If you can read this: "The MBR of the HD is fubar", then you know what I mean.
I do not like his recommended solutions. Practically every solution he offers moves Linux into looking more like Windows. There's already a Windows operating system, why build another? Linux fills different needs.
Windows is all about "canned apps hiding complexity". It's an operating system founded on the "least common denominator" of computer expertise. Linux is all about intricately configurable apps with tremendous versatility.
His solutions take away choices in the hopes of simplifying the user experience. Linux is all about choices. The gist of this article runs contrary to my beliefs of what Linux is and should be.
If Linux had to survive in the manner author suggests, then maybe it's better off dead.
If free speech is outlawed, then only outlaws will speak...
goto / /. There are exits in the usr, etc, root and home directions. Vmlinuz and core are in the room.
...
You enter
look You see vmlinuz and core.
look at core
Core is a large fellow and looks to be very old.
> kill core The gods prevent you from acting.
> cast 'sudo' kill core
You *massacre* the core.
> look at core
The core looks pretty hurt.
You *obliviate* the core.
You kill the core dead! RIP!!!
> cons vmlinuz
Are you mad!?!?
I can't imagine that those things are ergonomically sound. It'd probably take your vision from 20/20 to 20/60 within the first year of prolonged use.
You know, I never thought of a lisp program as a parse tree, but you're right. That's exactly what it is. This fact makes lisp applicable in a number of other applications like genetic programming. Since the program contains the precedence by default, you can use gp algorithms to mate different lisp programs producing an entirely new beast altogether and have it spit out fully functional lisp programs. Try doing that in C.
Too often, I see people "sticking to what they know" and applying the wrong technology. For instance, for 6 weeks a fellow at work was feverishly writing tens of thousands of C code. He was having a hard time and came by to ask me a few C questions. Turns out, he was writing a cgi-script in C!
The program limped along when one day I reimplented it in a few hundred lines of perl.
I caught another fellow writing C programs to invoke unix system commands. Sounds like a shell script to me.
Another fellow, when I was working at a scientific firm, loved lisp so much that he wrote an inline interpreter in lisp and henceforth wrote his modules in lisp.
My take on the languages is this:
Fortran is the tank - the number cruncher. Write it in fortran, and it'll port forever. I've seen 30 year old code surviving the test of time in it's original form, no worse for the wear. Fortran makes it hard to get in trouble, and it's problem space nowadays is mostly in heavy math shops like geophysic exploration.
I guess my point is that each language has it's strong and weak points. Picking your language should be a function of the problem space and computing environment.
AmigaDOS however, is primitive in comparison with what Linux offers. The best part of the Amiga was in the hardware, not software. I don't think anyone would want to trade HAM for true color nowadays :-)
Sounds like the new Amiga has kept the worst parts while migrating away from what made the Amiga special in the first place *the specialized hardware*.
From my limited understanding, it appears to me that the new Amiga's mirroring the Apple strategy of embracing and extending Linux/BSD to me - piggybacking on their success to ensure their own. All in all, I love it (Linux should benefit) and they may have a shot.
It's radical change, however, is slowing and it might be time for it to settle down a bit and mature. The kind of maturity attained through passing ownership over to a standards committee.
There was much moaning and groaning and attempts to override my decision by going over my head, but we just had our first code review today and it appears that the moaners and groaners had good reason to do so. Their code was basically cut and paste tripe which had obviously never been compiled into our system. Of course, I didn't say that at the meeting, I took a more tactful stance and marked certain aspects of the project as "critical". Translation, fix your code or you will become our newest business analyst.
The most important aspect of a code review is accountability. Peer review makes you accountable for the code you write. There must also be accountability with regards to addressing issues brought up at code reviews.
I pride myself in writing code which handles all exception cases. My motto is "If you haven't handled the second exception which results from handling the first exception, you haven't done your job".
Linux's success isn't surprising to me. Until the last few years, unix never really had a decent desktop environment -- and please spare me the "What about openlook? (it's crap)", or the "what about CDE? (it's crap too)". Kudos to the Gnome/KDE people, they're really doing alot for the survival of unix (Not that I think it's in any immediate danger. NT wasn't quite the unix-killer that Gates' marketing staff hyped it up to be (big surprise). IT people are slowing learning that NT is crap with a nice GUI).
I've never cared which flavor of *nix survived and I never listen to the distro war garbage or FreeBSD/Linux wars. My only concern was that some form of *nix survive so that lots of companies look for Unix expertise and I can keep avoiding the windows platform like the plague.
Linux in the corporation can be controlled as tightly as any other operating system, tighter in some cases.
First of all, he assumes that users have access to the source tree and can recompile their kernels at will. Last time I checked, you have to be root to do this and I don't think that the average corporation would allow everyone to administer their own machine. Besides, on a corporate machine, why would they install the kernel source in the first place?
As for the undocumented tweaks...haven't OS programmers been doing this all along? The difference here is that you can actually see them as you have the source code in hand. Sure, it may not be commented, or even worse have a red herring comment, but it beats the hell out of figuring out what's changed by experimenting with application behavior.
It turns out that sex occurs quite often in url encoded sites, especially dejanews. All of a sudden I couldn't get access to deja and it took one heck of alot of effort to get security to apply some more intelligent patterns (which I was happy to supply them with).
My thoughts on proxy filters is this, why not support a passive proxy instead of a proactive one. Logging can be much more effective than blocking but I guess that would support freedom of speech at the sake of personal privacy. It's a slippery slope...
It looks like a small pda, pretty much a handheld computer screen. It offers cell-phone, internet access, and a full blown computing environment running your os of choice: Linux, windows, beos, freebsd, or Darwin. Of course, it performs best when running linux, and people start to notice this despite the Microsoft OS marketing team's FUD tactics. Linux stock slowly rises.
Perhaps they'll also have standard docking station specification, Standard Docking Interface (SDI), so that and it could be assumed when travelling to another company or a hotel, that there would be docking stations available which would provide a keyboard and a large monitor. When making travel arrangements you specify, King size bed, wakeup call at 6:00 AM and ergonomic keyboard please.
P.S., did I also mention that the machine will have infrared capabilities allowing it to function as method of currency and other data transfer?
This will reduce the effectiveness of spam considerably making it less attractive.
My only question is would adoption of this kind of legislation across the US only drive the spammers across political borders?
http://www.bighorncenter.org/spam.html
The site has some good, forward thinking ideas geared towards the information age.
The old games were sort of like checkers, easy to learn and hard to master. The new games seem to be more like Chess, hard to learn and hard to master. The learning curve to most of the new games is much larger than the classics that got us hooked at the video arcades.
I still feel a tinge of nostalgia every time I see the original version of pac-man or galaxian.
I also miss the simplicity of the old style atari joystick, wish I could find a joystick like that for my pc.
It kind of reminds me of DNS married to a Napster type client combined with something like DigiCash.
I was just thinking about the possibilities of webhosting in such an environment. The following is all supposition of how such a webserver might behave:
If you think about it, it wouldn't be too hard to write a webserver which utilized this network. For instance, you request an url, the server would simply serve it up as any normal webserver would (all locally). However, if the server reached some capacity threshold, it would begin to broker the requests out via redirects to other servers. Sort of like insurance against being slashdotted :-) The corporate webserver sort of serves as a SOA (Start of authority).
Such a webserver would probably have to send the webserver down to the various hosts (via Java or some other like technology) to ensure that the environments were identical (for example: if the site housed dynamic content served via servlets etc...).
While interesting, the security implications are tremendous. I'd hesitate before having a real e-business site hosted in such a fashion. How would certificates function in such an environment, or would they? Certificates guarantee that you're talking to the right organization, in this model it'd have to have some sort of mechanism to transition the user over to a sister and possibly untrusted site.
One last thing to think about, this sounds kind of like the Aglets with an accounting system.