Conspiracy Theory #1
Travis Boucher
boucher.travis at gmail.com
Sat Nov 21 05:03:46 PST 2009
retard wrote:
>
> Of course the major issues limiting Web 2.0 adoption are unreliable, high
> latency, expensive communication channels. Another is that the
> technologies have not matured on non-x86/windows platforms. I bought a
> new cell phone recently and can't really play any videos with it even
> though it definitely has enough cpu power to play even 576p mpeg streams.
Sure, high latency and bandwidth costs are a major limiting factor, but
platform isn't. From the browser-based client side, the non-windows
platforms are just as mature as the windows side (although non-x86 tends
to lag somewhat). Server side, non-windows has always been more mature
then windows. Unix has always been known for 'server operations', and
for good reason, its designed for it and does impose artificial
limitations that windows likes to do.
On the embedded side of things, alot of media-based embedded devices
have hardware assistance for for things like video decoding, but it is
definitely a market that I think languages like D could thrive.
Unfortunately D isn't targeting that market (which I think is a
mistake). dmd doesn't have any capable back ends, gdc's dmd front end
is lagging and almost seems to be unmaintained. I haven't used ldc
much, so I don't have any real comments on that, but I suspect it is
similar to the gdc situation.
Hopefully after the D2 spec is frozen, gdc and ldc will catch up. I
have looked at the possibility of using D for NDS development (although
it'd only be homebrew crap). That is one of GCC's biggest strengths,
it's versatility. It runs everywhere and targets almost everything.
> Btw, you can write iPhone apps in .NET languages. Just use Unity.
>
>> And server-side, there's also a lot of static language development going
>> on. Often dynamic languages don't scale, and you'll see dynamic
>> languages with performance-intensive parts written in C or C++, or
>> static languages such as Java.
>
> Sure. It's just that not everyone uses them.
Server side scalability has almost nothing to do with the language in
use. The server side processing time of anything in any language is
dwarfed by the communications latency.
Scalability and speed are 2 very different things. Server side
scalability is all about being able to handle concurrency (typically
across a bunch of machines). Dynamic languages, especially with
web-based stuff, is so simple to model in a task-based model. One page
(request) == one task == one process. Even the state sharing mechanisms
are highly scalable with some of the new database and caching technologies.
Since most state in a web-based application is transient, and
reliability isn't really required, caching systems like memcached is
often enough to handle the requirements of most server side applications.
Typically large scale sites have at least a few good developers who can
make things perform as needed. The people who really take the hit of
poor code in inefficient languages are the hosting providers. They have
to deal with tons of clients, runs tons of different poorly written scripts.
I've worked in a data center with 2,000 servers that was pushing only a
few hundred megabit (web hosting). I have also worked on a cluster of
12 machines that pushed over 5 gigabit. The difference in priority is
very obvious in these 2 environments.
The future of D to me is very uncertain. I see some very bright
possibilities in the embedded area and the web cluster area (these are
my 2 areas, so I can't speak on the scientific applications). However
the limited targets for the official DMD, and the adoption lag in gdc
(and possibly ldc) are issues that need to be addressed before I can see
the language getting some of the real attention that it deserves. (of
course with real attention comes stupid people, MSFUD, and bad code).
More information about the Digitalmars-d
mailing list