No wonder you're confused. You've gone from "not reading the article" to "not even reading the summary"! News these days will soon be nothing more than a cheap headline! BWHAHAHA!
Hint: If you want more bandwidth than the default (e.g. enough to watch internet television on the go), you'll need to pay.
...have anything to say about it. This effectively proposes enough bandwidth to eliminate the need for a traditional cellphone. Instead, you'd be able to carry around a Voice over IP phone that gets you the same coverage everywhere, with no "per minute" fees. The likely extension of this would be that a new telephone network would emerge that wouldn't even bother with POTS compatibility. Just assign your phone a DNS name, and you can start calling "l33tdude.myphone.net" instead of a horribly abstract phone number.
Give it enough time, and the POTS system (as well as all those expensive cell towers) would go away permenently. The result would be a network with communications that are as free as instant messaging from your computer. Certainly an attractive world for the consumer, but can we really expect to get there without interference? Not to mention that this would mean the end to phones subsidized by cell phone connectivity. Net phones would sell for what they're actually worth as opposed to being "free" or "discounted" with service.
Not that this isn't without its advantages. I don't know about anyone else, but my cell phone never truly feels like it's "mine". Its linkage with my phone carrier makes it feel more like a device I've rented. Especially when carriers like Verizon go out of their way to disable features like the USB connectivity on the Razrs. Sure, in theory you can pop in a new SIM card. But because of network differences and technology changes, it usually ends up being easier to get a new phone and throw your old one in a landfill. What a waste.
Not having to download the entire source tarball to fix one package lowers the cost of entry for people interested in making changes.
Or more likely, being able to build a distribution without twm, xedit, xeyes, xman, xvfb, and the billions of other useless utilities that clog up and XWin installation could make for smaller, more focused builds that assist projects that are focused only on producing an end product. (Damn Small Linux is a good candidate in my mind.)
Previously, the X build system was so monolithic in nature that you couldn't not build all these stupid little widgets. Now that things are more modularized, you can build only what you need and throw away the rest.
And let's not forget that the company that published The Dig (LucasArts) was formed because George Lucas wanted to design Atari games. (BallBlazer, Rescue on Fractalus, etc.)
I find it interesting how you feel that a Grandma without advanced computer knowledge == a "stupid" Grandma. The Grandma I (humorously) portrayed is a smart enough woman to know what she needs. She doesn't want to putz around learning things she doesn't need to know. Apparently, you think that makes her "stupid". IMHO, that makes her as smart as a couple who get a family sedan to haul their kids and groceries around in instead of the Ferrari that won't meet their needs AT ALL. i.e. Very smart and intelligent indeed.
A stupid grandma would let her grandson push her around and get her something that doesn't work for her. Have you forced your grandma to use Unix?
Reeves' blithe assertion that their 'brand equity' will induce gamers to shell out 600 clams for their console, despite the dearth of available games, is pure fantasy.
Basically, Sony is making many of the exact same mistakes Sega made with the Saturn. Given that Sony was Sega's "$299" antagonist at the time, you'd think they'd know better.
...There is excellent coverage of the GNU utilities, a guide to TCP/IP and networking, Apache, DNS, NFS, email, databases and more...
...The one glaring omission is the Common Unix Printing System (CUPS)...
...Learning the BASH Shell...
...You need to understand shell scripting to understand the system...
...Learning BASH will make you more productive and at ease managing a system 1000 kilometers away...
... If you were not lucky enough to work with Ken Thompson, and didn't cut your teeth on Unix, the system may seem chaotic...
The author's conclusion?
Anyone can learn Linux
Me: "Here Grandma. These three books will make you an expert sysadmin so that you can use your own Linux box!"
Grandma: "What kind of idiot are you, boy? Your old grandma just needs something that works, not something that takes an associates degree from CalTech to use! You kids these days have it so easy that you think you can waste time on learning everything there is to know about a computer before you use it! Why, in my day we were too busy walking uphill both ways through a snowstorm to waste time with these neutered Enuich computers!"
Me: "But Grandma! Bash is so easy..."
Grandma: "BASH?! You want BASH?"
* Grandma whacks me over the head with her cane.
Grandma: "There's your BASH, boy! Now hurry up and get Grandma a computer she can use!"
Me: (sheepishly) "Like a Mac?"
Grandma "Yes, like a Mac, you dolt!" *mutters something about genes from the wrong side of the family*
(Disclaimer: The above is well-intentioned humor. Do not attempt to argue with it or grandma will bash you over the head with her cane.):-P
1. Teach them how to program and read documentation.
2. Make them catch up on the relevant RFCs.
3. Give them the servlet JavaDocs.
This idea of specialized training in programming had got to go. If they know how to program and read standards, that's all they need to know in order to grasp the entire concept.
explain how making the binary available as a no-charge download
For the last time, Java has the source available. It just isn't "Free Software" in the sense that you can't release your own binaries or fork the code.
I predict that 18 months after Wii hits the market, Nintendo will announce the WiiCube
God, I hope not. The GameCube was Nintendo's ugliest console. The NES, SNES, and N64 all had styling that survived the test of time. But the GameCube? Just plain hideous. Not to mention the fact that it's not even a cube.
Then again, the Wii styling isn't exactly the most amazing ever, either. It's better, but nowhere near in the same class as the N64. I remember when the Ultra64 was first shown. The magazines were referring to it as "one sexy piece of plastic". Which was probably the first time I'd ever heard consumer electronics referred to as "sexy".
Activision was founded primarily so that individual devs could get credit for their games
Arguably, that's because they weren't getting any money for their work. If the devs were paid what they were worth, I can assure you that they wouldn't have complained as much.
What's funny is that Todd Frye (the creator of Atari Pacman for the 2600) got both money in the form of royalties AND fame for his work on PacMan! Even more amusing is that it was a rushed translation, and Mr. Frye didn't like PacMan! Some people have all the luck.
Actually, he said that it's *not* "working" per se. He already stated that it's difficult to manage, and (I presume) full of bugs. This is a common issue for companies, especially if the original developers didn't fully understand the dynamics of the concept when they first coded it. (I believe the military saying is, "No plan survives contact with the enemy.")
In those cases it can make a lot of sense to do a ground up redesign and rewrite. You can still use the original code as a reference, as well as grab useful code snippets. But the key is to shake out all the cruft that has built up in the system. Without this sort of step, your development staff will simply need to grow and grow. Before you know it, you'll have 200+ programmers, and your company will look like SAP's development floor.
As for moving to Java, that's difficult to say without knowing their specific problem. If they, for example, have their own Web Application Framework, they might save huge amounts of development time and money by moving to a more standard platform. If there's nothing they can pare down, then they're probably wasting their time. It's hard to say without knowing more.
In general, rearchitecting a system can be a good way to update it for your current needs. The key however is to architect, not simply recode the exact same design. You need to see what your needs are in a system and decide what it is that you could meet if you could just change the basic approach.
In your specific case, however, I'm a bit concerned about the track your company has taken. My concerns are:
1. You're going to have a separate company working on your codebase when they have no intimate knowledge of how it *should* work.
2. No one in your team is an expert in Java. This is problematic because good Java code has a very different profile from good C++ code. (Mainly due to auto-optimizations and garbage collection.) Things that were good ideas in C++ may actually hurt you in Java.
3. Your lack of knowledge in Java is going to guarantee that Java's features won't be put to full use in the design. Which means that you may end up short of your maintainability goals.
4. Blindly accepting a framework is a recipe for disaster. Unless you clearly understand the framework you're working with, you will tend to try and fight it instead of working with it. This will result in a lot of unnecessary hacks.
My best suggestion for your company is to get a Java architect on staff who's also familiar with C++. (It's okay if he's a consultant as long as he's planning to be on-site for the next year or so.) Postpone the project for a few months while he gets up to speed on what your system does and what it needs to do. Once he's up to speed, he can work with the staff to develop an architecture that will meet the needs of your company and your platform. Use the outzourcing company for busy-work ONLY. Make sure that the API specs are well defined before you send ANYTHING to them for coding.
As for the FDA approval, rewriting isn't a magic wand. You need to ensure that their requirements are taken into account during the architectural design phase. Otherwise you may fail to meet the goals.
I'm not sure if your boss will agree to getting a highly paid Java architect to join your team OR to postponing the project, but thats the best advice I can give you. I presume if you already knew the answer you'd be championing it instead of asking us.
The Article is a merketing blurb, anybody knows how it's actualy implemented?
Indeed. They keep using the word "process" and I keep thinking "Microkernel!"
In reality, it sounds like a simple driver abstraction layer which will allow commercial entities to plug in binary drivers without any fear of the GPL.
AFAIK there is nothing stopping [IBM] doing what they want with it already
You mean, other than the license that requires that IBM verify it's JVM against Sun's Compatibility Testing before they can release a new version?
Why do you think Microsoft lost their license to Java? Because they look at Sun funny? No! Because they failed the compatibility testing and tried to tell Sun to shove it.
The problem is that these extensions made versions of Java that used them, incompatible with the main distribution. In addition, they were all to solve problems that Java already had solutions for, but in a "different" way. Last but not least, they were designed to fail silently so that people would think that Sun's JVM was the bad one.
For example, the delegates feature that Microsoft added (completely not necessary) required the programmer to put actual class infotmation in the comments of the code. Not even a keyword extension, but in the comments! There was no way that Sun would put such idiocy into the main branch of Java, and Microsoft knew it. The result was that Sun handed Microsoft their collective asses in the courtroom.
That kind of undermines the argument that Microsoft was trying the "extend and embrace" route to killing Java with proprietary incompatibilities
Uh, no. At the time Microsoft was embroiled in a lawsuit with Sun over those very extensions. Microsoft payed for Kaffe either to help their case, or find an outlet to disrupt Java while they were locked up in a court case. Microsoft's intentions were anything but noble.
Well, it's been available since 1999. Seeing as it has taken slashdot—oh about—7 years to figure it out, you can understand why I'm a little peeved over the number of responders who've claimed that the source isn't available.
If you have a problem with the SCSL license, fine. If you have a problem with the JRL license, fine. But to claim that Sun hasn't released the source code? That's just frustrating.
What stops them from adopting one of the existing open source VMs, "embracing and extending" it (still open source, of course), and doing that now?
You do know that Microsoft gave the Kaffe project money, right? The stipulation was that Kaffe had to add Microsoft extensions to its codebase. Turns out, Kaffe never managed to produce a competitive VM (though it's looking pretty good these days) and thus never had the impact that Microsoft had hoped for.
The SCSL does not cover the version of javac included in Java 1.5 or older versions
??? I think you're confused. The JavaC compiler is there under j2se/src/share/classes/sun/tools/javac. Considering that each version of the SCSL code is used to build successive versions under Linux/FreeBSD, I have a hard time believing that the source code isn't included!
I'm confused.
No wonder you're confused. You've gone from "not reading the article" to "not even reading the summary"! News these days will soon be nothing more than a cheap headline! BWHAHAHA!
Hint: If you want more bandwidth than the default (e.g. enough to watch internet television on the go), you'll need to pay.
...have anything to say about it. This effectively proposes enough bandwidth to eliminate the need for a traditional cellphone. Instead, you'd be able to carry around a Voice over IP phone that gets you the same coverage everywhere, with no "per minute" fees. The likely extension of this would be that a new telephone network would emerge that wouldn't even bother with POTS compatibility. Just assign your phone a DNS name, and you can start calling "l33tdude.myphone.net" instead of a horribly abstract phone number.
Give it enough time, and the POTS system (as well as all those expensive cell towers) would go away permenently. The result would be a network with communications that are as free as instant messaging from your computer. Certainly an attractive world for the consumer, but can we really expect to get there without interference? Not to mention that this would mean the end to phones subsidized by cell phone connectivity. Net phones would sell for what they're actually worth as opposed to being "free" or "discounted" with service.
Not that this isn't without its advantages. I don't know about anyone else, but my cell phone never truly feels like it's "mine". Its linkage with my phone carrier makes it feel more like a device I've rented. Especially when carriers like Verizon go out of their way to disable features like the USB connectivity on the Razrs. Sure, in theory you can pop in a new SIM card. But because of network differences and technology changes, it usually ends up being easier to get a new phone and throw your old one in a landfill. What a waste.
Not having to download the entire source tarball to fix one package lowers the cost of entry for people interested in making changes.
Or more likely, being able to build a distribution without twm, xedit, xeyes, xman, xvfb, and the billions of other useless utilities that clog up and XWin installation could make for smaller, more focused builds that assist projects that are focused only on producing an end product. (Damn Small Linux is a good candidate in my mind.)
Previously, the X build system was so monolithic in nature that you couldn't not build all these stupid little widgets. Now that things are more modularized, you can build only what you need and throw away the rest.
It's nice that Spielberg likes games.
He also designs them. The Dig, anyone?
And let's not forget that the company that published The Dig (LucasArts) was formed because George Lucas wanted to design Atari games. (BallBlazer, Rescue on Fractalus, etc.)
I find it interesting how you feel that a Grandma without advanced computer knowledge == a "stupid" Grandma. The Grandma I (humorously) portrayed is a smart enough woman to know what she needs. She doesn't want to putz around learning things she doesn't need to know. Apparently, you think that makes her "stupid". IMHO, that makes her as smart as a couple who get a family sedan to haul their kids and groceries around in instead of the Ferrari that won't meet their needs AT ALL. i.e. Very smart and intelligent indeed.
A stupid grandma would let her grandson push her around and get her something that doesn't work for her. Have you forced your grandma to use Unix?
Reeves' blithe assertion that their 'brand equity' will induce gamers to shell out 600 clams for their console, despite the dearth of available games, is pure fantasy.
Basically, Sony is making many of the exact same mistakes Sega made with the Saturn. Given that Sony was Sega's "$299" antagonist at the time, you'd think they'd know better.
...Though there are no illustrations...
...There is excellent coverage of the GNU utilities, a guide to TCP/IP and networking, Apache, DNS, NFS, email, databases and more...
...The one glaring omission is the Common Unix Printing System (CUPS)...
...Learning the BASH Shell...
...You need to understand shell scripting to understand the system...
...Learning BASH will make you more productive and at ease managing a system 1000 kilometers away...
... If you were not lucky enough to work with Ken Thompson, and didn't cut your teeth on Unix, the system may seem chaotic...
:-P
The author's conclusion?
Anyone can learn Linux
Me: "Here Grandma. These three books will make you an expert sysadmin so that you can use your own Linux box!"
Grandma: "What kind of idiot are you, boy? Your old grandma just needs something that works, not something that takes an associates degree from CalTech to use! You kids these days have it so easy that you think you can waste time on learning everything there is to know about a computer before you use it! Why, in my day we were too busy walking uphill both ways through a snowstorm to waste time with these neutered Enuich computers!"
Me: "But Grandma! Bash is so easy..."
Grandma: "BASH?! You want BASH?"
* Grandma whacks me over the head with her cane.
Grandma: "There's your BASH, boy! Now hurry up and get Grandma a computer she can use!"
Me: (sheepishly) "Like a Mac?"
Grandma "Yes, like a Mac, you dolt!" *mutters something about genes from the wrong side of the family*
(Disclaimer: The above is well-intentioned humor. Do not attempt to argue with it or grandma will bash you over the head with her cane.)
The "correct" method is:
1. Teach them how to program and read documentation.
2. Make them catch up on the relevant RFCs.
3. Give them the servlet JavaDocs.
This idea of specialized training in programming had got to go. If they know how to program and read standards, that's all they need to know in order to grasp the entire concept.
explain how making the binary available as a no-charge download
For the last time, Java has the source available. It just isn't "Free Software" in the sense that you can't release your own binaries or fork the code.
I predict that 18 months after Wii hits the market, Nintendo will announce the WiiCube
God, I hope not. The GameCube was Nintendo's ugliest console. The NES, SNES, and N64 all had styling that survived the test of time. But the GameCube? Just plain hideous. Not to mention the fact that it's not even a cube.
Then again, the Wii styling isn't exactly the most amazing ever, either. It's better, but nowhere near in the same class as the N64. I remember when the Ultra64 was first shown. The magazines were referring to it as "one sexy piece of plastic". Which was probably the first time I'd ever heard consumer electronics referred to as "sexy".
Activision was founded primarily so that individual devs could get credit for their games
Arguably, that's because they weren't getting any money for their work. If the devs were paid what they were worth, I can assure you that they wouldn't have complained as much.
What's funny is that Todd Frye (the creator of Atari Pacman for the 2600) got both money in the form of royalties AND fame for his work on PacMan! Even more amusing is that it was a rushed translation, and Mr. Frye didn't like PacMan! Some people have all the luck.
Go Figure.
Cingular does unlimited data for $20/mo.
You have working code in C++.
Actually, he said that it's *not* "working" per se. He already stated that it's difficult to manage, and (I presume) full of bugs. This is a common issue for companies, especially if the original developers didn't fully understand the dynamics of the concept when they first coded it. (I believe the military saying is, "No plan survives contact with the enemy.")
In those cases it can make a lot of sense to do a ground up redesign and rewrite. You can still use the original code as a reference, as well as grab useful code snippets. But the key is to shake out all the cruft that has built up in the system. Without this sort of step, your development staff will simply need to grow and grow. Before you know it, you'll have 200+ programmers, and your company will look like SAP's development floor.
As for moving to Java, that's difficult to say without knowing their specific problem. If they, for example, have their own Web Application Framework, they might save huge amounts of development time and money by moving to a more standard platform. If there's nothing they can pare down, then they're probably wasting their time. It's hard to say without knowing more.
In general, rearchitecting a system can be a good way to update it for your current needs. The key however is to architect, not simply recode the exact same design. You need to see what your needs are in a system and decide what it is that you could meet if you could just change the basic approach.
In your specific case, however, I'm a bit concerned about the track your company has taken. My concerns are:
1. You're going to have a separate company working on your codebase when they have no intimate knowledge of how it *should* work.
2. No one in your team is an expert in Java. This is problematic because good Java code has a very different profile from good C++ code. (Mainly due to auto-optimizations and garbage collection.) Things that were good ideas in C++ may actually hurt you in Java.
3. Your lack of knowledge in Java is going to guarantee that Java's features won't be put to full use in the design. Which means that you may end up short of your maintainability goals.
4. Blindly accepting a framework is a recipe for disaster. Unless you clearly understand the framework you're working with, you will tend to try and fight it instead of working with it. This will result in a lot of unnecessary hacks.
My best suggestion for your company is to get a Java architect on staff who's also familiar with C++. (It's okay if he's a consultant as long as he's planning to be on-site for the next year or so.) Postpone the project for a few months while he gets up to speed on what your system does and what it needs to do. Once he's up to speed, he can work with the staff to develop an architecture that will meet the needs of your company and your platform. Use the outzourcing company for busy-work ONLY. Make sure that the API specs are well defined before you send ANYTHING to them for coding.
As for the FDA approval, rewriting isn't a magic wand. You need to ensure that their requirements are taken into account during the architectural design phase. Otherwise you may fail to meet the goals.
I'm not sure if your boss will agree to getting a highly paid Java architect to join your team OR to postponing the project, but thats the best advice I can give you. I presume if you already knew the answer you'd be championing it instead of asking us.
Good luck to you! I hope it works out.
The Article is a merketing blurb, anybody knows how it's actualy implemented?
Indeed. They keep using the word "process" and I keep thinking "Microkernel!"
In reality, it sounds like a simple driver abstraction layer which will allow commercial entities to plug in binary drivers without any fear of the GPL.
Bzzt! Try again. The first Arcade game was Atari's version of Space War known as Computer Space.
In the beginning, there was Space War and it sold poorly.
:-P
No, wait. That's not right. Let's try this again.
In the beginning, there was the Magnavox Odyssey, and it was good even though it sold poorly.
Erm... I still don't think that's right.
In the beginning, there was an oscilloscope and it... erm... it... uhhh... um—
Awww, fsck it. In the beginning there was electronics. And they were good.
AFAIK there is nothing stopping [IBM] doing what they want with it already
You mean, other than the license that requires that IBM verify it's JVM against Sun's Compatibility Testing before they can release a new version?
Why do you think Microsoft lost their license to Java? Because they look at Sun funny? No! Because they failed the compatibility testing and tried to tell Sun to shove it.
The problem is that these extensions made versions of Java that used them, incompatible with the main distribution. In addition, they were all to solve problems that Java already had solutions for, but in a "different" way. Last but not least, they were designed to fail silently so that people would think that Sun's JVM was the bad one.
For example, the delegates feature that Microsoft added (completely not necessary) required the programmer to put actual class infotmation in the comments of the code. Not even a keyword extension, but in the comments! There was no way that Sun would put such idiocy into the main branch of Java, and Microsoft knew it. The result was that Sun handed Microsoft their collective asses in the courtroom.
That kind of undermines the argument that Microsoft was trying the "extend and embrace" route to killing Java with proprietary incompatibilities
Uh, no. At the time Microsoft was embroiled in a lawsuit with Sun over those very extensions. Microsoft payed for Kaffe either to help their case, or find an outlet to disrupt Java while they were locked up in a court case. Microsoft's intentions were anything but noble.
Personally? I go for a cowl, a cape, and womens underwear. Let's see you beat that!
Well, it's been available since 1999. Seeing as it has taken slashdot—oh about—7 years to figure it out, you can understand why I'm a little peeved over the number of responders who've claimed that the source isn't available.
If you have a problem with the SCSL license, fine. If you have a problem with the JRL license, fine. But to claim that Sun hasn't released the source code? That's just frustrating.
What stops them from adopting one of the existing open source VMs, "embracing and extending" it (still open source, of course), and doing that now?
You do know that Microsoft gave the Kaffe project money, right? The stipulation was that Kaffe had to add Microsoft extensions to its codebase. Turns out, Kaffe never managed to produce a competitive VM (though it's looking pretty good these days) and thus never had the impact that Microsoft had hoped for.
The SCSL does not cover the version of javac included in Java 1.5 or older versions
??? I think you're confused. The JavaC compiler is there under j2se/src/share/classes/sun/tools/javac. Considering that each version of the SCSL code is used to build successive versions under Linux/FreeBSD, I have a hard time believing that the source code isn't included!
Download the source code and see for yourself.
Also, the Generics compiler was released separately when Sun was testing it. The full source code is there if you'd care to play with it.
Good point! The assert facility slipped my mind. (Not something I use often.) :-)