Wrong. sizeof(int) should be "The largest
thing I can load in a single instruction
cycle."
There's generally a correspondence between the
integer register size, and how a C compiler
chooses to implement the "int" type. However,
Turbo C running under MS-DOS, for example,
presented 16-bit ints even when running under
a 80386 (which is of course commonly classified
as a 32-bit CPU). The C Standard makes no
such requirement, so there's no point in
saying who is right or wrong.
Imagine, for instance, a compiler for a 32-bit
machine that presented 16-bit ints as a space
optimization (int arrays would take up less
space).
Also imagine a CPU that provides some 32-bit
registers (because 4 billion is really not a
bad size for the common "int"), and some
64-bit registers (to natively support "long"
or "long long"). Is that a 64-bit CPU or a
32-bit CPU? Note that on such a CPU, it makes
a lot of sense to support 32-bit ints,
particularly if there are far more 32-bit
registers than 64-bit ones.
Usually the product that wasn't released within a market window fails.
What you are forgetting is that defective
products also fail. Products that don't do
what the customers want will also fail.
Products that are too expensive or too cheap
also fail. Products not promoted properly
also fail. Even version 2 products of
successful version 1 products fail, especially
if version 2 had to be rewritten from scratch.
The question is one of optimizing multiple
factors. There's a time to market requirement,
a feature requirement, a price requirement,
and so on. Your job, as the engineer, is to
balance all these requirements to
come up with a product. Where requirements
contradict, you (or your boss) will prioritize
relatively. If your boss refuses to downgrade
any priority, then do your best while looking
for alternative employment.
The mistake in the question is assuming that
there are only two choices: "correct" and
"quick and dirty". Except for some of the
most trivial and time-sensitive projects,
there's likely enough time to do a proper
design and module breakdown. This paves the
way for a quick and dirty implementation, but
doesn't suck so badly as to require a total
rewrite for version 2.
The width of the registers is what dictates the width of a machine.
Sure, but not all registers are the same size.
Machines with floating point hardware usually
have floating point registers that are much
bigger than integer registers. The 80386 has segment selector
registers (ES, CS, SS, etc) that are 16 bits
wide, while the general purpose registers (EAX,
EBX, etc) are 32 bits wide. There's really
no rigid rule when it comes to this.
This is really no different than using hacks like emm386
There is a big difference. EMM386 essentially
presents an alternative OS API to use the extra
memory. Thus, when your application is using
memory past 1 MB, it doesn't have a whole lot
to do with DOS, which isn't even aware of the
existence of such memory. EMM386 also doesn't provide a 32-bit file system, and so fails criterion two. If memory serves, even a DOS program can
use a 32-bit instruction prefix to use 32-bit
registers, so maybe it passes criterion 3.
In any case, DOS+EMM386 does not qualify as
a 32-bit OS under the criteria provided.
You have to port C code!! Java is cross-platform by design, not portable.
No, "portability" is the same attribute for
both C and Java programs. Real world Java
portability depends on whether the code
triggers any bugs in the JVM, whether the JVM
has enough memory to run the bytecode, whether
it implements all the Java classes that are
used, whether it simply runs too slowly on
a suboptimal JVM, and so on. These are similar factors to
C's portability, such as compiler bugs,
memory assumptions (really deep recursion,
for example), or dependencies on non-standard
library functions.
Put another way, do you know of any responsible
developers who don't test their Java code
against every JVM it's meant to run on? If
not, then Java must also be "ported".
With Java, the standard libraries are way more usefull than the common set of C libraries
Yes, and that's the difference between these
two languages, not that one is "cross platform"
and the other is "portable", as if they were
different things. If C had a big standard
library, then even big feature-laden programs
can be ported with a simple recompile, much
like Java.
please don't tell me C is portable. [...]
As soon as you start fancy stuff, you're
bounded by the library you're using.
First of all, C, even without most of the
standard library, can be used to write very
large programs that run on multiple
architectures. See Linux, for example.
As for "bounded by library", just because
the standard library doesn't do everything
doesn't mean the language is not portable.
Java's standard class libraries don't do
everything, either.
This is not to say that C is just as useful
as Java at any particular application, or
that C is easier or harder to port than Java.
The two languages have very different design
philosophies, but they both have an attribute
called "portability".
Well if the changes are packed up into installable software packages then anybody can use them, even your grandmother.
That's great, but it's still harder than
"easily customizable" in my book. One thing
that geeks take for granted is information:
it's hard to get information. All these cool
things you read on Slashdot? Most people don't
even know they exist, much less where to look
for them. This is why PC operating systems
really have to be pre-installed, even if it
raises labor costs, for example. This is
also why it's possible to sell boxed sets of
things you can download for free.
I don't know of any other PDAs capable of reading memory cards that aren't formatted with the fat filesystem. [...] I don't know of any PDAs that allow you to install foreign language input methods without reflashing the rom
All testaments to the flexibility of Linux,
and perhaps of open source software in
general, which I agree with. But I was
talking about your "easily customizable"
comment, which grossly overestimates the will
and ability of most PDA users.
if the cost of the extra memory to hold a bigger OS footprint, per unit, is less than the OS license, per unit, you'd go with the extra memory and Linux.
That's not all of it. The extra memory consumes
extra power, which is a critical resource on
any handheld device. It also makes the device
physically larger and heavier, which are both
important attributes. I'm not saying the equation
necessarily changes because of these factors,
but you can't just ignore them.
It's easily customizable. [...] I didn't like the font chosen by a free Japanese input method I installed on the thing, so I modified the sources, recompiled, and copied the library onto the PDA.
I like Linux a lot, but some of you advocates
need to get a dose of reality. Linux is in
fact highly customizable, but it's not
easily customizable. What's the
percentage of PDA users in general who can
follow the steps you described without help?
As an independent consultant if I don't have the ability to patent my work then I lose my ability to compete in the workplace.
Nobody disputes that you should be paid for your
work. The question is, as cruel as it may seem,
not how much money you deserve for any given
invention, but how little legal protection the
society can give you while still retaining you
as a professional consultant. If possible,
we won't pay you one dollar more.
Understand that every copyright or patent we
(the people) grant an individual is a lost
freedom. We lose the freedom, however little,
of writing a novel whose hero is named Harry
Potter. We lose the freedom to use certain
algorithms (for free), whether or not we
independently re-developed that algorithm.
This is why patents expire. You are free to
exploit your invention with the protection of
the law, but after a while we gain the rights
to your invention. It's not about you.
You have no inherent right to compete
successfully against "all these major
corporations". Society has an interest in
promoting competition, so patents are a device
that can help the smaller party retain the
fruits of its labor, but your livelihood per
se is not the core consideration. Patents
expire because we want you to invent more
(rather than live the rest of your life off
one great idea), and because we want to use
your old invention for free after a while.
I think the patent system is pure capitalism at it's best and may the best and brightest and first to market be the guy who wins.
The first to market does have an
inherent advantage, in case you haven't
noticed. The question about patents is that
it can prevent a second or third to market,
including people who might actually provide
a better service or product than the guy with
the good idea. When patents stifle
competition rather than promote it, it will
rightfully be curtailed, for our benefit.
Under capitalism, the goal of the state is to promote open competition. [...] State granted monopolies are a facet of fascism, not capitalism. I don't see how you can call yourself a free market capitalist but still believe in patents.
No, the goal of a democratic state is to promote
the general welfare of its constituents, and to
protect the minorities from oppression. To this
end, it is sometimes more efficient to grant
monopolies. For example, without local cable
TV or telephone monopolies, there could be
wires from multiple companies crisscrossing
everywhere. It can also grant monopolies to
encourage certain desirable behavior, such as
invention (patents) and art (copyright), if
in the long run these monopolies enrich the
lives of its citizens.
Open competition is usually the best way to
achieve the general welfare goal I list above,
but not always, and more importantly is not
itself a goal. Various states have decided
that certain services and products (common
examples are electricity and water) are not
open to competition.
This is all theory, of course. Democracies
are regularly subverted by capitalist
interests, but certainly a state should not
exist to serve capitalism.
The largest variable between modern cars is their horsepower in the same way that the biggest variable in any generation of computers is their clock speed.
Really? Compare a 3.2 GHz P4 with 64 MB of RAM
with a 1.6 GHz G5 with 128 MB of RAM, please.
For a good number of normal applications, the
G5 will be significantly faster because the
P4 will be swapping a lot more.
Now, if I give the P4 an equivalent 128 MB of
RAM, then maybe your rule of thumb can start
to work. But realize that it's only the
"largest variable" after you've eliminated
all other variables!
"Horsepower? What difference does that make? I think I'll buy this Geo Metro over here instead of that Corvette over there."
Very good question. The qualities that a buyer
is actually interested is how quickly a car can
accelerate, and perhaps how quickly it can go.
Neither question is answered by a horsepower
rating alone, because the weight of the vehicle
is not considered. A 200 hp truck might have
a top speed similar to a 100 hp car, and if I
don't need the cargo capacity, why would I buy
the truck?
Now, should I have to know all that just to
deserve to buy a car, or should a knowledgeable
person help me assess my actual needs?
Here's an example. A store can easily advise
a potential customer that a 40 GB hard drive
can be used to edit one 30-minute video, but
you have to delete the video project off the
hard disk to make another one. If you think
you might have two simultaneous 30-minute
projects, you should have at least 80 GB.
If you can't afford the 80 GB drive, then
you'll have to live with the hassle. The
customer gets to choose between cost and
ability in terms that are relevant to his or
her needs.
Suppose I had 100K lines of code with 100 defects. After reviewing my code I discovered that I could refactor it to 80K lines and suppose further that doing so had no effect on the defect count. Defects per line of code would look worse after an improvement.
This is a pitfall of any statistical measure,
but is not an indictment of statistics itself
as a science or as a tool. You need to
understand the metric (in this case, looking
at the raw numbers would reveal that the
total defects has not increased) to use it
properly.
Sounds like MacOSX can be called UNIX in a same way as Windows-95
What are you talking about? A screensaver password
vulnerability requires physical access to the machine.
Most Unices will not protect against a malicious user
with physical access, either.
at least [Linux and NT] has a general design idea of what is a protection of user sessions.
That's even more ridiculous. This is a bug, not something
there by design.
Dumping things undervalue as a monopoly is unethical and illegal in many places.
Microsoft does not have a monopoly in game consoles.
If there was a viable alternative OS (say, MacOS X for
the x86) emerging on the scene, and Microsoft starts
selling Windows below cost, then you would have a
case. Microsoft is also not permitted to leverage its
monopoly in the desktop OS, which means that they
probably can't bundle an X-Box with every Windows
purchase. Using profits from a monopoly product to
fund another product, however, is not illegal AFAIK.
And, armed with that knowledge, we create
new languages, that *don't* have the _same_
weaknesses.
Unfortunately, it doesn't work that way. C++
was designed specifically as a better C, yet
the first generation of C++ code were written
by programmers who did not understand how to
write C++ effectively. This resulted in
bloated code, or code that was only minimally
C++ (and really looked more like C). It takes
much longer than advocates are willing to admit
for a new language to actually improve
productivity across the board.
Also, inevitably, a new language will have
new classes of bugs. C programmers, for
example, don't have to deal with the
intricacies of exception handling. I don't
want to argue which one is easier, because
that's not the point. The point is that the
new features to save the world also have to
be learned and mastered over time.
Then why do we have more number of Java programmers
Because that statement is a gross
generalization for cases where all other
factors are equal, not to be taken literally.
The number of programmers who know any given
language depends on the popularity of the
language, the population, how much demand
there is for them, and so on. Note key words
"tends to" in my original post.
we'd rather see people use these "new languages" instead of C
I'm not arguing that you shouldn't use newer
languages. I'm saying that age can have
redeeming technical merits that help keep an
older language in contention. These technical
merits are rarely considered when amateurs
simply compare feature lists.
If my life depended on it, I'd rather use the
C program that a 20-year C programmer wrote,
than the first Java program that the same
programmer ever wrote. Again, this is not
a literal statement, but something to
illustrate a point.
Just because you can't afford it, and the "original" still exists, doesn't make it acceptable, or justifiable. It also doesn't mean that you SHOULD be able to benefit from it.
First you have to ask: why not? If I have the
technology to download a song or a novel
virtually for free, without depriving the owner
of the physical property, why should I be banned
from doing it?
The answer is because it would discourage the
author or artist from publishing the work.
Some might still do it, for the love of art,
and some might still make enough money to
survive, but many would doubtlessly have to
find other jobs instead. The society as a
collective decides that this (professional
art) is too much to lose, so we protect them
with copyright. Copyright as a concept is
utilitarian, not really a moral question as
you imply. Make no mistake: there is no
inherent human right to art as a profession.
Society merely chose that it is better off
with professional artists.
It's not an "overinflated sense of entitlement".
The frame of mind you start with should
be that in a free society, nothing is illegal.
Then you add restrictions on behavior
that would harm other people directly or
discourage desirable behavior.
If you steal cable, it (usually) doesn't affect the quality of the "original", so does that mean you're copying it, and you should be allowed to because it's not a physical object?
What kind of "stealing cable"? If you have to
open up somebody else's property, and attach
a wire to run to your house, there's clearly
physical damage. If the wires are already
connected to your house, and the signal is
already flowing, then simply plugging your TV
in becomes "stealing"? Why is that latter
act not equivalent to airwave broadcast, for
example?
If you said "intention", then what if I start
a new broadcast TV channel, using the exact
same technology as other TV channels, and
expected people to send me $10 every month?
Are people stealing from me if they tune in?
Maybe selling a magazine is more of a sale of a "service" as opposed to a sale of a physical object.
That's a slippery slope you're heading down.
If I sell you a toaster, am I really just
selling you a bread-toasting service?
I still think that if you take something
that you haven't paid for, that is theft.
Societies generally don't agree. Some
things, for example, are not patentable or
copyrightable, even if it involved real
efforts to create. Business methods have
only recently been patentable, and that has
come under much criticism. Whether you
like it or not, society defines what
intangible things are protected as if it
was physical property, and what aren't.
If only emails with digital signatures are allowed then anonymous email won't get through.
In a free country, you have to right to speak
anonymously without fear of persecution.
However, you do not have the right to be
heard, anonymously or otherwise. It's entirely
my right to ignore anybody I want.
Or just used the wrong language if he needs to compile every 5 minutes just to see if the three lines of code he just labored over actually do work.
Actually, this is a valid criticism. There
are parts in every project's lifecycle,
typically between feature freeze and release,
where engineers write very few lines of code,
but have to compile often to test bug fixes.
In the most extreme conditions (slow compiler
plus bad Makefiles plus having to download
your binaries to the target machine over a
serial port), the turnaround time for a bug
fix can be adversely affected when time matters
most.
As you said, if you're constantly compiling all
throughout the project life cycle, you're
probably not as productive as you can be.
An older language has had more lines of
code written for it, so its weaknesses are
better known, and more likely published.
An older language tends to have more
developers, which means any random volunteer
is more likely to know it already.
An older language has already fought
"battles" for survival, and has been squeezed
out of applications for which it is ill-suited,
and continues to exist for a good Darwinian
reason.
An older language is more likely to be
standardized, and more widely ported.
Let's take C, for example. An experienced
C programmer will point you towards two or
three books like van der Linden's "Expert C
Programming: Deep C Secrets", or Koenig's
"C Traps and Pitfalls". C is rarely used
for GUI application development, but still
widely used in embedded systems where space
and speed are important. C is an ISO
Standard, which is important for portability.
One mistake that many people make is to
dismiss older languages when a new one appears
with all the old features and then some.
The old language does not become any less
viable the day a new one comes out than the
day before. That is, if a project will take
you 6 months in C, it'll still take 6 months
even after Java (which might cut it down to
5) comes out. The question is whether the
unique costs of using Java instead justifies
the 1 month saved, not whether C is still
"viable".
...and then concluded that satisfying your
customers' needs for a laptop with a bigger
screen is "not innovation, [but] a step back."
The fact that 17" laptops are useful (though
not to everybody) suggests to me that it isn't
a "step back".
No, I think you made your point pretty clearly,
which is that companies should be judged by
their actions regardless of whether they are
a monopoly or not. This is a moral question,
to which I offer no argument one way or the
other.
I'm merely pointing out that the legal
question is different. It does matter
a great deal whether or not you are a
monopoly. This is because a monopoly is
really a singularity in market economy,
because their phenomenal success in the
market has made them immune from competition.
This requires the government to rein in
its actions, to protect its potential
competitors, the society at large, and
sometimes the monopoly from itself.
The PC market remains vibrant even when
Apple killed off Mac clones. It would not
be nearly the same if Microsoft enters the
market unimpeded, and uses Windows to kill
off all the other PC makers. Same action,
very different results on the market and
society.
I still think, as a general opinion: Patenting sofware = Bad always
You're contradicting yourself. If software
patents are "generally" bad, then they're not
"always" bad.
In any case, can you imagine a software algorithm
so complex that it takes a PhD five years to
develop and prove correct, and is so useful
that it will double the sales of Microsoft
Windows? I'm exaggerating, of course, but if
that possibility even exists, I think the
inventor deserves compensation for it, and
needs some legal protection.
This is not to say that the USPTO doesn't
issue far too many poor patents. The system
is quite clearly broken, but I don't think
you've presented evidence or argument that
it cannot be fixed.
Mac fanboys will blab on about how companies are copying Apple's "innovations" but sticking a 17in LCD in a laptop is not innovation, its a step back.
Has it occurred to you that, given that a
sizable percentage of Mac users are graphics
or media professionals, maybe they need a
bigger screen laptop than you do? Put
another way, have you ever tried to use Avid
or Final Cut Pro on a 15" screen?
Microsoft offer pricing incentives to OEMs. They do not have to take advantage of these incentives, they choose to.
You use a most interesting definition of the
word "choose".
Yes, Dell can certainly "choose" to sell only
Linux PCs, and bundle Netscape as much as they
want. However, they are likely to lose most of
their market share, if not go out of business
entirely.
If I'm pointing a gun at you, you can certainly
"choose" to disobey me. The rest of the world
generally uses a more relevant definition for
the word, so no, the OEMs have no choice but
to play nice with Microsoft to get the lowest
possible price for Windows.
I was commenting about the double standard around here
The double standards are enshrined in law.
It's very clear that a normal company can do
many things that a monopoly cannot do.
There's generally a correspondence between the integer register size, and how a C compiler chooses to implement the "int" type. However, Turbo C running under MS-DOS, for example, presented 16-bit ints even when running under a 80386 (which is of course commonly classified as a 32-bit CPU). The C Standard makes no such requirement, so there's no point in saying who is right or wrong.
Imagine, for instance, a compiler for a 32-bit machine that presented 16-bit ints as a space optimization (int arrays would take up less space).
Also imagine a CPU that provides some 32-bit registers (because 4 billion is really not a bad size for the common "int"), and some 64-bit registers (to natively support "long" or "long long"). Is that a 64-bit CPU or a 32-bit CPU? Note that on such a CPU, it makes a lot of sense to support 32-bit ints, particularly if there are far more 32-bit registers than 64-bit ones.
What you are forgetting is that defective products also fail. Products that don't do what the customers want will also fail. Products that are too expensive or too cheap also fail. Products not promoted properly also fail. Even version 2 products of successful version 1 products fail, especially if version 2 had to be rewritten from scratch.
The question is one of optimizing multiple factors. There's a time to market requirement, a feature requirement, a price requirement, and so on. Your job, as the engineer, is to balance all these requirements to come up with a product. Where requirements contradict, you (or your boss) will prioritize relatively. If your boss refuses to downgrade any priority, then do your best while looking for alternative employment.
The mistake in the question is assuming that there are only two choices: "correct" and "quick and dirty". Except for some of the most trivial and time-sensitive projects, there's likely enough time to do a proper design and module breakdown. This paves the way for a quick and dirty implementation, but doesn't suck so badly as to require a total rewrite for version 2.
Sure, but not all registers are the same size. Machines with floating point hardware usually have floating point registers that are much bigger than integer registers. The 80386 has segment selector registers (ES, CS, SS, etc) that are 16 bits wide, while the general purpose registers (EAX, EBX, etc) are 32 bits wide. There's really no rigid rule when it comes to this.
There is a big difference. EMM386 essentially presents an alternative OS API to use the extra memory. Thus, when your application is using memory past 1 MB, it doesn't have a whole lot to do with DOS, which isn't even aware of the existence of such memory. EMM386 also doesn't provide a 32-bit file system, and so fails criterion two. If memory serves, even a DOS program can use a 32-bit instruction prefix to use 32-bit registers, so maybe it passes criterion 3. In any case, DOS+EMM386 does not qualify as a 32-bit OS under the criteria provided.
No, "portability" is the same attribute for both C and Java programs. Real world Java portability depends on whether the code triggers any bugs in the JVM, whether the JVM has enough memory to run the bytecode, whether it implements all the Java classes that are used, whether it simply runs too slowly on a suboptimal JVM, and so on. These are similar factors to C's portability, such as compiler bugs, memory assumptions (really deep recursion, for example), or dependencies on non-standard library functions.
Put another way, do you know of any responsible developers who don't test their Java code against every JVM it's meant to run on? If not, then Java must also be "ported".
With Java, the standard libraries are way more usefull than the common set of C libraries
Yes, and that's the difference between these two languages, not that one is "cross platform" and the other is "portable", as if they were different things. If C had a big standard library, then even big feature-laden programs can be ported with a simple recompile, much like Java.
please don't tell me C is portable. [...] As soon as you start fancy stuff, you're bounded by the library you're using.
First of all, C, even without most of the standard library, can be used to write very large programs that run on multiple architectures. See Linux, for example. As for "bounded by library", just because the standard library doesn't do everything doesn't mean the language is not portable. Java's standard class libraries don't do everything, either.
This is not to say that C is just as useful as Java at any particular application, or that C is easier or harder to port than Java. The two languages have very different design philosophies, but they both have an attribute called "portability".
That's great, but it's still harder than "easily customizable" in my book. One thing that geeks take for granted is information: it's hard to get information. All these cool things you read on Slashdot? Most people don't even know they exist, much less where to look for them. This is why PC operating systems really have to be pre-installed, even if it raises labor costs, for example. This is also why it's possible to sell boxed sets of things you can download for free.
I don't know of any other PDAs capable of reading memory cards that aren't formatted with the fat filesystem. [...] I don't know of any PDAs that allow you to install foreign language input methods without reflashing the rom
All testaments to the flexibility of Linux, and perhaps of open source software in general, which I agree with. But I was talking about your "easily customizable" comment, which grossly overestimates the will and ability of most PDA users.
That's not all of it. The extra memory consumes extra power, which is a critical resource on any handheld device. It also makes the device physically larger and heavier, which are both important attributes. I'm not saying the equation necessarily changes because of these factors, but you can't just ignore them.
I like Linux a lot, but some of you advocates need to get a dose of reality. Linux is in fact highly customizable, but it's not easily customizable. What's the percentage of PDA users in general who can follow the steps you described without help?
Nobody disputes that you should be paid for your work. The question is, as cruel as it may seem, not how much money you deserve for any given invention, but how little legal protection the society can give you while still retaining you as a professional consultant. If possible, we won't pay you one dollar more.
Understand that every copyright or patent we (the people) grant an individual is a lost freedom. We lose the freedom, however little, of writing a novel whose hero is named Harry Potter. We lose the freedom to use certain algorithms (for free), whether or not we independently re-developed that algorithm.
This is why patents expire. You are free to exploit your invention with the protection of the law, but after a while we gain the rights to your invention. It's not about you. You have no inherent right to compete successfully against "all these major corporations". Society has an interest in promoting competition, so patents are a device that can help the smaller party retain the fruits of its labor, but your livelihood per se is not the core consideration. Patents expire because we want you to invent more (rather than live the rest of your life off one great idea), and because we want to use your old invention for free after a while.
I think the patent system is pure capitalism at it's best and may the best and brightest and first to market be the guy who wins.
The first to market does have an inherent advantage, in case you haven't noticed. The question about patents is that it can prevent a second or third to market, including people who might actually provide a better service or product than the guy with the good idea. When patents stifle competition rather than promote it, it will rightfully be curtailed, for our benefit.
Have I mentioned that it's not about you? :)
No, the goal of a democratic state is to promote the general welfare of its constituents, and to protect the minorities from oppression. To this end, it is sometimes more efficient to grant monopolies. For example, without local cable TV or telephone monopolies, there could be wires from multiple companies crisscrossing everywhere. It can also grant monopolies to encourage certain desirable behavior, such as invention (patents) and art (copyright), if in the long run these monopolies enrich the lives of its citizens.
Open competition is usually the best way to achieve the general welfare goal I list above, but not always, and more importantly is not itself a goal. Various states have decided that certain services and products (common examples are electricity and water) are not open to competition.
This is all theory, of course. Democracies are regularly subverted by capitalist interests, but certainly a state should not exist to serve capitalism.
Really? Compare a 3.2 GHz P4 with 64 MB of RAM with a 1.6 GHz G5 with 128 MB of RAM, please. For a good number of normal applications, the G5 will be significantly faster because the P4 will be swapping a lot more.
Now, if I give the P4 an equivalent 128 MB of RAM, then maybe your rule of thumb can start to work. But realize that it's only the "largest variable" after you've eliminated all other variables!
Very good question. The qualities that a buyer is actually interested is how quickly a car can accelerate, and perhaps how quickly it can go. Neither question is answered by a horsepower rating alone, because the weight of the vehicle is not considered. A 200 hp truck might have a top speed similar to a 100 hp car, and if I don't need the cargo capacity, why would I buy the truck?
Now, should I have to know all that just to deserve to buy a car, or should a knowledgeable person help me assess my actual needs?
Here's an example. A store can easily advise a potential customer that a 40 GB hard drive can be used to edit one 30-minute video, but you have to delete the video project off the hard disk to make another one. If you think you might have two simultaneous 30-minute projects, you should have at least 80 GB. If you can't afford the 80 GB drive, then you'll have to live with the hassle. The customer gets to choose between cost and ability in terms that are relevant to his or her needs.
This is a pitfall of any statistical measure, but is not an indictment of statistics itself as a science or as a tool. You need to understand the metric (in this case, looking at the raw numbers would reveal that the total defects has not increased) to use it properly.
What are you talking about? A screensaver password vulnerability requires physical access to the machine. Most Unices will not protect against a malicious user with physical access, either.
at least [Linux and NT] has a general design idea of what is a protection of user sessions.
That's even more ridiculous. This is a bug, not something there by design.
Microsoft does not have a monopoly in game consoles. If there was a viable alternative OS (say, MacOS X for the x86) emerging on the scene, and Microsoft starts selling Windows below cost, then you would have a case. Microsoft is also not permitted to leverage its monopoly in the desktop OS, which means that they probably can't bundle an X-Box with every Windows purchase. Using profits from a monopoly product to fund another product, however, is not illegal AFAIK.
Unfortunately, it doesn't work that way. C++ was designed specifically as a better C, yet the first generation of C++ code were written by programmers who did not understand how to write C++ effectively. This resulted in bloated code, or code that was only minimally C++ (and really looked more like C). It takes much longer than advocates are willing to admit for a new language to actually improve productivity across the board.
Also, inevitably, a new language will have new classes of bugs. C programmers, for example, don't have to deal with the intricacies of exception handling. I don't want to argue which one is easier, because that's not the point. The point is that the new features to save the world also have to be learned and mastered over time.
Then why do we have more number of Java programmers
Because that statement is a gross generalization for cases where all other factors are equal, not to be taken literally. The number of programmers who know any given language depends on the popularity of the language, the population, how much demand there is for them, and so on. Note key words "tends to" in my original post.
we'd rather see people use these "new languages" instead of C
I'm not arguing that you shouldn't use newer languages. I'm saying that age can have redeeming technical merits that help keep an older language in contention. These technical merits are rarely considered when amateurs simply compare feature lists.
If my life depended on it, I'd rather use the C program that a 20-year C programmer wrote, than the first Java program that the same programmer ever wrote. Again, this is not a literal statement, but something to illustrate a point.
First you have to ask: why not? If I have the technology to download a song or a novel virtually for free, without depriving the owner of the physical property, why should I be banned from doing it?
The answer is because it would discourage the author or artist from publishing the work. Some might still do it, for the love of art, and some might still make enough money to survive, but many would doubtlessly have to find other jobs instead. The society as a collective decides that this (professional art) is too much to lose, so we protect them with copyright. Copyright as a concept is utilitarian, not really a moral question as you imply. Make no mistake: there is no inherent human right to art as a profession. Society merely chose that it is better off with professional artists.
It's not an "overinflated sense of entitlement". The frame of mind you start with should be that in a free society, nothing is illegal. Then you add restrictions on behavior that would harm other people directly or discourage desirable behavior.
If you steal cable, it (usually) doesn't affect the quality of the "original", so does that mean you're copying it, and you should be allowed to because it's not a physical object?
What kind of "stealing cable"? If you have to open up somebody else's property, and attach a wire to run to your house, there's clearly physical damage. If the wires are already connected to your house, and the signal is already flowing, then simply plugging your TV in becomes "stealing"? Why is that latter act not equivalent to airwave broadcast, for example?
If you said "intention", then what if I start a new broadcast TV channel, using the exact same technology as other TV channels, and expected people to send me $10 every month? Are people stealing from me if they tune in?
Maybe selling a magazine is more of a sale of a "service" as opposed to a sale of a physical object.
That's a slippery slope you're heading down. If I sell you a toaster, am I really just selling you a bread-toasting service?
I still think that if you take something that you haven't paid for, that is theft.
Societies generally don't agree. Some things, for example, are not patentable or copyrightable, even if it involved real efforts to create. Business methods have only recently been patentable, and that has come under much criticism. Whether you like it or not, society defines what intangible things are protected as if it was physical property, and what aren't.
In a free country, you have to right to speak anonymously without fear of persecution. However, you do not have the right to be heard, anonymously or otherwise. It's entirely my right to ignore anybody I want.
Actually, this is a valid criticism. There are parts in every project's lifecycle, typically between feature freeze and release, where engineers write very few lines of code, but have to compile often to test bug fixes. In the most extreme conditions (slow compiler plus bad Makefiles plus having to download your binaries to the target machine over a serial port), the turnaround time for a bug fix can be adversely affected when time matters most.
As you said, if you're constantly compiling all throughout the project life cycle, you're probably not as productive as you can be.
- An older language has had more lines of
code written for it, so its weaknesses are
better known, and more likely published.
- An older language tends to have more
developers, which means any random volunteer
is more likely to know it already.
- An older language has already fought
"battles" for survival, and has been squeezed
out of applications for which it is ill-suited,
and continues to exist for a good Darwinian
reason.
- An older language is more likely to be
standardized, and more widely ported.
Let's take C, for example. An experienced C programmer will point you towards two or three books like van der Linden's "Expert C Programming: Deep C Secrets", or Koenig's "C Traps and Pitfalls". C is rarely used for GUI application development, but still widely used in embedded systems where space and speed are important. C is an ISO Standard, which is important for portability.One mistake that many people make is to dismiss older languages when a new one appears with all the old features and then some. The old language does not become any less viable the day a new one comes out than the day before. That is, if a project will take you 6 months in C, it'll still take 6 months even after Java (which might cut it down to 5) comes out. The question is whether the unique costs of using Java instead justifies the 1 month saved, not whether C is still "viable".
No, I think you made your point pretty clearly, which is that companies should be judged by their actions regardless of whether they are a monopoly or not. This is a moral question, to which I offer no argument one way or the other.
I'm merely pointing out that the legal question is different. It does matter a great deal whether or not you are a monopoly. This is because a monopoly is really a singularity in market economy, because their phenomenal success in the market has made them immune from competition. This requires the government to rein in its actions, to protect its potential competitors, the society at large, and sometimes the monopoly from itself.
The PC market remains vibrant even when Apple killed off Mac clones. It would not be nearly the same if Microsoft enters the market unimpeded, and uses Windows to kill off all the other PC makers. Same action, very different results on the market and society.
You're contradicting yourself. If software patents are "generally" bad, then they're not "always" bad.
In any case, can you imagine a software algorithm so complex that it takes a PhD five years to develop and prove correct, and is so useful that it will double the sales of Microsoft Windows? I'm exaggerating, of course, but if that possibility even exists, I think the inventor deserves compensation for it, and needs some legal protection.
This is not to say that the USPTO doesn't issue far too many poor patents. The system is quite clearly broken, but I don't think you've presented evidence or argument that it cannot be fixed.
Has it occurred to you that, given that a sizable percentage of Mac users are graphics or media professionals, maybe they need a bigger screen laptop than you do? Put another way, have you ever tried to use Avid or Final Cut Pro on a 15" screen?
You use a most interesting definition of the word "choose".
Yes, Dell can certainly "choose" to sell only Linux PCs, and bundle Netscape as much as they want. However, they are likely to lose most of their market share, if not go out of business entirely. If I'm pointing a gun at you, you can certainly "choose" to disobey me. The rest of the world generally uses a more relevant definition for the word, so no, the OEMs have no choice but to play nice with Microsoft to get the lowest possible price for Windows.
I was commenting about the double standard around here
The double standards are enshrined in law. It's very clear that a normal company can do many things that a monopoly cannot do.