What's wrong with UUCP?
That would be injecting noise on to the power lines, which means either it screws with the rest of the grid, or it's small enough that other devices could swamp it with noise. There's been some interesting work done on hiding signals below the noise floor using frequency hopping, but that's excessively complex.
At low speeds such as would be encountered in a parking lot or congested city street the engine noise is dominant, particularly because the car is doing a lot of accelerating and decelerating. At those speeds I think a modest synthesized engine sound is a very good idea, especially when you consider blind people and even more especially service dogs
My experience is that in car parks, you can hear the tire noise easily. If the only problem is the visually impaired, why not put the synthesized sound above the range of human hearing, so that only guide dogs and assistive devices can detect it?
There is quite a bit of object oriented C code in the wild, that request just shows that the guy had no idea what he was talking about. While there are a lot of nice (and not so nice) things you can get from C++ if object orientation is all you want its overkill.
Amusingly, the kernel is probably one of the better examples of how to do OOP in C - the VFS code is a good example of this. (The file_operations struct is basically a vtable.) So given that they already had a working solution, they wouldn't have gained anything from C++ except additional complexity.
The problem is that it is not a sane choice. This is ENTIRELY based on fear. If all you do is label something as GMO that tells you nothing at all. This does not help you make any kind of informed decision at all.
Was the GMO done to make the plant drought resistance? does it resist cold? was it modified to be less carcinogenic? was it modified to make a certain companies fertilizer more profitable? etc
Just saying something is GMO is worthless.
I agree entirely. That's what using a GMO identifier would enable - the database of what changes they correspond to and when they were approved should be publicly accessible. If you think about it, that's basically the same level of transparency we currently have with various additives.
Look at the EU and their policy on GMO. It is ENTIRELY fear based. They just label something as GMO which is completely useless and people are taught that GMO is bad period. Even research into GMO has almost entirely ended in Europe. It doesn't matter that their own studies show the ones they have tested are safe they continue to be against it not just in the EU but world wide. The EU is a pretty major factor in stopping the usage of golden rice.
What would you propose instead? Given that GMO is relatively new, I think it is important that GMO foods be labelled as such, so that consumers can make an informed choice. Of course, some consumers are idiots, but that's never been a strong argument against depriving the rest of us.
I'm not an expert on the topic, but it seems to me that since there is already infrastructure in place for demonstrating that the GMO product in question is safe for human consumption (which no doubt assigns it some kind of UID), simply adding the identifier to the ingredients list should be enough. It conveys to the consumer that not all GMOs are the same, while still informing them. It also makes it easy for people to google a specific strain/variant and see if any one else has reported issues.
All in all I just didn't consider it interesting enough to study even. I'm more interested in a true paradigm shift rather than another iteration of C++ which already is good enough for my taste. So I still have haskell overlay and actually do learn haskell
I'll agree with you there - D is the sort of language that tries to copy as many features as possible from other languages, rather than one which tries to do anything truly revolutionary. (I think UFCS is the only novel feature it has, and it's nothing more than a nicety.)
Haskell is definitely a much more interesting language - I spent the entirety of last year working with it and don't feel like I even scratched the surface. There are some applications imperative languages are better for though, so it is nice to see languages like Rust and D providing support for both.
- 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.
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.
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,  or you dynamically linked something opengl-related and had trouble due to that on the other systems.
 Minor rant: why does language popularised in the last decade need their own, language-specific package management? What's wrong with make or cmake?
I've been using the overlay, and while I don't like how they've put everything in
(The separate directories in
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.
"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.
Oh, and I also forgot to mention that functions fail silently if you don't check their error codes, compared to languages which use exceptions. Silent failures can be immensely confusing to newbies.
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.