Reading your "H1-B Syndrome" gives me flashbacks to (initially) C++ projects that became mismanaged Java projects because of "good ideas" like:
Java handles all the "hard work" (like threading and memory management), so we can get it done faster!
We can hire a buncha fresh-outta-college programmers to do it CHEAP (and get rid of our experienced C++ developers)!
Yeah, Right...
It is never more true than in Software Developement that you get what you pay for:
"
What? It is not running fast enough? Well... Just go out and get that new 128-CPU box from Sun. That will solve the problem!"
[ObOT:] if I got that call to do something for a former employer, I would have to charge for my time, regardless of the situation. However, I would likely adjust my hourly, minimum and/or flat rate ahead of time (and get some paperwork signed), depending on my relationship with the former employer.
(Note: I am using "Linux" and not "GNU/Linux" intentionally.)
Let's talk Background: I have been using Linux on and off ever since I was running Slackware on a 386SX-16 w/ 4MB RAM, to RedHat 6.0 on a Athlon 500. Do I like Linux? Yes. I have used it for many personal/internal projects, such as a Firewall/Router, for both sides and various tiers of heterogeneous C/S applications, as a database server with MySQL and PostgreSQL, as a file and backup server with SAMBA, and in a security-related project. For me, your average "IT-Guy", Linux is great.
Let's talk about my work life: Windows pays the bills. Why? Most of my for-pay applications target Users. Not "developers", "hackers", "gurus" or anything even closely related to an "IT-Guy".
Let's talk user friendly: If you have two newbie users and place one in front of a freshly booted Windows machine and the other in front of a freshly booted Linux machine, which one do you think is gonna get the hang of it quicker? Wait a second, is that Linux box even configured to boot into XWindows, or is the user gonna be looking at a text "login:" prompt?
The [Start]->"Settings"->Control Panel" sequence is pretty much the same on most Windows systems. On Linux systems, it may depend greatly on what Window Manager and/or Windowing Environment is in use or even the version of the one installed. Hell, on some machines, the equivlent is cd-ing to/proc.
The users experience with Linux can vary greatly by what distribution, version, and window manager and/or windowing environment is installed. Windows is a little more consistent in this area.
Oh, and how about accessibility/usability features for hearing/visually/motor impared users? (Having "Dasher" installed does not count!)
Lets talk about deploying an application: In my experience, A well-written Windows application (Note: this does not mean some dinky VB application), is much easier to deploy on target Win32 machines than on Linux machines.
On Windows, the OS Version and Service Pack Level provide (most) of what you need to know to figure out your requirements, and you can be 99.99% sure that users will get a consistent user experience.
On Linux, you may have to worry about the Distribution (now where *do* these config, data, and log files go?), the OS version, the sendmail version, the PERL version, the AWK version, what shells are available and which one I am running under, etc.
Two words for Windows: "Windows Installer". Two words for Linux: "RPM", "Tarball". (Which one do you think is better/easier for users?)
Lets talk about accessibility: Hell, I do not know of any accessibility features in Linux proper, or any of it's shells, window managers and/or windowing environments.
Lets talk about stability: Is Linux more stable than Windows when you pound on it? Perhaps. But users do not run their machines 24 hours a day, they do not have so many things running on it that the load average is always around 10. And sadly, they accept crashes. Windows has crashed so easily and so often that users are used to it. Should they be? No. But they are, and that is why the lure of "crashing less often" may hold little weight for them.
Just my $.02 on why I still use Windows, and maybe why some others do, too.
The problem is not with the language being used... It is with the novice programmers that are using the language. (You can FU*k-up in just about any development language out there.)
Programmers hardcode things like string-buffer lengths all the time. And that is fine, as long as you take the necessary precautions to ensure that the buffer length is not exceeded; that is the reason functions like strncpy(...), and snprintf(...) exist. However, most programmers do not do "the right thing", and these crashes and other related problems still occur.
Getting programmers to "do the right thing" (or do things the right way) is how to fix the problem, not by limiting what they can do (which is the approach that Java takes).
Sadly, IME, many "experienced" programmers have been doing things in a less than perfect way for so long, that they do not realize that "it works" is not the same as "it works well" (or "it is correct"). And they are continually trusted to write more code that contains the same old problems.
That is not going to change until people start to realize that the difference between an "Expert" and a "Novice" is not how long they have been doing something... It is how long they have been doing something the right way.
> Excuse me, but outside of nostalgia, why would anyone want an arcade cabinet in their home?
My guess would be that there are some people out there what want a "real" cabinet for that "arcade experience". Instead, IMHO, they should do what the rest of us collectors do and go and buy real games and boards instead of snarfing ROMs...:/
We can hire a buncha fresh-outta-college programmers to do it CHEAP (and get rid of our experienced C++ developers)!
Yeah, Right...
It is never more true than in Software Developement that you get what you pay for:
[ObOT:] if I got that call to do something for a former employer, I would have to charge for my time, regardless of the situation. However, I would likely adjust my hourly, minimum and/or flat rate ahead of time (and get some paperwork signed), depending on my relationship with the former employer.
Peace!
(Note: I am using "Linux" and not "GNU/Linux" intentionally.)
/proc.
Let's talk Background:
I have been using Linux on and off ever since I was running Slackware on a 386SX-16 w/ 4MB RAM, to RedHat 6.0 on a Athlon 500. Do I like Linux? Yes. I have used it for many personal/internal projects, such as a Firewall/Router, for both sides and various tiers of heterogeneous C/S applications, as a database server with MySQL and PostgreSQL, as a file and backup server with SAMBA, and in a security-related project. For me, your average "IT-Guy", Linux is great.
Let's talk about my work life:
Windows pays the bills. Why? Most of my for-pay applications target Users. Not "developers", "hackers", "gurus" or anything even closely related to an "IT-Guy".
Let's talk user friendly:
If you have two newbie users and place one in front of a freshly booted Windows machine and the other in front of a freshly booted Linux machine, which one do you think is gonna get the hang of it quicker? Wait a second, is that Linux box even configured to boot into XWindows, or is the user gonna be looking at a text "login:" prompt?
The [Start]->"Settings"->Control Panel" sequence is pretty much the same on most Windows systems. On Linux systems, it may depend greatly on what Window Manager and/or Windowing Environment is in use or even the version of the one installed. Hell, on some machines, the equivlent is cd-ing to
The users experience with Linux can vary greatly by what distribution, version, and window manager and/or windowing environment is installed. Windows is a little more consistent in this area.
Oh, and how about accessibility/usability features for hearing/visually/motor impared users? (Having "Dasher" installed does not count!)
Lets talk about deploying an application:
In my experience, A well-written Windows application (Note: this does not mean some dinky VB application), is much easier to deploy on target Win32 machines than on Linux machines.
On Windows, the OS Version and Service Pack Level provide (most) of what you need to know to figure out your requirements, and you can be 99.99% sure that users will get a consistent user experience.
On Linux, you may have to worry about the Distribution (now where *do* these config, data, and log files go?), the OS version, the sendmail version, the PERL version, the AWK version, what shells are available and which one I am running under, etc.
Two words for Windows: "Windows Installer".
Two words for Linux: "RPM", "Tarball".
(Which one do you think is better/easier for users?)
Lets talk about accessibility:
Hell, I do not know of any accessibility features in Linux proper, or any of it's shells, window managers and/or windowing environments.
Lets talk about stability:
Is Linux more stable than Windows when you pound on it? Perhaps. But users do not run their machines 24 hours a day, they do not have so many things running on it that the load average is always around 10. And sadly, they accept crashes. Windows has crashed so easily and so often that users are used to it. Should they be? No. But they are, and that is why the lure of "crashing less often" may hold little weight for them.
Just my $.02 on why I still use Windows, and maybe why some others do, too.
Peace!
The problem is not with the language being used... It is with the novice programmers that are using the language. (You can FU*k-up in just about any development language out there.)
Programmers hardcode things like string-buffer lengths all the time. And that is fine, as long as you take the necessary precautions to ensure that the buffer length is not exceeded; that is the reason functions like strncpy(...), and snprintf(...) exist. However, most programmers do not do "the right thing", and these crashes and other related problems still occur.
Getting programmers to "do the right thing" (or do things the right way) is how to fix the problem, not by limiting what they can do (which is the approach that Java takes).
Sadly, IME, many "experienced" programmers have been doing things in a less than perfect way for so long, that they do not realize that "it works" is not the same as "it works well" (or "it is correct"). And they are continually trusted to write more code that contains the same old problems.
That is not going to change until people start to realize that the difference between an "Expert" and a "Novice" is not how long they have been doing something... It is how long they have been doing something the right way.
My guess would be that there are some people out there what want a "real" cabinet for that "arcade experience". Instead, IMHO, they should do what the rest of us collectors do and go and buy real games and boards instead of snarfing ROMs... :/
> "Sic 'em up, little buddy"
Sam -n- Max? :)
Peace!