The best paradigm to introduce programming to someone is procedural programming:
1) it teaches the person to separate functionality into subroutines. This is the first step for every other paradigm (object-oriented, functional etc).
2) it introduces the concept of variables. Functional programming languages don't have variables, so they are not suitable for teaching the concept of storage, which is central to programming.
3) it is simpler than object-oriented programming. Object-oriented programming is procedural programming coupled with many other concepts.
Two of the best languages for introducing someone to programming are:
1) the programming language Euphoria. It's very simple, but it contains all the basic concepts. 2) the programming language ABC, which is crafted for teaching and introductory courses.
Although I agree with the general idea of your comment, I disagree in the specifics. Lots of problems you mention go away when you use specialized classes.
For example, the problem 'pointer=array' can be alleviated by using special template classes (boost::array and std::vector for example).
The problem of ownership goes away if one uses shared pointers. I had recently finished a product of 85,000 lines of code in c++, and did not have a single problem with pointers in those pieces of code that I could use shared pointers. Unfortunately, none of the libraries I used (Qt mainly) used shared pointers, and therefore there were some problems in the code that used the libraries.
As for templates, I don't understand your complaints. The problem lies in the implementations, not in the specifications. The idea behind templates is a very solid one, and it is obvious due to the fact that many newer programming languages (C#, Java, D, etc) have some form of templates (Actually, D has the same template engine like c++).
The real problem with c++ is in the libraries: no library uses the goodies c++ has to offer. For example, Qt does not use shared pointers and boost::signals. Each library (Qt, MFC, wxWidgets, etc) almost invents the standard and boost libraries all over again, resulting in a big mess when these libraries are combined.
Stroustrup says that c++ is used in big software products (if you check out his page), giving the impression that c++ is the main programming language of those products, but in reality, it is a subset that is coded in c++. The same happens with iPhone: some subset is probably coded in c++, the rest is coded in Objective-C.
Here is another idea: put all teaching material on the internet, in the form of presentations. Let people access this material from anywhere (their home, their school), and replace the black/white board with a screen, letting the teachers present their stuff and interact with it in an electronic way.
As opposed to you? which ones should I believe...the experts that are on the field for many years and have cut their teeth in it or you, the armchair economist?
It is the problem.In the old days, back before the introduction of the Federal Reserve, stock market crashes happened on a regular basis, but nobody ran around for the next decade crying about it.
The old days are not like the current days.
The market just purged itself of bad assets and risky practices and recovered in a few months.
The market then was the 1/10000000th of the today's market. Nowadays, there are hundreds of millions of people that have a job in the market. The social problems from the economy you describe would be *tremendous*....
Nowadays, we make it far, far worse by trying to prevent the bad assets and insolvent businesses from failing by sucking solvent (good) assets out of the economy to prop up the insolvent (bad). The real solution is to simply let them fail.
There is another solution: prevent the bad assets from happening in the first place. What we have today is, essentially, a Pyramid scheme:people 'sell' their houses to get a loan, banks 'sell' their loans to get investors, investors 'sell' their investments to other investors...all this money is just hot air.
The Big Three auto mfgs. are in an impossible situation. They promised via union contracts to pay all their employees a comfortable sum for the rest of their lives. This is something that they simply cannot afford to do. What's the solution? Just let the company fail and the contracts dissolve. Someone else will buy the property and machines and start the company over.
Yes, and let millions of people lose their jobs, starve to death, and have no money to buy the products of other companies. In other words, create a rippling effect that will truly destroy the economy.
Now, it's true that this will be hard for those employees who were supposed to be taken care of, but unfortunately life isn't fair (my mother's favorite saying). The Bill of Rights does not guarantee happiness, only the right to pursue it (Google obama's bill of rights).
Why should those employees pay for the risk their bosses took? their bosses are billionaires. It's the bosses that take the risk, the bosses should pay. That is truly fair. In case the bosses can't sustain their business, they should spend their own money investing in their own company and save it.
Ford's owner will not have a problem living the rest of his life unemployed, because he has a vast fortune. Average Joe can't do this...
If you really want to bail out struggling industries, try deregulating and cutting taxes.
Cutting taxes is the worst thing that can be done when the economy does not go well. Taxes are a 'refund' to the society: cutting the taxes means more poverty.
I, as a high school student,
You, as a high school student, must go out there, try to maintain a decent job, try to raise a family, and then come back and talk about letting the market regulate itself or cutting taxes.
If you haven't been in the battlefield, you can't talk about war.
Overpopulation will kill us all before anything else...resources like oil and metals will be exhausted in the coming decades! the dramatic changes in the climate caused by human activity, the cutting down of rain forests will cause the populations of third world countries to migrate en mass to Europe and North America, further increasing the fights for the remaining resources...
Where and when did I (not a US citizen) vote for Obama to be my leader???
That's the attitude that makes people angry around the world against USA. Obama is the US president, not the leader of the world, and the world is not separated into free and not free parts (whoever believes he is more free in USA than in other countries, you are deluded)...
You and I know that, but I'm not talking about us. I was talking about why the average person off the street might buy a new computer instead of fixing an old one, since that was the question we were addressing.:-)
That's what I am talking about as well. In this economic climate, throwing away your old stuff which requires a minor repair for a brand new machine is not a good option, no matter how computer-illiterate you are.
Honestly, they're probably right. Suppose you're Joe Sixpack with a busted Dell and take it to Best Buy so their experts [1] can check it out. They quote you $147 for a new 60GB hard drive
You are a sucker if you accept $147 for a new 60 GB hard disk. These days, you can get a 500 GB 7200 RPM for 60 bucks.
[2] plus $75 in labor.
For a 3 minute job? no way Hose! I'd rather open the box myself and replace the drive or, if I am a computer illiterate person, ask a friend.
You're looking at $200+ to fix a two-year-old PC. Being the frugal type, you check out dell.com and see that you can buy a brand new one for $279 that's faster, has more storage, and has that Mojave thing so you can view photos.
$279 buys you a very basic machine with a no good video card, a Celeron CPU and 1 year hardware warranty. In which case you will have to open the previous PC, get your video card and install it yourself to the new PC. If you don't know how to do that, you can't avoid the $75 cost for labor anyway. So you are already at $279 + $75 = $354.
It's way better, especially in this economic situation, to just grab a $60 500 GB hard drive and do the job yourself.
Re:Probably Also Contending with OpenLaszlo
on
Sun Releases JavaFX
·
· Score: 2, Insightful
Can DHTML display video? the GP poster talked about video specifically.
It's very simple: the computer should automatically commit changes if they exceed a certain threshold. In this way, the user should never lose, in case of failure, much of his/her work.
AI in games is approached the wrong way: instead of finding all the game states and choosing the best path, a far better approach is to apply statistics and do pattern matching. In fact, brains work with the latter method, not the former.
Couldn't it be done automatically by the application? The BitTorrent client could read the user's location from the locale and encode it in the tracker, then other clients can select this client based on the geographical information contained in the tracker.
Ok, I do not know if HL1 is the greatest game ever; for me it was. I never had so much fun with a computer game. The reason? a note from the article that I really liked may shed some light into it:
"Maybe I'm leaning too much on fond remembrance here, but I prefer the isolated, solitary feel of the first Half-Life to the more character-driven atmosphere in the sequel."
I couldn't agree more! I like HL2, but it did not give you the isolated solitary feel of HL1. I really like FPS games that put me as the solo action hero against the universe. I really miss FPS games of this kind. I have put all my hopes on DNF, but it seems like it will never be released...
What is terrifying, at least for me, is the amount of bureaucracy involved: for all these councils to exist, there are hundreds of thousands of people revolving around those councils...people that, in most cases, push papers around, and do nothing essentially productive.
I think that EU needs to be simplified (just like many other things:-)). There should be a EU government, much like the Federal Government in the USA. This government should be electable directly by the people.
It seems to me that the existence of so many 'councils' is deliberate...it allows those in power to handle affairs without the common people watching them. If a poll asking EU citizens about the structure of power in the EU went on, I highly doubt that more than 1% would reply that 'there are 3 councils', let alone one...
The law of diminishing returns is in effect in OSes as well. It is just not possible to see in the future the massive changes in infrastructure and operating systems we have seen in the past. 8 years ago, going from Windows ME to Windows 2K or from Office 6 to Office 2000 meant a massive increase of stability and features. Today, going from Windows XP to Windows Vista or from Office 2000 to Office 2007 does not offer anything substantially important to the average user.
It is absurd to think that people will keep changing their tools every so often. Once tools are satisfactory enough, they stay. It has happened in programming languages (C, for example, despite all the progress in programming language theory and technology, remains the basis that everything is based on). It is now happening in operating systems. Windows XP will be with us for a long time.
The only time that we are going to see massive changes is when operating systems will become much easier to use, for example like we see in science fiction or something.
Robots in the battlefield that can make certain decisions means AI. And AI does not exist yet. How are they going to achieve such a thing? It's not as simple as make a ruleset saying 'if this happens, do this, if that happens, do that'.
You have a major flaw in your line of thinking: you equate a civilized society with a force-using society. A civilized society is one that its members do not use force to solve their problems.
The best paradigm to introduce programming to someone is procedural programming:
1) it teaches the person to separate functionality into subroutines. This is the first step for every other paradigm (object-oriented, functional etc).
2) it introduces the concept of variables. Functional programming languages don't have variables, so they are not suitable for teaching the concept of storage, which is central to programming.
3) it is simpler than object-oriented programming. Object-oriented programming is procedural programming coupled with many other concepts.
Two of the best languages for introducing someone to programming are:
1) the programming language Euphoria. It's very simple, but it contains all the basic concepts.
2) the programming language ABC, which is crafted for teaching and introductory courses.
Although I agree with the general idea of your comment, I disagree in the specifics. Lots of problems you mention go away when you use specialized classes.
For example, the problem 'pointer=array' can be alleviated by using special template classes (boost::array and std::vector for example).
The problem of ownership goes away if one uses shared pointers. I had recently finished a product of 85,000 lines of code in c++, and did not have a single problem with pointers in those pieces of code that I could use shared pointers. Unfortunately, none of the libraries I used (Qt mainly) used shared pointers, and therefore there were some problems in the code that used the libraries.
As for templates, I don't understand your complaints. The problem lies in the implementations, not in the specifications. The idea behind templates is a very solid one, and it is obvious due to the fact that many newer programming languages (C#, Java, D, etc) have some form of templates (Actually, D has the same template engine like c++).
The real problem with c++ is in the libraries: no library uses the goodies c++ has to offer. For example, Qt does not use shared pointers and boost::signals. Each library (Qt, MFC, wxWidgets, etc) almost invents the standard and boost libraries all over again, resulting in a big mess when these libraries are combined.
Stroustrup says that c++ is used in big software products (if you check out his page), giving the impression that c++ is the main programming language of those products, but in reality, it is a subset that is coded in c++. The same happens with iPhone: some subset is probably coded in c++, the rest is coded in Objective-C.
But a new career in baseball may open for you...;-)
The site you posted is totally wrong. The best economies and societies to live in have heavy taxation: Sweden, Germany, Switzerland, etc.
Here is another idea: put all teaching material on the internet, in the form of presentations. Let people access this material from anywhere (their home, their school), and replace the black/white board with a screen, letting the teachers present their stuff and interact with it in an electronic way.
What does broadband speed have to do with broadband adoption? He said 'US ranks 15th in broadband adoption, not speed.
As opposed to you? which ones should I believe...the experts that are on the field for many years and have cut their teeth in it or you, the armchair economist?
The old days are not like the current days.
The market then was the 1/10000000th of the today's market. Nowadays, there are hundreds of millions of people that have a job in the market. The social problems from the economy you describe would be *tremendous*....
There is another solution: prevent the bad assets from happening in the first place. What we have today is, essentially, a Pyramid scheme:people 'sell' their houses to get a loan, banks 'sell' their loans to get investors, investors 'sell' their investments to other investors...all this money is just hot air.
Yes, and let millions of people lose their jobs, starve to death, and have no money to buy the products of other companies. In other words, create a rippling effect that will truly destroy the economy.
Why should those employees pay for the risk their bosses took? their bosses are billionaires. It's the bosses that take the risk, the bosses should pay. That is truly fair. In case the bosses can't sustain their business, they should spend their own money investing in their own company and save it.
Ford's owner will not have a problem living the rest of his life unemployed, because he has a vast fortune. Average Joe can't do this...
Cutting taxes is the worst thing that can be done when the economy does not go well. Taxes are a 'refund' to the society: cutting the taxes means more poverty.
You, as a high school student, must go out there, try to maintain a decent job, try to raise a family, and then come back and talk about letting the market regulate itself or cutting taxes.
If you haven't been in the battlefield, you can't talk about war.
When exactly did you have the best economy?
in the 19th century, there was a lot of exploitation of workers.
In the first half of the 20th century, you had the great depression.
In the middle of the 20th century, your economy was in great shape, but only thanks to World War II.
In the late 20th century/early 21
Exterminating 90% of the world's population equals the end of the world...
Overpopulation will kill us all before anything else...resources like oil and metals will be exhausted in the coming decades! the dramatic changes in the climate caused by human activity, the cutting down of rain forests will cause the populations of third world countries to migrate en mass to Europe and North America, further increasing the fights for the remaining resources...
Where and when did I (not a US citizen) vote for Obama to be my leader???
That's the attitude that makes people angry around the world against USA. Obama is the US president, not the leader of the world, and the world is not separated into free and not free parts (whoever believes he is more free in USA than in other countries, you are deluded)...
That's what I am talking about as well. In this economic climate, throwing away your old stuff which requires a minor repair for a brand new machine is not a good option, no matter how computer-illiterate you are.
You are a sucker if you accept $147 for a new 60 GB hard disk. These days, you can get a 500 GB 7200 RPM for 60 bucks.
For a 3 minute job? no way Hose! I'd rather open the box myself and replace the drive or, if I am a computer illiterate person, ask a friend.
$279 buys you a very basic machine with a no good video card, a Celeron CPU and 1 year hardware warranty. In which case you will have to open the previous PC, get your video card and install it yourself to the new PC. If you don't know how to do that, you can't avoid the $75 cost for labor anyway. So you are already at $279 + $75 = $354.
It's way better, especially in this economic situation, to just grab a $60 500 GB hard drive and do the job yourself.
Can DHTML display video? the GP poster talked about video specifically.
It's very simple: the computer should automatically commit changes if they exceed a certain threshold. In this way, the user should never lose, in case of failure, much of his/her work.
Does this happen in USA a lot? if a light in the fridge goes out, do you buy a new one? when a tire is blown out, do you buy a new car?
Gee, and then some people wonder why Americans spend 50% of the global resources...
AI in games is approached the wrong way: instead of finding all the game states and choosing the best path, a far better approach is to apply statistics and do pattern matching. In fact, brains work with the latter method, not the former.
So the robot will be programmed with the personality of William Shatner?
Couldn't it be done automatically by the application? The BitTorrent client could read the user's location from the locale and encode it in the tracker, then other clients can select this client based on the geographical information contained in the tracker.
Ok, I do not know if HL1 is the greatest game ever; for me it was. I never had so much fun with a computer game. The reason? a note from the article that I really liked may shed some light into it:
"Maybe I'm leaning too much on fond remembrance here, but I prefer the isolated, solitary feel of the first Half-Life to the more character-driven atmosphere in the sequel."
I couldn't agree more! I like HL2, but it did not give you the isolated solitary feel of HL1. I really like FPS games that put me as the solo action hero against the universe. I really miss FPS games of this kind. I have put all my hopes on DNF, but it seems like it will never be released...
Thank you for the enlightening post.
What is terrifying, at least for me, is the amount of bureaucracy involved: for all these councils to exist, there are hundreds of thousands of people revolving around those councils...people that, in most cases, push papers around, and do nothing essentially productive.
I think that EU needs to be simplified (just like many other things :-)). There should be a EU government, much like the Federal Government in the USA. This government should be electable directly by the people.
It seems to me that the existence of so many 'councils' is deliberate...it allows those in power to handle affairs without the common people watching them. If a poll asking EU citizens about the structure of power in the EU went on, I highly doubt that more than 1% would reply that 'there are 3 councils', let alone one...
The law of diminishing returns is in effect in OSes as well. It is just not possible to see in the future the massive changes in infrastructure and operating systems we have seen in the past. 8 years ago, going from Windows ME to Windows 2K or from Office 6 to Office 2000 meant a massive increase of stability and features. Today, going from Windows XP to Windows Vista or from Office 2000 to Office 2007 does not offer anything substantially important to the average user.
It is absurd to think that people will keep changing their tools every so often. Once tools are satisfactory enough, they stay. It has happened in programming languages (C, for example, despite all the progress in programming language theory and technology, remains the basis that everything is based on). It is now happening in operating systems. Windows XP will be with us for a long time.
The only time that we are going to see massive changes is when operating systems will become much easier to use, for example like we see in science fiction or something.
Robots in the battlefield that can make certain decisions means AI. And AI does not exist yet. How are they going to achieve such a thing? It's not as simple as make a ruleset saying 'if this happens, do this, if that happens, do that'.
Too many words for a such a simple subject!
The only moral rule that stands is: don't do to others what you don't want the others to do to you.
You have a major flaw in your line of thinking: you equate a civilized society with a force-using society. A civilized society is one that its members do not use force to solve their problems.