Doesn't matter. Remember that they lost big in the EU, only got a slap on the wrist for it, and delayed complying with the court orders for so long that the punishment was moot. Microsoft laughs at your puny courts.
Microsoft does not want ANY dissent, even if it's from only 1%. Remember when Windows 8 preview had a registry entry to allow booting straight to desktop, as soon as it was discovered it was removed in the very next release ("oops, we didn't mean to give you the ability to be productive"). They honestly wasted time "fixing" that, it was absurd. Then they eventually apologized and made it a setting. Never mind that apology, it wasn't intended to be taken seriously, because with Windows 10 they doubled down on the customer abuse.
There are only two markets that they care about - enterprise and education. They care about enterprise because that's where the money is, and they care about education because that's where the newcomers are to be indoctrinated early. For every one else, they do not care about you, you are scum in Microsoft's eyes. Their "support" will never support you, it didn't support you way back in Windows version 2, and it doesn't support you in Windows version 10. Microsoft hates you for even thinking about using control panel to change a setting, what sort of disloyal maggot would think that Microsoft's default settings aren't good enough?
For enterprise though, they are also sending in armies of IT staff indoctrinated in Certification courses. This army will infiltrate the enterprise, have them punish users for daring to change settings or for not upgrading when ordered to. Heaven forbid a user manages to install any software that didn't come from the Windows Store, the IT squad will be there to administer Microsoft's punishment. The sad thing is, this isn't even a joke anymore. Don't feel safe because you use Linux, that will be against corporate policy soon enough.
The problem wtih templates is that they're just smart macros. That's fine, if you use them the way you should use macros - keep them small. But then they go and get abused and putting full data structures in them. Now when you use a generic "container of X" and a generic "container of Y", you end up with TWO copies of the code. It's bloat. Wasted RAM, and it means caching of code doesn't work as well either. A list of signed long and a list of unsigned long will end up sharing no object code. It's a major reason why C++ gets stereotyped as a generator of bloatware.
So a template by itself is ok, what's missing is the programmer discipline to use them well.
A proper object oriented language will use inheritance of classes rather than duplication of classes when creating generic data types.
Then what's "diffptr_t" type in Standard C for? Pointers are allowed to be compared, subtracted, etc, only when they point to the same array object, or one past the end of an array object, and so forth. In this case memory is being treated like a large array of bytes. This works on a standard C architecture even on a segmented architecture, though the pointer type provided can not address all of memory, so they add in *non-standard* features such as "far" pointers.
If it's a strictly standard compliants compiler then you can't use a 16-bit pointer to address all of memory, so you can't have any array that would cross segment boundaries and you can't treat memory like a large byte array. If you're using memcpy or memmove, then you must use them on objects that fully reside within the same segment.
You design in location A, and you can manufacture *anywhere*. It helps if manufacturing is closer to location A during design, because you're more interested in quick turnarounds than in lowest possible cost. Once you're building in bulk it's not that important. And countries that are currently big on manufacturing cheaply are not very good at designing well. And the big design places are still the US, Europe, Korea, Japan. Those are where the big headquarters are, but not necessarily where the stuff gets put together.
I asked some friends once why they had Comcast. They said its cable service sucked, they said its internet service sucked, they said its phone service sucked, but they used it because bundled together the price wasn't too bad. Ringing endorsement!
Anyway, I don't have cable or cable internet. I went with AT&T. I think $50 for 12mbps, slower than Comcast for that price, but at least it's not Comcast.
Where the devices are manufactured does not tell you anything about where the devices are designed and programmed. Sure, there may not be "growth" in C in the US, but growth comes and goes which means that the hordes of programmers in a fashionable language this year may be out of work in five years (after having to train their cheap replacements).
Lots and lots of embedded work being done in the US. Anyone who makes devices. Internet of Things, smart phones, dumb phones, automotive ignition, microwaves, toys, medical devices, anything anywhere that uses Linux, the traffic light at the corner, the security checkpoint at the airport, etc. Oh wait, encryption too, it's usually a mix of hardware, assembler, and C in many products. And the implementation of most scripting languages and their runtime code... All of that is happening within the US. And it's happening in other countries too of course, C isn't bigoted.
You can do both. Have the small straight forward language without lots of pitfalls, and at the same time make the code maintainable and reusable. However, avoid the "fast deployment", that means "rapid prototyping" which means speed matters more than quality and the customer ends up with mocked up prototype. Rapid prototyping is not part of the "science" of computer science.
And basically "computer science" has almost nothing to do with programming anyway, it's a broad interdisciplinary field that covers both mathematics and engineering.
C++ has some different rules about types, which some people think are better than the C rules.
Personally, I'd take the subset of C++ that still includes basic inheritable classes/structs, name spaces, etc. But avoid exceptions (hard to make this efficient a lot of times), avoid templates that are larger than a line or two (avoid the gawdawful code bloat it can lead to), etc. The "better C than C" version of C++ before the goal of every C++ standards committee became how new features they could cram in.
At which point someone should step forward and say that it's "memmove", not "memmov", at least in standard C. But extra credit if someone mentions "bcopy".
If they're pointers to bytes then you can compare them directly. Alignment is the same forwards or backwards. If the regions overlap then sometimes you need a forward copy but sometimes a backwards copy! The direction depends upon where they overlap!
If you copy 0-100 over to locations 50-150, then you have to copy backwards, copy the 100 over first, then 99, etc. But if you're copying 50-150 over to 0-100, then you have to copy forwards, starting with 50 first.
That's the point in the interview where I suggest they can draw this on the whiteboard instead of trying to do it in their heads.
There's really not much risk here. They're trying to play the fear card too much. It wasn't long ago when we didn't have smart phones with encryption. It is so recent that even a millenial can remember those days. And was it a world where all criminals were captures, all crimes solved, people were always safe and secure? No! Rates of violent crime were higher. Criminals still figured out how to talk to each other securely without the FBI listening in. We had organized crime operating with impunity for long periods of time, they even figured out how to use encryption.
There's nothing law enforcement can do to put this genie back in the bottle. One simple app to do a pgp style communication and encryption is back no matter how many back doors the manufacturers put in (or get a warrant to get the phone maker to stick on keyloggers, but everyone's going to avoid those phones like the plague once word is out). Use some third party SOCs from outside America as your key dongle on the PC and you can detect tampering and destroy your keys.. There's just no way they can lock this down.
We have some phones locked tight that may or may not contain evidence about crimes. So what?? This is not a disaster. We've never had a time when we could gather all possible evidence, search everywhere we liked, and solve all crimes. Claiming that it's wrong that they can't open up the phones and get the data from them is like whining that the parrot at the crime scene isn't talking.
I've used plenty of machines that do use swap space. Servers with VM images, with the whole point of such servers being to overallocate resources. So less frequently used stuff gets swapped out. You ask them to upgrade memory and they laugh and nothing happens. It's the real world.
Given that price points changed so that RAM is now relatively cheaper, it's still theoretically possible for it to go back the other way again in time, where getting beyond 128GB is just too expensive to justify when you've got terabytes of dirt cheap storage on your servers.
The question is games that only run under Windows *10*, rather than just on Windows. There are no major games of any value that required DX12, because a game maker would be stupid to eliminate the huge market for DX10/11 customers and focus only on the least used version of DirectX.
Doesn't matter. Remember that they lost big in the EU, only got a slap on the wrist for it, and delayed complying with the court orders for so long that the punishment was moot. Microsoft laughs at your puny courts.
And after this, the differences between Window Pro and Windows Home become very thin.
Microsoft does not want ANY dissent, even if it's from only 1%. Remember when Windows 8 preview had a registry entry to allow booting straight to desktop, as soon as it was discovered it was removed in the very next release ("oops, we didn't mean to give you the ability to be productive"). They honestly wasted time "fixing" that, it was absurd. Then they eventually apologized and made it a setting. Never mind that apology, it wasn't intended to be taken seriously, because with Windows 10 they doubled down on the customer abuse.
There are only two markets that they care about - enterprise and education. They care about enterprise because that's where the money is, and they care about education because that's where the newcomers are to be indoctrinated early. For every one else, they do not care about you, you are scum in Microsoft's eyes. Their "support" will never support you, it didn't support you way back in Windows version 2, and it doesn't support you in Windows version 10. Microsoft hates you for even thinking about using control panel to change a setting, what sort of disloyal maggot would think that Microsoft's default settings aren't good enough?
For enterprise though, they are also sending in armies of IT staff indoctrinated in Certification courses. This army will infiltrate the enterprise, have them punish users for daring to change settings or for not upgrading when ordered to. Heaven forbid a user manages to install any software that didn't come from the Windows Store, the IT squad will be there to administer Microsoft's punishment. The sad thing is, this isn't even a joke anymore. Don't feel safe because you use Linux, that will be against corporate policy soon enough.
Bob self identifies as anything you want him to be.
And they are also abusing paying customers of Windows 7 and 8 by constantly sneaking up Windows 10 updates.
But I came here for an argument!
The problem wtih templates is that they're just smart macros. That's fine, if you use them the way you should use macros - keep them small. But then they go and get abused and putting full data structures in them. Now when you use a generic "container of X" and a generic "container of Y", you end up with TWO copies of the code. It's bloat. Wasted RAM, and it means caching of code doesn't work as well either. A list of signed long and a list of unsigned long will end up sharing no object code. It's a major reason why C++ gets stereotyped as a generator of bloatware.
So a template by itself is ok, what's missing is the programmer discipline to use them well.
A proper object oriented language will use inheritance of classes rather than duplication of classes when creating generic data types.
Then what's "diffptr_t" type in Standard C for?
Pointers are allowed to be compared, subtracted, etc, only when they point to the same array object, or one past the end of an array object, and so forth. In this case memory is being treated like a large array of bytes. This works on a standard C architecture even on a segmented architecture, though the pointer type provided can not address all of memory, so they add in *non-standard* features such as "far" pointers.
If it's a strictly standard compliants compiler then you can't use a 16-bit pointer to address all of memory, so you can't have any array that would cross segment boundaries and you can't treat memory like a large byte array. If you're using memcpy or memmove, then you must use them on objects that fully reside within the same segment.
You design in location A, and you can manufacture *anywhere*. It helps if manufacturing is closer to location A during design, because you're more interested in quick turnarounds than in lowest possible cost. Once you're building in bulk it's not that important. And countries that are currently big on manufacturing cheaply are not very good at designing well. And the big design places are still the US, Europe, Korea, Japan. Those are where the big headquarters are, but not necessarily where the stuff gets put together.
I asked some friends once why they had Comcast. They said its cable service sucked, they said its internet service sucked, they said its phone service sucked, but they used it because bundled together the price wasn't too bad. Ringing endorsement!
Anyway, I don't have cable or cable internet. I went with AT&T. I think $50 for 12mbps, slower than Comcast for that price, but at least it's not Comcast.
Where the devices are manufactured does not tell you anything about where the devices are designed and programmed. Sure, there may not be "growth" in C in the US, but growth comes and goes which means that the hordes of programmers in a fashionable language this year may be out of work in five years (after having to train their cheap replacements).
Lots and lots of embedded work being done in the US. Anyone who makes devices. Internet of Things, smart phones, dumb phones, automotive ignition, microwaves, toys, medical devices, anything anywhere that uses Linux, the traffic light at the corner, the security checkpoint at the airport, etc. Oh wait, encryption too, it's usually a mix of hardware, assembler, and C in many products. And the implementation of most scripting languages and their runtime code... All of that is happening within the US. And it's happening in other countries too of course, C isn't bigoted.
If they chose Python 2.7 then they'll have to rewrite it for Python 3...
You can do both. Have the small straight forward language without lots of pitfalls, and at the same time make the code maintainable and reusable. However, avoid the "fast deployment", that means "rapid prototyping" which means speed matters more than quality and the customer ends up with mocked up prototype. Rapid prototyping is not part of the "science" of computer science.
And basically "computer science" has almost nothing to do with programming anyway, it's a broad interdisciplinary field that covers both mathematics and engineering.
C++ has some different rules about types, which some people think are better than the C rules.
Personally, I'd take the subset of C++ that still includes basic inheritable classes/structs, name spaces, etc. But avoid exceptions (hard to make this efficient a lot of times), avoid templates that are larger than a line or two (avoid the gawdawful code bloat it can lead to), etc. The "better C than C" version of C++ before the goal of every C++ standards committee became how new features they could cram in.
At which point someone should step forward and say that it's "memmove", not "memmov", at least in standard C. But extra credit if someone mentions "bcopy".
If they're pointers to bytes then you can compare them directly. Alignment is the same forwards or backwards. If the regions overlap then sometimes you need a forward copy but sometimes a backwards copy! The direction depends upon where they overlap!
If you copy 0-100 over to locations 50-150, then you have to copy backwards, copy the 100 over first, then 99, etc. But if you're copying 50-150 over to 0-100, then you have to copy forwards, starting with 50 first.
That's the point in the interview where I suggest they can draw this on the whiteboard instead of trying to do it in their heads.
Personally, I am chuffed to finally be ahead of the curve! Time to grow my hipster Unix beard.
There's really not much risk here. They're trying to play the fear card too much. It wasn't long ago when we didn't have smart phones with encryption. It is so recent that even a millenial can remember those days. And was it a world where all criminals were captures, all crimes solved, people were always safe and secure? No! Rates of violent crime were higher. Criminals still figured out how to talk to each other securely without the FBI listening in. We had organized crime operating with impunity for long periods of time, they even figured out how to use encryption.
There's nothing law enforcement can do to put this genie back in the bottle. One simple app to do a pgp style communication and encryption is back no matter how many back doors the manufacturers put in (or get a warrant to get the phone maker to stick on keyloggers, but everyone's going to avoid those phones like the plague once word is out). Use some third party SOCs from outside America as your key dongle on the PC and you can detect tampering and destroy your keys.. There's just no way they can lock this down.
We have some phones locked tight that may or may not contain evidence about crimes. So what?? This is not a disaster. We've never had a time when we could gather all possible evidence, search everywhere we liked, and solve all crimes. Claiming that it's wrong that they can't open up the phones and get the data from them is like whining that the parrot at the crime scene isn't talking.
I've used plenty of machines that do use swap space. Servers with VM images, with the whole point of such servers being to overallocate resources. So less frequently used stuff gets swapped out. You ask them to upgrade memory and they laugh and nothing happens. It's the real world.
Given that price points changed so that RAM is now relatively cheaper, it's still theoretically possible for it to go back the other way again in time, where getting beyond 128GB is just too expensive to justify when you've got terabytes of dirt cheap storage on your servers.
Unix managed to evolve beyond this though.
Bob came back as Clippy.
I think Microsoft is treating this like a 50's era marriage. As in "Happy Anniversary dear, today is the one day a year you have to give me oral sex!"
I just want an OS that's not made by a psychopathic mindset that treats the customers like dirt.
The question is games that only run under Windows *10*, rather than just on Windows. There are no major games of any value that required DX12, because a game maker would be stupid to eliminate the huge market for DX10/11 customers and focus only on the least used version of DirectX.