Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×

Comment Re:D has problems, and not just a few (Score 1) 386

- Huge portions of the standard library are missing attributes like 'pure' and 'nothrow', which directly impacts user code that attempts to include them

Could you explain why adding pure/nothrow is considered a breaking change? I would have thought it only increases the contexts from which the function could be called.

Comment Re:Why D isn't more popular (Score 1) 386

D works quite well with C-based interfaces - you just annotate the function definitions and link against the binaries. (C++ support is a bit more incomplete.)
That said, at 264 kLOC, I don't think you're going to be switching to any new languages, except maybe newer revisions of C/C++.
New languages are only ever feasible for new systems, rewrites, or loosely coupled modules of existing systems. Anything else just causes more headaches than its worth.

Comment Re:I tried it (Score 1) 386

Given that DMD, etc. statically link the standard library by default, the resulting executable won't be significantly difficult from one produced by a C compiler. My guess is you either ran into issues with dub, [1] or you dynamically linked something opengl-related and had trouble due to that on the other systems.

[1] Minor rant: why does language popularised in the last decade need their own, language-specific package management? What's wrong with make or cmake?

Comment Re:Should be, but it isn't. (Score 1) 386

I've been using the overlay, and while I don't like how they've put everything in /opt, I haven't had any problems with it. The ebuilds for gdc, etc. are properly bootstrapped.

(The separate directories in /opt are apparently the result of the lack of a stable ABI between compilers, or even between different versions of the same compiler. AIUI, C++ has the same problem, but most distros just treat GCC as the official compiler instead of treating them all equally.)

Comment Re:Perl, my favorite language is rated higher... (Score 1) 386

I have two main gripes with it on that front. D has a horrid GC (though no GC provides the latency requirements we need), and though it claims you can do without it, you really can't. At least, not without giving up on much of the language features and almost all of the standard library. When comparing to C++'s ability to use custom allocators with the standard library, D's phobos seems deathly pale.

Not sure if you know this, but the GC was recently / is being rewritten, which should hopefully improve things. There's also the new std.allocator interface.

That said, I don't think anyone can seriously claim D has good non-GC support, and it sounds like you definitely need a non-GC language given your latency requirements. Rust would probably work better, but it has its own quirks.

Comment Re:Cute specs, call me when you turn 18. (Score 1) 386

"D offers compilers for all three platforms (Windows, Mac and Linux) as well as FreeBSD."

Note that two of those compilers use GCC and LLVM as their back-ends. In practice, this means that you can use D on any architecture they support. For example, here's a patch that adds D support to buildroot toolchains.

I do agree that the third-party libraries available are pretty limited though.

Comment Re:Lower Level != "Complex" (Score 1) 648

Because even if you're doing simple things, you need to:
- manually manage memory (compared to GC'd languages)
- manually store the length of buffers/arrays
- preallocate arrays for strings, etc. before copying data to them

C is low-level, which makes sense if you want to learn about what the computer is actually doing. But computer architecture is not something that belongs in an introductory computer science course - control structures and basic data structures are far more important, and C just gets in the way of those.

Comment Re:COBOL (Score 1) 386

I said C/C++ because they both use same preprocessor. While I'm sure you could do some interesting things with C++ templates, I haven't seen any use of them that goes beyond generics while still being easy to comprehend. This could be due to my own inexperience though.

Comment Re:a better question (Score 1) 592

It was a long time ago, so I could be misremembering it or confusing it with another model, assuming they haven't changed it since then.

As for the keyboard, I ended up getting a Thinkpad T440p, so that should tell you what my standards are. :P

Comment Re:Nope (Score 1) 243

And this attempt to make a modular phone seems more like a technology demonstration then a product role out. Does anyone think they will try and make a business line out of it? I doubt it.

I think the idea behind Project Ara is the same as the idea behind their Nexus line - they're not interested in being manufacturers, they just want to raise the bar for devices running their software. They'll (hopefully) establish some critical mass, a few other manufacturers will start making parts, and eventually Google won't need to do anything for the system to be self-sustaining, except maybe push for better specs on Ara 2.0...

Comment Re:One thing right in my book (Package management) (Score 1) 489

It's not like you can't add a third party repository with the latest stable (or development) version of Firefox.
Besides, even if you're going to download it somewhere else, would it be good if the OS could check that somewhere else for updates instead of each program have its own auto-update daemon run at startup?

Comment Re:COBOL (Score 1) 386

Having worked with D a bit, the biggest difference between it and C++ is that D is garbage collected by default. You can disable the GC and use malloc, but this renders the standard library off limits. Apart from that, I would say that D not only has all the features of C++, it has features that C++ doesn't even have yet. e.g. concepts were proposed as an extension to templates for C++11, but still aren't part of the spec. In contrast, D has support for constraining templates similarly using syntax such as:

T square(T x)
        if (isIntegral!T)
{
        return x * x;
}

D also has excellent support for functional and meta-programming. e.g. the pure and immutable keywords. While C/C++ requires you to use macros for meta-programming, D lets you use existing D functions to generate the resulting code.

Comment Re:Actually, not a single interesting answer (Score 1) 592

The more interesting question is really if freedom exists when you never make use of it. (Do you actually hack the kernel or fix somebody's proprietary binary-only drivers as a GNU/Linux user?)

You don't need to directly make use of it though; the mere fact that that freedom exists can influence design choices. A good example of this would be how many (common) Linux drivers are based around the actual chip in the device, as opposed to the specific make and model (as is the norm in Windows). Not needing to install drivers for 99% of supported hardware is a pretty nice benefit, and it's the direct result of the kernel (and by extension, those drivers) being GPL.

Freedom, like everything else, exists because it has consequences that we can perceive.

Slashdot Top Deals

Many people write memos to tell you they have nothing to say.

Working...