Unit testing is also big in Ruby on Rails (no "courses" for that though). I think it is a matter of whether or not there is a proper framework for implenting tests. If there isn't a framework, I can imagine unit testing becoming more work to implement than it is worth.
Testing, in this case, is a little different than what you are referring to. I dunno about AspectJ, but with Ruby on Rails you basically program in a bunch of use cases and mock data manipulations and run it with a "make" file. Any time you make significant (or not so significant) changes to the code, you can run your tests and make sure it all works.
And if you really want to get serious about tests, there is technique where you program the tests BEFORE you implement the code. You just keep running the tests until they don't fail and you know you are done (well, almost). It is called test driven development. From that I understand, it saves a good deal of time that would otherwise be spent clicking through an application to see if it works.
Personally, I haven't been able to get into it too deeply. Writing new tests from scratch in a project for which you've already written a big chunk code is daunting and tedious, IMO. You literally have to go step by step through the program and simulate every forseeable use case. I did write some tests and I can see the benefit. I tested what I thought was some rather simple code and found bugs right away. Bugs that might not have been obvious by simply clicking through the application. Also, writing such tests can give you ideas for features that you might not have thought of before.
At this point, I think it is more an issue of discipline than man hours. If I could just get myself to spend a whole day getting tests written, I believe I would save myself far more than that in debugging and traditional testing. And I would feel much more confident about my finished product.
I dunno, kinda looks like a penis to me too. Although it is somewhat appropriate seeing as the whole image of the low hanging rock and roll guitar is a bit phallic to begin with.
-matthew
Re:Sensationalist Journalism?
on
A Flu Pandemic?
·
· Score: 1
There are two different odds. There are the odds that a particular series of events will occur, and there are the odds involving the results of a particular event in that set. If I flip a coin, there is a 1 in 2 chance that I will get tails. If I flip a coin 4 times in a row and get tails each time, the chances of me flipping the coin a fifth time and getting tails is still 1 in 2. Even though the odds of getting 5 tails in a row are 1:32. Two different sets of odds. That 1:32 figure doesn't apply to the odds of of any individual event in the series... only the probability of the series itself.
Statistically speaking, there is no difference between TTTTT (five tails) and, say, HTHTH. Both have the same probability... 1 in 32.
Also, the 2.6 kernels have an extra "preemptable kernel" option which makes desktop operations even smoother.
All modern OS's have somewhat complex schemes for elevating and reducing thread/process priority dynamically. Usually it revolves around giving I/O bound processes less CPU time and CPU bound processes more all without starving any one process. I've actually gotten down to tuning the Solaris kernel scheduling tables for different types of work loads.
Unzipping a file was only one example of when I experience poor multitasking performance on Windows. And no, I've never turned on the "give priority to background processes" option in Windows.
Have you ever used a unix desktop extensively? It is really difficult to understand what I am talking about unless you have. It is quite easy to become accustomed to the quirks of one OS and not really notice just how bad it is until you try something else which does certain things much better.
Closer in the sense that adding central heating/air brings a mobile home closer to feeling like a modern 3 bedroom, two story house, sure.
Dude, melodramatic much? It's also a touch arrogant to make the assumption that your view of what's better IS what's better. For some applications, the minor trade-off in responsiveness is worth the gains in convenience of portability and cost-savings of installation to some people. If you had free gas with that mobile home and you could drive south for the winter and park it on some beachfront area in Mexico, I'd bet that some (actually probably quite a few) people would pick the mobile home over your precious 3 bedroom two story house. IOW, just because you might not find the idea of having a movable home useful, doesn't mean that no one else would.
What makes you think I am making a value judgement against mobile homes? All I am saying is that mobile homes and 2 story houses are not the samething. I am arguing against the idea that AJAX will somehow replace desktop applications. I am not arguing agaist AJAX or web applications in general. As I have said before, I use AJAX in my own applications. You are totally making it out to besomething that it isn't.
Clearly you and I have different ideas in mind about what people want to use AJAX for. In my mind, Office applications like a word processor/spreadsheet/presentation software could easily be useful applications to be run off the internet. What HTML is meant for and what it CAN be extended to do by combining them with other technologies (like, oh say...AJAX?) are two different things.
It would be a totally hack job. Extending HTML in such a way wouldbe a huge mistake. I say use the right tool for the job. And HTML (even with AJAX) is simply not the tool for the job.
There are lots of things that HTML was never designed for and yet can now handle, esp with the prevalence of broadband connections nowadays. Look at all the multimedia applications now available. HTML has its limitations, but then again, that's why it's not the only game in town anymore. XML, for example, was created to deal with other types of data structures than traditional "documents". In the end, it's all just data. AJAX is a meshwork of several types of technologies brought together and thus is not limited by HTML's limitations, so I'm not sure why you've fixated on HTML limitations.
Oh bullshit. AJAX isn't any kind of "meshwork." It is a way of grabbing data from a remote web serverwithout refreshing the page. It performs one little function. Thats it. It isn't even particularly novel. Everything else remains roughly the same as it was 5 years ago. HTML is still just a document markup language with a couple for form elements thrown in.
And excuse me, I'm the one fixated on HTML? I believe I gave you a URL to an XML based alternative (XUL) to HTML for GUI's.
Again, check out Google Suggest. It brings up search terms from their ENTIRE index, AS YOU TYPE. I think I can safely say that a thesaurus is MUCH smaller than Google's search index. I was amazed myself the first time I used it. Didn't think it was possible in a web app. I was wrong. BTW, just how much is your CPU and hard drive running while you're typing something in Word? B/C mine is doing pretty much nothing. I don't know where you're getting the notion that Word is such a processor intensive application. It's not exactly tracking weather in real time. Specifically what part of Word, do you think CAN'T be run across the Internet?
Depends on the technologies used. Using HTML/AJAX, none of it. Not to any usable degree anyway. I'm sure someone will try anyway though.
Then you haven't tried Yahoo's NEW E-mail Beta. When it comes out to the general public and you've tried it, you might re-think the necessity of a local e-mail app over one that's accessible anywhere you might go, using any device that has a standards compliant browser.
My home computer is a P4 1.6Ghz. I won't run XP. I find it to be unnecessarily heavy. Normally I run Linux, but occasionally I boot Win2k. As far as MCE functions go... do you have hardware MPEG compression? If so, that would explain why it doesn't slow your machine. Try doing something more intensive. What about when you are building a large project? How responsive is your desktop? When you click the startmenu, is there a significant delay?
Maybe you'd expect all modern OS's to perform the same under load, but my experience is that they don't. All too often I get annoyed by the lags and delays when pushing XP and Win2k. Some time it is OK, but others it is just unacceptable. YMMV.
It is a question of how well it does it. And my experience is that Windows does it particularly poorly. If your definition of multitasking is simply having two or more programs open at once, fine, but I have higher standards. I expect to be able to browse the web smoothly while I compile a program and burn a DVD in the background.
The only people i've ever known to reboot servers regularly were just really bad sys admins who didn't have the time or skill to deal with persistent problems. Rather than deal with the configuration problems or software bugs, they simply choose to reboot regularly.
There is a third type of person to whom rebooting matters: one who actually cares about resolving problems If you're running a cluster of machines, maybe it isn't worth it to resolve aproblem with an individual node, but if you rely on just one or two servers performing a function, it is usually worthwhile in the long run to solve theproblem. If nothing else, going for long uptimes is a good way to test the over all health of the system. If you reboot regularly, you might not be aware of things like memory leaks which could come and bite you in the ass between reboots.
YOU argued against AJAX vs traditional local apps. That's what my response was based on. NOT on how AJAX is better than other web apps. I'm just saying that AJAX brings us closer to the local app feel and yet gives you the flexibility and other advantages of a web app (as I listed previously).
Closer in the sense that adding central heating/air brings a mobile home closer to feeling like a modern 3 bedroom, two story house, sure.
Um, you act as if it's not already being done by Google, Yahoo, Microsoft, and others. Clearly, there are plenty of "smart enough" programmers out there. I also have no idea why you think server run MS Word would be positively frightening since you never say why. I also have no idea why you think HTML would limit you.
HTML is meant for rendering documents and simple forms. If you can'tfigure out how that would limit you, I don't know what to tell you.If you've ever programmed in a real GUI environment with proper widgets, events, callbacks, etc, you'd understand.
I'm also still not clear as to why you would have a problem with a Word-type application running of an internet server.
Because it would be slow as molases, for one thing.
Huh? Have you used ANY AJAX apps? GMail, Google Maps, Microsoft Live, the new Yahoo Maps, the new Yahoo Mail, etc? Which one of these takes an agonizingly long time to load?
I've used all but Microsoft Live, and none feel much like a desktop application. They're basically just traditional web apps that don't reload as often. No menu bars, no key shortcuts, few proper UI widgets. The list goes on.
The web browser was PREVIOUSLY document "oriented" only because whoever designed the web browser said so. Not because it's inherently so. If Google, Microsoft, Firefox, or whoever decides to extend its functionality such that it's better optimized for applications, then that's precisely what it's designed to do.
It isn't a matter of "optimizing" for applications. A whole new language and rendering model is required. Mozilla has done this. It is called XUL. The whole Firefox UI itself is written in XUL. But even with this there are problems because XUL apps run in a sandbox and cannot interact with theOS to a significant degree... for security reasons. Also, the project is a bit stalled becase Mozillia developers only really work on theparts of XUL that Firefox and Mozilla use extensively.
I think that the real problem here is that you, my friend, lack imagination or vision. The limitations of today are NOT limitations of tomorrow.
I think the problem here is that you don't understand the technologies.
Again, huh? Correct me if I'm wrong, but when you open up Google Maps, it doesn't put the ENTIRE map onto your computer. Just the parts that you're looking at. And it does it asynchronously which is why it feels so smooth compared to previous map apps like MapQuest. Likewise, let's take an imaginary word processor designed by AJAX as an example. If you're not using the thesaurus, it simply won't download onto your computer.
But when you do want to use the thesaurus, are you going to want to wait 1 minute while it downloads? Loading just part of a map is different than loading just part of an application. I think you underestimate the value of having an entire application runningfrom a relatively fast local hard drive using proper UI elements.
As for short-cuts being difficult to implement in a web-app, I again recommend you try out some of the fine AJAX applications such as Gmail before you jump to such conclusions.
I've used Gmail. Good webmail application. But reallly not that much different than a traditional web app. I'd still prefer a local application running on my desktop independent of a web browser.
Let me ask you this: why are you so against AJAX applications?
i have no problem with AJAX at all. I use it in my own web
And in reality it just makes things like disk I/O extremely slow, ala OS X. Personally, I am pretty disappointed by OS X as a server. Both in stability and speed. If that is a good example of what a microkernel can do in the real world...
And even once started, it is slow. I find Windows desktops to be HORRIBLE multitasking environments. Try unzipping a large file in the background and the machine comes to a crawl. On Linux you hardly even notice it unless you try to do something that requires lots of CPU. I mean, obvoiusly you're not going to get 100% CPU for each process, but the desktop shouldn't crawl.
I always found it amusing that Windows and Mac users used to think that multitasking meant just having Word and IE open at the same time.;-)
"Ev'ry OS has oopdates, but not ev'ry OS reeequires a reboot!"
Seriously though, very few Linux updates, for example, require a reboot. Most updates occur in user space and can be adequately applied by restarting the applicable services (if any). You just have to be aware of exactly what is being updated and what it affects.
In the (non-Windows) server world, rebooting is a big no-no.
While I agree that natural rights are not granted (by definition), I do think one can sign them away. I believe we all have the natural right to do anything we want. Anything. That is our "natural" state. Forming governments and societies is a process by which we selectively and willfully forfeit certain natural rights. That is why we make documents such as the Constitution which set aside certain rights and call them "inalienable." While some natural rights cannot be signed away (legally), some can because they are not "inalienable."
This avoids the problem of "granted rights" by defining a government as a body whose power is to suspend rights on a contractual basis (the Constitution being part of the contract). Our task then becomes a continual process of keeping the government in check to make sure it doesn't go too far. In this sense, the government has power "only at my whim," as you say.
Next time you open up your favorite word processor or whatever, look at thecomponents and consider how one might implent them in HTML/CSS. You might find that you take a lot of things for granted. Consider key-shortcuts. How do you do this with HTML/CSS? HTML/CSS/AJAX provide a pitiful array of "events" which can be acted upon. You can't capture basic things like "ctrl-S" (to save a document), for example.
Have you ever programmed applications in HTML/CSS? Without using klunky javascript UI libraries, it is nearly impossible. You just get an interactive webpage that doesn't reload. Doesn't interact with your localfilesystem. Doesn't handle events well. Etc.
Slow and clunky like every other "Javascript UI trying to be like a desktop application" implmentation i've seen. Also, note that there is a lot more going on here than just AJAX. It is clever. I will give it that much. But I don't see people using it seriously when they can get much better REAL applications to run ontheir computer.
#1 Immediate deployment - You can distribute your web-served application nearly instantly. Tell me what corporation WOULDN'T love the idea of having their 1000 employees have near instant access to an Office-like application and not have their IT department lift a pinky finger?
What does this have to do with AJAX? You could always deploy web based apps instantly.
#2 Portability - I can use the same application at any location and it'll have the same feel. If website also offers storage, I can also work on the same document/e-mail/project. Don't tell me that you wouldn't find a web version of MS Word that you could access from any internet connected computer, INCREDIBLY useful.
Portable... as long as the programmer was smart enough to make it work with the quirks of all browsers on all platforms. Frankly, I find the thought of a web based MS Word to be positvely frightening. But again, this doesn't have much to do with AJAX. You're limited by the HTML, not your ability tocomunicate with a server.
#3 Everyone would be using the most up-to-date versions. I'm sick of having to download updates to my dozens of programs. Would LOVE it if everytime I used an app, I didn't have to even think about it.
You'd rather wait 5 minutes for the application to load in a web browser every time you wantedto use it? Surely there are better ways of managing applications than cramming them into a document (not application) oriented web browser.
#4 Takes up very little space on your harddrive, and doesn't mess with your OS. Yes, storage is cheap, but raise your hand if you haven't had to ever re-install Windows (or simply chose to do so) because you've installed and uninstalled so many freaking apps on your computer, your registry is FUBAR, and your OS feels like it's running on a 386? How about because your menus read like an encyclopedia index of apps and are just cluttered beyond all recognition? Yeah, thought so. Plus, I just hate having a 10 gig application, that I use like once a month, sitting on my machine. Makes defragmenting, virus scans, and ad-ware scanning a royal pain too.
So you'd rather DOWNLOAD the 10 gig application every time you want to use it? Where do you think all that Javascript, HTML, CSS, and graphics go when you view a web page?
Also, realize that most applications would not run effectively inside a web browser. Web browsers impose someheafty restrictions on what a program can do. As a general rule, they can't access your harddrive. Even trivial things like hot-keys (shortcuts) are difficult to implement in a web app.
1) No need to install your heavy app on every desktop that needs it with all the joys of rollout and maintenance.
I'm not saying that a good web based application platform would not be a Good Thing(tm). I'm just saying that AJAX isn't it. AJAX give you one thing: the ability to talk to a server without refreshing the HTML. Great. But how exactly does this turn HTML into a proper application UI?
2) There is a rapidly increasing set of backend AJAX components that implement all the regular application controls. For example take a look at Blueshoes.
First of all, projects like Blueshoes have very little to do with AJAX. AJAX is JUST a method of communicating with a web server without refreshing the page. That's it. Second, technically it is a frontend, not a backend. Third, projects like Blueshoes are slow, ugly hacks. Every single one of them. What is need is something like XUL which works on all browsers.
I agree. Web browsers (and AJAX) lack two crucial features needed for GUI development. The most important by far is a packing system. There is no way to tell the browser you want one element to be as compact as possible, and you want the element next to it to be as large as possible. This stuff has been in GUI APIs for decades, because it's a requirement. If you could get at the APIs that Mozilla uses to draw its GUI, and use those in the content area, that would be a start. But right now you just have to guess at element sizes.
XUL provides both. AND you can use it with AJAX. But, alas, it only works with Mozilla based browers.
"All the important features?" You listed one. The ability to write data to "disk." The question is, how does this turn a document into an application? This is the fundamental problem. Documents are not applications and applications are not documents.
Indeed, laying out a page with CSS/HTML can be a bit of a pain, but it does offer more flexability in layout than a strict box model would. For example, you can "float" a div in HTML such that all other elements can flow around it. Even position it outside of its defined "box" using negative margins and all that. I think a box model would be far too strict for use it in general document layout.
This is the basic problem. Good document layout and good application layout are two very differnt things. We're trying to force documents to be applications. And it just isn't going to work.
Am I missing something? I've always thought that was part of why people didn't do this before - amount of coding needed to implement a simple app is vastly more than with something like.NET or QT. Is that not true?
That is true. By the time you write all of your CSS, HTML, Javascript, and Whateeveryouuseonthebackend, you could have done the same thing a real GUI programming environment 10 times over. Also, HTML simply lacks the UI elements that most other environments take for granted. Sliders, listboxes, treeviews, progress meters, canvas, useful textarea, etc. All those things are completely missing from HTML.
Unit testing is also big in Ruby on Rails (no "courses" for that though). I think it is a matter of whether or not there is a proper framework for implenting tests. If there isn't a framework, I can imagine unit testing becoming more work to implement than it is worth.
-matthew
Testing, in this case, is a little different than what you are referring to. I dunno about AspectJ, but with Ruby on Rails you basically program in a bunch of use cases and mock data manipulations and run it with a "make" file. Any time you make significant (or not so significant) changes to the code, you can run your tests and make sure it all works.
And if you really want to get serious about tests, there is technique where you program the tests BEFORE you implement the code. You just keep running the tests until they don't fail and you know you are done (well, almost). It is called test driven development. From that I understand, it saves a good deal of time that would otherwise be spent clicking through an application to see if it works.
Personally, I haven't been able to get into it too deeply. Writing new tests from scratch in a project for which you've already written a big chunk code is daunting and tedious, IMO. You literally have to go step by step through the program and simulate every forseeable use case. I did write some tests and I can see the benefit. I tested what I thought was some rather simple code and found bugs right away. Bugs that might not have been obvious by simply clicking through the application. Also, writing such tests can give you ideas for features that you might not have thought of before.
At this point, I think it is more an issue of discipline than man hours. If I could just get myself to spend a whole day getting tests written, I believe I would save myself far more than that in debugging and traditional testing. And I would feel much more confident about my finished product.
-matthew
I dunno, kinda looks like a penis to me too. Although it is somewhat appropriate seeing as the whole image of the low hanging rock and roll guitar is a bit phallic to begin with.
-matthew
There are two different odds. There are the odds that a particular series of events will occur, and there are the odds involving the results of a particular event in that set. If I flip a coin, there is a 1 in 2 chance that I will get tails. If I flip a coin 4 times in a row and get tails each time, the chances of me flipping the coin a fifth time and getting tails is still 1 in 2. Even though the odds of getting 5 tails in a row are 1:32. Two different sets of odds. That 1:32 figure doesn't apply to the odds of of any individual event in the series... only the probability of the series itself.
Statistically speaking, there is no difference between TTTTT (five tails) and, say, HTHTH. Both have the same probability... 1 in 32.
-matthew
Also, the 2.6 kernels have an extra "preemptable kernel" option which makes desktop operations even smoother.
All modern OS's have somewhat complex schemes for elevating and reducing thread/process priority dynamically. Usually it revolves around giving I/O bound processes less CPU time and CPU bound processes more all without starving any one process. I've actually gotten down to tuning the Solaris kernel scheduling tables for different types of work loads.
Unzipping a file was only one example
of when I experience poor multitasking performance on Windows. And no, I've never turned on the "give priority to background processes" option in Windows.
Have you ever used a unix desktop extensively? It is really difficult to understand what I am talking about unless you have. It is quite easy to become accustomed to the quirks of one OS and not really notice just how bad it is until you try something else which does certain things much better.
-matthew
Dude, melodramatic much? It's also a touch arrogant to make the assumption that your view of what's better IS what's better. For some applications, the minor trade-off in responsiveness is worth the gains in convenience of portability and cost-savings of installation to some people. If you had free gas with that mobile home and you could drive south for the winter and park it on some beachfront area in Mexico, I'd bet that some (actually probably quite a few) people would pick the mobile home over your precious 3 bedroom two story house. IOW, just because you might not find the idea of having a movable home useful, doesn't mean that no one else would.
What makes you think I am making a value judgement against mobile homes? All I am saying is that mobile homes and 2 story houses are not the samething. I am arguing against the idea that AJAX will somehow replace desktop applications. I am not arguing agaist AJAX or web applications in general. As I have said before, I use AJAX in my own applications. You are totally making it out to besomething that it isn't.
Clearly you and I have different ideas in mind about what people want to use AJAX for. In my mind, Office applications like a word processor/spreadsheet/presentation software could easily be useful applications to be run off the internet. What HTML is meant for and what it CAN be extended to do by combining them with other technologies (like, oh say...AJAX?) are two different things.
It would be a totally hack job. Extending HTML in such a way wouldbe a huge mistake. I say use the right tool for the job. And HTML (even with AJAX) is simply not the tool for the job.
There are lots of things that HTML was never designed for and yet can now handle, esp with the prevalence of broadband connections nowadays. Look at all the multimedia applications now available. HTML has its limitations, but then again, that's why it's not the only game in town anymore. XML, for example, was created to deal with other types of data structures than traditional "documents". In the end, it's all just data. AJAX is a meshwork of several types of technologies brought together and thus is not limited by HTML's limitations, so I'm not sure why you've fixated on HTML limitations.
Oh bullshit. AJAX isn't any kind of "meshwork." It is a way of grabbing data from a remote web serverwithout refreshing the page. It performs one little function. Thats it. It isn't even particularly novel. Everything else remains roughly the same as it was 5 years ago. HTML is still just a document markup language with a couple for form elements thrown in.
And excuse me, I'm the one fixated on HTML? I believe I gave you a URL to an XML based alternative (XUL) to HTML for GUI's.
Again, check out Google Suggest. It brings up search terms from their ENTIRE index, AS YOU TYPE. I think I can safely say that a thesaurus is MUCH smaller than Google's search index. I was amazed myself the first time I used it. Didn't think it was possible in a web app. I was wrong. BTW, just how much is your CPU and hard drive running while you're typing something in Word? B/C mine is doing pretty much nothing. I don't know where you're getting the notion that Word is such a processor intensive application. It's not exactly tracking weather in real time. Specifically what part of Word, do you think CAN'T be run across the Internet?
Depends on the technologies used. Using HTML/AJAX, none of it. Not to any usable degree anyway. I'm sure someone will try anyway though.
Then you haven't tried Yahoo's NEW E-mail Beta. When it comes out to the general public and you've tried it, you might re-think the necessity of a local e-mail app over one that's accessible anywhere you might go, using any device that has a standards compliant browser.
I don't know how Yahoo's email client is g
My home computer is a P4 1.6Ghz. I won't run XP. I find it to be unnecessarily heavy. Normally I run Linux, but occasionally I boot Win2k. As far as MCE functions go... do you have hardware MPEG compression? If so, that would explain why it doesn't slow your machine. Try doing something more intensive. What about when you are building a large project? How responsive is your desktop? When you click the startmenu, is there a significant delay?
Maybe you'd expect all modern OS's to perform the same under load, but my experience is that they don't. All too often I get annoyed by the lags and delays when pushing XP and Win2k. Some time it is OK, but others it is just unacceptable. YMMV.
-matthew
It is a question of how well it does it. And my experience is that Windows does it particularly poorly. If your definition of multitasking is simply having two or more programs open at once, fine, but I have higher standards. I expect to be able to browse the web smoothly while I compile a program and burn a DVD in the background.
-matthew
The only people i've ever known to reboot servers regularly were just really bad sys admins who didn't have the time or skill to deal with persistent problems. Rather than deal with the configuration problems or software bugs, they simply choose to reboot regularly.
There is a third type of person to whom rebooting matters: one who actually cares about resolving problems If you're running a cluster of machines, maybe it isn't worth it to resolve aproblem with an individual node, but if you rely on just one or two servers performing a function, it is usually worthwhile in the long run to solve theproblem. If nothing else, going for long uptimes is a good way to test the over all health of the system. If you reboot regularly, you might not be aware of things like memory leaks which could come and bite you in the ass between reboots.
-matthew
Closer in the sense that adding central heating/air brings a mobile home closer to feeling like a modern 3 bedroom, two story house, sure.
Um, you act as if it's not already being done by Google, Yahoo, Microsoft, and others. Clearly, there are plenty of "smart enough" programmers out there. I also have no idea why you think server run MS Word would be positively frightening since you never say why. I also have no idea why you think HTML would limit you.
HTML is meant for rendering documents and simple forms. If you can'tfigure out how that would limit you, I don't know what to tell you.If you've ever programmed in a real GUI environment with proper widgets, events, callbacks, etc, you'd understand.
I'm also still not clear as to why you would have a problem with a Word-type application running of an internet server.
Because it would be slow as molases, for one thing.
Huh? Have you used ANY AJAX apps? GMail, Google Maps, Microsoft Live, the new Yahoo Maps, the new Yahoo Mail, etc? Which one of these takes an agonizingly long time to load?
I've used all but Microsoft Live, and none feel much like a desktop application. They're basically just traditional web apps that don't reload as often. No menu bars, no key shortcuts, few proper UI widgets. The list goes on.
The web browser was PREVIOUSLY document "oriented" only because whoever designed the web browser said so. Not because it's inherently so. If Google, Microsoft, Firefox, or whoever decides to extend its functionality such that it's better optimized for applications, then that's precisely what it's designed to do.
It isn't a matter of "optimizing" for applications. A whole new language and rendering model is required. Mozilla has done this. It is called XUL. The whole Firefox UI itself is written in XUL. But even with this there are problems because XUL apps run in a sandbox and cannot interact with theOS to a significant degree... for security reasons. Also, the project is a bit stalled becase Mozillia developers only really work on theparts of XUL that Firefox and Mozilla use extensively.
I think that the real problem here is that you, my friend, lack imagination or vision. The limitations of today are NOT limitations of tomorrow.
I think the problem here is that you don't understand the technologies.
Again, huh? Correct me if I'm wrong, but when you open up Google Maps, it doesn't put the ENTIRE map onto your computer. Just the parts that you're looking at. And it does it asynchronously which is why it feels so smooth compared to previous map apps like MapQuest. Likewise, let's take an imaginary word processor designed by AJAX as an example. If you're not using the thesaurus, it simply won't download onto your computer.
But when you do want to use the thesaurus, are you going to want to wait 1 minute while it downloads? Loading just part of a map is different than loading just part of an application. I think you underestimate the value of having an entire application runningfrom a relatively fast local hard drive using proper UI elements.
As for short-cuts being difficult to implement in a web-app, I again recommend you try out some of the fine AJAX applications such as Gmail before you jump to such conclusions.
I've used Gmail. Good webmail application. But reallly not that much different than a traditional web app. I'd still prefer a local application running on my desktop independent of a web browser.
Let me ask you this: why are you so against AJAX applications?
i have no problem with AJAX at all. I use it in my own web
I don't know if they "require" a reboot, but most updates ask to reboot. I run Win2k mostly.
-matthew
And in reality it just makes things like disk I/O extremely slow, ala OS X. Personally, I am pretty disappointed by OS X as a server. Both in stability and speed. If that is a good example of what a microkernel can do in the real world...
-matthew
And even once started, it is slow. I find Windows desktops to be HORRIBLE multitasking environments. Try unzipping a large file in the background and the machine comes to a crawl. On Linux you hardly even notice it unless you try to do something that requires lots of CPU. I mean, obvoiusly you're not going to get 100% CPU for each process, but the desktop shouldn't crawl.
;-)
I always found it amusing that Windows and Mac users used to think that multitasking meant just having Word and IE open at the same time.
-matthew
Didn't Mel Gibson say that in a movie once?
"Ev'ry OS has oopdates, but not ev'ry OS reeequires a reboot!"
Seriously though, very few Linux updates, for example, require a reboot. Most updates occur in user space and can be adequately applied by restarting the applicable services (if any). You just have to be aware of exactly what is being updated and what it affects.
In the (non-Windows) server world, rebooting is a big no-no.
-matthew
Of course, it is also his natural right to refuse to pay. So...
While I agree that natural rights are not granted (by definition), I do think one can sign them away. I believe we all have the natural right to do anything we want. Anything. That is our "natural" state. Forming governments and societies is a process by which we selectively and willfully forfeit certain natural rights. That is why we make documents such as the Constitution which set aside certain rights and call them "inalienable." While some natural rights cannot be signed away (legally), some can because they are not "inalienable."
This avoids the problem of "granted rights" by defining a government as a body whose power is to suspend rights on a contractual basis (the Constitution being part of the contract). Our task then becomes a continual process of keeping the government in check to make sure it doesn't go too far. In this sense, the government has power "only at my whim," as you say.
-matthew
Well, try comparing Google Earth to Google Maps.
Next time you open up your favorite word processor or whatever, look at thecomponents and consider how one might implent them in HTML/CSS. You might find that you take a lot of things for granted. Consider key-shortcuts. How do you do this with HTML/CSS? HTML/CSS/AJAX provide a pitiful array of "events" which can be acted upon. You can't capture basic things like "ctrl-S" (to save a document), for example.
Have you ever programmed applications in HTML/CSS? Without using klunky javascript UI libraries, it is nearly impossible. You just get an interactive webpage that doesn't reload. Doesn't interact with your localfilesystem. Doesn't handle events well. Etc.
-matthew
Slow and clunky like every other "Javascript UI trying to be like a desktop application" implmentation i've seen. Also, note that there is a lot more going on here than just AJAX. It is clever. I will give it that much. But I don't see people using it seriously when they can get much better REAL applications to run ontheir computer.
-matthew
What does this have to do with AJAX? You could always deploy web based apps instantly.
#2 Portability - I can use the same application at any location and it'll have the same feel. If website also offers storage, I can also work on the same document/e-mail/project. Don't tell me that you wouldn't find a web version of MS Word that you could access from any internet connected computer, INCREDIBLY useful.
Portable... as long as the programmer was smart enough to make it work with the quirks of all browsers on all platforms. Frankly, I find the thought of a web based MS Word to be positvely frightening. But again, this doesn't have much to do with AJAX. You're limited by the HTML, not your ability tocomunicate with a server.
#3 Everyone would be using the most up-to-date versions. I'm sick of having to download updates to my dozens of programs. Would LOVE it if everytime I used an app, I didn't have to even think about it.
You'd rather wait 5 minutes for the application to load in a web browser every time you wantedto use it? Surely there are better ways of managing applications than cramming them into a document (not application) oriented web browser.
#4 Takes up very little space on your harddrive, and doesn't mess with your OS. Yes, storage is cheap, but raise your hand if you haven't had to ever re-install Windows (or simply chose to do so) because you've installed and uninstalled so many freaking apps on your computer, your registry is FUBAR, and your OS feels like it's running on a 386? How about because your menus read like an encyclopedia index of apps and are just cluttered beyond all recognition? Yeah, thought so. Plus, I just hate having a 10 gig application, that I use like once a month, sitting on my machine. Makes defragmenting, virus scans, and ad-ware scanning a royal pain too.
So you'd rather DOWNLOAD the 10 gig application every time you want to use it? Where do you think all that Javascript, HTML, CSS, and graphics go when you view a web page? Also, realize that most applications would not run effectively inside a web browser. Web browsers impose someheafty restrictions on what a program can do. As a general rule, they can't access your harddrive. Even trivial things like hot-keys (shortcuts) are difficult to implement in a web app.
-matthew
1) I said HTML/CSS
2) Is iTunes itself written in HTML? No.
-matthew
I'm not saying that a good web based application platform would not be a Good Thing(tm). I'm just saying that AJAX isn't it. AJAX give you one thing: the ability to talk to a server without refreshing the HTML. Great. But how exactly does this turn HTML into a proper application UI?
2) There is a rapidly increasing set of backend AJAX components that implement all the regular application controls. For example take a look at Blueshoes.
First of all, projects like Blueshoes have very little to do with AJAX. AJAX is JUST a method of communicating with a web server without refreshing the page. That's it. Second, technically it is a frontend, not a backend. Third, projects like Blueshoes are slow, ugly hacks. Every single one of them. What is need is something like XUL which works on all browsers.
-matthew
XUL provides both. AND you can use it with AJAX. But, alas, it only works with Mozilla based browers.
-matthew
"All the important features?" You listed one. The ability to write data to "disk." The question is, how does this turn a document into an application? This is the fundamental problem. Documents are not applications and applications are not documents.
-matthew
Indeed, laying out a page with CSS/HTML can be a bit of a pain, but it does offer more flexability in layout than a strict box model would. For example, you can "float" a div in HTML such that all other elements can flow around it. Even position it outside of its defined "box" using negative margins and all that. I think a box model would be far too strict for use it in general document layout.
This is the basic problem. Good document layout and good application layout are two very differnt things. We're trying to force documents to be applications. And it just isn't going to work.
-matthew
That is true. By the time you write all of your CSS, HTML, Javascript, and Whateeveryouuseonthebackend, you could have done the same thing a real GUI programming environment 10 times over. Also, HTML simply lacks the UI elements that most other environments take for granted. Sliders, listboxes, treeviews, progress meters, canvas, useful textarea, etc. All those things are completely missing from HTML.
-matthew