Pure dynamic casts?
Christopher Wright
dhasenan at gmail.com
Thu Sep 24 20:06:39 PDT 2009
Jeremie Pelletier wrote:
> language_fan wrote:
>> Wed, 23 Sep 2009 10:43:53 -0400, Jeremie Pelletier thusly wrote:
>>
>>> You're right about concurrency being a different concept than threading,
>>> but I wouldn't give threading away for a pure concurrent model either.
>>> I believe D is aiming at giving programmers a choice of the tools they
>>> wish to use. I could see uses of both a concurrent model with message
>>> passing and a threading model with shared data used at once in a
>>> program.
>>
>> The danger in too large a flexibility is that concurrency is not easy
>> and it is getting incresingly complex. You need to be extraordinary
>> good at manually managing all concurrent use of data. If I may predict
>> something that is going to happen, it is that there will be high level
>> models that avoid many low level pitfalls. These models will not
>> provide 100% efficiency, but they are getting faster and faster,
>> without compromizing the safety aspect. This already happened with
>> memory allocation (manual vs garbage collection - in common
>> applications, but not in special cases). Before that we gave some of
>> the error detection capabilities to the compiler (e.g. we do not write
>> array bounds checks ourselves anymore). And optimizations (e.g.
>> register allocation). You may disagree, but I find it much more
>> pleasant to find that the application does never crash even though it
>> works 15% slower than an optimal C++ code would.
>
> 15% slower is an extreme performance hit. I agree that code safety is
> useful and I use this model all the time for initialization and other
> code which isn't real time, but 15% takes away a lot of the
> application's responsiveness, if you have 50 such applications running
> on your system you just spent $1000 more in hardware to get the
> performance of entry level hardware with faster code.
What are most applications these days? MS Office, a web browser, maybe
an email client, some odds and ends, and a whole bunch of web sites
running on servers somewhere (with associated database servers and some
other odds and ends).
How much does it cost to get a slightly better machine? Fully hosted?
Maybe $100/month.
How much does it cost to develop it in a faster but more error-prone
language? Maybe months more time to market, time you're not making money
but are still paying developers. Those developers will need to be more
skilled than the ones using a safer language, and thus will cost you
more. New features will take more time to develop.
It's a competitive advantage to use a slower, safer language on the web.
Desktop applications are not quite so straightforward.
> If you wrote a real time renderer for example with that 15% hit, you get
> a very noticeable difference in framerate. Not to mention standard GUIs
> to be laggy on slower machines (just MSN messenger runs to a crawl on my
> old computer, yet it can run the first UT which does way more operations
> per second, because there's no performance hit by safer code bloat).
Games are not interesting in this regard. They require performance, and
they're hideously expensive. A studio can throw developers at the
problems and make them go away.
Not all games are like this, of course. But most are.
More information about the Digitalmars-d
mailing list