Poll: Primary D version
Nick Sabalausky
a at a.a
Sat May 22 18:33:06 PDT 2010
"retard" <re at tard.com.invalid> wrote in message
news:ht9n8n$rop$4 at digitalmars.com...
> Sat, 22 May 2010 16:25:55 -0400, Nick Sabalausky wrote:
>
>> "retard" <re at tard.com.invalid> wrote in message
>> news:ht9atu$rop$1 at digitalmars.com...
>>> Sat, 22 May 2010 13:59:34 -0400, Nick Sabalausky wrote:
>>>>
>>>> Most apps don't need native x86_64. Only things that really push the
>>>> limits of CPU/memory utilization need it, which, aside from bloatware
>>>> (which admittedly is at epidemic levels lately), is really only a
>>>> minority of apps. For the rest, if it already runs fine on 32-bit,
>>>> then the same exec on a 64-bit machine is only going to run better
>>>> anyway, and if is already ran fine before, then there's no problem.
>>>
>>> You're suffering Stockholm syndrome there. Not having a functional
>>> 64-bit compiler isn't a positive feature.
>>>
>>>
>> I never said it was. All I said was that most apps don't need native
>> 64-bit versions. Don't go pulling out strawmen.
>
> Sorry for pulling out that, but I thought the claim "most apps" was a bit
> overoptimistic. If D is The next gen language, it probably also should
> solve the next generation of problems.
I never said D or DMD shouldn't support x64, hence, yea, I agree that it
should support 64-bit to, as you say "solve the next generation of
problems". I just think that, for most apps, it's silly for someone to feel
that they must have a 64-bit binary.
> I don't see much point in
> rewriting notepad, mspaint or solitaire in D.
For someone who seems to believe so strongly in "out with the old, in with
the new", it seems rather odd that you expect apps along the lines of
notepad, mspaint, etc to all stick around forever and with the same old
langauge.
> If you only need to deal
> with a small amount of data, why use native low-level languages?
1. Why not? There's nothing about smaller apps that necessitates anything
like a VM.
2. To avoid pointless bloat. Just because some people have a gajillion cores
and petabytes of ram doesn't mean there's any reason to settle for a notepad
that eats up a third of that.
3. I know this isn't in line with the current trendiness-compliant
viewpoints, but I'd much rather find a good language and be able to stick
with it for whatever I need than constantly bounce around a hundred
different languages for every little thing.
> The fact
> is that resource usage will grow and artificial limitations (32-bit code)
> just makes the language irrelevant a lot faster.
>
Why do you still imply that I've advocated keeping D/DMD 32-bit-only?
> Another problem with x86 code is that you need to install all kinds of 32-
> bit libraries on a x86-64 (Linux) system.
If your Core i7 system with 24 GB RAM has any trouble keeping around the
32-bit libs in addition to 64-bit ones, then you got royally screwed over.
But if you're talking about the bother of installing the 32-bit libs, well,
that's Linux for you (Not that I'm a fan of any particular OS).
> You also don't have the full
> 2.5 - 3.7 GB (depending on of RAM available for processes, the limit is
> something like 2 or 3 GB depending on the OS settings [1] (in some cases
> you need to assume the user has only allowed 2 GB for user mode
> processes). So in reality you could probably have even less than 2 GB
> available.
I only have 1 GB installed, so I couldn't care less. (Although I could have
sworn I had 2 GB. Weird...Maybe I moved the other stick over to my Linux box
when I built it...)
> Is that a problem? Yes, it is a serious problem in
> professional audio/video/photo applications, soon games (huge game
> worlds, complex SVM/ANN AI), and all kinds of servers.
>
Video: By what I admit is a rather big coincidence, I have some video
processing going on in the background right as I type this. Seriously. I do
video processing on this machine and I get by fine. Obviously, I would want
to get a 64-bit multi-core with gobs of RAM if I were doing it
professionally, but I think you're seriously underestimating the
capabilities of P4-era hardware.
Games: I'll put it this way: I bought a Wii, and not a 360 or a PS3,
specifically because I don't give a rat's ass about game graphics that are
anything more than, frankly, Gamecube or XBox 1 level. One of my favorite
games is Megaman 9. So you can't tell me that all that fancy hardware is, or
will ever be, necessary for games. It is necessary for *some* types of
games, but these days that's only because developers like Epic are in bed
with the hardware manufacturers and refuse to care one bit about anyone who
isn't a High-Def graphics whore.
Also, I hate playing games at a desk (or on a laptop, for that matter), so I
almost always play on a console system, and therefore don't need my PC to
play games anyway. A lot of gamers feel the same way (and there's plenty of
other issues with games-on-a-PC too, like rootkit DRM and lack of
second-hand-market). And for that matter, most PC users never go anywhere
near the sorts of games that require fancy hardware anyway. So again, not a
particularly compelling argument.
Servers: Sure, for a lot of servers. But that's only a subset of software in
general. Besides, half of the sites out there run on notably slow platforms
like PHP and Python, so really, there's lot of people who clearly don't care
about speed even for a server.
>> Take a 32-bit executable optimized for i386 or i586, that runs
>> acceptably well on a 32-bit system (say, a P4, or even a P4-era
>> Celeron). Take that same binary, put it on a 64-bit system (say, your
>> Core i7). It will run *at least* at fast, most likely faster.
>
> Yea, it will run faster, but who said the original application ran fast
> enough?
I did when I said "**that runs acceptably well** on a 32-bit system". And
contrary to popular belief, "software that runs acceptably well on a 32-bit
system" is far from unreasonable. Most of the software I use runs acceptably
well on my 32-bit system (a Celeron, even). And as for the software I use
that doesn't run particularly well on this system (like FireFox 2), well, I
can still get by fine with it, and there are always alternatives out there
that do run much faster (meaning it's not an issue with my hardware being
too slow), but that I just don't use because they have other drawbacks (like
Chrome) and speed isn't always my top priority in choosing an app (or in
choosing hardware, for that matter).
> CPU demanding applications never run fast enough. The
> applications tend to require more and more resources. It seems the x87
> instructions (i386/586) have 5-6x larger latency than SSE2+ and SSE2+ has
> 2-4x greater throughput. Combined, that could mean 20x slower loops.
>
I used to have a double-speed CD burner. Got it way back when they were
$200-$300 and triple-/quad-speeds didn't exist. Used to set up a burn, get
something else useful done for half an hour, and then it'd be done. Later
on, I got one of those super-fast burners, something like 32x, maybe 50x or
so, I don't remember. God was it fast by comparison. Practically instant, it
seemed. Soon after, I realized that it hardly ever made any real difference
at all in overall time savings.
Sometimes a 20x speed-up matters, sure. But not as often as people think.
When it improves responsiveness, that's when it usually matters. When it
improves something that's already inherently slow, it doesn't always matter
quite as much as people think it does.
>> Guess how much more that costs me than using my 32-bit system that
>> already does everything I need it to do? $379.
>
> Sure. And I have to admit I don't really know what's your target
> audience. It might even be 8086 systems since IIRC dmd/dmc support old 16-
> bit dos environments.
>
I don't know about DMC, but DMD, and even the D spec itself, doesn't do
16-bit. (A number of embedded developers (low-level, naturally) have voiced
disappointment with that.)
> But most commercial applications aren't geared towards Your 32-bit
> system. There's a good reason - people do upgrade their systems at least
> once in 5 years (x86-64 appeared 7 years ago..). Your system *will*
> physically break at some point and you have to replace it, probably with
> a faster one, because they won't be selling compatible parts anymore.
> Computers have a limited life time.
If your computers break down in just five years, you're buying crap.
> (x86-64 appeared 7 years ago..)
Which hardly counts, since at the time it cost an arm and a leg and nothing
used it. Basically, your average Joe was definitely *not* buying it.
> Ordinary people don't lubricate their
> fans or replace bad capacitors themselves.
>
Neither do I.
> You can find used parts, but those are more expensive than new ones. For
> example a used 128MB/SDRAM-100 module typically costs as much as a 1GB/
> DDR2-800 here. Budget GPUs for the PCI bus cost 4x as much as similar PCI
> Express cards. A 750GB PATA disk costs as much as a 1500GB SATA-2 disk.
> And let's be honest, $379 isn't that much - if you only upgrade the cpu
> +mobo+ram+gpu, it's closer to $100-150. If you can't afford that much
> once in 5 years, you should stop developing software, seriously.
>
First of all, I have gotten upgrades to this machine. Replaced the CD burner
with a dual-layer DVD burner. Constantly add bigger hard drives (I admit, I
can never have enough HDD space). Got a Bluetooth dongle to mess around with
the Wii remote. Got a video capture card. Stuck in one of those memory card
readers that fits in a 3.5" floppy bay (also have a 3.5" floppy drive, of
course ;) ). Replaced my GeForce 2MX with a cheap Radeon 9200SE (IIRC) so I
could mess around with pixel shading (which turned out to be a waste, since
I never did get around to it).
But you're still sidestepping the bigger picture here: If my computer is
working fine for me, does what I need it to do, why in the world should I be
expected to replace it at all? (Just to please some damn gear-heads, or lazy
developers?) Especially if I have other things to spend money on that
actually *do* matter.
> If Your application doesn't require new hardware, the 3rd party software
> forces you to upgrade. For example, recently I noticed that the Ati/
> Nvidia GPU control panel requires a .NET version that is not available
> for Windows 2000 (and that's not the only program not working on Windows
> 2000 anymore..).
So what? Most 3rd party software is crap anyway. And as far as OEM software
goes (and I'm definitely including both ATI and NVIDIA, as well as Toshiba,
HP, and others, all from personal experience), well, I *would* say OEM
software is always crap, but "crap" is far too kind a word for it. There's
crap software, and then there's OEM software. And I've long been saying that
hardware companies don't know a damn thing about software.
Besides, ever since XP came out, Win2k was primarily just used by
businesses. And MS-businesses always flock unquestioningly to the latest
versions within about a year of release, and since Win2k, there's been XP,
2k3, Vista, 7, and there may have been another server one I'm forgetting.
*I* probably wouldn't have yanked Win2k support, but it's not a great
example of software forcing a hardware upgrade.
> So I must buy a new operating system.. but people can't
> legally sell their used OEM Windows without also selling me their 64-bit
> machines =) And I can't buy a new Windows XP/Vista license, only Windows
> 7 available on stores. So basically I'm forced to also upgrade the
> hardware.
>
I don't know first hand, but I keep hearing [non-MS] people claiming that
Win7 runs faster than XP even on XP-era hardware.
More information about the Digitalmars-d
mailing list