Mark has spoken

Miscellaneous Forums/General Discussion/Mark has spoken

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

I meant the user of the application.
Sure. But what has that got to do with the underlying programming language?

I'm using the English definition:
Yes. Well you should probably use a less ambiguous definition next time. For instance the "least waste of time and effort" would imply using off-the-shelf 3rd party libraries, however the chance of you finding an off-the-shelf library that does exactly what you need it to do (and nothing else), are probably fairly slim. So the English definition is as regards to software engineering is a contradiction in terms. Which is probably why the IEEE doesn't use it.

Some programmers find C++ most efficient for their needs (speed), while others find higher level languages most efficient for their needs (productivity).
Yes I realize that's your point. It's just not (IMO) the correct focus. You should focus on customer needs first, programmer needs second (if at all).

why can't you simply have a highly optimized efficient fast correct algorith all at once?
Because developing an algorithm is always a trade-off between between different factors, speed, efficiency, readability and maintainability being some of them. Which is why you need to use a pragmatic and heuristic approach to algorithm design, depending on what your customers needs or wants.

if you use a language like Python which is interpreted/VM'ed and can't be fast, "by any definition of the word"
Sure you can. I've recently written an indexing service using Lucene (Java) and Python that indexes about 20 GB of documents in 47 seconds, which is roughly 2 hours less than it takes the Microsoft Indexing Service (written in C++) to do the same thing.