Template Metaprogramming Made Easy (Huh?)

BCS none at anon.com
Tue Sep 15 12:05:05 PDT 2009


Hello language_fan,

> Fri, 11 Sep 2009 22:41:32 +0000, BCS thusly wrote:
> 
>> Hello language_fan,
>> 
>>> Game development is one of the largest users of systems programming
>>> languages.
>>> 
>> I would mandate the 10-25% test no mater what language is being used.
>> 
>> The bulk of programming is done for Finance, Insurance and Real
>> Estate (and is done in COBOL </yuck>) The most common programs out
>> there are OSs and MS Office. As I said, I don't care about games.
>> 
> I was talking about systems programming languages like C or D. From
> wikipedia
> 

I'm talking about systems programming languages AND any other language that 
is used.

> What is a bit confusing is that you mentioned operating systems and MS
> Office. 99.9% of companies worldwide do not develop any code even as
> plugins to those. For example MS Office is a native executable only
> for business reasons. There is nothing preventing them from providing
> it as an applet or web service (like google does). Office suites are
> in no way performance limited these days. In fact I think parts of the
> competitor OpenOffice.org has been written in Java.

My point is that games are NOT representative. In terms of lines of code 
written, Finance, Insurance and Real Estate dominate and in terms of lines 
of code executed, (after LAMPACK) MS Office, it's clones, Windows and Linux 
dominate. The only place games dominate is in the mind share some category 
of home users.

>>> It cannot be known beforehand which features are unnecessary, and there
>>> is a hard limit on how much can be removed. So either you can remove
>>> say 30-50% of features
>>
>> Clearly you can't cut core features, but you can make some eye candy
>> features go away when there isn't enough power to run them.
>> 
> Making business decisions is not that easy, 

Easy? No. But that's what someone gets paid big money to do. Or are you saying 
that it's impossible?...

> especially if you have no idea of the application domain.

"I didn't do enough market research so I'm going to give the end user every 
thing they might want and then ask them to buy a bigger computer to run it 
because I'm to lazy to make the resulting mess fast."

> There are several stakeholders and various contracts involved.
 
"Our program manger is to lazy to get the stakeholders to give us a rational 
coherent spec."

The business decisions here is that *I* WILL NOT force my costumers to buy 
a new computer every 1-3 years. And even if they don't need to buy a new 
computer, if I can make my code 1% faster for 1 minute of effort, I only 
need to save my user 100 minutes of time for it to be a net gain. I'm asserting, 
without proof, that there are vanishing few desktop applications out there 
that need anywhere near the computer power that is available now days (e.i. 
they should rarely have any perceivable wait time on a remotely modern system). 


>>> or do a complete redesign.
>>> 
>> If a different design is practical and would be faster, you should
>> have used it in the first place or should be planning on doing it at
>> some point anyway (I have never seen a non trivial program that was
>> fast enough that I didn't whish it was faster).
>> 
> Large parts of software projects worldwide fail. Redesigning for
> instance a single iteration is not that bad. You seem to favor the
> top-down waterfall model. Unfortunately the waterfall model usually
> fails. If you had studied software engineering lately, you would know
> that.
> 

/Some/ sort of design is needed even in an agile model, and even if you don't 
bother with a detailed design, as you pointed out, redesigning/refactor should 
always be an option. Again, if a different faster design is practical, sooner 
or later you should use it. 

>>>> This is the classic "fast cheap or well done, pick two". For
>>>> anything that will ship, I'll always pick well done.
>>>> 
>>> That is ok if you are a hobby programmer, but in real world e.g. in
>>> the game industry the contracts pretty much dictate the schedules
>>> and if you spend too much time on the project, the producer will not
>>> offer any extra money. So if $1000..$1500 / month is ok for you,
>>> then fine.
>>> 
>> I will grant that games can legitimately require top of the line
>> hardware (scientific programs, and some things like photoshop can
>> also) but most anything that runs on a desktop should be written so
>> that people can run it with the hardware they have now, rather than
>> have to buy new hardware
>> 

The above can be read as "Ok you might have a point about games" but...

> Nowadays, as the piracy is hindering PC sales quite a lot, the focus
> is on console, mobile, and online games.

Could you quit going back to games already?! I DON'T CARE A WIT ABOUT GAMES!!!! 
If an argument doesn't apply to non-games I don't care.





More information about the Digitalmars-d mailing list