The kind of speed increase you're talking about is easily possible for a language that would do parallelism well. Right now, it's bolted on existing languages with threads, and that's too hard to use properly in general. A successful language should hide threads and do parallelism implicitly whenever it can.
You don't get it. using parallelism to cover for a less efficient single core language is not the answer especially since this language will likely use 2 to 5 times the memory. Learn how to do parallelism well in C and put the time in to code it and the result will not have to be a compromise (programming efficiency is low priority in kernel dev I would think), I'm sure the C spec will eventually add some better parallelism.
No language that is marginally slower or uses marginally more memory (or worse) is going to replace C. Prove that the complier can produce the efficient results first.
Nobody is even trying. Most of the effort in programming languages today involves late binding, just-in-time compilation, virtual machines, and complex template and object semantics. The last really serious effort to fix the problems of C as a systems programming language was Ada, and it was just too bulky. (On the other hand, modern C++ makes modern Ada look simple.) Modula 3 was actually quite good, and an OS was written in it. But it died with DEC Research when Compaq bought DEC.
What could you do to C to make it better without effecting performance? As you said ada tried and failed you need at lest one (probably heaps) of brilliant new concepts to stick into a language. Buffer overflows are solved by using functions with checking that slow things down.
Looking at ATS it could work less memory and same speed and no where near as much work on the complier.
In the past 40 years, a lot of new ideas have emerged which make writing software simpler, faster, and better-organized; some ideas which make code safer or allow the compiler etc to do better optimization have emerged too. Parallelization/multithreading and concurrency have come to the forefront of programming problems, and languages can do better at taking it into account.
So what you want is something close to C without the design flaw that have been realised in the last 40 years. Yes you do get something like D but the compiler is not as good and while backwards compatible will still require years of C code to be redone. Avoiding a lot of the problems of C has a direct impact on performance. Increasing Parallelization/multithreading to compensate for slow individual threads is not a solution C is just as capable of multithreading as anything else.
I think when C/C++ starts getting beaten in benchmarks by significant percentages then there might be a good reason to replace it (I suspect for an overall improvement the features you would have to strip out would leave it seeming similar to C). Why would anyone seriously want to replace C for increased latency and longer boot times. Good C programming (programming around the flaws and avoiding what should not be done) does not produce more bugs than anything else. Stop trying to convince anyone that C is so easy to replace, you could fork the spec and make changes faster. The programming language to replace C has probably not Conceived yet, it has to brilliantly elegant and simple and at least 3-5 percent faster (C# is not that language).
They are quite obviously saying you can replace your old box for this price but then I don’t get why you can't cannibalise the old box for the optical drive. Maybe the motherboard has no IDE and the editor wanted a better title/intro.
Still quite a few years off yet but the by 10th generation of this and the Kinect plus some brain sensors(/simulators) and you would be getting pretty close.
If your not aiming for perfection it might only be a few years away before someone tries.
I would expect getting damages for downloading in NZ is like getting blood out of a stone. Expecting to make a profit is just insane.
It will cost 75 NZD (3*$25) (at least) to get users details from ISPs a long with wages to send these order for likely payout of less than $500 assuming it all works out.
We also have dynamic IPs (adsl) so if you reset your connection they may have to pay 50 dollars or more to get one of the 3 notices.
To automate this process is likely to loose them money. For about 3 months of downloading the max fine you can be threatened with (probably if you make a profit from it) is $15000 and I am not sure the cw holders would get all of that. Without being able to threaten massive damages the US system falls apart.
I'd invest a couple of bucks a month to rent a seedbox in Burkina Faso or Tonga.
The funniest thing about that I think you avoid the law completely (yes its still covered by the general copywrite one) as well as the added bonus of being anonymous to all but the governments.
IANAL but since you are not torrenting outside the country you can be easily prosecuted for the torrenting from the seedbox/vps. Then since the law only covers p2p at the application level the ftps or ssh downloading to your desktop is fine (yes again there is the general copywrite law).
I would think that this law will also imply to police/judges that no one should be prosecuted for downloading something not covered by the law.
No sane copy write holder is going to issue notices against a school, if it was to get close to cutting off the schools internet there would be public outcry that would probably overturn or at least reopen the legislation which will have pissed off every internet user in the country (no free wifi anywhere and having to prevent other who know more than them from downloading).
We pay for a decent cap so its not improving anyone’s profits if we start paying 20 to 60 percent less.
That has yet to pass the final reading and they gave no good reason for the delay (I would think they are being lobbied by "people" from US). I would think it will eventually pass though.
The NZOSS did tell MS where to stick their OOXML patent though.
The law only applies for using p2p at the the application layer. I would think about 3 out of our 120 politicians have a basic understanding of torrents/internet.
There are so may obvious ways around this but they either cost or are less convenient. http://bayfiles.com/ is just in time.
It also makes it so you are very unlikely (a little less than before) to be prosecuted under our general copy-write law. I would say the stupidity of discrimination against protocols makes will make piracy easier.
Sorry was not clear i meant to imply they were applying the concept of GC to resources other then memory. Java decided you no longer need the resource and frees it. This is simplified situation say you make an object that opens a file (or other resource) but then still need the object without the file then the VM would recognise this and close the file. Its more complex than just SS.
And you raised the issue of what happens if you cant close/save the file, it would be come more complex to handle the only way this is easier is if you happy for java chose what to do in this case.
Dawn of time is right i don’t know shit about java but still missed my point (yes everything past the first sentence is shit invented on this spot when i look back on it, i could justify some of it but not the important parts). Is intrenching GC concepts in modern programming a clear advancement that most future languages will use? I thought it was clear my comments came from the language used in the article.
I think the design focus should be simpler rather than easy (using the word easy over simple just screams bad deign to me, maybe the article writer just chose the other work). I tried to make it obvious that my one line was based of the paragraph from the articular. I don't think anyone who has much influence has ever wanted GC directly built into C++. It just does not fit to have automatically included in Native Code.
I never said this would make you a bad programmer just that it would be frustrating/difficult to move to an alternative language.
That's been an argument for decades for everything...
Fair call but then i would have just be modded off topic.
Thus we have scripting languages (for performance CPython or pypy) which is this taken to the extreme.
I said that due to the tone of the article and the quote (i don't know who he is) that making the language easier (rather than simpliler) would make it make it harder to move to another language (others have said this is nothing new) and that it could be intentional.I think i left it up to the reader to decide the extended consequences of this.
I don't like your metaphor, you have simplified the issue too far and it hides the numbers needed to compare things to see if the tradeoff is worth it and I never said there is a problem with the part you described.
But to carry it on what happens when you go to another store and the door does not close and something goes wrong (say something gets blown over and you have to pay for it) or when to cover the cost of putting the door they markup your prices. (I assume the door is hypothetical as here the door would both open and close for me.)
Are these really meaningful advances? (If they are then yes i would agree with you)
Though i have no idea what they added to thread module if it was an advancement i would think you could sell it a bit better than it makes things easier. There has got to be a performance hit for "extending" garbage collection to files, sockets, and databases. How hard is it to realise you no longer need a resource and free it.
Sure its fine if you don't need it to be faster than python (or pypy) but changes like these (yes you could pretended they don't exist and then it may not matter) were to accumulate it could hurt the language rather than make it better. Assuming that Java programs do run (insignificantly) slower, it makes C++ and its dev's all that more important.
I did not say its currently the case, looking at the article I suggested/said it could be going there. (I do think that some of Javas features unnecessary make it easy for people to write programs that could easily preform better.)
Do you believe, not having to close unlock things makes you a better programmer? or that developer of Java will magically make it so there are no issues like (unnoticeable but cumulative) effects on performance, keeping the file open longer than it needs to be or having to reopen it?
Along with promoting an easier multithread API the artical also contain the paragraph:
Project Coin's diamond syntax for constructor calls lets the compiler infer type arguments, and the try-with-resources statement helps the compiler make reliable code by automatically closing files, sockets, and database connections when developers forget to do this, Ratcliff says: "That's something that's been tripping up developers -- especially young developers -- for years. That'll be a good productivity improvement and will reduce bugs."
This is almost like programming language lock in, once you have programed in Java for a few months you are incapable of writing functional C++ code and if you lean to program in java you have no idea why your non java programs fail.
When your entire company will operate without MS Office i would have to say that this issue is not going to come up for general staff. (LO uses odf not doc.)
I would think.odf's features would already be implemented in MSO so converting for external use is not terrible.
Im calling you a 'M$ Ninja![!!!]' for trying to convince everyone that this is actually an issue with no simple work around.
I would expect it would be far easier to crack the game and maintain full functionality if there is only DRM on launch. I don't think your data is so expensive you cant use your phone at the launch if you really wanted to play.
(Seriously, does the author really believe an app to help farmers sell their stuff couldn't have been developed on iOS or Windows or Blackberry? Come on!)
It could be done but i suspect it would have more difficult. Apple would not have liked it it it would hurt the iPhone image and banned it wanting 30 percent commission on sales. Who can feel exclusive owning a phone that poor people in Kenya can afford. They probably didn't do it in C++ but native development could overcome the poor specs on the phone.
If the government and china subsided the phone towers, limit coverage and they are still on standard 3g and allowing it to be operate a marginal loss then you can start to charge less. 350k is only 1 percent of the population.
This is not email over postage this is government keeping the communications on their server and letting you access it. As long as you trust your government not to mess with it has the advantages that everything is verifiable (i would expect to a greater level than postage letters) and if you lose or damage your printed off hard copy its still there.
I think the best reason to receive by mail is that you don't have to sign anything to say its your responsibility to make sure you read it and having a paper copy is not dependent on you having your computer with you. For the money involved in tax i don't think paper copies are that valid 6 months later.
This does not help help RH most direct competitor SUSE. To me this looks like it could be a SUSE ploy to get a stable kernel to compete with RH while not having to do all the work. Debian would like this as well. Or being less cynical they are making something that other distros can use like OBS and zypper ended up being used by Meego.
We are talking about pypy being better than native programs so if C++ benchmarks are also valid. If this is just a contest to convert an integer to a string and write it to arbitrary memory as fast as you can and not factoring in pythons order of magnitude(s) greater expressiveness and readability. You are taking a standard data type and returning an array of standard data there no issues with other libraries. Using a copy and pasted integer to string function (itoa(...)) that has some checking of valid inputs this will do the job in less than percent of the time under -O3 (no optimization is barely faster so an optimized sprintf could be faster). My CPU is not as good as his. int main() {
int i = 0;
int ilt=0;
int val=0;
char x[44];
char buffer[15];
for (i = 0; i less than 10000000; i++) {
ilt=0;val=0;
itoa (i,buffer,10);
while (x[ilt]){
x[ilt]=buffer[ilt];
ilt++;
}
x[ilt]=" ";
val=ilt;
ilt=0;
while (x[ilt]){
x[ilt+val]=buffer[ilt];
ilt++;
}
x[ilt+val]="\0";
} } I think that still pretty impressive of pypy but there are sill corners that could be cut for the c code. For easy native speed string manipulation C++ is far superior to C for writing and reading of code operator overloading, classes and pretty much half of the extra of it this allow people far more skilled than myself to optimize the program.
Of course it's a small, arbitrary comparison, but it's a fair one, with the same rules for both sides - we're talking about the natural, obvious, standard way of writing the same operation in each language.
Not really the C code from his example was just as fast under O1 yet he cranked it up to O3/4 and says it's a fully optermised benchmark. The only reason to code this in C is if you want peak performance if you want to use similar language to python you would use C++ with the string libraries. C's lack of objects makes dealing with strings a verbose task that there is no good reason to undertake it for general use and therefore there are no better solutions.
The kind of speed increase you're talking about is easily possible for a language that would do parallelism well. Right now, it's bolted on existing languages with threads, and that's too hard to use properly in general. A successful language should hide threads and do parallelism implicitly whenever it can.
You don't get it. using parallelism to cover for a less efficient single core language is not the answer especially since this language will likely use 2 to 5 times the memory. Learn how to do parallelism well in C and put the time in to code it and the result will not have to be a compromise (programming efficiency is low priority in kernel dev I would think), I'm sure the C spec will eventually add some better parallelism.
No language that is marginally slower or uses marginally more memory (or worse) is going to replace C. Prove that the complier can produce the efficient results first.
Nobody is even trying. Most of the effort in programming languages today involves late binding, just-in-time compilation, virtual machines, and complex template and object semantics. The last really serious effort to fix the problems of C as a systems programming language was Ada, and it was just too bulky. (On the other hand, modern C++ makes modern Ada look simple.) Modula 3 was actually quite good, and an OS was written in it. But it died with DEC Research when Compaq bought DEC.
What could you do to C to make it better without effecting performance? As you said ada tried and failed you need at lest one (probably heaps) of brilliant new concepts to stick into a language. Buffer overflows are solved by using functions with checking that slow things down.
Looking at ATS it could work less memory and same speed and no where near as much work on the complier.
In the past 40 years, a lot of new ideas have emerged which make writing software simpler, faster, and better-organized; some ideas which make code safer or allow the compiler etc to do better optimization have emerged too.
Parallelization/multithreading and concurrency have come to the forefront of programming problems, and languages can do better at taking it into account.
So what you want is something close to C without the design flaw that have been realised in the last 40 years. Yes you do get something like D but the compiler is not as good and while backwards compatible will still require years of C code to be redone. Avoiding a lot of the problems of C has a direct impact on performance. Increasing Parallelization/multithreading to compensate for slow individual threads is not a solution C is just as capable of multithreading as anything else.
I think when C/C++ starts getting beaten in benchmarks by significant percentages then there might be a good reason to replace it (I suspect for an overall improvement the features you would have to strip out would leave it seeming similar to C). Why would anyone seriously want to replace C for increased latency and longer boot times. Good C programming (programming around the flaws and avoiding what should not be done) does not produce more bugs than anything else. Stop trying to convince anyone that C is so easy to replace, you could fork the spec and make changes faster. The programming language to replace C has probably not Conceived yet, it has to brilliantly elegant and simple and at least 3-5 percent faster (C# is not that language).
The idea might be old but getting it working on a much larger scale is not trivial. Being able to store 100 or so megajoules is pretty cool also.
They are quite obviously saying you can replace your old box for this price but then I don’t get why you can't cannibalise the old box for the optical drive. Maybe the motherboard has no IDE and the editor wanted a better title/intro.
I apologise, i did not think the title would have fitted.
Appears Science Fiction VR would have.
Still quite a few years off yet but the by 10th generation of this and the Kinect plus some brain sensors(/simulators) and you would be getting pretty close.
If your not aiming for perfection it might only be a few years away before someone tries.
I would expect getting damages for downloading in NZ is like getting blood out of a stone. Expecting to make a profit is just insane.
It will cost 75 NZD (3*$25) (at least) to get users details from ISPs a long with wages to send these order for likely payout of less than $500 assuming it all works out.
We also have dynamic IPs (adsl) so if you reset your connection they may have to pay 50 dollars or more to get one of the 3 notices.
To automate this process is likely to loose them money. For about 3 months of downloading the max fine you can be threatened with (probably if you make a profit from it) is $15000 and I am not sure the cw holders would get all of that. Without being able to threaten massive damages the US system falls apart.
I'd invest a couple of bucks a month to rent a seedbox in Burkina Faso or Tonga.
The funniest thing about that I think you avoid the law completely (yes its still covered by the general copywrite one) as well as the added bonus of being anonymous to all but the governments.
IANAL but since you are not torrenting outside the country you can be easily prosecuted for the torrenting from the seedbox/vps. Then since the law only covers p2p at the application level the ftps or ssh downloading to your desktop is fine (yes again there is the general copywrite law).
I would think that this law will also imply to police/judges that no one should be prosecuted for downloading something not covered by the law.
No sane copy write holder is going to issue notices against a school, if it was to get close to cutting off the schools internet there would be public outcry that would probably overturn or at least reopen the legislation which will have pissed off every internet user in the country (no free wifi anywhere and having to prevent other who know more than them from downloading).
We pay for a decent cap so its not improving anyone’s profits if we start paying 20 to 60 percent less.
That has yet to pass the final reading and they gave no good reason for the delay (I would think they are being lobbied by "people" from US). I would think it will eventually pass though.
The NZOSS did tell MS where to stick their OOXML patent though.
The law only applies for using p2p at the the application layer. I would think about 3 out of our 120 politicians have a basic understanding of torrents/internet.
There are so may obvious ways around this but they either cost or are less convenient. http://bayfiles.com/ is just in time.
It also makes it so you are very unlikely (a little less than before) to be prosecuted under our general copy-write law. I would say the stupidity of discrimination against protocols makes will make piracy easier.
Sorry was not clear i meant to imply they were applying the concept of GC to resources other then memory. Java decided you no longer need the resource and frees it. This is simplified situation say you make an object that opens a file (or other resource) but then still need the object without the file then the VM would recognise this and close the file. Its more complex than just SS.
And you raised the issue of what happens if you cant close/save the file, it would be come more complex to handle the only way this is easier is if you happy for java chose what to do in this case.
Dawn of time is right i don’t know shit about java but still missed my point (yes everything past the first sentence is shit invented on this spot when i look back on it, i could justify some of it but not the important parts). Is intrenching GC concepts in modern programming a clear advancement that most future languages will use? I thought it was clear my comments came from the language used in the article.
I think the design focus should be simpler rather than easy (using the word easy over simple just screams bad deign to me, maybe the article writer just chose the other work). I tried to make it obvious that my one line was based of the paragraph from the articular. I don't think anyone who has much influence has ever wanted GC directly built into C++. It just does not fit to have automatically included in Native Code.
I never said this would make you a bad programmer just that it would be frustrating/difficult to move to an alternative language.
That's been an argument for decades for everything...
Fair call but then i would have just be modded off topic.
Thus we have scripting languages (for performance CPython or pypy) which is this taken to the extreme.
I said that due to the tone of the article and the quote (i don't know who he is) that making the language easier (rather than simpliler) would make it make it harder to move to another language (others have said this is nothing new) and that it could be intentional.I think i left it up to the reader to decide the extended consequences of this.
I don't like your metaphor, you have simplified the issue too far and it hides the numbers needed to compare things to see if the tradeoff is worth it and I never said there is a problem with the part you described.
But to carry it on what happens when you go to another store and the door does not close and something goes wrong (say something gets blown over and you have to pay for it) or when to cover the cost of putting the door they markup your prices. (I assume the door is hypothetical as here the door would both open and close for me.)
Are these really meaningful advances? (If they are then yes i would agree with you)
Though i have no idea what they added to thread module if it was an advancement i would think you could sell it a bit better than it makes things easier. There has got to be a performance hit for "extending" garbage collection to files, sockets, and databases. How hard is it to realise you no longer need a resource and free it.
Sure its fine if you don't need it to be faster than python (or pypy) but changes like these (yes you could pretended they don't exist and then it may not matter) were to accumulate it could hurt the language rather than make it better. Assuming that Java programs do run (insignificantly) slower, it makes C++ and its dev's all that more important.
I did not say its currently the case, looking at the article I suggested/said it could be going there. (I do think that some of Javas features unnecessary make it easy for people to write programs that could easily preform better.)
Do you believe, not having to close unlock things makes you a better programmer? or that developer of Java will magically make it so there are no issues like (unnoticeable but cumulative) effects on performance, keeping the file open longer than it needs to be or having to reopen it?
Along with promoting an easier multithread API the artical also contain the paragraph:
Project Coin's diamond syntax for constructor calls lets the compiler infer type arguments, and the try-with-resources statement helps the compiler make reliable code by automatically closing files, sockets, and database connections when developers forget to do this, Ratcliff says: "That's something that's been tripping up developers -- especially young developers -- for years. That'll be a good productivity improvement and will reduce bugs."
This is almost like programming language lock in, once you have programed in Java for a few months you are incapable of writing functional C++ code and if you lean to program in java you have no idea why your non java programs fail.
When your entire company will operate without MS Office i would have to say that this issue is not going to come up for general staff. (LO uses odf not doc.)
I would think .odf's features would already be implemented in MSO so converting for external use is not terrible.
Im calling you a 'M$ Ninja![!!!]' for trying to convince everyone that this is actually an issue with no simple work around.
I would expect it would be far easier to crack the game and maintain full functionality if there is only DRM on launch.
I don't think your data is so expensive you cant use your phone at the launch if you really wanted to play.
(Seriously, does the author really believe an app to help farmers sell their stuff couldn't have been developed on iOS or Windows or Blackberry? Come on!)
It could be done but i suspect it would have more difficult.
Apple would not have liked it it it would hurt the iPhone image and banned it wanting 30 percent commission on sales. Who can feel exclusive owning a phone that poor people in Kenya can afford.
They probably didn't do it in C++ but native development could overcome the poor specs on the phone.
If the government and china subsided the phone towers, limit coverage and they are still on standard 3g and allowing it to be operate a marginal loss then you can start to charge less. 350k is only 1 percent of the population.
This is not email over postage this is government keeping the communications on their server and letting you access it. As long as you trust your government not to mess with it has the advantages that everything is verifiable (i would expect to a greater level than postage letters) and if you lose or damage your printed off hard copy its still there.
I think the best reason to receive by mail is that you don't have to sign anything to say its your responsibility to make sure you read it and having a paper copy is not dependent on you having your computer with you. For the money involved in tax i don't think paper copies are that valid 6 months later.
in many ways just a pile of ones and zeros
in the same way its just coloured dots on a page
This does not help help RH most direct competitor SUSE.
To me this looks like it could be a SUSE ploy to get a stable kernel to compete with RH while not having to do all the work. Debian would like this as well.
Or being less cynical they are making something that other distros can use like OBS and zypper ended up being used by Meego.
We are talking about pypy being better than native programs so if C++ benchmarks are also valid. If this is just a contest to convert an integer to a string and write it to arbitrary memory as fast as you can and not factoring in pythons order of magnitude(s) greater expressiveness and readability. You are taking a standard data type and returning an array of standard data there no issues with other libraries. Using a copy and pasted integer to string function (itoa(...)) that has some checking of valid inputs this will do the job in less than percent of the time under -O3 (no optimization is barely faster so an optimized sprintf could be faster). My CPU is not as good as his.
int main() {
int i = 0;
int ilt=0;
int val=0;
char x[44];
char buffer[15];
for (i = 0; i less than 10000000; i++) {
ilt=0;val=0;
itoa (i,buffer,10);
while (x[ilt]){
x[ilt]=buffer[ilt];
ilt++;
}
x[ilt]=" ";
val=ilt;
ilt=0;
while (x[ilt]){
x[ilt+val]=buffer[ilt];
ilt++;
}
x[ilt+val]="\0";
}
}
I think that still pretty impressive of pypy but there are sill corners that could be cut for the c code. For easy native speed string manipulation C++ is far superior to C for writing and reading of code operator overloading, classes and pretty much half of the extra of it this allow people far more skilled than myself to optimize the program.
Of course it's a small, arbitrary comparison, but it's a fair one, with the same rules for both sides - we're talking about the natural, obvious, standard way of writing the same operation in each language.
Not really the C code from his example was just as fast under O1 yet he cranked it up to O3/4 and says it's a fully optermised benchmark. The only reason to code this in C is if you want peak performance if you want to use similar language to python you would use C++ with the string libraries. C's lack of objects makes dealing with strings a verbose task that there is no good reason to undertake it for general use and therefore there are no better solutions.