Flash doesn't use Javascript, it uses Actionscript. Both are based on the ECMAScript standard, but Actionscript 3 is actually pretty far-removed from Javascript now. (Actionscript 2 is much closer.)
Anyway, I get what you're saying, it's just that Adobe's version is modified quite a bit.
Need to find out what the user typed in box foo? While most client libraries require fairly detailed memory schemes in order to keep track of which box is which, Javascript reduces all that to getElementById(); - a win in any programmer's book!
That's DOM, not Javascript.
But in the reverse, what about trimming that input? The offense to the mind that you have to use a USER DEFINED FUNCTION for trimming just boggles the mind.
That's a lack in DOM, not a lack in Javascript.
So javascript has its warts. Lots and lots of them. It is clearly a hacked-together language that is only successful because of its ubiquity, which is the same reason why it evolves so extremely slowly, which is why we still have to manually implement things like trim(), and why so many of us are doomed to deal with javascript with all of its warts.
No, Javascript is very nice. DOM is a piece of shit. Pair any language with DOM, and you'll think that language sucks.
What makes me sad is how many Slashdotters don't know the difference between the language and the libraries. DOM is nothing but a set of libraries-- you could code DOM in C#, Python, Java, whatever.
Saying DOM sucks says nothing about Javascript.
That said, this:
The lack of any kind of meaningful class structure makes the special word "this" almost worthless because you can't be sure consistently what it's referring to.
Is actually a language issue. Most people solve it by using the dumb workaround "var that = this" in their objects. That gives you a consistant "this", but it's kind of a retarded work-around.
If you delete an array key directly with the delete command, eg: `delete myArray[4];` the length property doesn't get updated even though the number of elements in the array does. (WTF?!?!)
I'd instead say that Javascript is a frustrating language that's gotten too much rep. The fact that people migrate towards 3'rd party libraries to standardize simple programming operations (like jQuery / GWT) is a testament to how bad it's legacy has gotten - when trying to do 'real' work.
jQuery (prototype, mootools, etc) solves shitty DOM implementations, not shitty Javascript implementations. In fact, I don't think jQuery addresses a single "lack" in Javascript-- I could be mistaken-- virtually everything, if not everything, it does is fixing DOM's bad design and browser's inconsistent implementation of it.
This is why Javascript gets a bad rap: pair it with DOM, and *any* language would look awful, because DOM is awful.
Most of Javascript's bad reputation come from the W3C's DOM. When the majority of programmers think "Javascript," they're actually thinking "Javascript + DOM," and since the DOM is so awful, they think Javascript is awful as well. Not so.
Pair Javascript with a decent library, and it's extremely powerful. Maybe not as suited for large projects as languages with namespaces, but its template system and introspection features are simply amazing. If anybody ever writes a program that evolves itself until it becomes super-intelligent and takes over the Earth, it'll probably be written in Javascript.
Correction to the parent, though: Javascript isn't an object-oriented language in the classic definition of the term... it lacks many features to make it truly OOP. Instead, it's based around object templating, which is nearly as powerful, but not the same thing.
The vector is in simulating a familiar program which is known to ask for a privilege escalation. Simulating a dialog is pointless, as others pointed out above.
There's not a lot of those, though... I guess Firefox has UAC prompts more than most programs, and since its update schedule is completely opaque and already extremely annoying, it might be a good target. But you'd still have to simulate a UAC prompt on Vista and Windows 7-- you can't simply ask for the password, you'd only get the most retarded users.
This lofty goal may be unreachable, but bugging a user with update prompts twice a week ain't making her any safer.
Yah, because the user will NEVER INSTALL THE UPDATE. Which is the point I was trying to make to the grandparent.
Just telling the user that updates are available, no matter how often you do it, is not a solution. And if you have any "solution" that doesn't take into account the psychology of computer users, it's not a solution either.
Microsoft understands that securing a computer is 75% in the user's hands, and 25% in the OSes hands. There's no point in coming here and suggesting Linux do things that Windows tried and dismissed 10 years ago, while you lot were all pissing on Windows for being so insecure.
Looks scary, right? Wrong. Because the solution is as simple as changing the default policy. Make it so that the default behavior is to notify only. On every system update the user should be told: "Go start the updater via the system menu. By the way, if you EVER see an "updater" you didn't start yourself, you are being pwned." Make sure that the system menu is strictly read-only, and even the dimmest user will be safe.
This won't be implemented in Windows. Why? I really cannot guess why Microsoft's security policy seems to be designed from ground up to fuck the user, but it is. The usual excuse seems to be: "it's easy to use". But whatever is the reason, you just cannot make a proprietary platform secure because you cannot pop the hood open. With a free OS, you can.
You're forgetting the "human psychology" part of the issue. If you just tell people to update, they won't do it.
You're also assuming Microsoft is run by morons. Obviously Microsoft's thought of this, but they've decided it's better for more people to have updated OSes then your alternative.
You're right, though, it's really impossible to prevent an app from simulating the auto-updater-- even the UAC prompt can be faked to look and sound real, if you're willing to spend some time at it. (It would be hard though, and I doubt it would look 100% right.)
Your proposal is nice, and you can already set Windows to do that if you want. (In fact, server editions of Windows ship that way by default.) But for the average user, that's a MUCH worse idea than automatically updating the OS.
That happens when ad/analytics Javascript makes use of document.write to get its job done. What the industry needs is a move towards dynamically loading that content using XMLHttpRequest, so that the normal page content loads first and only when it's finished do the ads/analytics tags do their thing.
The only place this might be troublesome is if you're using the ad server to do geo-location. But even that isn't a big deal if it happens a split second after page load.
I just find it really funny that the new stratergy now is to call into question the honesty and ethics of the researchers or basically personal attacks instead of challenging the freaking DATA.
I think a lot of IDE's actually complicate the language though.
How do IDEs change the language whatsoever, much less complicate it? Are you saying that C# is a different language in VS than it is if you're hacking away at a text file?
When I do use the features, I end up having to go back in and rewrite 95% of the simple feature I just used at least 86% of the time.
Huh? Not making any sense of that sentence.
Another fear I have is that allowing to many non-schooled programmers into programming can really make it difficult when you have to try to figure out coding done by someone who doesn't have any conception of decent coding practices and naming conventions are.
I don't think schooling has anything to do with it. From my experience I get much more spaghetti code from schooled programmers than non-schooled.
In any case, an IDE certainly won't HURT in this situation-- at least it has good refactoring tools to help clean up the mess.
And it's not as if Mr. Spaghetti Code would have been any neater had he been using a text editor.
I do think that there are somethings which can be done more simply though, that being said; however, in the interest of some semblance of job security I'd prefer they not be too easy.
It spoon-feeds you, then it kicks you in the crotch a week later when you're trying to figure out what the hell you were thinking when it was spoon-feeding you.
1) That's a language problem. Good languages (i.e. not C/C++) don't allow errors like that, or at least make them incredibly hard.
2) And that problem goes away when you're not using an IDE? Your magic compiler can somehow identify the exact line, but the evil IDE monsters confuse and beguile it! Right?
Look at what your time is worth as a programmer... for 2 days of your full-time employment, you could simply buy another server and double your program's available speed/memory/disk imprint. (Disk? Seriously? You can't even BUY a disk less than 200 GB now... what the fuck are you CODING, man!?)
Economically, it makes a hell of a lot more sense buy a new server.
What really bothers me is programmers like you, and like those quoted in the article, who are so insular that they don't understand the rest of the company at all. If you think that spending a couple days longer on a project so you can eke out 20% more performance is worthwhile, you're operating in a haze of cluelessness.
(friend of a friend story) about a guy who used to work for a linux distribution, went to work for MS and, guess what, he uses Emacs!
And... what am I supposed to feel about that? Shock? Surprise?
It reminds me of when that Microsoft employee took pictures of a truck delivering Apple G5 computers to the Microsoft campus, and the entire blogosphere went crazy over it-- apparently nobody stopped to think that Microsoft writes software for Macintosh, OF COURSE THEY HAVE MACS! How else would they test it!? Or write it?! God that was stupid.
All you're saying is "bad programmers can make a spaghetti mess in an IDE." Since we already know that bad programmers can make a spaghetti mess using plain editors, I guess all that leaves is:
"bad programmers make a spaghetti mess."
You've said nothing about IDEs. Except that they have search features, I guess, but it you couldn't search using your plain editor, it sucks.
So a programming language for interpretive dance would probably find the Natal very useful.
Apologies to the poster in the previous thread whose idea I'm stealing...
But considering how much use there is of motion capture technology for movies, TV shows, and video games, there most certainly are computers being programmed right now this instant via "interpretive dance."
There's lots of things that were abandoned because they didn't work that might work now.
Wow, that sentence was confusing, sorry.
But think of handwriting recognition on the Apple Newton and original Palm. Newton never got it working correctly (well, it was better in the later versions), and Palm could only get close by using a modified alphabet. Now turn on handwriting recognition on your Vista or Windows 7 tablet-- it's uncanny good, with no training at all. Turn on speech recognition-- same!
I suggest an alternate headline: "Old dogs have trouble learning new tricks!"
Or maybe: "Members of the 'High Priesthood of Technology' hate it when programming becomes easier!"
What really bugs me about old-school programmers saying this is it influences some of the younger guys, and they're frankly wrong. Except for the small amount of programmer doing kernel or embeddeded code, tools that manage their own memory are simply superior to those that don't. Tools that allow you to lay-out a GUI visually are superior to those that don't.
In short, if you're a programmer at Microsoft, and one of these codgers is trying to talk you into giving up C# and going back to C++, you tell him to get off YOUR lawn.
So it's a pretty useful little tag. I would compare it to leaving a TODO comment in your code (or, I guess, someone else's code).
Yeah, but you don't leave TODO in other people's code, that's a total asshole move.
Only part of my complaint is that it makes the article harder to read. The other part is that, on the encyclopedia anybody can edit, you're basically telling someone else to do your work for them. It's laziness and rudeness all rolled into one.
I don't use it much myself, because on the rare occasions when I make drive-by edits, I usually follow one of your two suggested approaches.
No problems at all. I'm running an i7 920 with 12 GB of RAM and Windows 7 64-Bit Ultimate. I've been playing BF2, GTA4, COD:MW/MW2, Batman: AA and others without any problem. Not to mention running 2 or 3 VMWare sessions, putty sessions, winscp, IE8, pidgin and streaming TV through Windows Media Center all at the same time.
As I posted in the last entry, the problem with [citation needed] is that it's supposed to be an encyclopedia *anybody* can edit. If you need a citation, go and look it up your damned self!
The tag is basically saying, "this needs a citation, but I'm too high and mighty to do the work myself! Do it for me, peons!"
If you encounter a fact in Wikipedia that sounds fishy and has no citation, you can do one of two things: 1) Look up the citation yourself; add it. 2) Delete the fact.
Don't shit little tags all over every page, making them impossible to read. What kind of "editor" leaves the work harder to read than before they began editing it?
That reminds me of how people still claim PBS is "ad-free." Uh, I dunno about you guys, but last time I watched a show on PBS (a kid's show with my nephew), there were about 5-6 solid minutes of ads before and after it-- all in the guise of "this show is sponsored by..." of course, but ads never-the-less.
You better change the motto to "the encyclopedia that some people can edit, but only if they create an account and then make a series of small edits to random pages to establish themselves."
Because, unfortunately, it still says "anyone" can edit it. Clearly wrong.
Look at languages such as JavaScript in Flash,
Flash doesn't use Javascript, it uses Actionscript. Both are based on the ECMAScript standard, but Actionscript 3 is actually pretty far-removed from Javascript now. (Actionscript 2 is much closer.)
Anyway, I get what you're saying, it's just that Adobe's version is modified quite a bit.
Need to find out what the user typed in box foo? While most client libraries require fairly detailed memory schemes in order to keep track of which box is which, Javascript reduces all that to getElementById(); - a win in any programmer's book!
That's DOM, not Javascript.
But in the reverse, what about trimming that input? The offense to the mind that you have to use a USER DEFINED FUNCTION for trimming just boggles the mind.
That's a lack in DOM, not a lack in Javascript.
So javascript has its warts. Lots and lots of them. It is clearly a hacked-together language that is only successful because of its ubiquity, which is the same reason why it evolves so extremely slowly, which is why we still have to manually implement things like trim(), and why so many of us are doomed to deal with javascript with all of its warts.
No, Javascript is very nice. DOM is a piece of shit. Pair any language with DOM, and you'll think that language sucks.
What makes me sad is how many Slashdotters don't know the difference between the language and the libraries. DOM is nothing but a set of libraries-- you could code DOM in C#, Python, Java, whatever.
Saying DOM sucks says nothing about Javascript.
That said, this:
The lack of any kind of meaningful class structure makes the special word "this" almost worthless because you can't be sure consistently what it's referring to.
Is actually a language issue. Most people solve it by using the dumb workaround "var that = this" in their objects. That gives you a consistant "this", but it's kind of a retarded work-around.
If you delete an array key directly with the delete command, eg: `delete myArray[4];` the length property doesn't get updated even though the number of elements in the array does. (WTF?!?!)
That one I can't speak to... interesting if true.
I'd instead say that Javascript is a frustrating language that's gotten too much rep. The fact that people migrate towards 3'rd party libraries to standardize simple programming operations (like jQuery / GWT) is a testament to how bad it's legacy has gotten - when trying to do 'real' work.
jQuery (prototype, mootools, etc) solves shitty DOM implementations, not shitty Javascript implementations. In fact, I don't think jQuery addresses a single "lack" in Javascript-- I could be mistaken-- virtually everything, if not everything, it does is fixing DOM's bad design and browser's inconsistent implementation of it.
This is why Javascript gets a bad rap: pair it with DOM, and *any* language would look awful, because DOM is awful.
Most of Javascript's bad reputation come from the W3C's DOM. When the majority of programmers think "Javascript," they're actually thinking "Javascript + DOM," and since the DOM is so awful, they think Javascript is awful as well. Not so.
Pair Javascript with a decent library, and it's extremely powerful. Maybe not as suited for large projects as languages with namespaces, but its template system and introspection features are simply amazing. If anybody ever writes a program that evolves itself until it becomes super-intelligent and takes over the Earth, it'll probably be written in Javascript.
Correction to the parent, though: Javascript isn't an object-oriented language in the classic definition of the term... it lacks many features to make it truly OOP. Instead, it's based around object templating, which is nearly as powerful, but not the same thing.
The vector is in simulating a familiar program which is known to ask for a privilege escalation. Simulating a dialog is pointless, as others pointed out above.
There's not a lot of those, though... I guess Firefox has UAC prompts more than most programs, and since its update schedule is completely opaque and already extremely annoying, it might be a good target. But you'd still have to simulate a UAC prompt on Vista and Windows 7-- you can't simply ask for the password, you'd only get the most retarded users.
This lofty goal may be unreachable, but bugging a user with update prompts twice a week ain't making her any safer.
Yah, because the user will NEVER INSTALL THE UPDATE. Which is the point I was trying to make to the grandparent.
Just telling the user that updates are available, no matter how often you do it, is not a solution. And if you have any "solution" that doesn't take into account the psychology of computer users, it's not a solution either.
Microsoft understands that securing a computer is 75% in the user's hands, and 25% in the OSes hands. There's no point in coming here and suggesting Linux do things that Windows tried and dismissed 10 years ago, while you lot were all pissing on Windows for being so insecure.
Looks scary, right? Wrong. Because the solution is as simple as changing the default policy. Make it so that the default behavior is to notify only. On every system update the user should be told: "Go start the updater via the system menu. By the way, if you EVER see an "updater" you didn't start yourself, you are being pwned." Make sure that the system menu is strictly read-only, and even the dimmest user will be safe.
This won't be implemented in Windows. Why? I really cannot guess why Microsoft's security policy seems to be designed from ground up to fuck the user, but it is. The usual excuse seems to be: "it's easy to use". But whatever is the reason, you just cannot make a proprietary platform secure because you cannot pop the hood open. With a free OS, you can.
You're forgetting the "human psychology" part of the issue. If you just tell people to update, they won't do it.
You're also assuming Microsoft is run by morons. Obviously Microsoft's thought of this, but they've decided it's better for more people to have updated OSes then your alternative.
You're right, though, it's really impossible to prevent an app from simulating the auto-updater-- even the UAC prompt can be faked to look and sound real, if you're willing to spend some time at it. (It would be hard though, and I doubt it would look 100% right.)
Your proposal is nice, and you can already set Windows to do that if you want. (In fact, server editions of Windows ship that way by default.) But for the average user, that's a MUCH worse idea than automatically updating the OS.
But, you know, thanks for "inventing" it.
That happens when ad/analytics Javascript makes use of document.write to get its job done. What the industry needs is a move towards dynamically loading that content using XMLHttpRequest, so that the normal page content loads first and only when it's finished do the ads/analytics tags do their thing.
The only place this might be troublesome is if you're using the ad server to do geo-location. But even that isn't a big deal if it happens a split second after page load.
I just find it really funny that the new stratergy now is to call into question the honesty and ethics of the researchers or basically personal attacks instead of challenging the freaking DATA.
Right...
Denier[s]...
Did your head explode when you typed that?
I think a lot of IDE's actually complicate the language though.
How do IDEs change the language whatsoever, much less complicate it? Are you saying that C# is a different language in VS than it is if you're hacking away at a text file?
When I do use the features, I end up having to go back in and rewrite 95% of the simple feature I just used at least 86% of the time.
Huh? Not making any sense of that sentence.
Another fear I have is that allowing to many non-schooled programmers into programming can really make it difficult when you have to try to figure out coding done by someone who doesn't have any conception of decent coding practices and naming conventions are.
I don't think schooling has anything to do with it. From my experience I get much more spaghetti code from schooled programmers than non-schooled.
In any case, an IDE certainly won't HURT in this situation-- at least it has good refactoring tools to help clean up the mess.
And it's not as if Mr. Spaghetti Code would have been any neater had he been using a text editor.
I do think that there are somethings which can be done more simply though, that being said; however, in the interest of some semblance of job security I'd prefer they not be too easy.
Fuck you.
It spoon-feeds you, then it kicks you in the crotch a week later when you're trying to figure out what the hell you were thinking when it was spoon-feeding you.
Two things:
1) That's a language problem. Good languages (i.e. not C/C++) don't allow errors like that, or at least make them incredibly hard.
2) And that problem goes away when you're not using an IDE? Your magic compiler can somehow identify the exact line, but the evil IDE monsters confuse and beguile it! Right?
Who cares?
Look at what your time is worth as a programmer... for 2 days of your full-time employment, you could simply buy another server and double your program's available speed/memory/disk imprint. (Disk? Seriously? You can't even BUY a disk less than 200 GB now... what the fuck are you CODING, man!?)
Economically, it makes a hell of a lot more sense buy a new server.
What really bothers me is programmers like you, and like those quoted in the article, who are so insular that they don't understand the rest of the company at all. If you think that spending a couple days longer on a project so you can eke out 20% more performance is worthwhile, you're operating in a haze of cluelessness.
Whoa whoa whoa whoa whoa...
You're saying that Vi and EMACS have *less* of a learning curve than Visual Studio!? Seriously?
You're smoking some high quality stuff there.
(friend of a friend story) about a guy who used to work for a linux distribution, went to work for MS and, guess what, he uses Emacs!
And... what am I supposed to feel about that? Shock? Surprise?
It reminds me of when that Microsoft employee took pictures of a truck delivering Apple G5 computers to the Microsoft campus, and the entire blogosphere went crazy over it-- apparently nobody stopped to think that Microsoft writes software for Macintosh, OF COURSE THEY HAVE MACS! How else would they test it!? Or write it?! God that was stupid.
Your little insight here gives me the same vibe.
All you're saying is "bad programmers can make a spaghetti mess in an IDE." Since we already know that bad programmers can make a spaghetti mess using plain editors, I guess all that leaves is:
"bad programmers make a spaghetti mess."
You've said nothing about IDEs. Except that they have search features, I guess, but it you couldn't search using your plain editor, it sucks.
So a programming language for interpretive dance would probably find the Natal very useful.
Apologies to the poster in the previous thread whose idea I'm stealing...
But considering how much use there is of motion capture technology for movies, TV shows, and video games, there most certainly are computers being programmed right now this instant via "interpretive dance."
There's lots of things that were abandoned because they didn't work that might work now.
Wow, that sentence was confusing, sorry.
But think of handwriting recognition on the Apple Newton and original Palm. Newton never got it working correctly (well, it was better in the later versions), and Palm could only get close by using a modified alphabet. Now turn on handwriting recognition on your Vista or Windows 7 tablet-- it's uncanny good, with no training at all. Turn on speech recognition-- same!
Internet Explorer, remember how shitty Netscape 3 & 4 were?
Not because Microsoft really did anything particularly right, just because Netscape screwed up so badly.
No kidding.
I suggest an alternate headline: "Old dogs have trouble learning new tricks!"
Or maybe: "Members of the 'High Priesthood of Technology' hate it when programming becomes easier!"
What really bugs me about old-school programmers saying this is it influences some of the younger guys, and they're frankly wrong. Except for the small amount of programmer doing kernel or embeddeded code, tools that manage their own memory are simply superior to those that don't. Tools that allow you to lay-out a GUI visually are superior to those that don't.
In short, if you're a programmer at Microsoft, and one of these codgers is trying to talk you into giving up C# and going back to C++, you tell him to get off YOUR lawn.
So it's a pretty useful little tag. I would compare it to leaving a TODO comment in your code (or, I guess, someone else's code).
Yeah, but you don't leave TODO in other people's code, that's a total asshole move.
Only part of my complaint is that it makes the article harder to read. The other part is that, on the encyclopedia anybody can edit, you're basically telling someone else to do your work for them. It's laziness and rudeness all rolled into one.
I don't use it much myself, because on the rare occasions when I make drive-by edits, I usually follow one of your two suggested approaches.
Good, thank you.
No problems at all. I'm running an i7 920 with 12 GB of RAM and Windows 7 64-Bit Ultimate. I've been playing BF2, GTA4, COD:MW/MW2, Batman: AA and others without any problem. Not to mention running 2 or 3 VMWare sessions, putty sessions, winscp, IE8, pidgin and streaming TV through Windows Media Center all at the same time.
But have you solved... love?
As I posted in the last entry, the problem with [citation needed] is that it's supposed to be an encyclopedia *anybody* can edit. If you need a citation, go and look it up your damned self!
The tag is basically saying, "this needs a citation, but I'm too high and mighty to do the work myself! Do it for me, peons!"
If you encounter a fact in Wikipedia that sounds fishy and has no citation, you can do one of two things:
1) Look up the citation yourself; add it.
2) Delete the fact.
Don't shit little tags all over every page, making them impossible to read. What kind of "editor" leaves the work harder to read than before they began editing it?
You could just look up the word "deputy" in the dictionary:
deputy [ déppytee ] (plural deputies)
noun
Definition:
1. somebody's representative: somebody fully authorized or appointed to act on behalf of somebody else
2. second-in-command: an assistant who is authorized to act in a superior's place
3. member of parliament: a parliamentary representative in some countries, e.g. in France, Germany, or Italy
4. police
Same as deputy sheriff
It's a perfectly cromulent word.
That reminds me of how people still claim PBS is "ad-free." Uh, I dunno about you guys, but last time I watched a show on PBS (a kid's show with my nephew), there were about 5-6 solid minutes of ads before and after it-- all in the guise of "this show is sponsored by..." of course, but ads never-the-less.
You better change the motto to "the encyclopedia that some people can edit, but only if they create an account and then make a series of small edits to random pages to establish themselves."
Because, unfortunately, it still says "anyone" can edit it. Clearly wrong.