The Lisp and C styles are based on expressions to be evaluated. Their natural mode is to operate on multiple input values to produce a single output value. Workarounds, to handle multiple outputs, always feel clumsy, and generally require creating more named temporary variables. Furthermore, people naturally have a bias towards this preference, and consider it poor style to modify the machine state mid-expression (regardless of how efficient this is), preferring only to assign the result.
The Forth style is different. Each token is an instruction to be executed in strict order, and performs its function by modifying the machine state in some way. You don't tell the machine, "I want you to find the answer to this problem," you tell it "do this, then that, next this," and in this way you get to know exactly what it's doing. "Returning" multiple values, or making multiple changes to the machine state, is easy and natural. You don't have to put in silly kludges where your return result is a proper answer in some cases and an error code in others, or resort to the absurd COMEFROM of exception handling. There is no limiting syntax to trip over, your own constructs can be as expressive as the ones that are built in.
You don't need to understand algebra to learn Forth. As Chuck Moore says, it should be taught some time after counting and before long division.
In short, Forth is the truly general purpose programming style. It's based on the way computers really work, not some idealized model of how we'd like computers to work. This makes some things a little harder, and makes some things much, much easier.
That said, I don't use Forth much. Everybody uses C, or C-based tools. All the system interfaces are designed and documented for C programmers, and if you want to use them, you have to deal with the workarounds for C's shortcomings regardless of what you actually use. Since interfacing with system libraries is often the biggest and most painful part of a project, this negates the advantage of moving to Forth. Even the processors are designed for C code. Stack machines aren't any less efficient than register machines, but by the time you take advantage of a large register file, your beautifully-simple Forth compiler/interpreter is as monstrous as a C compiler.
Compromise systems, such as ANS Forth, neatly combine the disadvantages of C with the disadvantages of Forth.
And so, Forth ends up restricted to situations where you'd have to build up the kruft yourself if you wanted to use C. Still, I want a T-shirt that says, "I'd rather be programming in Forth!"
Just look at the medical marijuana thing in CA. The state says that it's ok, but the federal government says it isn't. And what happens? People get arrested for using and distributing it. Federal law has supremacy over local/state law, regardless of how charitable or well-intentioned.
And what if the federal government says that jaywalking is okay, but a municipal government says it's illegal?
Laws don't create exceptions from other laws, they just prohibit more behaviors. If the federal government forbids something, the state may not allow it, and vice versa. Now, the government system is supposed to be structured so that areas of responsibility don't overlap, but (as you might expect) theory and practice started diverging before the ink dried on the constitution. In areas of overlapping responsibility you must obey the restrictions of each level involved, which tends to reduce your freedom.
So even if the state government has the power to enact any law on those within its borders, it can do nothing to protect its citizens' freedoms from the regulation of the federal government. At best, it can decline to add further restrictions.
So I think it's a foregone conclusion that this will not have any great effect.
On the other hand, it would be pretty cool to gather with 20,000 like-minded people in one city, for the cultural possibilities alone.
If you throw up some, say, volcanic ash into the atmosphere every once in a while (it stays up for years), it'll substantially reduce the amount of sunlight coming in.
Nobody's said that terraforming is easy. Too much sunlight, however, is one of the easier problems to solve. It's downright trivial compared to making the atmosphere breathable, or figuring out how to deal with the length of the Venusian day.
Stuff that's free for everybody's use should be paid for by the people who expect to benefit from it and want to be a part of it. Free software, basic research, space exploration... all stuff that could be completely funded by small donations from large numbers of interested individuals.
Sure it's awesome to get in there and get your hands dirty, but you can't actually work on every cool project. You could be an important part of each and every one through microdonations.
Basic research is mostly stuff that's either unpatentable or will not turn a profit before the patent runs out. For the few exceptions, there's circle-and-destroy patenting, and other foul play, to level the playing field between scientist-based companies and lawyer-based companies. Nobody's doing basic reseach because, rich as the rewards may be for humanity, little is to be gained by the researchers.
So who should be funding research? It's the general public that is going to benefit most from basic research, so I believe it should be funded by individual private donations. Furthermore, I believe the best donation strategy is a reward strategy, based on results rather than bureaucratic judgements of potential. That would encourage doing real research rather than the perpetual funding chase that's so common. Researchers could either bootstrap themselves with inexpensive theoretical research, or try to convince investors that their expensive experimental research would pay off big. It should be possible to get rich doing basic research. After all, in a situation like that, wouldn't a billionaire Einstein be likely to invest his rewards in the next wave's Einstein?
With computers and the internet, we have the ability to organize ourselves and individually allocate our research money to what we would judge worthwhile without spending much of our time at it. What we lack is the ability to actually distribute our donations with that same ease and efficiency. However, that can be fixed.
The government could cut all research and lower taxes (letting people decide what they want to support with their own money), and universities could focus on teaching. I think it would be a better situation all around.
For all the advances in science and technology, we're still basically living the same lifestyle of the 50's. Stuff works a little better, people live a little longer, we have nicer toys, some irrelevant fashions continued to evolve, that's it. We still drive cars at about the same speed, not many people live to 100 years old, hardly anybody goes to space, and most things are still mass-produced in big, expensive factories.
When today's toddlers grow up, some seriously weird technologies are going to start kicking in... technologies that may make our political system obsolete, just as mass-produced guns made feudalism obsolete.
What happens when factories are no longer necessary to provide complex goods?...when the full set of artificial organs are available?...when anyone can afford the boost into orbit?...when computers stop sucking and start working?
Okay, so there's an example of a character under copyright being abused. Therefore, copyright stops a character from being abused in that way....
Look at an old public-domain character: Heracles. Sure there's been a lot of crap with him in it. However, there's been a lot of good stuff, too, and the original nature of the character hasn't been lost.
Or take, for example, Space Balls. Campy crap parody of Star Wars. Perfectly legal. If Batman was as serious as you claimed before the TV series, anyone could probably have made it and claimed the parody exemption.
Copyright may protect the author's profits. It doesn't protect the author's vision.
This isn't going to run SNES games. The cards have a total capacity of around 3K: 2K for a strip along the side, and 1K for along the bottom. I'm not sure, but they might also be able to make them with strips along both sides (4k), or all around the edge of the card (6k... maybe closer to 7k).
The reader itself has a meg of flash memory, so it can do some more interesting things than just read and play one game card in isolation.
I think it's less about games, and more about add-ons for games. What a great idea. I would have loved video games in the price range of comic books when I was a kid.
It's been out in Japan for a while. I wonder what their licensing system is like...
Topology is a psychiatric disorder characterized by the inability to distinguish between a donut and a coffee cup. Some theorists speculate that it may be caused by overexposure to university cafeterias, in which such distinctions are academic at best.
That makes sense... in an arbitrary yet convenient kind of way.
Personally, I would prefer that prime numbers include one, even though mathematicians would have to say "prime numbers other than one" a lot more often than "prime numbers."
if I create 200 files that all start with myapplicationdataset and then have a 3 digit number attached, most hash designs will result in a single list
Let me repeat: you do not understand hashing. One characteristic feature of a good hash function is that similar inputs do not result in identical outputs.
What you just claimed about hashing reveals about the same level of understanding as saying, "having rolled a 1, you're probably going to roll a 2 next," about dice.
I'm not going to waste any more of my time correcting all your mistakes one by one. Go read something by Knuth, and please stop trying to "build" computer scientists. I'd feel safer hearing of lemurs building nuclear power plants.
Advanced search algorithms such as hashing are rarely covered in an intro course. (I've never heard of it)
Good grief! Did you go to Bovine University? Hash tables easily fit within the ten most commonly used data structures. They take all of 30 seconds to explain, and in my experience are usually introduced in the same breath as lists and trees.
Also, you've never heard of sequential hashing (no linked lists)? Or perfect hashing (hideously, monstrously expensive to add keys, but one-step look-up every time)?
You don't understand this stuff at all, so don't spew official-looking equations you pulled out your ass and say things like "I also don't want a beginning CS student to read this and be taken astray."
Your speed analysis is completely off-base. The average list length in a hash table is not related to the total number of elements, but the ratio of the number of elements to the size of the table (the base table, in linked hashes). Normal practice is to expand and rebuild the table when it starts getting full, to keep that ratio under a chosen threshold, and keep the hash look-ups in constant average time.
That's right. Hash look-ups run within a constant speed, regardless of entry count, except for rare anomalies (which remain rare regardless of entry count). That's why we go to the trouble of using them. Big-O is inappropriate to express that, because it's for worst-case scenarios or impossibly worse, as is little-o which is only for the worst-case (hash tables are actually o(N)... just like a linked list; in case everything hashes to the wrong key). But log has absolutely nothing at all to do with the performance of a remotely conventional hash implementation.
Your original raised concern (that more files in the usr hierarchy will noticeably slow down Linux) is utter garbage, as is your reasoning behind it, and your "debunking" of the sensible objection. In my experience, most desktop Linux installations have far more software installed than Windows installations, because of the vast amounts of free software clamoring for a space on your hard drive. The major exceptions are warez kiddies, who keep everything they care about on CD-Rs and wipe their systems about every second month.
I'm not trying to put you down for liking arcade games, or putting lots of time, effort, and money into them. As someone who posts on/., I'm obviously not exactly making the best possible use of my time myself. It's for being openly derisive of people who don't put as much time, effort, and money into them.
Some people are boastful about their skills, talents, and accomplishments, and derisive of others who don't measure up to the same standards. This is rude, but not pathetic (unless they're making stuff up), because at least they're talking about positive traits. Being a snob about your indulgences, especially ones commonly seen as childish, is sad, sad, sad.
Incidentally, the "I'm not pathetic, I have sex!" defense is now a pathetic cliche.
That is the most incredibly pathetic brand of snobbery I've ever witnessed.
We're talking about toys here. Most people are already going to be a little embarrassed to put so much time and effort into such a childish indulgence, let alone becoming some sort of expert on it. And god forbid someone should want to make something of his own design with his own hands...
No... wait... the most pathetic was that time I was in a gaming store and saw a morbidly obese man with poor personal hygiene loudly deriding some 14-year-old kid for buying the plain dice. This is just a close second.
If you want to give suggestions, I'm sure people will appreciate it, but talking about how "home made cabinets are ASS" is just sad.
Remember Orwell's book is called 2084. It has always been called 2084, and it will always be called 2084.
So things don't go badly in the real 2084, it is very important that we give our full and unconditional love and obedience to our government, the sole defender of freedom in the world. Otherwise, we could face the horrors Orwell wrote about: economic ruin, mass unemployment, global warming, parentless children roaming the streets in packs, cities isolated and divided by attacks on communication infrastructure synchronized with encrypted messages over the very same lines, suitcase nuclear weapons, drug-dealing warlords with more power than a feeble and helpless legitimate government, and so forth.
We need to make sure there is no place for a terrorist like Big Brother to hide.
Thax remxxxx me of the old Forxx sysxxxx thax usex onlx the firxx thrxx letxxxx plux the numxxx of letxxxx in eacx worx. It souxxx terxxxxx in thexxx, but in praxxxxx if you keex it in minx it worxx quixx welx.
Alternatively, you could stop taking the piss out of the guys' C++. I'm betting its a second language for him. Unless you can program in his first language (Logo?) at least as well as he programs in C++ your best bet is prolly to hush up.
As in the case of a ski lodge in which young women look for husbands and husbands look for young women, the situation is not as symmetric as it first appears.
Don't worry, ignorance can be cured.
Body heat will be extracted via thermal probes at the conventional points used by thermometers. See South Park episode 511 "The Entity" for details.
The Lisp and C styles are based on expressions to be evaluated. Their natural mode is to operate on multiple input values to produce a single output value. Workarounds, to handle multiple outputs, always feel clumsy, and generally require creating more named temporary variables. Furthermore, people naturally have a bias towards this preference, and consider it poor style to modify the machine state mid-expression (regardless of how efficient this is), preferring only to assign the result.
The Forth style is different. Each token is an instruction to be executed in strict order, and performs its function by modifying the machine state in some way. You don't tell the machine, "I want you to find the answer to this problem," you tell it "do this, then that, next this," and in this way you get to know exactly what it's doing. "Returning" multiple values, or making multiple changes to the machine state, is easy and natural. You don't have to put in silly kludges where your return result is a proper answer in some cases and an error code in others, or resort to the absurd COMEFROM of exception handling. There is no limiting syntax to trip over, your own constructs can be as expressive as the ones that are built in.
You don't need to understand algebra to learn Forth. As Chuck Moore says, it should be taught some time after counting and before long division.
In short, Forth is the truly general purpose programming style. It's based on the way computers really work, not some idealized model of how we'd like computers to work. This makes some things a little harder, and makes some things much, much easier.
That said, I don't use Forth much. Everybody uses C, or C-based tools. All the system interfaces are designed and documented for C programmers, and if you want to use them, you have to deal with the workarounds for C's shortcomings regardless of what you actually use. Since interfacing with system libraries is often the biggest and most painful part of a project, this negates the advantage of moving to Forth. Even the processors are designed for C code. Stack machines aren't any less efficient than register machines, but by the time you take advantage of a large register file, your beautifully-simple Forth compiler/interpreter is as monstrous as a C compiler.
Compromise systems, such as ANS Forth, neatly combine the disadvantages of C with the disadvantages of Forth.
And so, Forth ends up restricted to situations where you'd have to build up the kruft yourself if you wanted to use C. Still, I want a T-shirt that says, "I'd rather be programming in Forth!"
Just look at the medical marijuana thing in CA. The state says that it's ok, but the federal government says it isn't. And what happens? People get arrested for using and distributing it. Federal law has supremacy over local/state law, regardless of how charitable or well-intentioned.
And what if the federal government says that jaywalking is okay, but a municipal government says it's illegal?
Laws don't create exceptions from other laws, they just prohibit more behaviors. If the federal government forbids something, the state may not allow it, and vice versa. Now, the government system is supposed to be structured so that areas of responsibility don't overlap, but (as you might expect) theory and practice started diverging before the ink dried on the constitution. In areas of overlapping responsibility you must obey the restrictions of each level involved, which tends to reduce your freedom.
So even if the state government has the power to enact any law on those within its borders, it can do nothing to protect its citizens' freedoms from the regulation of the federal government. At best, it can decline to add further restrictions.
So I think it's a foregone conclusion that this will not have any great effect.
On the other hand, it would be pretty cool to gather with 20,000 like-minded people in one city, for the cultural possibilities alone.
If you throw up some, say, volcanic ash into the atmosphere every once in a while (it stays up for years), it'll substantially reduce the amount of sunlight coming in.
Nobody's said that terraforming is easy. Too much sunlight, however, is one of the easier problems to solve. It's downright trivial compared to making the atmosphere breathable, or figuring out how to deal with the length of the Venusian day.
"When relegated to obscure embedded applications, look as good you will not."
...and what better way to start than to help launch the tools for helping launch the research?
Stuff that's free for everybody's use should be paid for by the people who expect to benefit from it and want to be a part of it. Free software, basic research, space exploration... all stuff that could be completely funded by small donations from large numbers of interested individuals.
Sure it's awesome to get in there and get your hands dirty, but you can't actually work on every cool project. You could be an important part of each and every one through microdonations.
Basic research is mostly stuff that's either unpatentable or will not turn a profit before the patent runs out. For the few exceptions, there's circle-and-destroy patenting, and other foul play, to level the playing field between scientist-based companies and lawyer-based companies. Nobody's doing basic reseach because, rich as the rewards may be for humanity, little is to be gained by the researchers.
So who should be funding research? It's the general public that is going to benefit most from basic research, so I believe it should be funded by individual private donations. Furthermore, I believe the best donation strategy is a reward strategy, based on results rather than bureaucratic judgements of potential. That would encourage doing real research rather than the perpetual funding chase that's so common. Researchers could either bootstrap themselves with inexpensive theoretical research, or try to convince investors that their expensive experimental research would pay off big. It should be possible to get rich doing basic research. After all, in a situation like that, wouldn't a billionaire Einstein be likely to invest his rewards in the next wave's Einstein?
With computers and the internet, we have the ability to organize ourselves and individually allocate our research money to what we would judge worthwhile without spending much of our time at it. What we lack is the ability to actually distribute our donations with that same ease and efficiency. However, that can be fixed.
The government could cut all research and lower taxes (letting people decide what they want to support with their own money), and universities could focus on teaching. I think it would be a better situation all around.
...for "weird."
... technologies that may make our political system obsolete, just as mass-produced guns made feudalism obsolete.
...when the full set of artificial organs are available? ...when anyone can afford the boost into orbit? ...when computers stop sucking and start working?
For all the advances in science and technology, we're still basically living the same lifestyle of the 50's. Stuff works a little better, people live a little longer, we have nicer toys, some irrelevant fashions continued to evolve, that's it. We still drive cars at about the same speed, not many people live to 100 years old, hardly anybody goes to space, and most things are still mass-produced in big, expensive factories.
When today's toddlers grow up, some seriously weird technologies are going to start kicking in
What happens when factories are no longer necessary to provide complex goods?
Violence is bad m'kay?
Fear the Gord. Love the Gord.
Okay, so there's an example of a character under copyright being abused. Therefore, copyright stops a character from being abused in that way. ...
Look at an old public-domain character: Heracles. Sure there's been a lot of crap with him in it. However, there's been a lot of good stuff, too, and the original nature of the character hasn't been lost.
Or take, for example, Space Balls. Campy crap parody of Star Wars. Perfectly legal. If Batman was as serious as you claimed before the TV series, anyone could probably have made it and claimed the parody exemption.
Copyright may protect the author's profits. It doesn't protect the author's vision.
Picard used to dip his bald head in oil, and rub it all over her body.
This isn't going to run SNES games. The cards have a total capacity of around 3K: 2K for a strip along the side, and 1K for along the bottom. I'm not sure, but they might also be able to make them with strips along both sides (4k), or all around the edge of the card (6k... maybe closer to 7k).
The reader itself has a meg of flash memory, so it can do some more interesting things than just read and play one game card in isolation.
I think it's less about games, and more about add-ons for games. What a great idea. I would have loved video games in the price range of comic books when I was a kid.
It's been out in Japan for a while. I wonder what their licensing system is like...
...they learn to construct a perfect copy of the universe from a slice of cake.
Topology is a psychiatric disorder characterized by the inability to distinguish between a donut and a coffee cup. Some theorists speculate that it may be caused by overexposure to university cafeterias, in which such distinctions are academic at best.
...because that's the funniest comment from a game designer I've ever heard. I'll have to remember that one.
That makes sense... in an arbitrary yet convenient kind of way.
Personally, I would prefer that prime numbers include one, even though mathematicians would have to say "prime numbers other than one" a lot more often than "prime numbers."
What is the unique, finite, multiplicitive set of prime numbers that 1 can be reduced to?
anyway, just thought I'd cast some shadows, given the posts on top of posts that are a bit off...
if I create 200 files that all start with myapplicationdataset and then have a 3 digit number attached, most hash designs will result in a single list
Let me repeat: you do not understand hashing. One characteristic feature of a good hash function is that similar inputs do not result in identical outputs.
What you just claimed about hashing reveals about the same level of understanding as saying, "having rolled a 1, you're probably going to roll a 2 next," about dice.
I'm not going to waste any more of my time correcting all your mistakes one by one. Go read something by Knuth, and please stop trying to "build" computer scientists. I'd feel safer hearing of lemurs building nuclear power plants.
Advanced search algorithms such as hashing are rarely covered in an intro course. (I've never heard of it)
Good grief! Did you go to Bovine University? Hash tables easily fit within the ten most commonly used data structures. They take all of 30 seconds to explain, and in my experience are usually introduced in the same breath as lists and trees.
Also, you've never heard of sequential hashing (no linked lists)? Or perfect hashing (hideously, monstrously expensive to add keys, but one-step look-up every time)?
You don't understand this stuff at all, so don't spew official-looking equations you pulled out your ass and say things like "I also don't want a beginning CS student to read this and be taken astray."
Your speed analysis is completely off-base. The average list length in a hash table is not related to the total number of elements, but the ratio of the number of elements to the size of the table (the base table, in linked hashes). Normal practice is to expand and rebuild the table when it starts getting full, to keep that ratio under a chosen threshold, and keep the hash look-ups in constant average time.
That's right. Hash look-ups run within a constant speed, regardless of entry count, except for rare anomalies (which remain rare regardless of entry count). That's why we go to the trouble of using them. Big-O is inappropriate to express that, because it's for worst-case scenarios or impossibly worse, as is little-o which is only for the worst-case (hash tables are actually o(N)... just like a linked list; in case everything hashes to the wrong key). But log has absolutely nothing at all to do with the performance of a remotely conventional hash implementation.
Your original raised concern (that more files in the usr hierarchy will noticeably slow down Linux) is utter garbage, as is your reasoning behind it, and your "debunking" of the sensible objection. In my experience, most desktop Linux installations have far more software installed than Windows installations, because of the vast amounts of free software clamoring for a space on your hard drive. The major exceptions are warez kiddies, who keep everything they care about on CD-Rs and wipe their systems about every second month.
Play "false authority" somewhere else, ignoramus.
I'm not trying to put you down for liking arcade games, or putting lots of time, effort, and money into them. As someone who posts on /., I'm obviously not exactly making the best possible use of my time myself. It's for being openly derisive of people who don't put as much time, effort, and money into them.
Some people are boastful about their skills, talents, and accomplishments, and derisive of others who don't measure up to the same standards. This is rude, but not pathetic (unless they're making stuff up), because at least they're talking about positive traits. Being a snob about your indulgences, especially ones commonly seen as childish, is sad, sad, sad.
Incidentally, the "I'm not pathetic, I have sex!" defense is now a pathetic cliche.
That is the most incredibly pathetic brand of snobbery I've ever witnessed.
We're talking about toys here. Most people are already going to be a little embarrassed to put so much time and effort into such a childish indulgence, let alone becoming some sort of expert on it. And god forbid someone should want to make something of his own design with his own hands...
No... wait... the most pathetic was that time I was in a gaming store and saw a morbidly obese man with poor personal hygiene loudly deriding some 14-year-old kid for buying the plain dice. This is just a close second.
If you want to give suggestions, I'm sure people will appreciate it, but talking about how "home made cabinets are ASS" is just sad.
Remember Orwell's book is called 2084. It has always been called 2084, and it will always be called 2084.
So things don't go badly in the real 2084, it is very important that we give our full and unconditional love and obedience to our government, the sole defender of freedom in the world. Otherwise, we could face the horrors Orwell wrote about: economic ruin, mass unemployment, global warming, parentless children roaming the streets in packs, cities isolated and divided by attacks on communication infrastructure synchronized with encrypted messages over the very same lines, suitcase nuclear weapons, drug-dealing warlords with more power than a feeble and helpless legitimate government, and so forth.
We need to make sure there is no place for a terrorist like Big Brother to hide.
Thax remxxxx me of the old Forxx sysxxxx thax usex onlx the firxx thrxx letxxxx plux the numxxx of letxxxx in eacx worx. It souxxx terxxxxx in thexxx, but in praxxxxx if you keex it in minx it worxx quixx welx.
(Alsx, I thixx you meax "Hufxxxx encxxxx")
Alternatively, you could stop taking the piss out of the guys' C++. I'm betting its a second language for him. Unless you can program in his first language (Logo?) at least as well as he programs in C++ your best bet is prolly to hush up.
As in the case of a ski lodge in which young women look for husbands and husbands look for young women, the situation is not as symmetric as it first appears.