Some people seriously won't like it - this is true. Some people don't even enjoy designing their character in an RPG, let alone an entire ecology of animals.
Yeah, I don't think we're talking about the same thing. I'm saying that the completely restrictions placed on the grammars of programming languages by the so called "fast" parsing algorithms keep getting in the way of making language constructs that are perfectly reasonable. General parsing algorithms are available and run just as fast as the so called fast parsing algorithms for these reasonable grammars, but they are harder to implement, and less well understood, so language designers avoid constructs that require them. This makes for languages that are unreasonably restrictive.
No offense, but why would you need training to do a job you were hired to do in the first place? Meh, this is a falacy of the IT industry.. we interview people to see what skills they have and if they don't have the skills we throw out their resume and call in the next candidate. In just about every other industry they interview people to figure out what kind of person they have applying. Are they are a hard worker? Can they work well with others? Are they looking for a career path? Does their wants and needs fit with what we can offer? Once a candidate is chosen they are trained to do the job. When they are promoted they are trained again.
This is why the IT industry is so depressing. When we hire people we don't give a shit about who we are hiring or what they want out of the job. We're just trying to find a part which meets the basic specifications of the problem and slot them in. It's also the reason why IT managers are the worst managers.. when we promote programmers or system administrators into management positions we don't provide them with any training, and if we do, it is grossly inadequate because we expect them to be qualified for the position before we promote them.
What's really sad is that exerienced leaders of other industry come to our industry and don't even notice this discrepancy. They hire junior programmers and shove em in a room with senior programmers and expect them to be trained. This is the worst kind of cruelty as it quickly becomes a sink or swim situation. The talented programmers will learn what they need to learn on their own time. The untalented ones will just drop out.
Are you trying to suggest that mathematical notation is unambiguous to parse in the same sense as programming languages? If you are, I hate to be the one to tell you, but you're wrong. Imagine if mathematical notation had been restricted to simple LALR grammars like most programming languages today are.. sure, we'd be able to more easily parse mathematics, but what would restrictions like that do to mathematicians? Ask any mathematician and they will tell you how hard it is to maintain a productive flow of conciousness.. adding more restrictions could only harm that. I wonder what harm these arbitary restrictions we've placed on programming languages have done to programmers.
I'm of the school of thought that errors should be represented by exceptions. So, to use your example:
Foo *FooFactory::create() throws(OutOfMemoryException) {
Foo *f = new Foo();
if (f == NULL)
throw OutOfMemoryException();
return f; }
Now the caller to create() has a guarentee that create() will return a pointer to a Foo, or it won't return at all. It also means you can call multiple functions that throw this exception and do all your out-of-memory handling in one place.
That would be the last sentence where I clearly outlined that I didn't think all Java programmers were idiots and that there are probably just as many programmers of other programming languages which are just as confused. You're not being very fair.
Unfortunately it's not a named exception that visual studio throws, so you can only catch "all exceptions" and try to figure out what exactly happened. As long as you can get a stacktrace though, that's the important thing. I've had dozens of segvs that obliterate the stack.. that's just crazy.
He was the Russian space program. It all went downhill after that. The US had no way of knowing, of course, but his death signalled the end of the space race and the US had won. The fact that they got a man on the moon at all after that is a massive acheivement - a political one as well as a technical one. Even without a heavy lift vehicle, I think Korolev could have beat Von Braun to The Moon. He had the contingency all planned out. This is the plan that the Russian space agency announced last year: take a Souyez up to a space station, refuel it, do a flyby of the Moon. With another refueling in Lunar orbit, you can land and takeoff. You don't need a heavy launch vehicle to do a Moonshot.. it just makes it a lot easier.
It's 2006, we shouldn't have any trouble parsing natural language, let alone programming languages by now. There's good tools available, it's just absurd.
Meh. There's absolutely no reason why a compiler couldn't put a check for NULL on every pointer dereference and throw a NullPointerException these days. We're talking one or two machine instructions here. Modern cpu-based branch prediction can easily make this essentially free. Is there a single C++ compiler out there that does it? Even as a compiler-specific extension? Not that I'm aware of (please, correct me if I'm wrong). Even if it was only for debug builds this would be beneficial, it's where 99% of segfaults come from in C++ code and it is what results in C++ code being so damn crusty:
Foo *f = somefunc(); if (f) {
f->blah(); }
is just pointless. somefunc should never return NULL. I should never have to check for it. But that's my opinion, I don't wanna get into a whole "exceptions are for exceptional circumstances, not errors" argument.
As much as your comment is flamebait, I have to agree with you to a point. The "virtual machine" aspect of the Java programming environment has probably done more to harm the quality of programmers than anything else. I know java programmers who don't understand how a computer works. They ask me questions about "how the processor loads strings into registers" and such. Being able to not think about the nitty gritty of the processor you are writing your code for is great, but that doesn't justify not knowing the basics of how a processor actually works. You might as well be coding in LOGO.
This, of course, is not true of all Java programmers. It probably isn't true of most Java programmers, but I feel safe to say that it's true of more Java programmers than it is of C or C++ programmers.
Some say C++ didn't go far enough, in that you can't define arbitary operators. As such, you have a small limited number to choose from and therefore overloading is all you can do. I'd love to be able to define an operator like.= to do string concatenation, but I can't, so I use += and live with the confusion and possible errors that causes.
It isn't. Which is why I emailed daddypants and he changed the summary before this article was posted and put those quotes around "forking".. didn't help much though I see.
Heh. Actually did visit the WTC. I most remember the rude bitch who served me at the cafeteria. We flew out a day later, arrived in London and the next morning the WTC fell down. I remember thinking "man, I hope the cafeteria was open."
Sep 9th, 2001.. why? Have people gotten friendlier since then? Most any New Yorker said to me whilst I was there was "we don't stop for crosswalk signals, tourist." True, that was the white people. The black people were a lot more friendly. Typically because they were hitting me up for change or dollar notes, but hey, they put in an effort.
Please don't take the sad state of society in large american cities as the norm. Just because a New Yorker would more likely punch me in the face than shake my hand and have a conversation with me if I approached them in the street, thankfully, does not mean the rest of the world is like that. This is one of the reasons why I hate people who hand out spam on the street or beg for change or other anti-social things; it makes people wary of each-other.
Some people seriously won't like it - this is true. Some people don't even enjoy designing their character in an RPG, let alone an entire ecology of animals.
Yeah, I don't think we're talking about the same thing. I'm saying that the completely restrictions placed on the grammars of programming languages by the so called "fast" parsing algorithms keep getting in the way of making language constructs that are perfectly reasonable. General parsing algorithms are available and run just as fast as the so called fast parsing algorithms for these reasonable grammars, but they are harder to implement, and less well understood, so language designers avoid constructs that require them. This makes for languages that are unreasonably restrictive.
This is why the IT industry is so depressing. When we hire people we don't give a shit about who we are hiring or what they want out of the job. We're just trying to find a part which meets the basic specifications of the problem and slot them in. It's also the reason why IT managers are the worst managers.. when we promote programmers or system administrators into management positions we don't provide them with any training, and if we do, it is grossly inadequate because we expect them to be qualified for the position before we promote them.
What's really sad is that exerienced leaders of other industry come to our industry and don't even notice this discrepancy. They hire junior programmers and shove em in a room with senior programmers and expect them to be trained. This is the worst kind of cruelty as it quickly becomes a sink or swim situation. The talented programmers will learn what they need to learn on their own time. The untalented ones will just drop out.
Are you trying to suggest that mathematical notation is unambiguous to parse in the same sense as programming languages? If you are, I hate to be the one to tell you, but you're wrong. Imagine if mathematical notation had been restricted to simple LALR grammars like most programming languages today are.. sure, we'd be able to more easily parse mathematics, but what would restrictions like that do to mathematicians? Ask any mathematician and they will tell you how hard it is to maintain a productive flow of conciousness.. adding more restrictions could only harm that. I wonder what harm these arbitary restrictions we've placed on programming languages have done to programmers.
almost all games will have lots parametrically generated content and Spore will already look dated. Well done on the hype though.
hey, that's just what I heard.
I'm of the school of thought that errors should be represented by exceptions. So, to use your example:
Foo *FooFactory::create() throws(OutOfMemoryException) {
Foo *f = new Foo();
if (f == NULL)
throw OutOfMemoryException();
return f;
}
Now the caller to create() has a guarentee that create() will return a pointer to a Foo, or it won't return at all. It also means you can call multiple functions that throw this exception and do all your out-of-memory handling in one place.
That would be the last sentence where I clearly outlined that I didn't think all Java programmers were idiots and that there are probably just as many programmers of other programming languages which are just as confused. You're not being very fair.
Thanks, I put effort into ignoring stupidity when I see it, but somedays its not easy.
Unfortunately it's not a named exception that visual studio throws, so you can only catch "all exceptions" and try to figure out what exactly happened. As long as you can get a stacktrace though, that's the important thing. I've had dozens of segvs that obliterate the stack.. that's just crazy.
He was the Russian space program. It all went downhill after that. The US had no way of knowing, of course, but his death signalled the end of the space race and the US had won. The fact that they got a man on the moon at all after that is a massive acheivement - a political one as well as a technical one. Even without a heavy lift vehicle, I think Korolev could have beat Von Braun to The Moon. He had the contingency all planned out. This is the plan that the Russian space agency announced last year: take a Souyez up to a space station, refuel it, do a flyby of the Moon. With another refueling in Lunar orbit, you can land and takeoff. You don't need a heavy launch vehicle to do a Moonshot.. it just makes it a lot easier.
It's 2006, we shouldn't have any trouble parsing natural language, let alone programming languages by now. There's good tools available, it's just absurd.
Meh. There's absolutely no reason why a compiler couldn't put a check for NULL on every pointer dereference and throw a NullPointerException these days. We're talking one or two machine instructions here. Modern cpu-based branch prediction can easily make this essentially free. Is there a single C++ compiler out there that does it? Even as a compiler-specific extension? Not that I'm aware of (please, correct me if I'm wrong). Even if it was only for debug builds this would be beneficial, it's where 99% of segfaults come from in C++ code and it is what results in C++ code being so damn crusty:
Foo *f = somefunc();
if (f) {
f->blah();
}
is just pointless. somefunc should never return NULL. I should never have to check for it. But that's my opinion, I don't wanna get into a whole "exceptions are for exceptional circumstances, not errors" argument.
Meh, these days VB is just as sturdy as C#. Not that I'm saying that is sturdy.
As much as your comment is flamebait, I have to agree with you to a point. The "virtual machine" aspect of the Java programming environment has probably done more to harm the quality of programmers than anything else. I know java programmers who don't understand how a computer works. They ask me questions about "how the processor loads strings into registers" and such. Being able to not think about the nitty gritty of the processor you are writing your code for is great, but that doesn't justify not knowing the basics of how a processor actually works. You might as well be coding in LOGO.
This, of course, is not true of all Java programmers. It probably isn't true of most Java programmers, but I feel safe to say that it's true of more Java programmers than it is of C or C++ programmers.
Some say C++ didn't go far enough, in that you can't define arbitary operators. As such, you have a small limited number to choose from and therefore overloading is all you can do. I'd love to be able to define an operator like .= to do string concatenation, but I can't, so I use += and live with the confusion and possible errors that causes.
It isn't. Which is why I emailed daddypants and he changed the summary before this article was posted and put those quotes around "forking".. didn't help much though I see.
Meh, as they are now.
Yeah, that's groklaw for ya. Good with law, poor with the truth. Like all lawyers I guess.
Thanks daddypants.
Dear god why. You've read the abstract, it's no better than guessing.
Heh. Actually did visit the WTC. I most remember the rude bitch who served me at the cafeteria. We flew out a day later, arrived in London and the next morning the WTC fell down. I remember thinking "man, I hope the cafeteria was open."
Sep 9th, 2001.. why? Have people gotten friendlier since then? Most any New Yorker said to me whilst I was there was "we don't stop for crosswalk signals, tourist." True, that was the white people. The black people were a lot more friendly. Typically because they were hitting me up for change or dollar notes, but hey, they put in an effort.
Please don't take the sad state of society in large american cities as the norm. Just because a New Yorker would more likely punch me in the face than shake my hand and have a conversation with me if I approached them in the street, thankfully, does not mean the rest of the world is like that. This is one of the reasons why I hate people who hand out spam on the street or beg for change or other anti-social things; it makes people wary of each-other.