Template Metaprogramming Made Easy (Huh?)

language_fan foo at bar.com.invalid
Sat Sep 12 09:53:24 PDT 2009


Fri, 11 Sep 2009 22:41:32 +0000, BCS thusly wrote:

> Hello language_fan,
> 
>> Fri, 11 Sep 2009 16:33:56 +0000, BCS thusly wrote:
>> 
>>> First, I have zero interest in game development so that's not an issue
>>> for me.
>>> 
>> 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

"The term system programming language is also (and perhaps more widely) 
used to mean "a language for system programming": that is, a language 
designed for writing system software as distinct from application 
software. In contrast with application languages, such system programming 
languages typically offer more direct access to the physical hardware of 
the machine: an archetypical system programming language in this sense 
was BCPL. The distinction between languages for system programming and 
applications programming became blurred with widespread popularity of C."

The various application domains you listed actually often do not use 
systems programming languages, at least the majority of their code does 
not. Things like database engines, drivers, operating systems, firmware, 
virtual machines (and games) on the other hand have no choice. For 
instance the code I have seen on the finance industry used languages Java 
(J2EE), Awk, Perl, and Javascript.

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.

>  
>>> OK so the lead knows that they can make things x times faster. Well
>>> then the demo on the 10-25th percentile machine must not be x times
>>> slower than what you need on ship day. Exactly the same as would be
>>> true if the demo were done on a 50th or 75th percentile machine.
>>> 
>> Well basically you could do that. Usually it does not work that way.
>> The idea is to prioritize the features and remove the worst ones.
> 
> well that's also a way to make it run faster.
> 
>> 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, especially if you have no 
idea of the application domain. There are several stakeholders and 
various contracts involved.

> 
>> 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.

>> But if you end up
>> using only 50% of the potential resources of the platform, your game
>> will usually suck (if the audience is technology oriented as it usually
>> is).
>> 
>>> 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

Nowadays, as the piracy is hindering PC sales quite a lot, the focus is 
on console, mobile, and online games. The hardware specifications do not 
change that often, but it is still a bit hard to foretell what kind of 
stuff works. If the producer decides to want a split screen game mode 2 
months before deadline, it is not clear at all if the final frame rate 
will be below acceptable level in some parts of the game.



More information about the Digitalmars-d mailing list