Targeting US citizens does require an individual warrant
Right, and how do they determine if the person is a US citizen or not? They have a program (Prism) to analyze various things they know about that person, and if the person is 51% or more likely to be foreign, then they tap them. So it's like a coin toss, plus 1%. This is according to James Clapper. From here:
The government knows that it regularly obtains Americans’ protected communications. The Washington Post reported that Prism is designed to produce at least 51 percent confidence in a target’s “foreignness” — as John Oliver of “The Daily Show” put it, “a coin flip plus 1 percent.” By turning a blind eye to the fact that 49-plus percent of the communications might be purely among Americans, the N.S.A. has intentionally acquired information it is not allowed to have, even under the terrifyingly broad auspices of the FISA Amendments Act.
How exactly do you think Javascript accomplishes the actual layout? Do you think the browser understands Javascript instructions for laying out elements, or would we instead use Javascript to... I don't know, dynamically change the element's CSS depending on the resolution and orientation? Or show/hide/position various elements depending on the same (by changing... wait for it... the CSS classes or properties). Or to get an element to completely fill the entire viewport, in all browsers, with no overflow. Pure CSS is fantastic when you can focus only on browsers that support what you're trying to do. To fill in the gaps, you use Javascript to help out.
There's a great example here of what I mean. Not only do many mobile browsers ignore the handheld media type, but some (including iOS Safari) use the non-standardized media queries instead. Go ahead and read through that article, notice at the end how they suggest using Javascript to fill in the gaps.
If you're using JavaScript for layout, you've already failed.
I'll overlook the revealing fact that you didn't bother to suggest an alternative, and just ask why is Javascript bad for layout? Assume, for the context of the question, that I have a base of several hundred thousand users across a range of government, commercial, and educational organizations who have been having their layouts calculated by Javascript for the last 5 years, including with IE6, without reporting layout problems.
Anyone who does any real work are buying PC's or already have what they need.
I think that's the real point. People doing office work have PCs that are plenty powerful. A sub-$1000 machine can last for a lot longer these days then they used to. A machine with 2-4GB of RAM and a 2- or 4-core CPU is going to be able to run Office, Outlook, and a browser for years and years to come. I still upgrade at about the same frequency because I want the best for my games, but I'm an outlier. The major thing that geeks think should push new sales these days is probably SSD storage. After experiencing a setup with SSD I would never go back to a magnetic disk for my boot/application drive, that's the only component I would really want to replace in my office computers. Everything else is plenty fast for everything I need it for at work.
The days when a $1000 computer would only be able to run the latest Office applications for a few years before you start looking for an upgrade are over.
If you know what you're doing (and it doesn't take much knowledge or skill) you can deploy your mobile app across various platforms and devices from a single codebase
That's right, if you're developing a mobile app then a substantial amount of the code is going to be the same regardless of platform.
What if you're developing a website that needs to be responsive for all orientations, both desktop and mobile? Should you avoid using something like Bootstrap or HTML5 Boilerplate and implement all of that yourself?
I don't think there is a competent programmer alive who does not use libraries. I think you're talking out of your ass, I think you're being naive. When you create an application that uses ajax, do you actually sit there and type out a function with a try/catch block to look for various implementations of the ajax object? Doesn't it make sense to put a function like that into a file that you can use on all of your sites, and doesn't it make additional sense to add more common utility functions, adding methods to built-in objects (e.g., adding Array.indexOf if it doesn't exist), etc? Because that's a library, even if you write it yourself. It sounds like your only argument is not using libraries that other people make. Using libraries that other people make is a major part of every kind of software development. Now, there's no reason to include all of ExtJS, for example, if the only thing I'm looking for is a normalized ajax interface, but that's hardly an argument against not using any libraries or frameworks for anything. Almost everything has a place.
That being said, when I'm answering questions on web development forums I'll occasionally see someone come in with a question about their site that they're including 5 different versions of jQuery on, in addition to mootools and dojo or whatever else. There are plenty of people who don't know how to program who copy and paste whatever they can find to try and get anything to work, but, again, that's not a reason for all programmers to completely forgo frameworks and libraries.
You'll find that just about every feature your "essential" library provides has a native equivalent that works across browsers -- even as far back as IE 8.
That's a pretty naive view that over-simplifies the situation. One major use for a framework, for example, is to normalize the behavior of different browsers. Another major use is to provide implementations to create interface elements. Now, obviously, everything is natively supported because the Javascript framework is right there doing it, natively. But why should I write the necessary logic to create a draggable window, or a tree view, or sortable grid, when I can just pull that in from a framework? ExtJS is the kind of framework I'm thinking of. Why should I implement ajax-style uploads inside an iframe when they already did that for me, and I can just set up a form panel, indicate it is a file upload form, and write the important stuff?
Even though I can use a massive ExtJS application on a phone, we're not talking about massive applications per se, we're talking about mobile Javascript. So there are things like Sencha Touch for that. Sure, I could write native applications for every device listed under the supported devices section, but why is it smart to do that when I can write a single codebase that I can package for multiple devices?
Or maybe I'm just not "familiar" with Javascript, or development concepts in general. Hopefully you can enlighten me on the merits of reinventing the wheel every time you create something.
I'm not saying the contractor is at fault per se, I'm just saying that the premium on their services is amazing. They were hired January 30th, and let's assume that, worst case, they were looking for infections through May 15th. That's 4 and a half months of work looking for infections. 4 and a half months of, what, running various malware scanners? What if your boss came to you and said that he wanted you to determine if there were any infected machines on the company network, and you gave him a timeline of 18 weeks to finish that job? Would you still have a job? Assuming they are working full-time weeks those 18 weeks, then that comes out to 720 hours per person, or $1143 per hour. That's a serious hourly wage, even if they divide that up between 5 people (and then you have 5 people spending 18 weeks scanning for malware?). It just doesn't really make sense what that contractor was doing in order to bill them for $823k.
But wait, there's more! There was another contractor (maybe the same one), hired to provide "assistance for a long-term recovery solution." So we're talking about designing a system where everything is backed up, relatively easy to recover if necessary, presumably with capabilities to save and push out disk images in the case an entire re-image is necessary. The cost for that one? $688,000.
$1.5 million dollars spent on contractors to do virus scanning and recovery assistance. Like I said, I'm in the wrong business.
Had they just walked away, do you think they would ever get hired again?
How about if they get their requirements, respond with what they can and cannot do, do what they can do in an efficient way, and bill for a reasonable amount? Is that really too much to ask of a contractor? If they get asked to prove that it is not possible for a system to be infected, and they can't prove that, they can only prove that it is not currently infected, then state that, do the job, and move on. Don't sit there for 18 weeks doing nothing to justify your $823k bill for taxpayer money. And how about next time they put out bids for a long-term recovery solution, and let's see if they end up taking the bid that costs $688k (not for the equipment - just the recommendations) or if competition brings that price down one or two orders of magnitude.
The contractor did not tell them to do that. The contractor found exactly 6 machines, which they recommended by re-imaged.
... and then billed them for $823k? Holy gooseshit, I'm in the wrong industry. I need to be a government security contractor. Obviously this is a job that I am already qualified for.
This stupidity was not the contractors fault.
That's true, but the contractor sure as hell doesn't care about taking hundreds of thousands of taxpayer dollars, do they?
I'm not sure if you're only reading news from Fox, but I'm not seeing the same stories you are. I saw a story that the US government warned the military that a coup would risk a decline in Egypt-US relations, and I see stories that the government doesn't want to specifically support either side. I don't see our government explicitly giving support to a military coup. You obviously see that story, so where is it?
Unless you're actually doing something a computer professional would need to do, it's a failure of user interface to require the user to do it.
What? Mozilla is now requiring everyone to use about:config? I haven't had to do that yet, have they just not gotten to me yet? Will my family also be required to do it, or can I do it for them?
Oh, what's that? You only need to use it if you're disabling Javascript, or changing any of the other minutiae that only a super-user who isn't going to be angry or confused at seeing about:config would bother changing in the first place? Doesn't seem like such a problem to open about:config, type "javascript" into the search bar, and find the option to disable it, does it?
If you're working with something like ExtJS it's godsend.
That's the thing I like the least about Chrome's developer tools. Working in ExtJS, I'll start inspecting objects or sending them to the console or whatever and it identifies the objects as things like "sb" or "f" rather than Ext.data.JsonStore or whatever it is. Of course, for ExtJS developers (and eventually other frameworks), there is also Illuminations for Firebug.
I agree, they should test Firefox with the top 5 or 6 extensions installed, not the stock browser. They should determine the average number of extensions that each browser uses, install the most popular ones on each browser, and run the results again.
Or with the debugging tools opened (firebug / chrome debug /...) ?
I don't really see a point to benchmarking with the developer tools open, but I would definitely like to see a competition where they determine the average number of extensions/addons for each browser, install that number of the most popular addons on each browser, and then run the test again. Hardly anyone uses stock Firefox, its major selling point has been extensions. I would like to see a test with the configuration of all browsers more closely aligned to what people actually use.
It's not OS-specific, it supports IE6+ and any other recent browser that will run Javascript. We typically use Chrome, Safari, and Firefox when developing and testing it. I use Opera for regular browsing, but I don't bother to do a lot of testing with Opera, I don't think we have a single customer that uses Opera. Developers use both Windows and OSX, whatever they prefer (we don't have any devs that prefer Linux). It was initially designed before the mobile explosion, so it doesn't work very well on touchscreen devices (it uses things like drag and drop and double click, which don't work on touchscreens). There's a mobile interface in development that non-admins will be able to use, but admins still need the full-blown interface for now. It's an online university though, so it doesn't really make sense to make that a native application. All the records and content need to be stored on a central server, we wouldn't gain anything by making it a native application for any OS, and maintaining multiple versions for different platforms would be a nightmare.
Well, if the problem is people blocking advertisements because they get in the way, or they're intrusive, or the advertisers don't respect privacy or whatever, then one option is to find an advertising platform that isn't going to piss people off. There are ads I don't bother to block because they don't get in the way. But advertisers have a way of constantly pushing their shit onto you any way they possibly can, and when it gets to that point then I block them. When I pull up a page and there is a banner ad that is flashing and vibrating or playing audio or whatever, I block that advertiser, close the site, and move on. If they don't want to be blocked, then they shouldn't be a dick about pushing their shit where it's not wanted. Most advertisers don't seem to understand that concept though, all they care about are metrics like "impressions" and "conversions". They don't bother trying to measure how much they irritate people, just how many people click on their shit. That's all that matters, so they get blocked.
Web browsers aren't "the internet". It says a lot about you that you'd think they are.
I didn't claim anything like that. The internet in general and web browsers in particular are about a lot more than HTML.
Oh, my, the page refreshed. How awful.
There's no reason to transfer over 500KB across the wire so you can post a comment, or express interest in something, or any number of other small tasks. Sorry old timer, but that's the way it is. If you want to turn off Javascript and download the entire thing again every time you click anything, go ahead, but I'm not going to design something that purposefully does that if there's a better way (which there is).
You haven't really presented an argument against Javascript, other than just because at one point in time things on the internet didn't have a lot of Javascript. Technology advances, I'm sorry you have a hard time with that. You might be happy with 1994's internet, but I'm not going back to that. We've learned a lot since then.
I'm the user. I pick and choose. Chances are... I won't choose "your" app. I decide what's useful to me.
That depends. Our application installations aren't public, they are purchased by other companies and organizations for their users. If you're our customer you can certainly choose us, or not. If you're one of our customers' users then they already made that choice for you, and you can choose to either take your employer's required training online, or not. If you choose not to, then you won't be their user much longer. I'm sure they will be impressed with your personal morality when you explain that the reason you aren't trained is because you don't want to execute Javascript in your browser.
Your customers should understand that and not have a problem following directions to use the browser you prefer and whitelist your app so they can run it.
Man, I wish we had that much influence over the customers. Every time we manage to develop something cool, the lowest supported version of IE has to inevitably come along and crap all over it. My job would be so much easier if corporate users could install an alternative browser.
The application is actually on the server, correct, it has multiple interfaces that people can use to interact with it. But I would suggest that the Javascript interface code is almost an entire application in its own right, even if it doesn't persist its own data. It's an application that is an interface, to consume data from another application.
Why don't you put something on your index page that detects if javascript is enabled and show a message that it is required.
We do. There's even code to check requirements on the server also, from back when we weren't sure if we would sell the application for use on other servers.
More importantly to me, there are even more sites that can be useable if I allow scripts from their domain, but still block scripts from other domains.
We don't pull anything in from any other domain, we aren't an advertising platform (nor do we provide our platform for use by advertisers). Everything comes from the same domain, whatever the customer chooses. They can choose to integrate Google Analytics, but if the users decides to block that it's not going to affect the rest of the application.
And now we have an application called a "web browser" whose job is to render a MARKUP language, not be a remote compute server for people who want to provide content that looks exactly like they want it to look and do it without consuming CPU cycles on their precious servers.
That's a pretty Mosaic-era view of the internet. Browsers are about a lot more than rendering HTML these days. I'm currently working on a project that uses HTML5 video and audio (with a fallback to Flash), interactions via Javascript, loading content in the background, and it will dynamically resize and reorganize itself to fit on the client's device regardless of resolution or orientation. Users just see a training course, they don't realize that it will work on any device. Layout of the interface should be the browser's job, not the server's. The browser knows what it is capable of, it knows its size and orientation, so let it figure out the best way to display the content. It's not about precious CPU cycles, it's about an efficient product. There's no reason for the server to mandate to your browser that it displays the content in a specific way, the browser can figure out how to display it. Hell, that's specifically one of the browser's jobs.
The folly is assuming that web pages have to be applications.
I'm not making that assumption. There is a place for web pages, and a place for web applications. They are two different things and the rules (like having it degrade gracefully without Javascript) are different. The rules that apply to web sites do not necessarily apply to web applications. You seem to think that everything should be a web site, and that's not the case. That used to be the case, but it's not true any more.
whatever the cutesy crap is that it commonly used for
Right, cutesy things like zooming and dragging a map around without waiting for the entire page to refresh every time you do any single little action.
So the argument in favor of making javascript mandatory is so that people who click 'like' buttons won't be inconvenienced by a slower "web experience"?
No, that's not the argument. That's a single well-known example of why micro transactions (like clicking a single button to send a single piece of data) should not require the entire interface to refresh.
I agree with most of that, and our application does display a notice if Javascript is disabled. And doubleclick has a permanent place on my browser's black list, most advertisers do. I think the goal of an advertiser is take anything cool and useful and shit all over it.
I've never used a web app that was better than the native alternatives. Chances are if you built a native networked app with portable code your app would be a lot better.
Thanks, I'll keep that in mind for our online university system. It's always helpful to get fundamental architecture suggestions from any random person who doesn't know the requirements. You might enjoy producing an application that will work on 99% of operating systems currently in use and keeping that thing updated, but I think I'll stick to a model that doesn't depend on the OS or the users to update their clients.
Speed wasn't my complaint. Security is. But it is worth noticing that browsing gets a lot faster when javascript is turned off.
That sort of depends what you're doing. Going back to the Facebook example, it would use a ridiculous amount of bandwidth and time if it had to reload the entire page and your news feed if you clicked any Like button or added any comment. We can also compare Google Map's image dragging functionality with a map where you have to click a direction that you want to go, then the page has to reload. Browsing speed is about a lot more than the initial page load.
The rest of google's stuff would be better implemented by a traditional client server model.
Are you suggesting that Google move things like Maps and Gmail to standalone applications? Google Earth already exists, that doesn't stop people from using Maps in other more convenient ways. But you're suggesting there's no place for a responsive online mail client? In this case "traditional" means old technology, there are better ways to do things now.
The folly is in writing pages that cannot be viewed without javascript.
The folly is assuming that the internet is still all "web pages" instead of applications. There are plenty of useful web applications around, and I develop one of them. There isn't a non-Javascript alternative to it, it has around 1.5MB of (unminified) Javascript code written by us (plus about the same for third-party frameworks) and relies on maybe a total of 4 actual HTML pages (index, a dedicated non-JS login form, and 2 content launchers), which usually do nothing except load various Javascript interfaces. This is a software-as-a-service platform, we develop and host the software and other companies and organizations pay us to set up an installation for them to use (and us to maintain).
If you want to run software, run it on your computer, not mine
You're the one using the interface, you execute it. I'm happy to execute all of the actual logic for the application on the server, but your browser is more than capable of rendering the interface. Even IE6 could handle this thing (slowly).
And anyway, there's very little that actually uses javascript for anything useful.
I hear that sentiment periodically. It's complete bullshit. Google's services are the obvious screaming example of useful Javascript. Hell, Google's push for faster Javascript in Chrome, which bled over to the other browsers after they got left in the dust by V8, is the reason why browsers are so fast with Javascript today. A prime example of Javascript making a site more usable is Facebook, regardless of your personal opinion of social networks in general or Facebook's corporate policies. Imagine if every time someone clicked the Like button, the entire page reloaded. That's obviously not usable. There are plenty of sites and applications that interact with users in similar ways (small individual actions on a much larger interface) where it would be stupid to not use Javascript to keep the data transfer and response times to a minimum.
Targeting US citizens does require an individual warrant
Right, and how do they determine if the person is a US citizen or not? They have a program (Prism) to analyze various things they know about that person, and if the person is 51% or more likely to be foreign, then they tap them. So it's like a coin toss, plus 1%. This is according to James Clapper. From here:
The government knows that it regularly obtains Americans’ protected communications. The Washington Post reported that Prism is designed to produce at least 51 percent confidence in a target’s “foreignness” — as John Oliver of “The Daily Show” put it, “a coin flip plus 1 percent.” By turning a blind eye to the fact that 49-plus percent of the communications might be purely among Americans, the N.S.A. has intentionally acquired information it is not allowed to have, even under the terrifyingly broad auspices of the FISA Amendments Act.
Learn to use CSS.
How exactly do you think Javascript accomplishes the actual layout? Do you think the browser understands Javascript instructions for laying out elements, or would we instead use Javascript to... I don't know, dynamically change the element's CSS depending on the resolution and orientation? Or show/hide/position various elements depending on the same (by changing... wait for it... the CSS classes or properties). Or to get an element to completely fill the entire viewport, in all browsers, with no overflow. Pure CSS is fantastic when you can focus only on browsers that support what you're trying to do. To fill in the gaps, you use Javascript to help out.
There's a great example here of what I mean. Not only do many mobile browsers ignore the handheld media type, but some (including iOS Safari) use the non-standardized media queries instead. Go ahead and read through that article, notice at the end how they suggest using Javascript to fill in the gaps.
If you're using JavaScript for layout, you've already failed.
I'll overlook the revealing fact that you didn't bother to suggest an alternative, and just ask why is Javascript bad for layout? Assume, for the context of the question, that I have a base of several hundred thousand users across a range of government, commercial, and educational organizations who have been having their layouts calculated by Javascript for the last 5 years, including with IE6, without reporting layout problems.
Anyone who does any real work are buying PC's or already have what they need.
I think that's the real point. People doing office work have PCs that are plenty powerful. A sub-$1000 machine can last for a lot longer these days then they used to. A machine with 2-4GB of RAM and a 2- or 4-core CPU is going to be able to run Office, Outlook, and a browser for years and years to come. I still upgrade at about the same frequency because I want the best for my games, but I'm an outlier. The major thing that geeks think should push new sales these days is probably SSD storage. After experiencing a setup with SSD I would never go back to a magnetic disk for my boot/application drive, that's the only component I would really want to replace in my office computers. Everything else is plenty fast for everything I need it for at work.
The days when a $1000 computer would only be able to run the latest Office applications for a few years before you start looking for an upgrade are over.
Here's what you don't realize
I'm glad you're so familiar with me.
If you know what you're doing (and it doesn't take much knowledge or skill) you can deploy your mobile app across various platforms and devices from a single codebase
That's right, if you're developing a mobile app then a substantial amount of the code is going to be the same regardless of platform.
What if you're developing a website that needs to be responsive for all orientations, both desktop and mobile? Should you avoid using something like Bootstrap or HTML5 Boilerplate and implement all of that yourself?
I don't think there is a competent programmer alive who does not use libraries. I think you're talking out of your ass, I think you're being naive. When you create an application that uses ajax, do you actually sit there and type out a function with a try/catch block to look for various implementations of the ajax object? Doesn't it make sense to put a function like that into a file that you can use on all of your sites, and doesn't it make additional sense to add more common utility functions, adding methods to built-in objects (e.g., adding Array.indexOf if it doesn't exist), etc? Because that's a library, even if you write it yourself. It sounds like your only argument is not using libraries that other people make. Using libraries that other people make is a major part of every kind of software development. Now, there's no reason to include all of ExtJS, for example, if the only thing I'm looking for is a normalized ajax interface, but that's hardly an argument against not using any libraries or frameworks for anything. Almost everything has a place.
That being said, when I'm answering questions on web development forums I'll occasionally see someone come in with a question about their site that they're including 5 different versions of jQuery on, in addition to mootools and dojo or whatever else. There are plenty of people who don't know how to program who copy and paste whatever they can find to try and get anything to work, but, again, that's not a reason for all programmers to completely forgo frameworks and libraries.
You'll find that just about every feature your "essential" library provides has a native equivalent that works across browsers -- even as far back as IE 8.
That's a pretty naive view that over-simplifies the situation. One major use for a framework, for example, is to normalize the behavior of different browsers. Another major use is to provide implementations to create interface elements. Now, obviously, everything is natively supported because the Javascript framework is right there doing it, natively. But why should I write the necessary logic to create a draggable window, or a tree view, or sortable grid, when I can just pull that in from a framework? ExtJS is the kind of framework I'm thinking of. Why should I implement ajax-style uploads inside an iframe when they already did that for me, and I can just set up a form panel, indicate it is a file upload form, and write the important stuff?
Even though I can use a massive ExtJS application on a phone, we're not talking about massive applications per se, we're talking about mobile Javascript. So there are things like Sencha Touch for that. Sure, I could write native applications for every device listed under the supported devices section, but why is it smart to do that when I can write a single codebase that I can package for multiple devices?
Or maybe I'm just not "familiar" with Javascript, or development concepts in general. Hopefully you can enlighten me on the merits of reinventing the wheel every time you create something.
I'm not saying the contractor is at fault per se, I'm just saying that the premium on their services is amazing. They were hired January 30th, and let's assume that, worst case, they were looking for infections through May 15th. That's 4 and a half months of work looking for infections. 4 and a half months of, what, running various malware scanners? What if your boss came to you and said that he wanted you to determine if there were any infected machines on the company network, and you gave him a timeline of 18 weeks to finish that job? Would you still have a job? Assuming they are working full-time weeks those 18 weeks, then that comes out to 720 hours per person, or $1143 per hour. That's a serious hourly wage, even if they divide that up between 5 people (and then you have 5 people spending 18 weeks scanning for malware?). It just doesn't really make sense what that contractor was doing in order to bill them for $823k.
But wait, there's more! There was another contractor (maybe the same one), hired to provide "assistance for a long-term recovery solution." So we're talking about designing a system where everything is backed up, relatively easy to recover if necessary, presumably with capabilities to save and push out disk images in the case an entire re-image is necessary. The cost for that one? $688,000.
$1.5 million dollars spent on contractors to do virus scanning and recovery assistance. Like I said, I'm in the wrong business.
Had they just walked away, do you think they would ever get hired again?
How about if they get their requirements, respond with what they can and cannot do, do what they can do in an efficient way, and bill for a reasonable amount? Is that really too much to ask of a contractor? If they get asked to prove that it is not possible for a system to be infected, and they can't prove that, they can only prove that it is not currently infected, then state that, do the job, and move on. Don't sit there for 18 weeks doing nothing to justify your $823k bill for taxpayer money. And how about next time they put out bids for a long-term recovery solution, and let's see if they end up taking the bid that costs $688k (not for the equipment - just the recommendations) or if competition brings that price down one or two orders of magnitude.
The contractor did not tell them to do that. The contractor found exactly 6 machines, which they recommended by re-imaged.
... and then billed them for $823k? Holy gooseshit, I'm in the wrong industry. I need to be a government security contractor. Obviously this is a job that I am already qualified for.
This stupidity was not the contractors fault.
That's true, but the contractor sure as hell doesn't care about taking hundreds of thousands of taxpayer dollars, do they?
I'm not sure if you're only reading news from Fox, but I'm not seeing the same stories you are. I saw a story that the US government warned the military that a coup would risk a decline in Egypt-US relations, and I see stories that the government doesn't want to specifically support either side. I don't see our government explicitly giving support to a military coup. You obviously see that story, so where is it?
Unless you're actually doing something a computer professional would need to do, it's a failure of user interface to require the user to do it.
What? Mozilla is now requiring everyone to use about:config? I haven't had to do that yet, have they just not gotten to me yet? Will my family also be required to do it, or can I do it for them?
Oh, what's that? You only need to use it if you're disabling Javascript, or changing any of the other minutiae that only a super-user who isn't going to be angry or confused at seeing about:config would bother changing in the first place? Doesn't seem like such a problem to open about:config, type "javascript" into the search bar, and find the option to disable it, does it?
If you're working with something like ExtJS it's godsend.
That's the thing I like the least about Chrome's developer tools. Working in ExtJS, I'll start inspecting objects or sending them to the console or whatever and it identifies the objects as things like "sb" or "f" rather than Ext.data.JsonStore or whatever it is. Of course, for ExtJS developers (and eventually other frameworks), there is also Illuminations for Firebug.
I agree, they should test Firefox with the top 5 or 6 extensions installed, not the stock browser. They should determine the average number of extensions that each browser uses, install the most popular ones on each browser, and run the results again.
Or with the debugging tools opened (firebug / chrome debug / ...) ?
I don't really see a point to benchmarking with the developer tools open, but I would definitely like to see a competition where they determine the average number of extensions/addons for each browser, install that number of the most popular addons on each browser, and then run the test again. Hardly anyone uses stock Firefox, its major selling point has been extensions. I would like to see a test with the configuration of all browsers more closely aligned to what people actually use.
It's not OS-specific, it supports IE6+ and any other recent browser that will run Javascript. We typically use Chrome, Safari, and Firefox when developing and testing it. I use Opera for regular browsing, but I don't bother to do a lot of testing with Opera, I don't think we have a single customer that uses Opera. Developers use both Windows and OSX, whatever they prefer (we don't have any devs that prefer Linux). It was initially designed before the mobile explosion, so it doesn't work very well on touchscreen devices (it uses things like drag and drop and double click, which don't work on touchscreens). There's a mobile interface in development that non-admins will be able to use, but admins still need the full-blown interface for now. It's an online university though, so it doesn't really make sense to make that a native application. All the records and content need to be stored on a central server, we wouldn't gain anything by making it a native application for any OS, and maintaining multiple versions for different platforms would be a nightmare.
Well, if the problem is people blocking advertisements because they get in the way, or they're intrusive, or the advertisers don't respect privacy or whatever, then one option is to find an advertising platform that isn't going to piss people off. There are ads I don't bother to block because they don't get in the way. But advertisers have a way of constantly pushing their shit onto you any way they possibly can, and when it gets to that point then I block them. When I pull up a page and there is a banner ad that is flashing and vibrating or playing audio or whatever, I block that advertiser, close the site, and move on. If they don't want to be blocked, then they shouldn't be a dick about pushing their shit where it's not wanted. Most advertisers don't seem to understand that concept though, all they care about are metrics like "impressions" and "conversions". They don't bother trying to measure how much they irritate people, just how many people click on their shit. That's all that matters, so they get blocked.
No. Good thing there aren't only 2 options.
Web browsers aren't "the internet". It says a lot about you that you'd think they are.
I didn't claim anything like that. The internet in general and web browsers in particular are about a lot more than HTML.
Oh, my, the page refreshed. How awful.
There's no reason to transfer over 500KB across the wire so you can post a comment, or express interest in something, or any number of other small tasks. Sorry old timer, but that's the way it is. If you want to turn off Javascript and download the entire thing again every time you click anything, go ahead, but I'm not going to design something that purposefully does that if there's a better way (which there is).
You haven't really presented an argument against Javascript, other than just because at one point in time things on the internet didn't have a lot of Javascript. Technology advances, I'm sorry you have a hard time with that. You might be happy with 1994's internet, but I'm not going back to that. We've learned a lot since then.
I'm the user. I pick and choose. Chances are... I won't choose "your" app. I decide what's useful to me.
That depends. Our application installations aren't public, they are purchased by other companies and organizations for their users. If you're our customer you can certainly choose us, or not. If you're one of our customers' users then they already made that choice for you, and you can choose to either take your employer's required training online, or not. If you choose not to, then you won't be their user much longer. I'm sure they will be impressed with your personal morality when you explain that the reason you aren't trained is because you don't want to execute Javascript in your browser.
Your customers should understand that and not have a problem following directions to use the browser you prefer and whitelist your app so they can run it.
Man, I wish we had that much influence over the customers. Every time we manage to develop something cool, the lowest supported version of IE has to inevitably come along and crap all over it. My job would be so much easier if corporate users could install an alternative browser.
The application is actually on the server, correct, it has multiple interfaces that people can use to interact with it. But I would suggest that the Javascript interface code is almost an entire application in its own right, even if it doesn't persist its own data. It's an application that is an interface, to consume data from another application.
Why don't you put something on your index page that detects if javascript is enabled and show a message that it is required.
We do. There's even code to check requirements on the server also, from back when we weren't sure if we would sell the application for use on other servers.
More importantly to me, there are even more sites that can be useable if I allow scripts from their domain, but still block scripts from other domains.
We don't pull anything in from any other domain, we aren't an advertising platform (nor do we provide our platform for use by advertisers). Everything comes from the same domain, whatever the customer chooses. They can choose to integrate Google Analytics, but if the users decides to block that it's not going to affect the rest of the application.
And now we have an application called a "web browser" whose job is to render a MARKUP language, not be a remote compute server for people who want to provide content that looks exactly like they want it to look and do it without consuming CPU cycles on their precious servers.
That's a pretty Mosaic-era view of the internet. Browsers are about a lot more than rendering HTML these days. I'm currently working on a project that uses HTML5 video and audio (with a fallback to Flash), interactions via Javascript, loading content in the background, and it will dynamically resize and reorganize itself to fit on the client's device regardless of resolution or orientation. Users just see a training course, they don't realize that it will work on any device. Layout of the interface should be the browser's job, not the server's. The browser knows what it is capable of, it knows its size and orientation, so let it figure out the best way to display the content. It's not about precious CPU cycles, it's about an efficient product. There's no reason for the server to mandate to your browser that it displays the content in a specific way, the browser can figure out how to display it. Hell, that's specifically one of the browser's jobs.
The folly is assuming that web pages have to be applications.
I'm not making that assumption. There is a place for web pages, and a place for web applications. They are two different things and the rules (like having it degrade gracefully without Javascript) are different. The rules that apply to web sites do not necessarily apply to web applications. You seem to think that everything should be a web site, and that's not the case. That used to be the case, but it's not true any more.
whatever the cutesy crap is that it commonly used for
Right, cutesy things like zooming and dragging a map around without waiting for the entire page to refresh every time you do any single little action.
So the argument in favor of making javascript mandatory is so that people who click 'like' buttons won't be inconvenienced by a slower "web experience"?
No, that's not the argument. That's a single well-known example of why micro transactions (like clicking a single button to send a single piece of data) should not require the entire interface to refresh.
I agree with most of that, and our application does display a notice if Javascript is disabled. And doubleclick has a permanent place on my browser's black list, most advertisers do. I think the goal of an advertiser is take anything cool and useful and shit all over it.
I've never used a web app that was better than the native alternatives. Chances are if you built a native networked app with portable code your app would be a lot better.
Thanks, I'll keep that in mind for our online university system. It's always helpful to get fundamental architecture suggestions from any random person who doesn't know the requirements. You might enjoy producing an application that will work on 99% of operating systems currently in use and keeping that thing updated, but I think I'll stick to a model that doesn't depend on the OS or the users to update their clients.
Speed wasn't my complaint. Security is. But it is worth noticing that browsing gets a lot faster when javascript is turned off.
That sort of depends what you're doing. Going back to the Facebook example, it would use a ridiculous amount of bandwidth and time if it had to reload the entire page and your news feed if you clicked any Like button or added any comment. We can also compare Google Map's image dragging functionality with a map where you have to click a direction that you want to go, then the page has to reload. Browsing speed is about a lot more than the initial page load.
The rest of google's stuff would be better implemented by a traditional client server model.
Are you suggesting that Google move things like Maps and Gmail to standalone applications? Google Earth already exists, that doesn't stop people from using Maps in other more convenient ways. But you're suggesting there's no place for a responsive online mail client? In this case "traditional" means old technology, there are better ways to do things now.
The folly is in writing pages that cannot be viewed without javascript.
The folly is assuming that the internet is still all "web pages" instead of applications. There are plenty of useful web applications around, and I develop one of them. There isn't a non-Javascript alternative to it, it has around 1.5MB of (unminified) Javascript code written by us (plus about the same for third-party frameworks) and relies on maybe a total of 4 actual HTML pages (index, a dedicated non-JS login form, and 2 content launchers), which usually do nothing except load various Javascript interfaces. This is a software-as-a-service platform, we develop and host the software and other companies and organizations pay us to set up an installation for them to use (and us to maintain).
If you want to run software, run it on your computer, not mine
You're the one using the interface, you execute it. I'm happy to execute all of the actual logic for the application on the server, but your browser is more than capable of rendering the interface. Even IE6 could handle this thing (slowly).
And anyway, there's very little that actually uses javascript for anything useful.
I hear that sentiment periodically. It's complete bullshit. Google's services are the obvious screaming example of useful Javascript. Hell, Google's push for faster Javascript in Chrome, which bled over to the other browsers after they got left in the dust by V8, is the reason why browsers are so fast with Javascript today. A prime example of Javascript making a site more usable is Facebook, regardless of your personal opinion of social networks in general or Facebook's corporate policies. Imagine if every time someone clicked the Like button, the entire page reloaded. That's obviously not usable. There are plenty of sites and applications that interact with users in similar ways (small individual actions on a much larger interface) where it would be stupid to not use Javascript to keep the data transfer and response times to a minimum.