Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Comment: Re:Technically C++ (Score 1) 222

My Slashdot username predates my current employment arrangement by about 5 years, I think. But, yeah. Back then I ran FreeBSD (which is where the name is from) on my servers, and Gentoo on my desktop. Things change :) (well, some of them; some of my home servers are still FreeBSD - ain't broken and all that...)

By now, though, it's not really all that surprising, given the amount of work specifically targeting other platforms (Linux among them) happening throughout the company. My team, for example, is actually specifically looking for people with a Linux background right now, because we're building a service running on it, using Docker containers for isolation.

Comment: Re:Technically C++ (Score 1) 222

In this particular case I just happen to know exactly what they were thinking when they were implementing this feature, because they are my colleagues (even if I don't work on the team that works on C++) :) The list of features that they did was based on some specific libraries that they had most complaints about on Windows, and then filtered down further based on ease of implementation. If I remember correctly, one major beneficiary of those changes is supposed to be ffmpeg.

This all might make more sense if you remember that Office in some incarnation or the other now ships across three non-Windows platforms (OS X, iOS and Android), then there is the OneDrive client etc. Basically there's a whole bunch of stuff that has suddenly gone cross-plat in the past couple of years, and that's a lot of C++ code that now has to play ball with the libraries that are the de facto standard outside of the MS ecosystem. In many cases, once you start doing that, it makes sense to use the same library on Windows as well, but then you start running into those conformance issues with C99.

The other aspect is that we want people to write cross-platform C and C++ code, because it's the kind that, right now, is most easily portable between all mobile platforms - and seeing where Windows phones and tables are in terms of popularity relative to iOS and Android, MS has to encourage portability as a way to get more apps ported to Windows. You see things like Apache Cordova tools and Clang/LLDB support in VS 2015 for the same reason - they make it easier to write Android apps, for example, but more importantly, the way they encourage writing those apps just happens to be the one that emphasizes portable code. Now that is more geared towards C++, but the question of popular libraries written in C also comes up there.

Comment: Re:Technically C++ (Score 1) 222

VS2013 seems to understand a bit more or C99, but that isn't because Microsoft would suddenly have started caring about their C compiler. Their C++ compiler got a bit of an upgrade wrt. more recent changes to the C++ standard, and the C compiler understanding a few C99 idioms is largely a side-effect/waste-product of that process.

Not quite. VS 2013 actually saw a bunch of C-specific C99 features such as designated initializers for structs. The main reason why this was done is because there are now quite a few popular open source libraries that use those features, and VC is the only compiler that cannot handle them, which made it a pain to port them to Windows.

Comment: Re:That's C code (Score 1) 222

stdio.h and cstdio are both valid in C++. However, there is a slight difference - cstdio is only guaranteed to define the identifiers that it provides in namespace std, while stdio.h makes the same guarantee only for the global namespace. In practice, they are usually both backed by the same header that does both, so you'll get both - but relying on that is non-portable. Since he doesn't use std:: to refer to those identifiers, "stdio.h" is the correct header for him to include.

Comment: Re:That's C code (Score 1) 222

"stdio.h" searches the directory containing the current source file first, then the include directories.

The standard itself doesn't have any notion of "directory containing the current source file" or "include directories", actually. It just says that "..." does some form of implementation-defined search, which, if it fails, falls back to <...>.

Comment: Re: That's C code (Score 1) 222

It's still not the same thing. In C, you can declare a function without specifying the argument types, but then define it with specific types in a different translation unit. In C++, the definition and the declaration must match - if you declare it as int foo(...), then you must also define it in the same way (which renders it effectively useless, since without any named arguments you won't have anything to pass to va_*).

Comment: Re: Prefer support (Score 1) 279

It isn't like any polynesians had a navy capable of transporting the people and resources needed to conquer the islands. Nor was there economic value in such an endeavor. Refugees and explorers showing up and assimilating? Absolutely. A conquering force? Not a chance.

Maori didn't quite conquer New Zealand that way (there was no-one to conquer it from), but they definitely did assemble a fleet large enough to be an invasion force.

Comment: Re:If this were in Europe (Score 1) 1045

Just FYI, Texas and its balls are largely a creation of a PR campaign. Even as far as "keep your guns" goes, Texas is not the most gun-friendly state in the union, nor the one with most people carrying. It's just the one that people think of first when they hear "guns", and vice versa.

You can't have everything... where would you put it? -- Steven Wright