|Do you know where your variables are?|
Re: What does "efficient" mean?!?by mstone (Deacon)
|on Jan 16, 2002 at 04:57 UTC||Need Help??|
While tilly's post above is excellent, I'd like to approach the problem from a different angle.
The word 'efficient' is an adjective. It modifies a noun.
'Efficient' means nothing by itself. You can be 'space efficient', 'cost efficient', 'time efficient', or any number of other things, but you're always using the word 'efficient' relative to some other standard. When people start talking about raw 'efficiency', they're using undefined terms, and may as well be arguing about how 'blue' Perl is.
Now I know that people often use 'efficient' to mean 'aggregate efficiency across N different criteria', but if you don't actually have a weighted list of criteria, you're talking cow pies. That's especially true in programming, where we have so many standards working in opposition to each other. You can make something more space efficient by compressing it, or you can make it more processing efficient by expanding it to its final form. And given various hardware latencies, neither pure solution may be particularly efficient with regard to time (unpacking can be slow, but so is stalling the CPU because your data structures keep clobbering the L2 cache). The solution with the best aggregate efficiency depends entirely on how you choose to weigh the options.
When people start talking about efficiency, my first question is always "why should I care?" That makes some people testy, because they put 'Efficiency' right up there with 'God', 'Mom', 'Apple Pie', and other totems of indisputable good. When they say, "because it's Efficient," you can usually substitute, "because God is on my side," without changing their argument much. But efficiency is a measurement, not an end unto itself. If you can't state a good reason to care about a particular efficiency, the effort of creating it won't produce any usable output, therefore pursuing that efficiency is itself inefficient.. so there, checkmate, nyah-nyah-nyah. ;-)
People usually start talking about efficiency when they want to justify their decision to use a particular language. They don't care about numbers, which is good, because the numbers tend to show that one high level language is just about as good as another, and that productivity varies from programmer to programmer with at least a 1000:1 spread in any given language (one minute of typing something you know -v- two days of reading manuals and experimenting).
Me, I use Perl becuase I like it.