Conspiracy Theory #1
Travis Boucher
boucher.travis at gmail.com
Thu Nov 19 21:27:34 PST 2009
Sean Kelly wrote:
> retard Wrote:
>
>> Thu, 19 Nov 2009 11:47:46 -0800, Bill Baxter wrote:
>>
>>
>>> It seems to me that MS expects C++ to go the way of FORTRAN and
>>> COBAL. Still there, still used, but by an increasingly small number of
>>> people for a small (but important!) subset of things. Note how MS still
>>> hasn't produced a C99 compiler. They just don't see it as relevant to
>>> enough people to be financially worthwhile.
>> Even the open source community is using more and more dynamic languages
>> such as Python on the desktop and Web 2.0 (mostly javascript, flash,
>> silverlight, php, python) is a strongly growing platform. I expect most
>> of the every day apps to move to the cloud during the next 10 years.
>> Unfortunately c++ and d missed the train here. People don't care about
>> performance anymore. Even application development has moved from library
>> writing to high level descriptions of end user apps that make use of high
>> quality foss/commercial off-the-shelf components. Cloud computing, real-
>> time interactive communication, and fancy visual look are the key
>> features these days.
>
> Performance per watt is a huge issue for server farms, and until all this talk of low power, short pipeline, massively parallel computing is realized (ie. true "cloud computing"), systems languages will have a very definite place in this arena. I know of large-scale Java projects that go to extreme lengths to avoid garbage collection cycles because they take upwards of 30 seconds to complete, even on top-of-the-line hardware. Using a language like C remains a huge win in these situations.
This I agree with to a certain degree. This really only applies to
colocated systems. Shared hosting situations, users are often too
stupid to understand the effects of crap code, and shared hosting
providers tend to over commit machines.
Then comes in the virtualization providers, Amazon EC2 being a perfect
example. As long as income is greater then costs, EC2 users rarely get
their code running as well as it could, even tho they'd see the most
direct cost savings from doing so. With today's web languages, the cost
to make something efficient and fast (and maintain, debug, etc) is
higher then the cost to run slow crappy code.
This is amplified by the loss of money in an emerging market where
coming out even a month after your competitors could mean your death.
Languages like D (and even java and erlang to some degree) had the
opportunity to change this trend 10-15 years ago when scalable clusters
were not a common thing. However, with the direction the web has gone
in the past 5-10 years, to more 'web applications' the opportunity might
come again. We just need 'derail' all of those ruby kids, and get some
killer web application framework for D.
Personally, I hate the Interwebs, and I don't care if it collapses under
its own bloated weight. As long as I still have some way of accessing
source code.
> Even in this magical world of massively parallel computing there will be a place for systems languages. After all, that's how interaction with hardware works, consistent performance for time-critical code is achieved, etc. I think the real trend to consider is that projects are rarely written in just one language these days, and ease of integration between pieces is of paramount importance. C/C++ still pretty much stinks in this respect.
Yes, the days of multi-cpu, multi-core, multi-thread hardware is here.
I recently got a chance to do some work on a 32 hardware thread sun
machine. Very interesting design concepts.
This is where languages like erlang have an advantage, and D is heading
in the right direction (but still quite far off). D at least has the
ability to adapt to these new architectures, where as C/C++ will soon be
dealing with contention hell (they already do in some aspects).
The idea of a single machine with 100+ processing contexts (hardware
threads) is not something in the distant future. I know some of the sun
machines (T5240) already can do 128 hardware threads in a single
machine. Add in certain types of high bandwidth transferring (rdma
infiniband for example), and the concepts of things like Mosix and
erlang and we'll have single processes with multiple threads running on
multiple hardware threads, cores, cpus and even machines.
More information about the Digitalmars-d
mailing list