Does programming really have that much to do with math?
I see or hear this question all of the time in relationship to a degree in computer science. The short answer is:
You can make a living at programming without knowing much about math. Most programmers can get along with some basic algebra skills, and understanding boolean logic.
The long answer is that the question asked in the context of a discussion of computer science shows a lack of understanding of what the field of computer science is. Computer science is not about java or c# or sql. Computer science is about understanding and analyzing why a computer acts a certain way given a certain set of conditions. It is about understanding the best way of instructing a computer to perform tasks. Its about knowing that a computer cannot perform certain tasks no matter how well it is programmed. What does this have to do with math. All of the tasks I mentioned are addressable with some mathematical analysis. A computer scientist will write a program to demonstrate a concept or test a theory. A computer scientist will not write a program to do inventory controll for walmart, unless there is some novel or interesting problems in that task that no one has tackled before. In general someone graduating with a cs degree is well versed in theory, and will have to catch up on the practical aspect of the field. For example, I graduated with a CS degree having only seen one Design Specification Document. I now deal with them every day.
There are many trade schools out there that will give you training in a group of technologies (c#, sql, java, html) and call it a computer science degree. The best of these schools turn out software engineers (a very good skillset to have) the worst of these schools turn out people who are capable of passing a cetrification exam and that is it. In general these guys (the software engineers)can jump right into the business of writing software much more easily than someone with a straight cs degree. However the devry graduates tend to have trouble designing and understanding larger systems, and the ramifications of their decisions within those systems. I find this due to the lack of theoretical underpinnings to their education.
Don't get me wrong. I'm not saying every trade school graduate is not capable of dealing with and analyzing large system analysis. I'm just sayind that in my experience that these graduates come out a little less well equiped for the task. And yes I know several CS graduates who are dundering idiots, so you don't have to tell me about your experience with one.
I'm sorry, but you are mistaken. While genetics has a some effect on good tooth health, good diet and the presence of fluoride have an even greater effect.
It is my understanding that most of the differences in tooth health around the world are due to environmental variance. I grew up in a place where there was a lot of fluoride in the water, and the schools also had programs to provide additional fluoride. This has given me very hard tooth enamel. In the 30+ years of my life, I've only ever had one cavity filled.
One would presume that they would grow the teeth in an environment that fosters teeth that are healthy.
I think that you may be suffering from golden age syndrome. Yes, looking back it's quite easy to spot the albums that recieved the full album as coherent collection of songs treatment from the musicians. These are wonderful gems to be treasured. That however doesn't mean that those albums aren't still produced. As they say, the cream rises. I think that many of the classics will only become apparant as such after a few years to digest and live with them.
There are many albums that have just a few good singles. That has always been the case. However, there have always been a few bands that are capable of treating the album as an artform, and it is a treat to pick up one of their albums. There are other bands that just put out good albums with no filler. The album is wall to wall good songs, but not coherent as a thematic collection of songs. Furthermore there are some bands that hit a homerun with one album, but do marginaly well with subsequent albums.
Art in any format is hard, and so great art only comes along every once in a while. The spaces between the great art are often filled by OK art, which is still better than nothing.
A WYSIWYG with XHTML? Show me one without presentational controls and I'll listen.
Well, I've used ewebeditpro, and it has the ability to enable only the markup that you are looking for. That means that you can disable the bold button. In fact to can disable any button you want. You can create new buttons. That allows the guy who's specifying the format to configure the editor, and once again all is well with the world. This is of course the only one that I'm familiar with, but I'm sure that any person marginally familliar with google could probably find a few others with the features that you speak of.
I'm not saying XHTML is the only solution. I'm sure docbook will work perfectly fine, but xhtml will as well.
I would choose DocBook XML over XHTML 1.x any day of the week and on holidays.
Except that all (X)HTML tools include sundry items like "bold," "italic," "18pt sans-serif," and "horizontal line," and "red." These are all presentation concerns that have no place in standardized documentation.
I guess that's why I clearly stated a SANE subset of XHTML. He has the ability to define the specific subset of XHTML he wishes to support. As someone mentioned good XHTML contains no formatting information. Rather all formatting information is provided via a stylesheet that references classes of elements within the XHTML. By doing this you eliminate the inclusion of presentation concerns within your document. You then have the ability to swap in and out stylesheets at will to specify what formatting is to be done to your content.
Furthermore by supporting a subset of a language that is already known by many people he can leverage that mindshare, and not have to spend as much time training. The key to this approach is of course enforcemnt. He should probably be validating the generated documentation against the strict xhtml schema/dtd. Or if he wanted to be even smarter he could trim down the existing schema/dtd to the specific subset of features he wishes to support, and then all is well with the world.
Why not go for some sane subset of XHTML? Since you have the ability to specify the markup yourself, you can choose what features of XHTML you want to include. That way you get the benefits of having half a jillion tools that already know how to work with your chosen format.
Since it is XML you can perform transforms on it that you need using XSL. One stylesheet for display, a second stylsheet for printing. You could use the XHTML dtd as a starting point, and just start cutting stuff out. The nice thing with starting with an existing format, is that somebody else has done a lot of the hard work already.
I've always wondered why there wasn't something in the OS to force this behaviour, Ie, making sure that App 2 access to the disk is queued until app 1 has finished. Isn't this one of the reasons Windows takes ages to boot? (many processes all competing for the one disk resource?).
You run into a problem where you don't know when app 1 has finished loading in order to start loading app 2. Why, because a loading app looks no different than a running application. You could possibly get around this by having the app set some flag that says "Hey I'm starting up, give me a few extra bashes at the disk before making me yield." The problem with that solution, is what happens if that application never releases the flag. You've got an application that has nearly exclusive access to the disk, and may not be interested in giving it up.
What you really need to do is to redefine boonies.
I live in Kansas City, a decent sized (about 1 million in the metropolitan area) midwestern city. The nice thing about this city, as well as many others in the midwest is that it's not shoulder to shoulder with the next big city. What this gets you is some fairly large stretches of undeveloped area and small towns not more than 20 miles outside of the city limits. I have coworkers who live in these rural areas, and make the 20 - 40 minute commute every day. They have the benefits of living in a very small town (3000 people), but being able to work for a large company. When I say large I mean large... Sprint, Cerner, Garmin. There's a Boeing facility not too far from here.
On top of all that, the cost of living is much lower than the coasts, and while salaries are a little lower, your standard of living will probably improve if you find a comparable job.
While I'm all for starting your own business, there's no reason to rule out your current line of work. You may need to just look in different areas of the country.
Ah, but the beauty of this is that if you did actually did try it at home, then one way or another you wouldn't be at home for long. Depending on how successful you were you would be leaving in either a deep space probe, ambulance or meat wagon.
Or if your failure is spectacular enough you just might be evaporated, leaving as a wisp of smoke on the breeze.
A Television Local Area Network, so you can view Tivo'd shows/movies anywhere in the house without having to have multiple Tivo machines (or cable boxes). About time someone recognised that TV is nothing but push media that can go across a network just like anything else.
They already have this. It's called home media option, and allows you to watch shows recorded on one tivo on another tivo.
I can't speak to your network engineering curriculum, but the curriculum for developer is woefully lacking in any theory. What you have designed here is a curriculum that will produce individuals that are capable of producing software that conforms to a specification, but have not been prepared to create a specification.
There needs to be courses in data structures, algorithm analysis and operating system theory. I would concern myself less with teaching someone how to be a Java programmer, or a.net programmer, and more with what skills are required to be a good X programmer, where X is whatever language/technology that he or she is presented with. This means that the curriculum and your student aren't obsolete when there is a technology du jour.
I will say that the one thing that the CS curriculum that I was involved in didn't prepare me effectively for was, documentation. I think that it would have been nice to have been required to produce more in the way documentation for the projects that I was involved in.
If you can't have enough sense to create a webpage that detects a spike in visits, and handles it approprietly, then tough tits.
OK. I'll bite. Would you mind expounding on how one might go about creating a webpage that detects a spike in visits and handles it appropriatly? I mean I've been doing web development for a while now, and I don't think I've heard of any way of making a person's piddly little vanity web page immune to the slashdot effect. Oh I'm sure that you could do a lot of things to make the server robust, and you could buy more bandwidth from your isp, or you could purchase a colo'd server to host the page on, but do you really think that is a reasonable thing for a person to do?
its obvious that AOP will succeed where OOP, Top-Down Design, UML, and JAD failed.
its another stupid methodology that appdev shops will spend lots of money chasing.
Well OOP, UML and JAD are all usefull tools for developing software. They may not always be the most appropriate tools for solving the problem at hand, but it is silly to discard them out of hand. It's kind of like woodworking, an adz insn't always the appropriate tool for solving the problem, but when it is, you are glad that you've got it.
What is Aspect-Oriented Programming?? I've never heard of it!
the gimmick dejour. yet another programming methodology that hopes (in vain) to eliminate the need for skilled programmers.
Once again someone proves the old saying Better to keep your mouth closed and be thought a fool than to open it and remove all doubt. I can see why the above response was submitted anonymously.
The goal of Aspect-Oriented programming is not to eliminate the need for skilled programmers. The goal is to reduce the local complexity of code. Make it so that when you look at code who's job is to store some data, it isn't cluttered with all of the other code like debugging and error handling. The point of this isn't to remove that code all together, but rather to make it much less tightly coupled. Why should persistence code be married to logging code? The answer is it shouldn't, they are two entirely different functions. Aspect-Oriented programming makes it easier to decouple them. This makes both pieces of code more flexible, and reusable.
Translation:
Oh the old version was terrible, despite Sun saying it was so wonderful when it came out not too long ago, you should switch to the new one (it's really wonderful) and buy/get new tools and software.
Thanks for putting words in my mouth, but what you are saying is not an accurate reflection of what I was trying to get accross. I was merely trying to indicate that many peoples reaction to java is based on old data, and data that has been intentionally skewed by the fact that they have only seen java through the lens of microsoft's ancient vm. This is of course not suns fault. And yes why wouldn't you want to upgrade to the newest version of the jvm. It's free. And why wouldn't sun want to continually enhance their software. If they were to have just left the the environment as it was introduced in the late 90's then yeah it would have fizzled very quickly. But no. They have addressed many if not all of peoples objections to java, and it has become the leading platform for developing business software.
What happened to Sun's "write once run anywhere" hype?
I really don't consider it hype. I write java for a living, and take advantage of this property of java daily. My local dev environment is a shitty old dell nt workstation running apache's tomcat. My stage and production environments are HP bluestone on solaris. We are in the process of migrating code off of bluestone to Weblogic. This process is not requiring us to recompile. About the only way I could make those environments any more different, is If I were to dev on a motorolla 68hc11 and go to production on an origin 2000.
Or are you going to push the latest version of Java to every client? How many MBs is that?
Um sure, microsoft does it with product updates constantly. And 8MB. I've seen windows updates take way over that much space. I mean seriously, do you not patch your software?
Unless they chuck tons of old junk (totally breaking their promise of write once etc) it's likely to get more and more bloated.
I really don't think they've broken their claim of write once run anywhere. I just think you are choosing to misinterpreted what is mean by that. Write once for a given jvm version (not using some stupid proprietary extensions) and your code will run anywhere that that jvm is implemented. What's more is, your code will run anywhere where subsequent versions of the jvm run. The reverse is of course not true. If I develop using jvm version 1.4 and then try and run using an earlier version, well then what dumbass would expect that to work every time.
The short answer to your question is yes, you can really do in java whatever you might otherwise want to do with vb/vc. Most people's complaints at this point are unfounded, and usually based upon unfamiliarity with the latests versions of java, and the vast sea of tools that are available to make java development easy.
The long answer is yes, if you can choose to not support retardedly old jvm implementations. If you are going to try and support microsoft's jvm, then you are going to have a hell of time getting things to work well. I've found that if you support 1.3+ you are usually ok. What would be even better is if you were able to control the jvm under which your application runs, ie bundle the jvm with your application, and use it. That in general would save 99.9% of those types of headaches.
As far as examples of applications that are fairly large scale, and are implemented in java, you might want to look at Intellij's IDEA, or Eclipse. Yes I know that both of those are IDE's, but they are fairly large in scale, and have a fairly sophisticated windowing env.
...But portability is not an advantage it [ant] has over make.
Actually it is. The reason for this is that make (and it's derivatives) relies upon shell commands to extend it's functionality. These shell commands cause the make file to be incompatible to any platform where that shell is not installed. Ant on the other hand can be extended via java, so these extensions are compatible with any other platform that runs the jvm. If make offered some sort of ability to dynamicly add functionality in a platform neutral way, then make would be as portable as ant.
1. Expand.NET framework to cater to the 50 or so programmers out there who like both M$ and functional programming.
2. ???????
3. PROFIT!
You want to know the funny thing... I interviewed at MS (Yes I know I'm a whore). I didn't get the job. I think the primary reason was that durring the whole interview I was bagging on CS curriculums that made use of functional programming languages. It just so happens that at least two of the interviewers were big fans of functional programming. One of them had even studied under one of the people who was responsible for big chunks of the Scheme language specification. I guess there are two take aways from this. One, know more about the backgrounds of those who interview you. Two, don't underestimate the number of programmers who like both ms and functional programming. I manage to find two of them in the same room.
Except that the peristaltic pump cost way more than a windshield washer pump. I didn't do a lot of comparison shopping, but just one of the peristaltic pumps looks like it costs more than the entire rest of the project.
Do some work on the side and use that as work samples.
Does programming really have that much to do with math?
I see or hear this question all of the time in relationship to a degree in computer science. The short answer is:
You can make a living at programming without knowing much about math. Most programmers can get along with some basic algebra skills, and understanding boolean logic.
The long answer is that the question asked in the context of a discussion of computer science shows a lack of understanding of what the field of computer science is. Computer science is not about java or c# or sql. Computer science is about understanding and analyzing why a computer acts a certain way given a certain set of conditions. It is about understanding the best way of instructing a computer to perform tasks. Its about knowing that a computer cannot perform certain tasks no matter how well it is programmed. What does this have to do with math. All of the tasks I mentioned are addressable with some mathematical analysis. A computer scientist will write a program to demonstrate a concept or test a theory. A computer scientist will not write a program to do inventory controll for walmart, unless there is some novel or interesting problems in that task that no one has tackled before. In general someone graduating with a cs degree is well versed in theory, and will have to catch up on the practical aspect of the field. For example, I graduated with a CS degree having only seen one Design Specification Document. I now deal with them every day.
There are many trade schools out there that will give you training in a group of technologies (c#, sql, java, html) and call it a computer science degree. The best of these schools turn out software engineers (a very good skillset to have) the worst of these schools turn out people who are capable of passing a cetrification exam and that is it. In general these guys (the software engineers)can jump right into the business of writing software much more easily than someone with a straight cs degree. However the devry graduates tend to have trouble designing and understanding larger systems, and the ramifications of their decisions within those systems. I find this due to the lack of theoretical underpinnings to their education.
Don't get me wrong. I'm not saying every trade school graduate is not capable of dealing with and analyzing large system analysis. I'm just sayind that in my experience that these graduates come out a little less well equiped for the task. And yes I know several CS graduates who are dundering idiots, so you don't have to tell me about your experience with one.
I'm sorry, but you are mistaken. While genetics has a some effect on good tooth health, good diet and the presence of fluoride have an even greater effect.
It is my understanding that most of the differences in tooth health around the world are due to environmental variance. I grew up in a place where there was a lot of fluoride in the water, and the schools also had programs to provide additional fluoride. This has given me very hard tooth enamel. In the 30+ years of my life, I've only ever had one cavity filled. One would presume that they would grow the teeth in an environment that fosters teeth that are healthy.
I think that you may be suffering from golden age syndrome. Yes, looking back it's quite easy to spot the albums that recieved the full album as coherent collection of songs treatment from the musicians. These are wonderful gems to be treasured. That however doesn't mean that those albums aren't still produced. As they say, the cream rises. I think that many of the classics will only become apparant as such after a few years to digest and live with them.
There are many albums that have just a few good singles. That has always been the case. However, there have always been a few bands that are capable of treating the album as an artform, and it is a treat to pick up one of their albums. There are other bands that just put out good albums with no filler. The album is wall to wall good songs, but not coherent as a thematic collection of songs. Furthermore there are some bands that hit a homerun with one album, but do marginaly well with subsequent albums.
Art in any format is hard, and so great art only comes along every once in a while. The spaces between the great art are often filled by OK art, which is still better than nothing.
A WYSIWYG with XHTML? Show me one without presentational controls and I'll listen.
Well, I've used ewebeditpro, and it has the ability to enable only the markup that you are looking for. That means that you can disable the bold button. In fact to can disable any button you want. You can create new buttons. That allows the guy who's specifying the format to configure the editor, and once again all is well with the world. This is of course the only one that I'm familiar with, but I'm sure that any person marginally familliar with google could probably find a few others with the features that you speak of.
I'm not saying XHTML is the only solution. I'm sure docbook will work perfectly fine, but xhtml will as well.
I would choose DocBook XML over XHTML 1.x any day of the week and on holidays.
Talk about boring holidays
Except that all (X)HTML tools include sundry items like "bold," "italic," "18pt sans-serif," and "horizontal line," and "red." These are all presentation concerns that have no place in standardized documentation.
I guess that's why I clearly stated a SANE subset of XHTML. He has the ability to define the specific subset of XHTML he wishes to support. As someone mentioned good XHTML contains no formatting information. Rather all formatting information is provided via a stylesheet that references classes of elements within the XHTML. By doing this you eliminate the inclusion of presentation concerns within your document. You then have the ability to swap in and out stylesheets at will to specify what formatting is to be done to your content.
Furthermore by supporting a subset of a language that is already known by many people he can leverage that mindshare, and not have to spend as much time training. The key to this approach is of course enforcemnt. He should probably be validating the generated documentation against the strict xhtml schema/dtd. Or if he wanted to be even smarter he could trim down the existing schema/dtd to the specific subset of features he wishes to support, and then all is well with the world.
Why not go for some sane subset of XHTML? Since you have the ability to specify the markup yourself, you can choose what features of XHTML you want to include. That way you get the benefits of having half a jillion tools that already know how to work with your chosen format.
Since it is XML you can perform transforms on it that you need using XSL. One stylesheet for display, a second stylsheet for printing. You could use the XHTML dtd as a starting point, and just start cutting stuff out. The nice thing with starting with an existing format, is that somebody else has done a lot of the hard work already.
I've always wondered why there wasn't something in the OS to force this behaviour, Ie, making sure that App 2 access to the disk is queued until app 1 has finished. Isn't this one of the reasons Windows takes ages to boot? (many processes all competing for the one disk resource?).
You run into a problem where you don't know when app 1 has finished loading in order to start loading app 2. Why, because a loading app looks no different than a running application. You could possibly get around this by having the app set some flag that says "Hey I'm starting up, give me a few extra bashes at the disk before making me yield." The problem with that solution, is what happens if that application never releases the flag. You've got an application that has nearly exclusive access to the disk, and may not be interested in giving it up.
What you really need to do is to redefine boonies.
I live in Kansas City, a decent sized (about 1 million in the metropolitan area) midwestern city. The nice thing about this city, as well as many others in the midwest is that it's not shoulder to shoulder with the next big city. What this gets you is some fairly large stretches of undeveloped area and small towns not more than 20 miles outside of the city limits. I have coworkers who live in these rural areas, and make the 20 - 40 minute commute every day. They have the benefits of living in a very small town (3000 people), but being able to work for a large company. When I say large I mean large... Sprint, Cerner, Garmin. There's a Boeing facility not too far from here.
On top of all that, the cost of living is much lower than the coasts, and while salaries are a little lower, your standard of living will probably improve if you find a comparable job.
While I'm all for starting your own business, there's no reason to rule out your current line of work. You may need to just look in different areas of the country.
Ah, but the beauty of this is that if you did actually did try it at home, then one way or another you wouldn't be at home for long. Depending on how successful you were you would be leaving in either a deep space probe, ambulance or meat wagon.
Or if your failure is spectacular enough you just might be evaporated, leaving as a wisp of smoke on the breeze.
A Television Local Area Network, so you can view Tivo'd shows/movies anywhere in the house without having to have multiple Tivo machines (or cable boxes). About time someone recognised that TV is nothing but push media that can go across a network just like anything else.
They already have this. It's called home media option, and allows you to watch shows recorded on one tivo on another tivo.
I can't speak to your network engineering curriculum, but the curriculum for developer is woefully lacking in any theory. What you have designed here is a curriculum that will produce individuals that are capable of producing software that conforms to a specification, but have not been prepared to create a specification.
There needs to be courses in data structures, algorithm analysis and operating system theory. I would concern myself less with teaching someone how to be a Java programmer, or a .net programmer, and more with what skills are required to be a good X programmer, where X is whatever language/technology that he or she is presented with. This means that the curriculum and your student aren't obsolete when there is a technology du jour.
I will say that the one thing that the CS curriculum that I was involved in didn't prepare me effectively for was, documentation. I think that it would have been nice to have been required to produce more in the way documentation for the projects that I was involved in.
Is that a computer in your pocket or are you just happy to see me?
Bush: Born with a silver spoon up his ass.
More like..
Bush: Born with a coke spoon up his nose.
It's almost like you crossed William Gibson with a smart, funny person, because (compare: though) the style is completely different.
I always thought Stephenson was a cross between Gibson and Vonegut. So there's your smart funny person.
If you can't have enough sense to create a webpage that detects a spike in visits, and handles it approprietly, then tough tits.
OK. I'll bite. Would you mind expounding on how one might go about creating a webpage that detects a spike in visits and handles it appropriatly? I mean I've been doing web development for a while now, and I don't think I've heard of any way of making a person's piddly little vanity web page immune to the slashdot effect. Oh I'm sure that you could do a lot of things to make the server robust, and you could buy more bandwidth from your isp, or you could purchase a colo'd server to host the page on, but do you really think that is a reasonable thing for a person to do?
its obvious that AOP will succeed where OOP, Top-Down Design, UML, and JAD failed.
its another stupid methodology that appdev shops will spend lots of money chasing.
Well OOP, UML and JAD are all usefull tools for developing software. They may not always be the most appropriate tools for solving the problem at hand, but it is silly to discard them out of hand. It's kind of like woodworking, an adz insn't always the appropriate tool for solving the problem, but when it is, you are glad that you've got it.
What is Aspect-Oriented Programming?? I've never heard of it!
the gimmick dejour. yet another programming methodology that hopes (in vain) to eliminate the need for skilled programmers.
Once again someone proves the old saying Better to keep your mouth closed and be thought a fool than to open it and remove all doubt. I can see why the above response was submitted anonymously.
The goal of Aspect-Oriented programming is not to eliminate the need for skilled programmers. The goal is to reduce the local complexity of code. Make it so that when you look at code who's job is to store some data, it isn't cluttered with all of the other code like debugging and error handling. The point of this isn't to remove that code all together, but rather to make it much less tightly coupled. Why should persistence code be married to logging code? The answer is it shouldn't, they are two entirely different functions. Aspect-Oriented programming makes it easier to decouple them. This makes both pieces of code more flexible, and reusable.
Translation:
Oh the old version was terrible, despite Sun saying it was so wonderful when it came out not too long ago, you should switch to the new one (it's really wonderful) and buy/get new tools and software.
Thanks for putting words in my mouth, but what you are saying is not an accurate reflection of what I was trying to get accross. I was merely trying to indicate that many peoples reaction to java is based on old data, and data that has been intentionally skewed by the fact that they have only seen java through the lens of microsoft's ancient vm. This is of course not suns fault. And yes why wouldn't you want to upgrade to the newest version of the jvm. It's free. And why wouldn't sun want to continually enhance their software. If they were to have just left the the environment as it was introduced in the late 90's then yeah it would have fizzled very quickly. But no. They have addressed many if not all of peoples objections to java, and it has become the leading platform for developing business software.
What happened to Sun's "write once run anywhere" hype?
I really don't consider it hype. I write java for a living, and take advantage of this property of java daily. My local dev environment is a shitty old dell nt workstation running apache's tomcat. My stage and production environments are HP bluestone on solaris. We are in the process of migrating code off of bluestone to Weblogic. This process is not requiring us to recompile. About the only way I could make those environments any more different, is If I were to dev on a motorolla 68hc11 and go to production on an origin 2000.
Or are you going to push the latest version of Java to every client? How many MBs is that?
Um sure, microsoft does it with product updates constantly. And 8MB. I've seen windows updates take way over that much space. I mean seriously, do you not patch your software?
Unless they chuck tons of old junk (totally breaking their promise of write once etc) it's likely to get more and more bloated.
I really don't think they've broken their claim of write once run anywhere. I just think you are choosing to misinterpreted what is mean by that. Write once for a given jvm version (not using some stupid proprietary extensions) and your code will run anywhere that that jvm is implemented. What's more is, your code will run anywhere where subsequent versions of the jvm run. The reverse is of course not true. If I develop using jvm version 1.4 and then try and run using an earlier version, well then what dumbass would expect that to work every time.
Fool you once shame on Sun, fool you twice...
Oh please. Grow up.
The short answer to your question is yes, you can really do in java whatever you might otherwise want to do with vb/vc. Most people's complaints at this point are unfounded, and usually based upon unfamiliarity with the latests versions of java, and the vast sea of tools that are available to make java development easy.
The long answer is yes, if you can choose to not support retardedly old jvm implementations. If you are going to try and support microsoft's jvm, then you are going to have a hell of time getting things to work well. I've found that if you support 1.3+ you are usually ok. What would be even better is if you were able to control the jvm under which your application runs, ie bundle the jvm with your application, and use it. That in general would save 99.9% of those types of headaches.
As far as examples of applications that are fairly large scale, and are implemented in java, you might want to look at Intellij's IDEA, or Eclipse. Yes I know that both of those are IDE's, but they are fairly large in scale, and have a fairly sophisticated windowing env.
Actually it is. The reason for this is that make (and it's derivatives) relies upon shell commands to extend it's functionality. These shell commands cause the make file to be incompatible to any platform where that shell is not installed. Ant on the other hand can be extended via java, so these extensions are compatible with any other platform that runs the jvm. If make offered some sort of ability to dynamicly add functionality in a platform neutral way, then make would be as portable as ant.
1. Expand .NET framework to cater to the 50 or so programmers out there who like both M$ and functional programming.
2. ???????
3. PROFIT!
You want to know the funny thing... I interviewed at MS (Yes I know I'm a whore). I didn't get the job. I think the primary reason was that durring the whole interview I was bagging on CS curriculums that made use of functional programming languages. It just so happens that at least two of the interviewers were big fans of functional programming. One of them had even studied under one of the people who was responsible for big chunks of the Scheme language specification. I guess there are two take aways from this. One, know more about the backgrounds of those who interview you. Two, don't underestimate the number of programmers who like both ms and functional programming. I manage to find two of them in the same room.
A peristaltic pump would be far better...
Except that the peristaltic pump cost way more than a windshield washer pump. I didn't do a lot of comparison shopping, but just one of the peristaltic pumps looks like it costs more than the entire rest of the project.
Thank you, that's much better. ;)