It is exactly what it says. It is an actual function (i.e. executable code module) but it's built into the language and provided in the base linked package. C supplies defined functions as part of a library that is not part of the core language. That's the difference.
Yeah, I still don't know what made C stand out over other languages. I never really got to know other languages that were around at the time. I bet the ability to cross compile between platforms was a significant contributor. That and it didn't obfuscate much on you so you could mostly know what was going on for every line of code you wrote.
It still amazes me the legacy that an escaped Bell Labs experiment like C has had with syntax of so many languages. C++, Java, C#, csh, Perl, Ruby, et al trace their syntax roots to C, which I believe was derived somewhat from B and BCPL (and others?).
Well sure. Any time you had a project that already mixed C and assembly, there already was a lot of detailed work to manipulate the processor very specifically and no small amount of just inlining the assembly code rather than figuring out how to write C syntax. And I've done my share of that, mostly early in my career. But compared to high level languages, C offered substantial efficiency improvements at the cost of having to "roll your own" on just about everything you wanted to do. And more often than not, the compiled C code was "good enough" to get the job done.
When C was first created, there was little to no compiler optimization available. The lack of overhead in the C language meant that the compiler added little to no bloat over the code that was written. What you wrote is what you got.
Of course, that meant the inefficiency and bloat came in when average programmers started to implement more complex data and algorithms without knowing how to do it efficiently...
Before C++ came around, wasn't C just a glorified macro assembler?
Not exactly. It was intended to be an actual compiled language but one with as little overhead as possible and the ability to touch the hardware easily. It's considered a "middle level language". Where low level languages would be various assemblers and what not. High level languages (i.e. most other compiled language) deliberately abstract away the low level functionality to make writing applications easier. C was designed specifically as an in-house tool at Bell Labs for rewriting Unix and escaped sometime in the late 60's/early 70's. It was and always will be a compiled language, albeit one with only a very small base of core functionality.
When they wrote it, Kernighan and Ritchie discarded most of the overhead that came with other languages. The linking of pointers to arrays and array arithmetic simplified the compiling while providing the bare minimum of array functionality. The lack of pretty much any built in functions made the language simple and compact. Putting all that functionality in libraries means you only needed to include just the pieces you used. And if you didn't need something, the language didn't force you to link it in. The language gave you just the few pieces that were absolutely necessary and you were responsible for the rest. The standard libraries that evolved after that are what gave C the ability to be a general purpose language.
C is a great language for writing small, tight, efficient, low level programs as long as you know what you're doing and are willing to work with just a few small, sharp tools. It still has it's place in embedded systems and for writing operating systems (or at least the kernel). Beyond that, it's really quite limited. But no, it's not just a macro assembler. It is more than that.
My router probably gets probed but since I don't forward any port requests to any of my home computers, my server never sees those requests. Hammering not found.
I don't have my server directly accessible to the outside ports. In fact, nothing from my router redirects into any of my home computers because I don't remotely connect from the outside world. I personally have no interest in enabling that functionality. Though that doesn't stop a Trojan Horse from opening up a port but that has to be initiated from the inside once I've downloaded it. And given the combination of ad blockers and script blockers I run, that's unlikely.
They can have copies of all the pictures and videos from the Jeep trips I've gone on and they're welcome to my pron collection. That's about all I really keep on my server.
Start with the fact that cloud services are big, ripe, juicy targets for anyone and everyone. Continue that there's probably never a time when their service isn't under some kind of attack in one way or another. Add in the fact that my server contains nothing of any real value to anyone but me. And extrapolate that to a very low likelihood that anyone would bother to take the time to attack my server. Consider also the fact that the cloud provider has to succeed 100% of the time to make my data secure while the hackers can fail almost forever and only have to succeed once.
I'm going to go with the fact that my data is more secure in my server at home than it would be in the cloud.
Of course, small businesses without a dedicated security teams are legitimate targets. But whether they store their data in the cloud or in company servers, their business internet connection is vulnerable to attack and provides a much easier road into the cloud storage than trying to directly attack the cloud servers. So realistically, the businesses accessing the cloud servers in bulk are a significant vector for attacking a cloud service. As a result, it doesn't matter where the business stores its data, it is no more or less vulnerable to attack in either location.
When it comes to large corporations, they are bigger targets but they have the budget to hire security experts just like the cloud provider has. So while they too are probably under constant attack 24/7/365, they are not necessarily any more or less vulnerable than the cloud provider.
So on balance, I'm going to go with no, the cloud does not necessarily make your data any more (or less for that matter) secure than not using it.
What else could you buy at the time that had preemptive multitasking?
System V/386 Unix if you wanted to stay on PC hardware, or any of a number of Unix boxen being sold at the time. Or if you don't like Unix, you could always go with IBM, VAX/VMS, etc. It just depended on your needs/budget.
But quite honestly, the real world effects of cooperative multitasking weren't as horrible as the hype would suggest. A vast majority of people hardly noticed the difference because they really didn't (and still don't) work on more than one thing at a time. And cooperative multitasking was more than adequate for the types of work people were doing in Windows. Power users would notice the difference but a lot of them were still doing their real work on big iron back then.
I think the old saying was "Windows aint done until Lotus won't run"
I had heard the "Windows ain't done until Novell won't run" as well. Microsoft went out of their way to build in incompatibilities that broke all of their competitors. There's no myth about that. It just gets swept under the rug.
So tell me what was so special about it? I ran it on my desktop for going on a year but gave up on it. Sure, it had preemptive multitasking before Windows NT came out. But so what? It was bloated and slow, in large part because IBM paid Microsoft to design a lot of it while paying them per SLOC. And paying your primary competitor per line of code to write your operating system can't end well. Was it the object oriented API? So what? Again, it made the system bloated and slow. OS/2 may have had a few features in place before Windows but it was really horribly done and rightfully never took off.
I remember 2.0 back in about 92 or 93 and it was alright but not really special. And then it pretty much died. I can't imagine there are any significant projects still using it. Though I'll probably be told about several who never gave up on it. After all, there are still projects running Motif...
I installed several dozen Gateways in around 1990-91 when I was working in the college computer center. The entire batch had memory that would start to fail when it reached a normal operating temperature. They refused to do anything about it until the administration threatened to not pay the bill and ship all of the computers back. We received an overnight shipment of new memory for the entire lot.
I dunno. If the only reason to watch a show is so I can see some babe in tight clothes, I think I'll spend my time elsewhere. There are better ways to see more than that which don't involve sitting through really mediocre Sci-Fi.
Oh, and you do notice that they just went ahead and wrote in the babe in tight clothes from the start with Enterprise. They learned from the success of adding 6 of 9. (typo intended to make the joke more obvious).
Elevating her character to that level wasn't a challenge given how bad the series was. And the implicit joke of naming her 6 of 9... er, "seven of nine" was not lost on a lot of us.
It is exactly what it says. It is an actual function (i.e. executable code module) but it's built into the language and provided in the base linked package. C supplies defined functions as part of a library that is not part of the core language. That's the difference.
The sizeof() function may have the syntax of a function but it's evaluated at compile time. It doesn't actually compile into a function call.
Yeah, I still don't know what made C stand out over other languages. I never really got to know other languages that were around at the time. I bet the ability to cross compile between platforms was a significant contributor. That and it didn't obfuscate much on you so you could mostly know what was going on for every line of code you wrote.
It still amazes me the legacy that an escaped Bell Labs experiment like C has had with syntax of so many languages. C++, Java, C#, csh, Perl, Ruby, et al trace their syntax roots to C, which I believe was derived somewhat from B and BCPL (and others?).
Well sure. Any time you had a project that already mixed C and assembly, there already was a lot of detailed work to manipulate the processor very specifically and no small amount of just inlining the assembly code rather than figuring out how to write C syntax. And I've done my share of that, mostly early in my career. But compared to high level languages, C offered substantial efficiency improvements at the cost of having to "roll your own" on just about everything you wanted to do. And more often than not, the compiled C code was "good enough" to get the job done.
When C was first created, there was little to no compiler optimization available. The lack of overhead in the C language meant that the compiler added little to no bloat over the code that was written. What you wrote is what you got.
Of course, that meant the inefficiency and bloat came in when average programmers started to implement more complex data and algorithms without knowing how to do it efficiently...
Before C++ came around, wasn't C just a glorified macro assembler?
Not exactly. It was intended to be an actual compiled language but one with as little overhead as possible and the ability to touch the hardware easily. It's considered a "middle level language". Where low level languages would be various assemblers and what not. High level languages (i.e. most other compiled language) deliberately abstract away the low level functionality to make writing applications easier. C was designed specifically as an in-house tool at Bell Labs for rewriting Unix and escaped sometime in the late 60's/early 70's. It was and always will be a compiled language, albeit one with only a very small base of core functionality.
When they wrote it, Kernighan and Ritchie discarded most of the overhead that came with other languages. The linking of pointers to arrays and array arithmetic simplified the compiling while providing the bare minimum of array functionality. The lack of pretty much any built in functions made the language simple and compact. Putting all that functionality in libraries means you only needed to include just the pieces you used. And if you didn't need something, the language didn't force you to link it in. The language gave you just the few pieces that were absolutely necessary and you were responsible for the rest. The standard libraries that evolved after that are what gave C the ability to be a general purpose language.
C is a great language for writing small, tight, efficient, low level programs as long as you know what you're doing and are willing to work with just a few small, sharp tools. It still has it's place in embedded systems and for writing operating systems (or at least the kernel). Beyond that, it's really quite limited. But no, it's not just a macro assembler. It is more than that.
My router probably gets probed but since I don't forward any port requests to any of my home computers, my server never sees those requests. Hammering not found.
I don't have my server directly accessible to the outside ports. In fact, nothing from my router redirects into any of my home computers because I don't remotely connect from the outside world. I personally have no interest in enabling that functionality. Though that doesn't stop a Trojan Horse from opening up a port but that has to be initiated from the inside once I've downloaded it. And given the combination of ad blockers and script blockers I run, that's unlikely.
They can have copies of all the pictures and videos from the Jeep trips I've gone on and they're welcome to my pron collection. That's about all I really keep on my server.
Start with the fact that cloud services are big, ripe, juicy targets for anyone and everyone. Continue that there's probably never a time when their service isn't under some kind of attack in one way or another. Add in the fact that my server contains nothing of any real value to anyone but me. And extrapolate that to a very low likelihood that anyone would bother to take the time to attack my server. Consider also the fact that the cloud provider has to succeed 100% of the time to make my data secure while the hackers can fail almost forever and only have to succeed once.
I'm going to go with the fact that my data is more secure in my server at home than it would be in the cloud.
Of course, small businesses without a dedicated security teams are legitimate targets. But whether they store their data in the cloud or in company servers, their business internet connection is vulnerable to attack and provides a much easier road into the cloud storage than trying to directly attack the cloud servers. So realistically, the businesses accessing the cloud servers in bulk are a significant vector for attacking a cloud service. As a result, it doesn't matter where the business stores its data, it is no more or less vulnerable to attack in either location.
When it comes to large corporations, they are bigger targets but they have the budget to hire security experts just like the cloud provider has. So while they too are probably under constant attack 24/7/365, they are not necessarily any more or less vulnerable than the cloud provider.
So on balance, I'm going to go with no, the cloud does not necessarily make your data any more (or less for that matter) secure than not using it.
(might be a challenge now since x64 can't run 16-bit code...).
Since when?
You say that as if Google isn't already reading all of our mail to begin with.
What else could you buy at the time that had preemptive multitasking?
System V/386 Unix if you wanted to stay on PC hardware, or any of a number of Unix boxen being sold at the time. Or if you don't like Unix, you could always go with IBM, VAX/VMS, etc. It just depended on your needs/budget.
But quite honestly, the real world effects of cooperative multitasking weren't as horrible as the hype would suggest. A vast majority of people hardly noticed the difference because they really didn't (and still don't) work on more than one thing at a time. And cooperative multitasking was more than adequate for the types of work people were doing in Windows. Power users would notice the difference but a lot of them were still doing their real work on big iron back then.
Microsoft hired most of the DEC/VMS team to write it.
I think the old saying was "Windows aint done until Lotus won't run"
I had heard the "Windows ain't done until Novell won't run" as well. Microsoft went out of their way to build in incompatibilities that broke all of their competitors. There's no myth about that. It just gets swept under the rug.
So tell me what was so special about it? I ran it on my desktop for going on a year but gave up on it. Sure, it had preemptive multitasking before Windows NT came out. But so what? It was bloated and slow, in large part because IBM paid Microsoft to design a lot of it while paying them per SLOC. And paying your primary competitor per line of code to write your operating system can't end well. Was it the object oriented API? So what? Again, it made the system bloated and slow. OS/2 may have had a few features in place before Windows but it was really horribly done and rightfully never took off.
I remember 2.0 back in about 92 or 93 and it was alright but not really special. And then it pretty much died. I can't imagine there are any significant projects still using it. Though I'll probably be told about several who never gave up on it. After all, there are still projects running Motif...
I installed several dozen Gateways in around 1990-91 when I was working in the college computer center. The entire batch had memory that would start to fail when it reached a normal operating temperature. They refused to do anything about it until the administration threatened to not pay the bill and ship all of the computers back. We received an overnight shipment of new memory for the entire lot.
I dunno. If the only reason to watch a show is so I can see some babe in tight clothes, I think I'll spend my time elsewhere. There are better ways to see more than that which don't involve sitting through really mediocre Sci-Fi.
Oh, and you do notice that they just went ahead and wrote in the babe in tight clothes from the start with Enterprise. They learned from the success of adding 6 of 9. (typo intended to make the joke more obvious).
Elevating her character to that level wasn't a challenge given how bad the series was. And the implicit joke of naming her 6 of 9... er, "seven of nine" was not lost on a lot of us.
It's hard to argue with success. Put in a supposedly emotionless woman who looks good and the nerds and geeks will line up to watch it.
Barbie of Borg was there only to rescue the failing ratings. The character added nothing of significant value beyond looking good in a tight jumpsuit.
A bigger pile of steaming horse droppings by any other name, will still smell...
Only if you can find a Catholic bear...