why not just practice at the real thing? Because you don't want to spend years getting good enough at an instrument. By simplifying it down to button mashing, you can catch the patterns in a matter of days, or weeks if you have other things to do.
Ok, I think we are arguing two different things. I'm thinking this is excellent for data-heavy web applications where support for Netscape 2 is not a requirement. Slashdot would be insane to try to convert to RPC, because it's very bidirectional, pushing data to clients is hard, polling from the client is a bad idea, and Slashdot has a wide range of browsers it needs to support.
I'm thinking more of office management apps, GMail, the sort of thing where you have a user taking some action that doesn't require re-fetching and re-sending all the displayed data. Programs that, even with clean HTML, are displaying excessive amounts of data due to customer requirements.
Say they want a list of all products their site offers in one big table. They want to be able to change a price, and click "Update". They don't want to wait for minutes while the form posts back, and will complain. Using these javascript rpc methods provides a solution, which means they give you more money. Granted, if I was writing something for myself, I wouldn't put all the data on one page, but desired functionality is not the programmer's decision in many cases.
Another example, say you have some bug reporting app, and there's a textbox for an admin to email the person who reported the bug. Do you really need to post all the data on the form, run some trivial email code, generate the form and data again, and pass it back to the client? The only difference in display would be some indicator that an email was sent. Isn't it a lot simpler to just issue a "send email" RPC and then show the result with javascript?
So would you rather download <1K to get the new cost in your cart, or download 100K of HTML and images and have the screen flash to get the new cost? As a web host, would you rather serve 1K or 100K?
The other side is responsiveness of the application. A lot of places use the web for more than shopping carts, and this is the sort of technique that makes a web app seem multithreaded. Don't you like the multithreaded applications you use? Wouldn't it be cool to offer similar speed easily via a web browser? Right now my main option is to have a lengthy process performed in a pop-up window, or post back and start a new thread on the server, which both involve more work than it should.
I don't even understand how theoretically smart people can even vouch for scripting languages such as php, perl or java for any performance critical applications.
How do you define a performance critical application? Are web sites performance critical, or are they going to be waiting on resources for so long that it doesn't matter? And I think the definition of a performance-critical app changes as the hardware improve. Doom was performance-critical when it came out, and could never have been written in something interpreted because there wasn't the speed to support it. Today's machines can run something like doom without any difficulty.
The article argues that we shouldn't allow ourselves to rationalize writing inefficient code based on the speed of the hardware, but we all have to eat, and that means asking the old question: Which is more expensive? Programmer time or CPU time?
In something like a RDBMS, I'd say CPU time, because no one will use it if its slow as ass. For something like a web or desktop business app, its still programmer time.
Well, depending on computing power, they could be mutually exclusive. If you have some crazy multiple AI going on, that demands processor power. Now, I haven't been following graphics very closely, so all the good graphics might be done on the video card now anyway, and the CPU just feeds it the occasional change in viewpoint, but I'm pretty sure that the kind of AI and simulation that makes great gameplay takes a lot of horsepower. Did you ever play command and conquer generals? That game was very pretty, but it was tremendously slow when trying to play with multiple AIs. They tried to squeeze in both graphics and gameplay (or it was just shoddy code) and the game was mostly junk as a result. When the entire graphics system runs on the video card, then we'll start seeing really innovative gameplay. Having good libraries available for free or license are essential too. Some good, fast, debugged, flexible code would free dev time to do more interesting things. I guess that is a tall order, though.
on a more practical note, do you want a hermetically sealed case? Thats seems like it would be a lot more expensive and much more difficult to maintain. When you're hard drive dies, not only do you have to get a replacement drive and pop it in, you have to pop the seal on your case, drain some fluid, switch the hardware, then re-fill and re-seal the case.
For the Australians, this sums up American politics.
Bush (aka "Warrior King"): Fighting for the peace and justice of the rich's money. Master propagandist, but shooting himself in foot with over-the-top commercials and muzzled federal employees resigning and talking to the press. Has a campaign fund of over 100 mil.
Kerry: Not Bush. Flip-flopped on issues a bit, decorated Vietnam vet, best hope for a not-Bush president. Campaign fund of around 2.4 mil.
Lets see if bush can buy the country again. (The last time being the pointless $300 tax rebate, makes everyone like him for something pretty insignificant)
At least an exception would be clue as to where to start. In trivial cases its obvious, but when doing more complicated things, such as adding then multiplying, its not always obvious that you got concatenation instead. I'd rather have the compiler bitch at me so I can fix it.
I'll try to be objective.
Background:
I do web programming in a ms environment and moved from vbscript ASP to C# and ASP.NET about a year ago. I run redhat at home (gonna switch to suse or gentoo once I get a weekend with nothing going on) and am trying to use open/free software as much as possble. I don't particularly like MS as a company, but some things (visual studio, SQL Server, C#) I think are done really well. (as long as you keep up with patches).
I've done some Java in school, some perl, some php, some c, some c++.
My opinion is that C# is Java, but cleaned up a little, and with a little more flexibility. You have interfaces, inheritance (but not multiple inheritance), reflection, enums, etc, etc. All the standard features of a modern programming languages. You can use delegates to pass functions as variables, and can pass arguments by reference as well as by value, the list is pretty big. My impression is that its a cross between Java and C++, as it allows a little more than Java, but doesn't make the programmer do as much as work as C++. Its much closer to Java. There are a few convenience keywords, such as "foreach" which improves upon Java, and the microsoft base classes are very fully featured. I've heard the comment made that programming with C# is more a research task than a programming task, since you spend a lot of time looking at the docs for the base classes. I think this happens with Java somewhat, too. Overall, I think C# is a good language, and enjoy using it, especially in conjunction with Visual Studio, which is an excellent, excellent IDE. I wish someone other than MS had created this, or that they would donate it to some other organization that would give it some more legitimacy among the programming public. The only bad thing I can think of it that all cases in a switch must have a break, and it doesn't have multiple inheritance, which i've wanted a handful of times. Other than that, I have no complaints, and programming tasks go much quicker thanks to the extent of the base classes. There are small bones to pick, like why the StringBuilder (StringBuffer in Java) class writers didn't overload +=, or how the bytecode produced can be de-compiled easily, but those are small compared with the amount of work thats done for you already. That could be a bad thing for some people, because the source of the base classes isn't readily available, so you have to trust that MS' implementation of Hashtable isn't horrible. If clock cycles aren't your primary concern, I recommend it, for me it saves a lot of programmer time.
Yeah, those field validations are really annoying. I'd much rather submit the form and wait for the server to tell me "3.4r" is not a number.
Ok, I think we are arguing two different things. I'm thinking this is excellent for data-heavy web applications where support for Netscape 2 is not a requirement. Slashdot would be insane to try to convert to RPC, because it's very bidirectional, pushing data to clients is hard, polling from the client is a bad idea, and Slashdot has a wide range of browsers it needs to support.
I'm thinking more of office management apps, GMail, the sort of thing where you have a user taking some action that doesn't require re-fetching and re-sending all the displayed data. Programs that, even with clean HTML, are displaying excessive amounts of data due to customer requirements.
Say they want a list of all products their site offers in one big table. They want to be able to change a price, and click "Update". They don't want to wait for minutes while the form posts back, and will complain. Using these javascript rpc methods provides a solution, which means they give you more money. Granted, if I was writing something for myself, I wouldn't put all the data on one page, but desired functionality is not the programmer's decision in many cases.
Another example, say you have some bug reporting app, and there's a textbox for an admin to email the person who reported the bug. Do you really need to post all the data on the form, run some trivial email code, generate the form and data again, and pass it back to the client? The only difference in display would be some indicator that an email was sent. Isn't it a lot simpler to just issue a "send email" RPC and then show the result with javascript?
I said "HTML and images".
Ok, change that number to 4K and reread the post. Or are you the type who likes to program in assembly, and prefers human labor over machine labor?
So would you rather download <1K to get the new cost in your cart, or download 100K of HTML and images and have the screen flash to get the new cost? As a web host, would you rather serve 1K or 100K?
The other side is responsiveness of the application. A lot of places use the web for more than shopping carts, and this is the sort of technique that makes a web app seem multithreaded. Don't you like the multithreaded applications you use? Wouldn't it be cool to offer similar speed easily via a web browser? Right now my main option is to have a lengthy process performed in a pop-up window, or post back and start a new thread on the server, which both involve more work than it should.
I think he's referring to Blizzard's official updater using BitTorrent, not pirating the game. More info
We aren't going to honor those bogus treaties!
http://linux.slashdot.org/article.pl?sid=04/11/26/ 0042252&tid=97&tid=106
http://onemanstarwars.com/omswgarabage.WMV
"in like Flynn" is one of the best phrases I've heard in a long time.
His point is we're heading in the direction to do them all again.
The border is a national security feature.
It's not a bug, it's a feature!
I don't even understand how theoretically smart people can even vouch for scripting languages such as php, perl or java for any performance critical applications.
How do you define a performance critical application? Are web sites performance critical, or are they going to be waiting on resources for so long that it doesn't matter? And I think the definition of a performance-critical app changes as the hardware improve. Doom was performance-critical when it came out, and could never have been written in something interpreted because there wasn't the speed to support it. Today's machines can run something like doom without any difficulty.
The article argues that we shouldn't allow ourselves to rationalize writing inefficient code based on the speed of the hardware, but we all have to eat, and that means asking the old question: Which is more expensive? Programmer time or CPU time?
In something like a RDBMS, I'd say CPU time, because no one will use it if its slow as ass. For something like a web or desktop business app, its still programmer time.
http://www.penny-arcade.com/view.php3?date=2002-05 -24&res=l
Well, depending on computing power, they could be mutually exclusive. If you have some crazy multiple AI going on, that demands processor power. Now, I haven't been following graphics very closely, so all the good graphics might be done on the video card now anyway, and the CPU just feeds it the occasional change in viewpoint, but I'm pretty sure that the kind of AI and simulation that makes great gameplay takes a lot of horsepower. Did you ever play command and conquer generals? That game was very pretty, but it was tremendously slow when trying to play with multiple AIs. They tried to squeeze in both graphics and gameplay (or it was just shoddy code) and the game was mostly junk as a result. When the entire graphics system runs on the video card, then we'll start seeing really innovative gameplay. Having good libraries available for free or license are essential too. Some good, fast, debugged, flexible code would free dev time to do more interesting things. I guess that is a tall order, though.
Cause banning the tool would stop it. Really.
on a more practical note, do you want a hermetically sealed case? Thats seems like it would be a lot more expensive and much more difficult to maintain. When you're hard drive dies, not only do you have to get a replacement drive and pop it in, you have to pop the seal on your case, drain some fluid, switch the hardware, then re-fill and re-seal the case.
How many hours did it take you to get your printer working under Gentoo, Mr. Advanced Linux User?
For the Australians, this sums up American politics.
Bush (aka "Warrior King"): Fighting for the peace and justice of the rich's money. Master propagandist, but shooting himself in foot with over-the-top commercials and muzzled federal employees resigning and talking to the press. Has a campaign fund of over 100 mil.
Kerry: Not Bush. Flip-flopped on issues a bit, decorated Vietnam vet, best hope for a not-Bush president. Campaign fund of around 2.4 mil.
Lets see if bush can buy the country again. (The last time being the pointless $300 tax rebate, makes everyone like him for something pretty insignificant)
Link for the lazy
2) wants to run this supposedly cross-platform language only on Windows.
I think its more of a cross-language platform.
At least an exception would be clue as to where to start. In trivial cases its obvious, but when doing more complicated things, such as adding then multiplying, its not always obvious that you got concatenation instead. I'd rather have the compiler bitch at me so I can fix it.
My favorite is having to cast my typeless variables as numbers before addition, lest 1 + 2 = 12. Typeless language my ass.
If you remove the hyphen from Experts-Exchange, you have ExpertSexChange.
I'll try to be objective. Background: I do web programming in a ms environment and moved from vbscript ASP to C# and ASP.NET about a year ago. I run redhat at home (gonna switch to suse or gentoo once I get a weekend with nothing going on) and am trying to use open/free software as much as possble. I don't particularly like MS as a company, but some things (visual studio, SQL Server, C#) I think are done really well. (as long as you keep up with patches). I've done some Java in school, some perl, some php, some c, some c++. My opinion is that C# is Java, but cleaned up a little, and with a little more flexibility. You have interfaces, inheritance (but not multiple inheritance), reflection, enums, etc, etc. All the standard features of a modern programming languages. You can use delegates to pass functions as variables, and can pass arguments by reference as well as by value, the list is pretty big. My impression is that its a cross between Java and C++, as it allows a little more than Java, but doesn't make the programmer do as much as work as C++. Its much closer to Java. There are a few convenience keywords, such as "foreach" which improves upon Java, and the microsoft base classes are very fully featured. I've heard the comment made that programming with C# is more a research task than a programming task, since you spend a lot of time looking at the docs for the base classes. I think this happens with Java somewhat, too. Overall, I think C# is a good language, and enjoy using it, especially in conjunction with Visual Studio, which is an excellent, excellent IDE. I wish someone other than MS had created this, or that they would donate it to some other organization that would give it some more legitimacy among the programming public. The only bad thing I can think of it that all cases in a switch must have a break, and it doesn't have multiple inheritance, which i've wanted a handful of times. Other than that, I have no complaints, and programming tasks go much quicker thanks to the extent of the base classes. There are small bones to pick, like why the StringBuilder (StringBuffer in Java) class writers didn't overload +=, or how the bytecode produced can be de-compiled easily, but those are small compared with the amount of work thats done for you already. That could be a bad thing for some people, because the source of the base classes isn't readily available, so you have to trust that MS' implementation of Hashtable isn't horrible. If clock cycles aren't your primary concern, I recommend it, for me it saves a lot of programmer time.