So we shouldn't separate presentation from code because it makes it less portable? Actually, it often makes it MORE portable. My mobile web application is a great example. I was able to reuse a huge amount of code and target a VERY different client thanks to the fact my presentation and my code were extremely well separated.
As far as portability in general... think about this. What would happen if you had to port one of your apps to Gameboy? What would YOU do!? What about my TI-86? Huh?
Since I'm a developer who knows what they're doing, I know my target platforms before I start the project. If there is a chance I might need to port this to another platform in the future, then I take that in to account before I start the project.
Crippling your application, or dramatically increasing development time, or being forced to choose a less than ideal development platform, because you want to make sure you can run it on another platform regardless of the business requirements right now is a bad idea.
Sorry, but that VAST MAJORITY of web application will be created for one platform and stay on that platform for the foreseeable future. Applications that do require portability typically start off with that requirement from the get go. This is especially true for server side applications. (Which makes it all the more ironic that Java is so popular on the server side.)
Nonetheless, there is Mono. They have made great progress. Is it perfect? Of course not. But neither is Java's portability.
Lastly, you seem to view.NET developers as some kind of less educated developer. I'm not sure why. To some extent, I could see that with VB developers. They often started off with an MIS or IT background and had to use VB to solve simple problems. In fact, VB is great for that. VB evolved into a language that was great for a lot of things. But the stigma stuck around... with some justification..NET developers live in a world that is far more advanced in nearly everyway than VB. We have all the great runtime features that the rest of the developer word has. I can write my.NET in C++, or one of several hundred other languages that can target the CLR. What, exactly, makes a.NET developer any less of a developer than somebody who chooses to toil away in PERL or Python or Java?
Funny, because I both drag/drop controls AND understand what's going on under the hood. Why? Because I know what I'm doing.
ASP.NET lets me develop web applications that are fast, cross platform, and extremely robust. When I encounter a cross-browser issue, I look at the HTML and I fix it.
Blaming Microsoft when you should be blaming ignorant developers is plain stupid.
Are you arguing that development tools and platforms should be inherently difficult to use so that the chance of a stupid developer getting anything done is minimal?
Making a platform difficult to use results in even the smart developers getting less done. I would rather risk facilitating idiots than not giving the smart developers the best bang for their buck.
ASP.NET is about a lot more than drag/drop. It's about creating an event-driven web development platform that comes just about as close as you can get to separating code from presentation. It's about making everything as object oriented and encapsulated as possible to both facilitate reuse and help maintainability. It's about providing an incredibly rich development platform that frees up developers to concentrate on features and business logic.
I'll give you a simple example. I was tasked with exposing a large portion of an existing web site to mobile users. This site needed to be accessible by a wide variety of cell phones, PDAs, and other mobile devices. Normally, this task would be huge. I would have to detect virtually every model of phone and render things just a little differently.
Thankfully, ASP.NET Mobile Controls do this for me. They have what amounts to a huge browsercaps file and the controls sense the requesting device and modify their output accordingly. I went from zero mobile support to supporting thousands of kinds of phones in about 3 days... and all of that 3 days was spent doing easy if not mundane things like figuring out the best flow for the mobile version of the site.
On the other side of things, I've used ASP.NET to create applications that handle millions of requests a day. One application I recently finished mimics Google's AdSense technology. I can easily support over 1000 requests a second on a single Dell server with fairly modest hardware. (2.4 Ghz, 1 GB ram.)
ASP.NET also has some awesome reliability features. I can make a change to a site and all existing requests are fullfilled using the previous version while all new requests are run on the updated version. This means not a single request is lost, even when deploying a new version of an application. I deal with applications that must have 100% availability... not a single request can get lost. Ever. Is this possible without ASP.NET? Sure! I could bring down a segment of my web farm at the load balancer, update that segment, bring it back online, and then move to the next segment... but that's a pain in the ass. And that's just one small example. There are hundreds more.
So stop bashing something you obviously don't really understand. Go back to writing your web apps in PERL or PHP or JSP and enjoy it. You don't know what you're missing.
We've got dual 2001 FP 21" screens, 2 GB of ram, 3.6 Ghz CPU, 140 GB HD for each development box.
I use VS.NET 2k3 and VS.NET 2k5 beta 2 for all my development, both.NET and otherwise. I usually keep most of my watch windows and project explorer type windows on my right screen, and my code on the left. This changes during debug sessions as VS.NET supports different window sets depending on what you're doing.
Things get even cooler in VS.NET 2k5 which supports all sorts of multi-mon coolness. (Like being able to say that when I run a web project my firefox and IE instances should be sent to one monitor or the other, or when I build a Windows app to have it sent to a diff monitor.
VS.NET also supports some great window layouts for document/code comparison... so I can sync scroll code windows on each monitor to compare differences between my local copy and the copy in source control... etc.
I also use WinPLOSION for those rare times when my dual screens aren't quite enough.
My home setup is a single 2405 FP (24" widescreen), and a fairly similar machine but with a Radeon X850 XT PE for when I need a Counter-Strike break.:)
Probably not... I would suspect that Microsoft hires (or acquires companies with) enough employees to make that 1000 quite a bit less than 1.75% per year.
Microsoft outsourcing 1000 jobs to China equates to about 1.75% of its work force. (57,000)
In addition, it's very probable that most of those jobs are for non-critical, non-core projects. This frees up the local developers to work on more important projects.
Could Microsoft hire more local workers to fill these positions? Sure... but it's hardly news that Microsoft outsources 1.75% of its workforce.
I've personally used DotLucence, which is the.NET version of Lucene.
I used it to index a fairly complicated ASP.NET portal site on which there was little or no static content and all content was secured using a custom implementation of ACLs. The ASP.NET application allowed you to run mini-applications within it, called Portlets.
These portlets had very complex security rules. For instance, you could say that certain users could click this button, while others could not. Certain users can view this portlet page, while others cannot. Etc. This security was all implemented using an interesting blend of.NET attributes and code access security.
Needless to say, indexing this was very complex. We can't just index everything because that might expose too little or too much to those who are searching for content. DotLucene allowed us to implement a system that could index all available content while filtering those results depending on the person doing the search. DotLucene would "ask" all portlets in the system to give it all searchable content, along with a unique ID to identify that piece of content. When displaying the results to the user we would first "ask" the portlet if this particular user should be able to access this content. If so, let it through... otherwise, filter it out.
In the end the system could support many, many simultaneous users and searching was almost instant. Great application.
Re:...the same features we delivered seven years a
on
Windows 95 Turns 10
·
· Score: 2, Interesting
Try this simple task using Python:
Get the list of processes on the current machine and a remote machine. Compare the two and find out if the versions of the processes on each machine are different.
Once you're done with that, stop the services which have older version numbers, update them, and restart them.
Can this be done with Python? Sure. Is it "easy"? Um... hell no. It's about 30 lines of script code in Monad.
And it's not just about the number of lines of code, obviously. It's also about how easy it is to maintain and add features to your script.
Re:...the same features we delivered seven years a
on
Windows 95 Turns 10
·
· Score: 5, Informative
At least with the error prone parsing through text piped through app after app, I'm at any point able to thow a tee in the script and send the output somewhere that I can visibly read it and interpret it.
You can do this with Monad as well. I can simply send the output of any monad command directly to the console window, just like you would if it were text, and it will output it using a default text output mode.
I can also take that output and modify it slightly and send it manually back through the next step in the chain to do some additional testing
You can do the same with Monad. You can easily serialize the output from a Monad command, do with it as you will, and feed it back in... but usually it's not necessary.
I'm not sure that simply examining the properties of the.NET object affords me the flexibility.
As far as I can tell, anything you can do with a text-based command line app can just as easily be done with Monad. Monad supports all the ideas behind text based interaction, but adds the ability to work with the output as objects as well.
I'd also point out that I personally disagree with a lot of this obsession over object oriented code in everything these days. In a short script with a defined start and end, there's no need for the obfuscation of object orientation.
I agree, and with Monad you don't *have* to take advantage of the object-based interactions. If you want just text, you've got it.
Re:...the same features we delivered seven years a
on
Windows 95 Turns 10
·
· Score: 1
Yes... the one where you provide an example to show how I'm wrong.
Re:...the same features we delivered seven years a
on
Windows 95 Turns 10
·
· Score: 1
The good guys will use them to dig out information that they want. The bad guys will examine them for buffer overflows.
Ya, except for the fact that they're all.NET objects... in other words, they're managed. There are no buffer overflows... unless you can find one in the CLR, which hasn't happened since.NET was released despite many, many people looking for one.
Re:...the same features we delivered seven years a
on
Windows 95 Turns 10
·
· Score: 5, Informative
MS brags and boasts about Monad, which is still vaporware, but it sure will be the best shell ever -- saying nothing of the fact that this has been available forever in *nix.
Monad turns the command line into an object oriented environment where instead of having to do error prone parsing through text piped though app after app, you treat the output from one app as one or more.NET objects on which you can execute methods, examine properties, and pass them to other applications for further processing.
This is, in fact, far ahead of anything currently available on Unix or Windows. In fact, it's so far ahead of what is currently available it will take quite a long time to get all parts of the OS and the apps that run on top of it to fully support the concepts Monad introduces. It's pretty damn innovative, if you ask me.
Oh, and it runs quite well for vaporware. I've been running it for a couple of months now (in beta form) and it's pretty damn cool.
I'm sure we can come up with more. In the end, MS is very good at marketing. People just love their koolaid.
Ya, when you're making shit up you can pump it out like a champ.
This allows for you to view the content with no adapter whatsoever. It's just lower quality.
And, even better, it's not mandated by the government... so if you don't like it, don't buy it. And if enough people agree with you (they won't) then it will fail.
No, actually it doesn't at all. Any more than a DVD obsoletes every VCR.
In fact, the standards being proposed allow for the HD content to be displayed on older monitors at reduced quality.
In other words, unless you want to take advantage of the higher quality content you can keep your TV.
It's funny, because I didn't see people bitching and moaning about the government mandating all TV be digital in a few years... and that actually DOES obsolete the majority of displays out there right now.
It's great. High quality video. I can even record my own stuff right off TV!
I heard of this upcoming thing called DVD... supposed to be a lot better than VHS, but it will require an entirely new player! I can't even play my existing tapes on this new hardware!
It's crap if you ask me! Down with these evil companies trying to force me to buy a new player!
Microsoft, since they percieve Google to be a threat are very likely going to make this Dekstop thing break. It's happened many times before and you know it will happen again. This tried and true Microsoft Tactic(tm) could result in extra work for the Google programmers who wrote this app.
Prove it. People on Slashdot love claiming that MS has intentionally broken competitor's applications on Windows or DOS, but nobody is ever able to produce a single shred of actual evidence to support this claim. Sorry, but just because the claim is repeated thousands of times in a Google search result doesn't make it true.
In fact, it has been fairly well debunked for years now... yet people continue to cite it as proof of MS' evil empire.
Give it a rest.
If they did this, they might be able to port to other OSes and possibly provide an avenue for people to exit the Windows fold and go with a GNU/Linux/Google Desktop distribution.
When will you, and the rest of Slashdot, realize that basically nobody cares about other operating systems. Google writes applications to add value to their services and they want to expose it to the largest possible user base with the least effort. This means Windows. Period.
Most people don't WANT to exit the Windows fold, despite your self delusions. Most people are pretty happy with Windows, and the minority that aren't are probably satisfied enough to stick with it because of how widely used and supported it is.
You seem to have this idea that the millions of Windows users out there are just crying out for an escape path. Hate to break it to you, but that's just not the case.
Seems to me that you think Google is heading in the wrong direction because it's opposite to the one you've obviously chosen.
So we shouldn't separate presentation from code because it makes it less portable? Actually, it often makes it MORE portable. My mobile web application is a great example. I was able to reuse a huge amount of code and target a VERY different client thanks to the fact my presentation and my code were extremely well separated.
.NET developers as some kind of less educated developer. I'm not sure why. To some extent, I could see that with VB developers. They often started off with an MIS or IT background and had to use VB to solve simple problems. In fact, VB is great for that. VB evolved into a language that was great for a lot of things. But the stigma stuck around... with some justification. .NET developers live in a world that is far more advanced in nearly everyway than VB. We have all the great runtime features that the rest of the developer word has. I can write my .NET in C++, or one of several hundred other languages that can target the CLR. What, exactly, makes a .NET developer any less of a developer than somebody who chooses to toil away in PERL or Python or Java?
As far as portability in general... think about this. What would happen if you had to port one of your apps to Gameboy? What would YOU do!? What about my TI-86? Huh?
Since I'm a developer who knows what they're doing, I know my target platforms before I start the project. If there is a chance I might need to port this to another platform in the future, then I take that in to account before I start the project.
Crippling your application, or dramatically increasing development time, or being forced to choose a less than ideal development platform, because you want to make sure you can run it on another platform regardless of the business requirements right now is a bad idea.
Sorry, but that VAST MAJORITY of web application will be created for one platform and stay on that platform for the foreseeable future. Applications that do require portability typically start off with that requirement from the get go. This is especially true for server side applications. (Which makes it all the more ironic that Java is so popular on the server side.)
Nonetheless, there is Mono. They have made great progress. Is it perfect? Of course not. But neither is Java's portability.
Lastly, you seem to view
Funny, because I both drag/drop controls AND understand what's going on under the hood. Why? Because I know what I'm doing.
ASP.NET lets me develop web applications that are fast, cross platform, and extremely robust. When I encounter a cross-browser issue, I look at the HTML and I fix it.
Blaming Microsoft when you should be blaming ignorant developers is plain stupid.
Are you arguing that development tools and platforms should be inherently difficult to use so that the chance of a stupid developer getting anything done is minimal?
Making a platform difficult to use results in even the smart developers getting less done. I would rather risk facilitating idiots than not giving the smart developers the best bang for their buck.
ASP.NET is about a lot more than drag/drop. It's about creating an event-driven web development platform that comes just about as close as you can get to separating code from presentation. It's about making everything as object oriented and encapsulated as possible to both facilitate reuse and help maintainability. It's about providing an incredibly rich development platform that frees up developers to concentrate on features and business logic.
I'll give you a simple example. I was tasked with exposing a large portion of an existing web site to mobile users. This site needed to be accessible by a wide variety of cell phones, PDAs, and other mobile devices. Normally, this task would be huge. I would have to detect virtually every model of phone and render things just a little differently.
Thankfully, ASP.NET Mobile Controls do this for me. They have what amounts to a huge browsercaps file and the controls sense the requesting device and modify their output accordingly. I went from zero mobile support to supporting thousands of kinds of phones in about 3 days... and all of that 3 days was spent doing easy if not mundane things like figuring out the best flow for the mobile version of the site.
On the other side of things, I've used ASP.NET to create applications that handle millions of requests a day. One application I recently finished mimics Google's AdSense technology. I can easily support over 1000 requests a second on a single Dell server with fairly modest hardware. (2.4 Ghz, 1 GB ram.)
ASP.NET also has some awesome reliability features. I can make a change to a site and all existing requests are fullfilled using the previous version while all new requests are run on the updated version. This means not a single request is lost, even when deploying a new version of an application. I deal with applications that must have 100% availability... not a single request can get lost. Ever. Is this possible without ASP.NET? Sure! I could bring down a segment of my web farm at the load balancer, update that segment, bring it back online, and then move to the next segment... but that's a pain in the ass. And that's just one small example. There are hundreds more.
So stop bashing something you obviously don't really understand. Go back to writing your web apps in PERL or PHP or JSP and enjoy it. You don't know what you're missing.
What are you talking about? It is no harder to develop applications that work cross-browser in ASP.NET than any other web development platform.
Perhaps you need to encourage your university to get some new developers, because they're clueless.
Stop blaming Microsoft when you should be firing those developers and getting ones with a clue.
Yes, you're absolutely correct. That's partially what I was getting at with my very-long-sarcastic-description of AJAX. :)
Atlas is Microsoft's entry into the suddenly-popular-even-though-it-has-been-around-fo r-7-or-more-years AJAX trend.
Atlas is a set of extensions to ASP.NET 2.0 that allows for web developers to use AJAX with little or no plumbing work on their part.
It integrates with ASP.NET extremely well and maintains the "event driven" style that ASP.NET is known for.
There is also a Channel 9 video about what Microsoft is doing on the AJAX front elsewhere.
Seems to me that anytime something gets too popular or mainstream the Slashdot crowd starts to turn on it. Google. Skype.
What's next? Microsoft?
I do almost 100% .NET/C# development.
.NET and otherwise. I usually keep most of my watch windows and project explorer type windows on my right screen, and my code on the left. This changes during debug sessions as VS.NET supports different window sets depending on what you're doing.
:)
We've got dual 2001 FP 21" screens, 2 GB of ram, 3.6 Ghz CPU, 140 GB HD for each development box.
I use VS.NET 2k3 and VS.NET 2k5 beta 2 for all my development, both
Things get even cooler in VS.NET 2k5 which supports all sorts of multi-mon coolness. (Like being able to say that when I run a web project my firefox and IE instances should be sent to one monitor or the other, or when I build a Windows app to have it sent to a diff monitor.
VS.NET also supports some great window layouts for document/code comparison... so I can sync scroll code windows on each monitor to compare differences between my local copy and the copy in source control... etc.
I also use WinPLOSION for those rare times when my dual screens aren't quite enough.
My home setup is a single 2405 FP (24" widescreen), and a fairly similar machine but with a Radeon X850 XT PE for when I need a Counter-Strike break.
Sure is a good thing that Linux doesn't have this problem.
When was the last time Microsoft took 6 months to fix a critical security related flaw?
Probably not... I would suspect that Microsoft hires (or acquires companies with) enough employees to make that 1000 quite a bit less than 1.75% per year.
Microsoft outsourcing 1000 jobs to China equates to about 1.75% of its work force. (57,000)
In addition, it's very probable that most of those jobs are for non-critical, non-core projects. This frees up the local developers to work on more important projects.
Could Microsoft hire more local workers to fill these positions? Sure... but it's hardly news that Microsoft outsources 1.75% of its workforce.
I've personally used DotLucence, which is the .NET version of Lucene.
.NET attributes and code access security.
I used it to index a fairly complicated ASP.NET portal site on which there was little or no static content and all content was secured using a custom implementation of ACLs. The ASP.NET application allowed you to run mini-applications within it, called Portlets.
These portlets had very complex security rules. For instance, you could say that certain users could click this button, while others could not. Certain users can view this portlet page, while others cannot. Etc. This security was all implemented using an interesting blend of
Needless to say, indexing this was very complex. We can't just index everything because that might expose too little or too much to those who are searching for content. DotLucene allowed us to implement a system that could index all available content while filtering those results depending on the person doing the search. DotLucene would "ask" all portlets in the system to give it all searchable content, along with a unique ID to identify that piece of content. When displaying the results to the user we would first "ask" the portlet if this particular user should be able to access this content. If so, let it through... otherwise, filter it out.
In the end the system could support many, many simultaneous users and searching was almost instant. Great application.
Try this simple task using Python:
Get the list of processes on the current machine and a remote machine. Compare the two and find out if the versions of the processes on each machine are different.
Once you're done with that, stop the services which have older version numbers, update them, and restart them.
Can this be done with Python? Sure. Is it "easy"? Um... hell no. It's about 30 lines of script code in Monad.
And it's not just about the number of lines of code, obviously. It's also about how easy it is to maintain and add features to your script.
At least with the error prone parsing through text piped through app after app, I'm at any point able to thow a tee in the script and send the output somewhere that I can visibly read it and interpret it.
.NET object affords me the flexibility.
You can do this with Monad as well. I can simply send the output of any monad command directly to the console window, just like you would if it were text, and it will output it using a default text output mode.
I can also take that output and modify it slightly and send it manually back through the next step in the chain to do some additional testing
You can do the same with Monad. You can easily serialize the output from a Monad command, do with it as you will, and feed it back in... but usually it's not necessary.
I'm not sure that simply examining the properties of the
As far as I can tell, anything you can do with a text-based command line app can just as easily be done with Monad. Monad supports all the ideas behind text based interaction, but adds the ability to work with the output as objects as well.
I'd also point out that I personally disagree with a lot of this obsession over object oriented code in everything these days. In a short script with a defined start and end, there's no need for the obfuscation of object orientation.
I agree, and with Monad you don't *have* to take advantage of the object-based interactions. If you want just text, you've got it.
Yes... the one where you provide an example to show how I'm wrong.
The good guys will use them to dig out information that they want. The bad guys will examine them for buffer overflows.
.NET objects... in other words, they're managed. There are no buffer overflows... unless you can find one in the CLR, which hasn't happened since .NET was released despite many, many people looking for one.
Ya, except for the fact that they're all
MS brags and boasts about Monad, which is still vaporware, but it sure will be the best shell ever -- saying nothing of the fact that this has been available forever in *nix.
.NET objects on which you can execute methods, examine properties, and pass them to other applications for further processing.
Oh really? Perhaps you should go get a clue about Monad. If you have trouble reading, you can even watch a pretty moving picture.
Monad turns the command line into an object oriented environment where instead of having to do error prone parsing through text piped though app after app, you treat the output from one app as one or more
This is, in fact, far ahead of anything currently available on Unix or Windows. In fact, it's so far ahead of what is currently available it will take quite a long time to get all parts of the OS and the apps that run on top of it to fully support the concepts Monad introduces. It's pretty damn innovative, if you ask me.
Oh, and it runs quite well for vaporware. I've been running it for a couple of months now (in beta form) and it's pretty damn cool.
I'm sure we can come up with more. In the end, MS is very good at marketing. People just love their koolaid.
Ya, when you're making shit up you can pump it out like a champ.
When I was 12 or so I bought a 2400 Bps internal modem for my Compuadd 486 SX25.
:)
I had no idea what I was doing so I called up the Hayes support line. I told the support guy I wanted to install my new modem but needed help.
He asked me if I had my computer's case off, to which I replied yes. He then told me to go ahead and plug the modem into one of the free slots.
Zap! OUCH! Poof!
He neglected to tell me to turn off the computer.
Hey, I was 12... leave me alone.
For those of you who are worried, some how, both the computer and the modem survived and I eventually got it installed and working.
This allows for you to view the content with no adapter whatsoever. It's just lower quality.
And, even better, it's not mandated by the government... so if you don't like it, don't buy it. And if enough people agree with you (they won't) then it will fail.
No, actually it doesn't at all. Any more than a DVD obsoletes every VCR.
In fact, the standards being proposed allow for the HD content to be displayed on older monitors at reduced quality.
In other words, unless you want to take advantage of the higher quality content you can keep your TV.
It's funny, because I didn't see people bitching and moaning about the government mandating all TV be digital in a few years... and that actually DOES obsolete the majority of displays out there right now.
The point is that technology changes... people here should know that better than most.
If people aren't willing to purchase an expensive new TV/monitor to view that HD content, then the format will die.
It's only if the content is worth the cost of the hardware to display it will that content succeed. (See: HD TV)
Actually, the terms of the settlement are completely unknown.
It could be that settling was cheaping that continuing the legal battle.
Regardless, this does imply wrong doing in this particular case... fair, or not.
It's great. High quality video. I can even record my own stuff right off TV!
I heard of this upcoming thing called DVD... supposed to be a lot better than VHS, but it will require an entirely new player! I can't even play my existing tapes on this new hardware!
It's crap if you ask me! Down with these evil companies trying to force me to buy a new player!
Microsoft, since they percieve Google to be a threat are very likely going to make this Dekstop thing break. It's happened many times before and you know it will happen again. This tried and true Microsoft Tactic(tm) could result in extra work for the Google programmers who wrote this app.
Prove it. People on Slashdot love claiming that MS has intentionally broken competitor's applications on Windows or DOS, but nobody is ever able to produce a single shred of actual evidence to support this claim. Sorry, but just because the claim is repeated thousands of times in a Google search result doesn't make it true.
In fact, it has been fairly well debunked for years now... yet people continue to cite it as proof of MS' evil empire.
Give it a rest.
If they did this, they might be able to port to other OSes and possibly provide an avenue for people to exit the Windows fold and go with a GNU/Linux/Google Desktop distribution.
When will you, and the rest of Slashdot, realize that basically nobody cares about other operating systems. Google writes applications to add value to their services and they want to expose it to the largest possible user base with the least effort. This means Windows. Period.
Most people don't WANT to exit the Windows fold, despite your self delusions. Most people are pretty happy with Windows, and the minority that aren't are probably satisfied enough to stick with it because of how widely used and supported it is.
You seem to have this idea that the millions of Windows users out there are just crying out for an escape path. Hate to break it to you, but that's just not the case.
Seems to me that you think Google is heading in the wrong direction because it's opposite to the one you've obviously chosen.
You're full of crap.
Microsoft still allows security related updates even for people who fail (or refuse to take) the WGA test.