Changing Climates for Microsoft and Google
ReadWriteWeb writes "Weather metaphors abound as this article looks at the evolving software environment — and in particular the competition between Microsoft and Google. Milan says that while Google enjoys relative dominance on the Web platform today, two fissures exist that will force them to move. The first is Microsoft's ability to use the exact same HTML based strategy as Google (like Microsoft's current Live initiative); and secondly Microsoft leapfrogging the current environment by solving rich application installation/un installation and enforcing an acceptable contract regarding what rich apps can do on a user's machine.
Unfortunately for Google, Microsoft is a lot closer to solving these two issues than people think. Microsoft has the best virtual machine with .NET, the best development tool with Visual Studio and the best access to developers with their MSDN programs. And they have a notion. Steve Ballmer himself has started touting the exact strategy they need — Click Once and Run."
... respect.
That's just about the worst possible news. Microsoft's strategy of making it all-too-easy to install and run questionably-trustworthy code is why the email virus, web browser malware, and -- worst of all -- botnet problems have become the unsolveable epidemics that they are. Does anyone believe that Microsoft will actually get it right this time, in terms of introducing some practically workable mechanism for allowing only trustworthy code? (Not to mention the difficulty of meaningfully defining "trustworthy" in this context...)
I'd have to say that Visual Studio pretty much rocks. I use it for c++ development only, and am very happy with it. If linux had any dev environment that was ANYWHERE NEAR as good as VC++, maybe I wouldn't despise working on it.
You can argue about .NET, and about Visual Studio dude, but there is NOTHING that compares to MSDN, and the resources Microsoft makes available to developers. On this, there is no contest.
AdBlock has blocked 19 out of 39 items
so nearly 50% of the page is adverts
sad
Run where? Screaming from the room? For the border?
Click once and run, sure, but run what? The program I wanted, or some spyware installing, DRM-adding beast app? Google has a huge competitive advantage in that they don't need to lock people in with that stuff in order to enjoy success. They simply make apps that perform well, and for some reason people continue to use those. Over time, .Net's massive overhead and microsoft's high licensing costs will cripple upstart developers. These developers will turn to OSS alternatives for cost and other benefits, it's only a matter of time. Microsoft may maintain a large market share, but Google will not "lose" because they're doing something different, even if the end result is a similar set (from a stratospherically high-level view) of apps.
stuff |
Click Once is the biggest problem with MS software. Already we have zero click and back door click software installs. It is the bane of my daily chores to remove and recover from web based installs and applications. As a system administrator, having to run in a windows environment I struggle daily to remind the users to NOT INSTALL SOFTWARE FROM THE INTERNET.
I hate Google Toolbar, Yahoo Toolbar and all the others not because those two are not useful, because they are, but rather because they condition the user to install EVERY FREAKING "IE Toolbar" out there. No Toolbars, period!
Your average user is a clueless idiot, and will click install all sorts of crap as long as he thinks it is okay. IT IS NOT OKAY! IE7 is the latest and greatest FOOBAR automatic install from Microsoft. Hey Microsoft, having IE7 automatically install with automatic updates is a really stupid idea, fire the asshat who signed off on that one. Not everyone is running PIV with a gig of ram necissary to run IE7.
So, as for the "click once and run" crap, keep it to yourselves!
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
An advertizing company with a search engine [and other tools] to drive traffic to its advertizements.
[Microsoft has the best virtual machine and IDE.]
.NET is a suite of tools, some old, some new. Each has a set of strength and/or weakness depending on your point of view. For example, C# and its ability to sidestep strong typing and security server/client side, VBA client side and its ability to drive a lot of client side integration (Office Automation), complicated by the fact most enterprise make this almost impossible with default desktop security, Studio with a serious bent on good integration with anything Microsoft but not so good with anything else... coupled with documentation that is completely outdated on MSDN (OLE Object Stream initialization for embedded controls). There are some serious architectual flaws in the whole attempt to integrate OLE/OCX with web pages and services (including support of archaec pre-web stuff.) Extended clip board support... Complexity injected via SOAP/XSL...
Using persuasive language without a qualification comes accross as marketing FUD. Please qualify "best" for us.
So please qualify "best". Because its not reduced complexity, increased quality, best reliablity, best scalability, best security, shortest delivery time, easy integration, or fastest performance...
/\/\icro/\/\uncher
"Click Once And Run"...Away?
Why can't all fpga/microcontroller manufacturers just release free optimizing compilers???
Eclipse? KDevelop? Emacs?
Again.. If linux had any dev environment that was ANYWHERE NEAR as good as VC++, maybe I wouldn't despise working on it.
I agree that Microsoft does have a very nice development approach, but to claim that ClickOnce is comparable to todays HTML/Javascript applications is really reaching. Corporate Users will likely have this ability (once the organization deploys .NET 2.0 runtime), but expecting Windows Live or Yahoo to give up on the AJAX binge for ClickOnce deplyoments is not likely. ClickOnce is more like Java Web Start. We've had that technology for years now, but for some reason, these web apps persist.
Technology Consulting & Free Downloads
Given, Microsoft has a lot of legacy technology and platforms that give them an edge moving forward. But you cannot ignore the other part of the momentum this technology carries with it. All the bugs, limiting architectures, and requirements for legacy support makes it harder to go into a new direction.
My prediction is that the more the environment changes, the bigger an advantage the newer players gain over the large, legacy companies that build their company on incremental products, like Microsoft does with Windows.
who | grep -i blond | date cd ~; unzip; touch; strip; finger; mount; gasp; yes; uptime; umount; sleep
They have .NET which is greta and all, but for the Web they leverage ASP.net which is still a dinosaur of an idea.
Google has GWT, which only about 100 people on Earth get right now. Google has an understanding for the Web, Web applications and how users should interact in the World Wide Web far surpassing MS's "reactive" method of toolkit design.
I see two companies. One which is using old methods, not innovating or developing new ideas and assuming stability in something as fast moving and cutting edge as the WWW. I see another company challenging old ideas (relatively old anyways) and proving the WWW is more than Web Pages and stateless client/server communication.
I see a company that think they get this but only see flashy UI's as the means to the end here. I see another company that understand the UI is just a view to this new idea that the Web is a series of intercommunicating applications users can access from anywhere.
But then, I don't expect many people, especially a monolith who's made their fortunes through brute strength rather than new ideas, to see this until it's apparently obvious. The search for the holy grail of the Web's next "killer app" is right in front of peoples faces.
"If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer
You can try for yourself:
on www.google.com search for 'microsoft':
Results 1 - 10 of about 393,000,000
on search.live.com search for 'google':
google page 1 of 751 results
I like my search results 'unbiased', so I choose google.
Google provides software services. You go to Google to get directions, information, maps, images, etc. You use their rich web apps.
.Net framework, which competes excellently against Java. (And that competition will force BOTH VM's to continue to improve!)
MS provides tools for creating rich web apps. Sure, they produce some of their own apps (MSN Search, Live, etc...) to compete with Google. But their tool-set for the most part the best IDE in the industry. This allows any Joe-Schmoe coder to kick out rich web apps. They have an an amazingly robust VM in the
So comparing the two companies is slightly irrelevant. Comparing MS's apples to Google's apples, Google wins, no questions asked. Comparing MS's oranges to Google's oranges... well, Google doesn't have much for oranges.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
"Dominance" is easy as long as you don't intend to charge for it. If Google puts a price on Google's free-as-in-beer service offerings, alternatives will start to look more attractive.
(I don't run Google ad/spyware software (e.g., the Google toolbar) here because I don't like other people's software phoning home; I don't think the "advertising on everything" gambit will work on my dev tools either.)
An advertizing company with a search engine [and other tools] to drive traffic to its advertizements.
Google's goal is to make information available and useful to people. They do so through a variety of means, and currently their profit model is based on advertising. It's tempting to reduce companies down to soundbytes, but it's not really useful for understanding how they operate or what they'll do in the future.
Read the EFF's Fair Use FAQ
Have you actually used visual studio? it degrades to a useless piece of rubbish after a few months.
.NET I would say that they are on equal footing, except Java is more mature, open source has things like EJB etc....
It may be better than Googles offering (nothing) but probably isn't better than eclipse/jbuilder.
And after using both Java and
thank God the internet isn't a human right.
Microsoft has the best virtual machine with .NET
If it's the best then why doesn't it work on a Mac or Linux?
Summation 2
I really wish they would include the canvas tag in their next version of Internet Explorer. This would make the door wide open for an endless number of thin applications using cool graphics. But alas, there is not yet a standard for browser rendering of pixel graphics. It wouldn't be surprising if Microsoft tried to sabotage the inclusion of the canvas tag in web pages because using such powerful features in the browser would be against their rich client policy.
Have currently been using the canvas tag myself in IE using google's excanvas and it rocks! Please give us Canvas!
I'll concede on the third allegation which I interpreted as the denial of access to the source code. This is one of the reasons that I have Linux running on my home box since I like to know how things tick on the inside. But I develop with M$ at work and I wanted to point a few things:
Actually, I don't know if I could say that it is the best ever but it is a damn good virtual machine! It can run as well or even better of its equivalent JVM http://www.gotdotnet.com/team/compare/Benchmark_rJust b/c it's made by M$ doesn't mean that it is a horrible product. The company itself makes some really shady ethical decisions but there are a lot of developers working for M$ just like us who want to release a great product.
Microsoft has the best virtual machine with .NET, the best development tool with Visual Studio and the best access to developers with their MSDN programs.
.NET only runs on Windows. Therefore, .NET could not be the best virtual machine for any platform other than Windows.
1) The best virtual machine runs on my platform and preferably others.
2) The best development tool runs on my platform and allows me to write applications that run on my platform an preferably others. Visual Studio does not run on anything other than Windows and makes it difficult to write application that will run on any platform other than Windows. Therefore, Visual Studio could not be the best development tool.
3) The developers I look for write software for my platform and preferably others. The majority of developers available through MSDN are focused on developing Windows software using Windows development tools. Therefore, MSDN is not the best way to access developers.
Having to work for a living is the root of all evil.
I will give a fast list of companies. Some of them you may have heard of.
Apple
IBM (OS/2)
Novell (Netware)
Sun (Java, Solaris)
Lotus (Ever heard of Lotus 123?)
WordPerfect (I always thought that Microsoft DOS Word 3.0 was a brilliant WP. Very little interface. WordPerfect was clearly the big dog and it still has penetration in the legal field)
Netscape
It is true that many of these competitors were the #1 player and Microsoft managed to pass them. To suggest that none of them could compete with Microsoft seems to be based on the idea that if Microsoft won, then clearly the competitors were not even in the same league, whereas in most cases it has more to do with business cases. Google hasn't even started to compete against Microsoft in any meaningful way. While giving away software is a way to gain market penetration, (Microsoft gave away IE to beat Netscape), eventually you have to look at the way people make money. Microsoft does this through enterprise licensing, (wherein, they charge per user in environments that already have technical support staff so they have less to worry about as far as support), and through bundling their software on new PC's, where they charge less per copy but know that DELL will cover user support and software installation.
In any case to suggest Microsoft has never been in competition with companies with significant resources is nonsensical. The fact that their techniques of requiring PC manufacturers to sell their OS on every machine they ship or pay higher per machine licenses allowed them to shut out all other OS's (why buy two operating systems when I HAVE to buy windows) was unfair and predatory, or that their tradition of non-public API's allowed their own apps to have improved performance, or their tendency of announcing vaporware (did you put in 2006 or 2007 in your office pool for the release of longhorn?), and writing in specific code into windows to forbid it to run on top of DR-DOS. A company that had to cheat as much as Microsoft has, is not a company that hasn't faced competition. Rather it is a company that has used every resource it has to claw its way to the top.
The real question has more to do with whether Microsoft (or anyone) can constrain competition when the tools to create world-class applications are so inexpensive. I mean a pc for 300, linux for free, cheap broadband, cheap virtual hosting. Even Microsoft is giving away their development stuff for free. And with telephones becoming the new laptop, it just makes it even less clear how a big company gains. I mean it isn't going to be because of speed to release product if we are talking MSoft.
Consider two classic applications for two platforms. One is more or less owned by Microsoft, the other more or less owned by Google. The apps are familiar to every programmer: 'Hello World' done in C++ and HTML.
Repeat after me:
HTML is not code.
HTML is not code.
HTML is not code.
What is not shown is the C++ compiler and linker that turns code into executable. Also not shown is the web browser which takes HTML and makes it presentable. And that's really the only difference between these two programs.
That and, I don't know, Turing completeness?
What do you mean by "access any database" do you mean a gui database administration tool that allows a user to create tables on any database? Or do you mean compatibility with any database server (oracle, mssql, postgresql)? Or do you mean a gui application with a database backend and along with picking the dev environment we pick a database server too and build the tables etc?
If you mean the last of those options (IE building a custom app that stores customer data in a database) I might take an extra day to build a simple app in Java...
My app will run on windows, mac, linux, be web accessible (via standard browser or handheld), and will scale to millions of users by simply adding hardware.
Now try using Visual Studio to match that..
Sure anyone can open MS Access or Visual Studio and build a little database app for a 5 person company, but the data is now locked up in windows, building in web access is a pain, and you can't run anything but windows on your desktops.
Amazon vs. Microsoft for One-Click operations
Lindows vs. Microsoft for Click and Run operations
Pringles vs. Microsoft for Once You Pop, You Can't Stop operations
This flies in the face of science.
While I generally agree that VC is one of the best development IDEs out there (and I have used several open source alternatives, namely for coding in different languages), it has some glaring bugs that make me want to rip my hair out.
VC 2003 had (and still has) an extremely annoying bug in its shortcut code whereby a compulsive ctrl-c and ctrl-v user like myself (in fact I've never quite determined which shortcut combination triggers it) can result in the end of a source file being duplicated twice. (So, for example, a header that ends in "}" may have another "}" appended. This would be OK if it wasn't for the fact that you couldn't actually see the additional "}" until you restarted VC (or opened the file in another editor). Alas, I've wasted many hours pulling my hair out trying to find errors in my code caused by superfluous braces etcetera that don't exist.
I thought VC 2005 would save the day and solve this issue, which it did at the expense of an even more annoying one. I'm talking about the new intelli-sense in VC 2005 which, in large projects, can spend almost a minute "updating" after the most trivial of changes drawing 100% CPU power and bringing your work to a grinding halt. To make matter worse, using the ctrl-s shortcut to save a file freezes the UI until intelli-sense is done updating, and even then intelli-sense doesn't work half the time or is too slow to be of any use. For example, if I declare an instance of a class then attempt to use it, its methods only appear if I type slow enough for intelli-sense to keep up. In another brilliant move, intelli-sense cannot be disabled without renaming a .dll, and even when you do disable it you'll be surprised to find that other features suddenly stop working (for example, the form designer), which means you have to restart VC every time you want to enable/disable intelli-sense.
This "best" development environment is enough to make me want to throw my computer out of the window sometimes. I wouldn't be the least bit suppressed if this is what's taking Vista so damn long?
Uh, right, so to show CLR running "as well or even better of its equivalent" you compare two entirely different web architectures, J2EE and .NET. Kind of like comparing performance of OpenOffice to MS WordPad and concluding that g++ is much slower than MS c++.
.NET gets a lot of its speed by directly calling C functions, whereas in Java pretty much everything is implemented actually as Java code. This is of course a tradeoff since .NET contains a LOT more functions that can potentially be cracked because they are not run as 'managed' code. In the end it's basically a wash on performance; on actual virtual machine operations Java is in general significantly faster and on API calls .NET is usually quite a bit faster.
To benchmark these is complicated as
DotNET has a couple technical shortcomings when it comes to performance, one being the impossibility of fast interpretation of bytecodes (the instructions depend on the argument types so can't be easily dispatched). Another is using "real" generics, which they thought would improve speed by avoiding some box/unbox operations but it also leads to type explosions and, slow instanceof and casts (for example you could use so much memory just due to instantiated types that CLR has to constantly throw away older code and re-JIT, not to mention poor use of cache).
I'll concede that MSDN is a very nice collection of CDs, but I'd trade those CDs for source code any day of the week. On that note, the Linux stack has a wealth of documentation ... but at your local book store.
MSDN is not just a nice collection of CD's - it's all available on-line, and free as in beer. No ads, and it works well in Firefox! That's more than you can say for high-quality documentation for any other platform. I challenge you to prove me wrong.
I personally find the CD collection inferior because you have to update it. Fortunately, the MSDN integration in Visual Studio also uses the on-line MSDN if the sought information is not available locally.
Now, on that note, typically, the architects, developers, and testers you're referring to wouldn't know what to do with source code if it hit them in the head. They represent the lower ranks of the tech profession. Those of us who work in pushing the envelope of new technology almost unanimously reject MS products because they are far too contraining.
That's a pretty unfair and ignorant way to look at people who use Visual Studio. Not only are you ignoring the fact that the most commercially successful pieces of software ever conceived - Microsoft Windows and Office - were developed in Visual Studio by people who certainly do not deserve to be called "the lower ranks of the tech profession" (well, some of them perhaps), you are also ignoring the many other companies who have created successful products developed using Microsoft's tools. I work at such a company, and we are in fact pushing the envelope of new technology in our market. While I would not call Microsoft's products perfect, they have been instrumental to our success.
If your tools constrain you, you may be using the wrong ones; or you may be using them incorrectly. I think you have to try very hard to fail at using Visual Studio.
Quality, performance, value; you get only two, and you don't always get to pick.
Many, but not all.
The company that I work for has some very important customers that don't, and I'd rather spend the time making sure that we worked without regard to operating system than being in the position of having to tell them that we're not interested enough in their business to make our site work for them.
Besides, who knows what the future will bring? Fifteen years ago, if someone told you that you should start developing for Microsoft NT/AS because Novell wouldn't be a factor in the NOS business, would you have believed them?