I hear a lot of sentiment here that.NET is just a poison pill for Linux. The basic FUD scenario is that a significant number of OSS projects will one day be based on mono or DotGNU and M$ lawyers will issue IPL based C&D orders and all that OSS will not be available on Linux. Bad, very bad.
Why is.NET so tempting to Linux developers? Is it possible that such a managed environment is attractive to sophisticated developers? Why not write to the J2EE platform and look to OSS app servers such as JBoss? Are the differences between J2EE and.NET significant enough to take the risk?
I must admit that features such as operator overloading and shadowing are compelling to me and, yes, I miss pointers.
Another technology along these lines was CASE (Computer Aided Software Engingeering) which went up in a ball of hype since the complexity of the tools could not keep up with the demands of the user base or the promises of the sales team.
That will always be the case. Simonyi's marketing position seems to be trying for sympatico with CTO's whose TCO on their ERP solutions are, shall we say, unmanageble. Like the late Michael Dertouzos, Simonyi is attempting the "I'm mad as hell and I can't take it anymore" style of vision.
All well and good and I wish him success in this venture but he is not the first to market his cool tool as the next killer app and I'm sure that he won't be the last.
As far as managing software complexity, what was that old credo about each tool doing one thing and doing it well?
I'm surprised that there hasn't been any posts to the affect of "hand coded is better" or "learning is good for you"
From a job skills perspective, tools come and go but standards are sticky. If all you know is frontpage or dreamweaver, then you will not command the salary that you could if you know HTML and CSS. Why? Because if all you know is the tool, then you are as dumb as the tool. Once you run into a situation that the tool doesn't cover, you're stumped. You are not an information worker, you are a repetitive tasks worker who just happens to be using a computer.
Regarding this tool, if the output is clean, then maybe the tool is worth using in the same keystroke saving way that generative programming is useful. If it is only of use to those too lazy to learn HTML and CSS, then it may be no more than a fascinating toy.
.NET is equivalent in functionality to RMI but, IMHO, it seems to be more complex to use than RMI. Perhaps that makes it more flexible but having to register a service type (instead of using a common interface) and having to register a channel (instead of doing a lookup into an RMIRegistry) makes using.NET especially onerous after using RMI.
I've not read the particular references sited and I've not seen anyone care to speculate on the nature of the cost vs time curve (i.e. exponential or logarythmic) but my take on this effect isn't so much about bugs in code as it is about errors throughout the entire SDLC.
Here is an example. Let's say that the architect for project X decided to use a file based ISAM instead of a relational database to persist the data. Think how costly the fix would be if this error wasn't discovered until the part of the coding phase where the reports were being written or the part of the stress testing phase where data corruption started turning up. There would be a whole lot of rewriting at that point. Whereas if the error was caught in the architecture or design phase, the cost of the changes would be minimal.
Technologies such as AOP
help mitigate these kind of costs.
It seems to me that most of GNU's file based utilities have some kind of -r recursive option. I could find no such option on Solaris. I realize that there is always a way around this with some combination of find, awk, and sh but the -r is really convenient for me.
It looks like they are entering into the regular ISP business. Perhaps they are spreading a wider net to target more savvy users. That would explain the branding. Most/. readers probably won't be caught dead with an email address like john@aol.com but john@netscape.com sounds cool.
Hmmm, business development idea for slashdot. john@slashdot.org? Think about it.
Caveat Emptor. If the issue is database latency, then caching can improve performance but at the cost of scalability.
Why? Because a simple caching scheme precludes the use of clustering due to the problem of the dirty read.
You can go with a more complex caching scheme that writes dirty objects back to the database but there are problems with this approach. Typically, you either decide that it's okay for the user to see data that isn't always current or you have to implement some kind of "heart beat" system that keeps the different machine's caches in sync with each other.
If, at any point, this "heart beat" algorithm employs a central server to do the management, then you lose single fault tolerance. It's tricky stuff better left to system developers. If you roll your own, then you could end up with a system that displays subtle bugs in highly scaled systems. At best, it's a compromise solution.
This posting reminded me of an interaction that I had with a co-worker. He wasn't a developer in the hard core sense. He was the head of the team that did the web design. He could do flash. I don't know what that entails since I was director over the development team. I don't have any experience with flash.
He wanted to set up a server for his fiance's school. They could not afford Windows and he knew that Linux was cool so he chose Redhat. I believe it was around version 7 at the time.
He would tell me his stories of frustration about setting up RedHat. Every time he wanted to change a configuration option, he would reinstall the OS.
Before the Windows pandemic, I did a lot of System V work. I switched over to Windows because I could make more money but I still would run Unix at home for personal reasons. I ran Microport Unix for a while. I believe my first exposure to Linux was a distro from Walnut Creek called yggdrasil. Now I have old versions of Redhat on both a laptop and a desktop and I play around with these bootable CDs like dynebolic and knoppix.
You can see why I didn't have any problems with Linux. It would never have occurred to me to keep reinstalling Linux whenever I wanted to make a configuration change but that was what came naturally to the co-worker.
I don't know why he made that choice and I felt a little embarrassed to ask. I guess that was the first UI he saw concerning configuration and it was easy and he didn't try to look around for any other way to make his configuration changes.
I did give him some tips and I believe that he did successfully deploy Linux for the school in the end.
Back when I was on the adjunct faculty for USF, I taught an "intro to programming" class for MIS students. In that class, I presented the classic "balance the checkbook" program to the students. At first, I would present a program written in Java but the students would get confused with the curly braces. I rewrote it in Python which made it much easier for the students to understand. Perhaps Python is also fantastic for pros too but I know for certain that programs written in Python are easy to grasp for those new to programming.
I need new batteries for mine but it probably still works. Ah, college! I remember those good old days. Sitting up all night in the dorm writing an unbeatable tic-tac-toe game for the HP41CV.
I see your point. Ritchie and Thompson made significant contributions to the Society of Engineering and to telcos but not to general Society (unless you want to count all those telephone switches that ran off of some variation of Unix). It was Torvalds, et. al, that brought Unix to the masses.
I remember buying Microport Unix for the PC back in the late 80's for $1000. There certainly wasn't going to be a lot of wide adoption at that price.
Re:VS sucks
on
Java vs .NET
·
· Score: 2, Interesting
Actually, VS.NET is pretty buggy once you start using it on large projects. It crashes a lot. The compile is sometimes really slow. The UI designer for web pages/controls is useless on pages with a complex DOM. It has integration glitches with VSS. VS.NET 2003 is not much better.
I've been on teams for both a complex J2EE project and a complex.NET development project and I have tried a lot of IDEs. I still use emacs.
What is the difference between code generation in this sense and template based generators such as [aj]sp? You can write a jsp file that generates C++ just as easily as HTML.
It's easy to communicate with emacs. Simply type this...
For those new to emacs, that "M-" means the meta key which might be the Esc button or it might be the Alt button. "RET" means press the Enter button.
I hear a lot of sentiment here that .NET is just a poison pill for Linux. The basic FUD scenario is that a significant number of OSS projects will one day be based on mono or DotGNU and M$ lawyers will issue IPL based C&D orders and all that OSS will not be available on Linux. Bad, very bad.
Why is .NET so tempting to Linux developers? Is it possible that such a managed environment is attractive to sophisticated developers? Why not write to the J2EE platform and look to OSS app servers such as JBoss? Are the differences between J2EE and .NET significant enough to take the risk?
I must admit that features such as operator overloading and shadowing are compelling to me and, yes, I miss pointers.
Another technology along these lines was CASE (Computer Aided Software Engingeering) which went up in a ball of hype since the complexity of the tools could not keep up with the demands of the user base or the promises of the sales team.
That will always be the case. Simonyi's marketing position seems to be trying for sympatico with CTO's whose TCO on their ERP solutions are, shall we say, unmanageble. Like the late Michael Dertouzos, Simonyi is attempting the "I'm mad as hell and I can't take it anymore" style of vision.
All well and good and I wish him success in this venture but he is not the first to market his cool tool as the next killer app and I'm sure that he won't be the last.
As far as managing software complexity, what was that old credo about each tool doing one thing and doing it well?
I'm surprised that there hasn't been any posts to the affect of "hand coded is better" or "learning is good for you"
From a job skills perspective, tools come and go but standards are sticky. If all you know is frontpage or dreamweaver, then you will not command the salary that you could if you know HTML and CSS. Why? Because if all you know is the tool, then you are as dumb as the tool. Once you run into a situation that the tool doesn't cover, you're stumped. You are not an information worker, you are a repetitive tasks worker who just happens to be using a computer.
Regarding this tool, if the output is clean, then maybe the tool is worth using in the same keystroke saving way that generative programming is useful. If it is only of use to those too lazy to learn HTML and CSS, then it may be no more than a fascinating toy.
In a weird way, this reminds me of the Jumping Jesus Phenomenon
I don't agree with the poster's pros or cons but the introductory remark, concerning targeting Java, seems to be correct.
More accurately, C#/.NET is targeting the masses of VC++/COM developers who were abandoning their platform for Java.
.NET is equivalent in functionality to RMI but, IMHO, it seems to be more complex to use than RMI. Perhaps that makes it more flexible but having to register a service type (instead of using a common interface) and having to register a channel (instead of doing a lookup into an RMIRegistry) makes using .NET especially onerous after using RMI.
I've not read the particular references sited and I've not seen anyone care to speculate on the nature of the cost vs time curve (i.e. exponential or logarythmic) but my take on this effect isn't so much about bugs in code as it is about errors throughout the entire SDLC.
Here is an example. Let's say that the architect for project X decided to use a file based ISAM instead of a relational database to persist the data. Think how costly the fix would be if this error wasn't discovered until the part of the coding phase where the reports were being written or the part of the stress testing phase where data corruption started turning up. There would be a whole lot of rewriting at that point. Whereas if the error was caught in the architecture or design phase, the cost of the changes would be minimal.
Technologies such as AOP help mitigate these kind of costs.
It seems to me that most of GNU's file based utilities have some kind of -r recursive option. I could find no such option on Solaris. I realize that there is always a way around this with some combination of find, awk, and sh but the -r is really convenient for me.
It looks like they are entering into the regular ISP business. Perhaps they are spreading a wider net to target more savvy users. That would explain the branding. Most /. readers probably won't be caught dead with an email address like john@aol.com but john@netscape.com sounds cool.
Hmmm, business development idea for slashdot. john@slashdot.org? Think about it.
Caveat Emptor. If the issue is database latency, then caching can improve performance but at the cost of scalability.
Why? Because a simple caching scheme precludes the use of clustering due to the problem of the dirty read.
You can go with a more complex caching scheme that writes dirty objects back to the database but there are problems with this approach. Typically, you either decide that it's okay for the user to see data that isn't always current or you have to implement some kind of "heart beat" system that keeps the different machine's caches in sync with each other.
If, at any point, this "heart beat" algorithm employs a central server to do the management, then you lose single fault tolerance. It's tricky stuff better left to system developers. If you roll your own, then you could end up with a system that displays subtle bugs in highly scaled systems. At best, it's a compromise solution.
I've heard that the book "Do What You Want, The Money Will Follow" is a good read.
Or if you just want inspiring conversation, try. M-x doctor
This posting reminded me of an interaction that I had with a co-worker. He wasn't a developer in the hard core sense. He was the head of the team that did the web design. He could do flash. I don't know what that entails since I was director over the development team. I don't have any experience with flash.
He wanted to set up a server for his fiance's school. They could not afford Windows and he knew that Linux was cool so he chose Redhat. I believe it was around version 7 at the time.
He would tell me his stories of frustration about setting up RedHat. Every time he wanted to change a configuration option, he would reinstall the OS.
Before the Windows pandemic, I did a lot of System V work. I switched over to Windows because I could make more money but I still would run Unix at home for personal reasons. I ran Microport Unix for a while. I believe my first exposure to Linux was a distro from Walnut Creek called yggdrasil. Now I have old versions of Redhat on both a laptop and a desktop and I play around with these bootable CDs like dynebolic and knoppix.
You can see why I didn't have any problems with Linux. It would never have occurred to me to keep reinstalling Linux whenever I wanted to make a configuration change but that was what came naturally to the co-worker.
I don't know why he made that choice and I felt a little embarrassed to ask. I guess that was the first UI he saw concerning configuration and it was easy and he didn't try to look around for any other way to make his configuration changes.
I did give him some tips and I believe that he did successfully deploy Linux for the school in the end.
Ha, ha. The original poster has confused penguins with lemmings.
Back when I was on the adjunct faculty for USF, I taught an "intro to programming" class for MIS students. In that class, I presented the classic "balance the checkbook" program to the students. At first, I would present a program written in Java but the students would get confused with the curly braces. I rewrote it in Python which made it much easier for the students to understand. Perhaps Python is also fantastic for pros too but I know for certain that programs written in Python are easy to grasp for those new to programming.
I need new batteries for mine but it probably still works. Ah, college! I remember those good old days. Sitting up all night in the dorm writing an unbeatable tic-tac-toe game for the HP41CV.
It's time to get new batteries for that thing.
I see your point. Ritchie and Thompson made significant contributions to the Society of Engineering and to telcos but not to general Society (unless you want to count all those telephone switches that ran off of some variation of Unix). It was Torvalds, et. al, that brought Unix to the masses.
I remember buying Microport Unix for the PC back in the late 80's for $1000. There certainly wasn't going to be a lot of wide adoption at that price.
Here is a simple experiment.
Surf to msdn.microsoft.com
Enter the string "System.Web.UI.WebControls.ListItem" (sans quotation marks) and press "Go"
Enter the same string in the google search toolbar.
I believe that anyone who conducts this simple experiment will quickly be able to determine who has the better search engine.
Time to mention the emacs major mode for C#
Actually, VS.NET is pretty buggy once you start using it on large projects. It crashes a lot. The compile is sometimes really slow. The UI designer for web pages/controls is useless on pages with a complex DOM. It has integration glitches with VSS. VS.NET 2003 is not much better. I've been on teams for both a complex J2EE project and a complex .NET development project and I have tried a lot of IDEs. I still use emacs.
What is the difference between code generation in this sense and template based generators such as [aj]sp? You can write a jsp file that generates C++ just as easily as HTML.