There is a new Iterable interface you would implement that consists of a single method returning an iterator. Collections types and the built-in Array class implement this interface.
Same here. I spent a a total of forty bucks in the last two days and got about seventy songs. I wouldn't have spent that much money on new music in a month and a half before. It's kind of addictive when it's so easy to search for some music that you remember all of a sudden ("missing" from "everything but the girl" was the last one for me) or hear on TV.
Well, I said right here that it was stupid to try to reimplement.NET API's for different but equally valid reasons. If they wanted free software, they could have developed their own API's instead playing a futile game of catch-up with a thousand well-funded MS developers. Since I'm not mature enough to not say "I told you so", here it is: I told you so!!
Yes, but I also remember the control planet status being a few thousand years long. I guess I'm more interested in how Banks thought up Culture-Earth relations than an imaginary civilization's motives for doing what they do (though that's an interesting thing to think about in Culture's case). Apparently, State of the Art came out in 1989 and Consider Phlebas in 1987, so it is probable that he had a change of mind about Contact bringing Earth into the neighbourhood. Which makes me wanna go back and read the story again (the best SF story ever, imho) to figure out why, dammit...
Aah.. The geek inside me is satisfied now, thanks. That's strange though considering how State of the Art ended, with Contact deciding to not make contact. I wonder what the timeline of the story and the novel are.
If i had to choose between going to a two-month trip to Mars and establishing a permanent base on Moon, I would choose Moon. It's just as much a big and hairy goal, even more so than going to Mars. Think about all the stuff you need to have and what you can get in return:
You would have to develop a viable biosphere technology; think about the possible advances in biology and genetics, not to mention the understanding of complex systems that could come from something like that.
You would have to develop a cheap, reliable moon transport to set up shop 300,000 km away from Earth. Lowering the cost of going to orbit with this kind of development rather than buildindg a one-time, big hunking Mars ship would eventually have a better effect.
You could do much better science from a permanent outpost. Astronomy/cosmology and physics would benefit the most, but nearly every area of science would be able to find something of interest.
It would be a permanent carrot dangled in front of the best and brightest to have a rotation on the Moon.
Of course, a Mars mission does have the advantage of being a bigger "adventure", for the lack of a better word. Not that I believe I would see either of these in the next twenty years...
Well, I've used Windows XP Professional for the last year on a loaded Inspiron 8100 for my work. I also bought an iMac 17' flat panel about six weeks ago to use at home. I'll definitely say that Jaguar is the more stable of the two operating systems. Just getting rid of program installation issues you see on a typical Windows system is enough reason for me to consider OS X as the better OS, seeing as how a sizable percentage of system problems in Windows are caused by installation issues and conflicts between applications. The bottom line is doing work in OS X is easier and more effective compared to Windows XP.
I can't realistically compare the two machines/OS's from a performance point of view but iMac handled everything I wanted it to, including running postfix/fetchmail/IMAP servers to manage all my email. I'll take that over Windows XP any day. In fact, I'm making plans to replace the Inspiron with a Powerbook sometime next year.
On the other hand, Windows XP is definitely an improvement over Windows 2000 (excluding the pain of product activation), especially on the network. It's actually a decent (though bloated) OS when you don't push it too much.
I've seen a couple of crashes with the latest 0.6 release but otherwise it's been stable for me. Flash and Quicktime run just fine, though RealOne Player is not running as a plugin yet. I prefer it Mozilla 1.1 on Mac OS X at this point. BTW, Mozilla popup menus look real ugly on OS X, with thick black borders. What's the deal with that?
I agree that Culture novels are possibly the best science fiction I ever read. Less known is his short story/novella State Of The Art, which is just incredible. You owe it to yourself to read this if you like Banks.
I'd love to see the Culture have a few more internal difficulties. The only conflict in the books seems to be for the individuals in the story. The Culture as a whole seems to breeze through anything.
Because it's so damn big:) The main danger to the Culture would seem to be, well, cultural: different sections growing apart and making a strong enough point of that apartness to turn on the rest of the Culture while becoming something different, a little like the Mechanist/Shaper split in Bruce Sterling's early works. It seems to be a pretty broad church otherwise.
In Excession, this has already happened with a faction of Culture, called the Zetetic Elench, if I remember correctly. Banks doesn't make a big deal out of it though in that it's not the big split you suggest Culture would go through.
I'll go ahead and guess that rather than TMC maliciously rigging the test, the two "experienced" J2EE developers were either incompetent hacks or unprofessional engineers with little pride in their work so it just didn't matter to them. Occam's razor: simplest explanation is most probable...
It is all the more so stupid of them considering that TheServerSide.com (that also belongs to TMC) would have probably given all the advice they needed if they had asked for it in the first place.
Well, I built a product configurator service (think Dell's build-to-order configuration of computers) for a (very) large computer manufacturer that exposed its functionality as a web service. There were at least five applications downstream including a couple of web front-ends in Windows/ASP that used these services and were all written by other teams in other divisions. There would have been no easier way for us to integrate this many applications on a common configuration engine without web services.
I'm convinced that web services is a better way of doing things when you need to integrate coarse-grained components on different platforms.
You can choose "Advanced..." in the "Libraries" tab of the "Java Build Path" section in project properties. From there, it is possible to add class folders instead of JAR's.
Assuming that intelligence comes from interaction, I think it would be interesting if they set up two Cyc's, gave them a huge list of data and let them talk and rate each other's generated inferences. You could even let them build new rules on top of each other's inferences. I think the results might be interesting.
...if connectivity is so important, bite the bullet and order cable as a second backup provider...
That gets me thinking: would it possible to "multiplex" a DSL and a cable connection? I don't think it would be possible on a packet-by-packet basis, but is there anything you can use to balance connections between two routes to outside net and fall back to the other interface if the other one fails?
Oh, goody! The chance to duke it out in front of an audience!;-)
I have done development in both. I can definitively say that the.Net class libraries are in fact stable and full featured.
You'll excuse me if I have my doubts based on the previous track record.
I'll bite. how is this more evil than the file system hierarchy imposed by Java?
First things first. There is no file system hierarchy imposed by Java. The usual package naming convention you see is just that, a convention, and doesn't signify that the packages are in a parent-child relationship. As for the folders, I guess it was just a convenient way of representing the existing convention in a file system. A repository/database based system like Visual Age for Java is free to use whatever it wants. You can just as easily put your classes in a flat list of directories corresponding to packages as long as you have a compiler that understands it (easy to do in a day by driving JDK compiler). The point is, you don't violate the language or API specification by doing so.
nothing similar to inner classes (very powerful feature in Java but easily misused)
yet i could say the same for operator overloading.
I wouldn't say inner classes and operator overloading are at the same level of utility. One is (useful) syntactic sugar, the other is a way to create fine grained objects not easily represented otherwise. See this for an example of their use. This is not to say that operator overloading isn't useful, it's a great way to write seamless data structures. In fact, I wish I had them in Java, but with names and interfaces and without the C++ syntax.
no classloaders (and no, assembly loading is not the equivalent)
How is it not the equivalent?
It's not fine grained. AppDomain's and Assembly's are okay when all you want is to isolate unrelated components from each other (like web apps in a servlet engine), but they fail when those components need to interact with each other. In effect, this precludes a whole class of software that use aggressively component based architectures, like JBoss, HP's Core Services Framework, Apache Jakarta Avalon or the Eclipse IDE Framework, for that matter. The basic problem is that isolation and resolution are lumped together in.NET, and you won't be able to isolate components and resolve references from one component to another at the same time. See the Developer's Guide on MSDN for details. I'd love to be proved wrong on this because I like some of AppDomain's details and similar stuff with more advanced functionality is in JSR 121 for application isolation, so let me know if this line of reasoning is not correct.
event handling integrated into language (gack! twice)
why gack?
Because it's a big mechanism with lots of artifacts hard coded into the language itself. Funny, because you pointed out the difficulty of using operator overloading correctly when I see the cryptic application of operators for managing event listeners in C#. See this article on why delegates are not a good idea, it covers the basics even though it's not about C#'s version of them (I like Objective-C's delegates though, but they are different).
metadata attributes inside source code (gack! three times).
Do you know how elegant metadata would make JUnit?
Reflection works just as well, thankyouverymuch. I find it fundamentally wrong to stuff code with metadata when you can have it separate. I like the descriptor stuff in J2EE, I wouldn't want bits of it in my source code. Yes, sometimes it's more work, but it gives you the flexibility to change mappings (it's always a mapping to something else, be it EJB's, WebMethods in.NET, or whatever) on the fly. Of course there are exceptions, it becomes tedious when there is a 1-to-1 mapping from the code to target domain with no properties on the mapping itself. A canonical example is the @deprecated Javadoc tag in Java. In the end, I think it makes a big difference to have discipline to not abuse such a system, and all previous experience says that MS doesn't have that.
But that's just me, and objects in the mirror may seem further than they really are to you...
See my previous post on this. Basically, the standard was crippled from the start.
This is not only because the ECMA standard libraries are incomplete; they are incomplete in nasty ways, like implemented interfaces, methods and properties missing from classes. The libraries are incomplete in a Swiss cheese sort of way, instead of being cleanly separated into a standardized core and extensions. Add to this the fact that there is no way to know what you write is ECMA standard compatible (API docs have absolutely no reference to the standard), and it's clear to me that Sun and Java have done a better job than most people give them credit for as far as standards compliance goes, even when those standards do not have the approval stamp of an international standards organization.
What standard? Read my previous post on this, and see for yourself how that standard is horribly crippled from the start.
The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."
So what? It's a decent VM design and does the job. If there is future need, it can extended; the whole platform is designed to let this kind of thing happen (class file format versions are the first thing that comes to mind).
As for the libraries; they both suck.
Have you actually done any development in Java? The core class libraries are probably the best thing that happened to me in the last five years, apart from Linux. Their design is for the most part very sound. Can't say anything about.Net, but their libraries probably have a way to go before they grow as stable and functional as Java's.
C# is Java, just with most of the lessons painfully learned from Java applied, and a few of the more ridiculous design mistakes hidden slightly better (automatic boxing).
And more than a few brand-new mistakes along the way. Hierarchical namespaces a la C++ (gack! - flame away if you want), nothing similar to inner classes (very powerful feature in Java but easily misused), no classloaders (and no, assembly loading is not the equivalent), event handling integrated into language (gack! twice), metadata attributes inside source code (gack! three times). It shows all signs of the kitchen sink language syndrom, but then read the spec for yourself and don't take my word for it.
The question isn't "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."
You know, sometimes strong convictions of mind are a sign of shallow and simplistic thinking. Before categorically claiming that "it's so easy to see the answer", make sure you have the experience and knowledge to add weight to those words. It's abundantly clear to me that by any measure, you don't.
Eh, now, I spent way too much of my time answering an AC, so I'll go now.
There is a new Iterable interface you would implement that consists of a single method returning an iterator. Collections types and the built-in Array class implement this interface.
There are VM's that can optimize away bound checks. Sun 1.4.1 Server VM does this, as well as latest IBM VM.
how did you export it as aiff exactly? I saw options to export movies in iMovie, but not the audio only tracks.
Same here. I spent a a total of forty bucks in the last two days and got about seventy songs. I wouldn't have spent that much money on new music in a month and a half before. It's kind of addictive when it's so easy to search for some music that you remember all of a sudden ("missing" from "everything but the girl" was the last one for me) or hear on TV.
Where do you get Serial Experiments: Lain? I have digital cable with a zillion channels but haven't seen that in any of them.
That reminds me: a few years ago Salon did an interview with him that was, let's say, less than favorable. I don't know how much of it was (is?) baloney, but there were a bunch of pissed-off readers because of that interview.
Well, I said right here that it was stupid to try to reimplement .NET API's for different but equally valid reasons. If they wanted free software, they could have developed their own API's instead playing a futile game of catch-up with a thousand well-funded MS developers. Since I'm not mature enough to not say "I told you so", here it is: I told you so!!
Yes, but I also remember the control planet status being a few thousand years long. I guess I'm more interested in how Banks thought up Culture-Earth relations than an imaginary civilization's motives for doing what they do (though that's an interesting thing to think about in Culture's case). Apparently, State of the Art came out in 1989 and Consider Phlebas in 1987, so it is probable that he had a change of mind about Contact bringing Earth into the neighbourhood. Which makes me wanna go back and read the story again (the best SF story ever, imho) to figure out why, dammit...
Aah.. The geek inside me is satisfied now, thanks. That's strange though considering how State of the Art ended, with Contact deciding to not make contact. I wonder what the timeline of the story and the novel are.
That's the first time I hear about the "contact in the next century or two" stuff. Which book is this?
- You would have to develop a viable biosphere technology; think about the possible advances in biology and genetics, not to mention the understanding of complex systems that could come from something like that.
- You would have to develop a cheap, reliable moon transport to set up shop 300,000 km away from Earth. Lowering the cost of going to orbit with this kind of development rather than buildindg a one-time, big hunking Mars ship would eventually have a better effect.
- You could do much better science from a permanent outpost. Astronomy/cosmology and physics would benefit the most, but nearly every area of science would be able to find something of interest.
- It would be a permanent carrot dangled in front of the best and brightest to have a rotation on the Moon.
Of course, a Mars mission does have the advantage of being a bigger "adventure", for the lack of a better word. Not that I believe I would see either of these in the next twenty years...I can't realistically compare the two machines/OS's from a performance point of view but iMac handled everything I wanted it to, including running postfix/fetchmail/IMAP servers to manage all my email. I'll take that over Windows XP any day. In fact, I'm making plans to replace the Inspiron with a Powerbook sometime next year.
On the other hand, Windows XP is definitely an improvement over Windows 2000 (excluding the pain of product activation), especially on the network. It's actually a decent (though bloated) OS when you don't push it too much.
I've seen a couple of crashes with the latest 0.6 release but otherwise it's been stable for me. Flash and Quicktime run just fine, though RealOne Player is not running as a plugin yet. I prefer it Mozilla 1.1 on Mac OS X at this point. BTW, Mozilla popup menus look real ugly on OS X, with thick black borders. What's the deal with that?
I agree that Culture novels are possibly the best science fiction I ever read. Less known is his short story/novella State Of The Art, which is just incredible. You owe it to yourself to read this if you like Banks.
You must be joking, right? How is this a troll? I'd sure like to get to meta-moderate whoever marked this as troll..
I'll go ahead and guess that rather than TMC maliciously rigging the test, the two "experienced" J2EE developers were either incompetent hacks or unprofessional engineers with little pride in their work so it just didn't matter to them. Occam's razor: simplest explanation is most probable...
It is all the more so stupid of them considering that TheServerSide.com (that also belongs to TMC) would have probably given all the advice they needed if they had asked for it in the first place.
I'm convinced that web services is a better way of doing things when you need to integrate coarse-grained components on different platforms.
You can choose "Advanced..." in the "Libraries" tab of the "Java Build Path" section in project properties. From there, it is possible to add class folders instead of JAR's.
Assuming that intelligence comes from interaction, I think it would be interesting if they set up two Cyc's, gave them a huge list of data and let them talk and rate each other's generated inferences. You could even let them build new rules on top of each other's inferences. I think the results might be interesting.
That gets me thinking: would it possible to "multiplex" a DSL and a cable connection? I don't think it would be possible on a packet-by-packet basis, but is there anything you can use to balance connections between two routes to outside net and fall back to the other interface if the other one fails?
This link should be modded up!
Oh, goody! The chance to duke it out in front of an audience! ;-)
I have done development in both. I can definitively say that theYou'll excuse me if I have my doubts based on the previous track record.
I'll bite. how is this more evil than the file system hierarchy imposed by Java?First things first. There is no file system hierarchy imposed by Java. The usual package naming convention you see is just that, a convention, and doesn't signify that the packages are in a parent-child relationship. As for the folders, I guess it was just a convenient way of representing the existing convention in a file system. A repository/database based system like Visual Age for Java is free to use whatever it wants. You can just as easily put your classes in a flat list of directories corresponding to packages as long as you have a compiler that understands it (easy to do in a day by driving JDK compiler). The point is, you don't violate the language or API specification by doing so.
nothing similar to inner classes (very powerful feature in Java but easily misused)yet i could say the same for operator overloading.
I wouldn't say inner classes and operator overloading are at the same level of utility. One is (useful) syntactic sugar, the other is a way to create fine grained objects not easily represented otherwise. See this for an example of their use. This is not to say that operator overloading isn't useful, it's a great way to write seamless data structures. In fact, I wish I had them in Java, but with names and interfaces and without the C++ syntax.
no classloaders (and no, assembly loading is not the equivalent) How is it not the equivalent?It's not fine grained. AppDomain's and Assembly's are okay when all you want is to isolate unrelated components from each other (like web apps in a servlet engine), but they fail when those components need to interact with each other. In effect, this precludes a whole class of software that use aggressively component based architectures, like JBoss, HP's Core Services Framework, Apache Jakarta Avalon or the Eclipse IDE Framework, for that matter. The basic problem is that isolation and resolution are lumped together in .NET, and you won't be able to isolate components and resolve references from one component to another at the same time. See the Developer's Guide on MSDN for details. I'd love to be proved wrong on this because I like some of AppDomain's details and similar stuff with more advanced functionality is in JSR 121 for application isolation, so let me know if this line of reasoning is not correct.
event handling integrated into language (gack! twice)why gack?
Because it's a big mechanism with lots of artifacts hard coded into the language itself. Funny, because you pointed out the difficulty of using operator overloading correctly when I see the cryptic application of operators for managing event listeners in C#. See this article on why delegates are not a good idea, it covers the basics even though it's not about C#'s version of them (I like Objective-C's delegates though, but they are different).
metadata attributes inside source code (gack! three times). Do you know how elegant metadata would make JUnit?Reflection works just as well, thankyouverymuch. I find it fundamentally wrong to stuff code with metadata when you can have it separate. I like the descriptor stuff in J2EE, I wouldn't want bits of it in my source code. Yes, sometimes it's more work, but it gives you the flexibility to change mappings (it's always a mapping to something else, be it EJB's, WebMethods in .NET, or whatever) on the fly. Of course there are exceptions, it becomes tedious when there is a 1-to-1 mapping from the code to target domain with no properties on the mapping itself. A canonical example is the @deprecated Javadoc tag in Java. In the end, I think it makes a big difference to have discipline to not abuse such a system, and all previous experience says that MS doesn't have that.
But that's just me, and objects in the mirror may seem further than they really are to you...
See my previous post on this. Basically, the standard was crippled from the start.
This is not only because the ECMA standard libraries are incomplete; they are incomplete in nasty ways, like implemented interfaces, methods and properties missing from classes. The libraries are incomplete in a Swiss cheese sort of way, instead of being cleanly separated into a standardized core and extensions. Add to this the fact that there is no way to know what you write is ECMA standard compatible (API docs have absolutely no reference to the standard), and it's clear to me that Sun and Java have done a better job than most people give them credit for as far as standards compliance goes, even when those standards do not have the approval stamp of an international standards organization.
What standard? Read my previous post on this, and see for yourself how that standard is horribly crippled from the start.
The design goal of the JVM bytecode was obviously "design the easiest to implement VM that we can compile Java to."So what? It's a decent VM design and does the job. If there is future need, it can extended; the whole platform is designed to let this kind of thing happen (class file format versions are the first thing that comes to mind).
As for the libraries; they both suck.Have you actually done any development in Java? The core class libraries are probably the best thing that happened to me in the last five years, apart from Linux. Their design is for the most part very sound. Can't say anything about .Net, but their libraries probably have a way to go before they grow as stable and functional as Java's.
C# is Java, just with most of the lessons painfully learned from Java applied, and a few of the more ridiculous design mistakes hidden slightly better (automatic boxing).And more than a few brand-new mistakes along the way. Hierarchical namespaces a la C++ (gack! - flame away if you want), nothing similar to inner classes (very powerful feature in Java but easily misused), no classloaders (and no, assembly loading is not the equivalent), event handling integrated into language (gack! twice), metadata attributes inside source code (gack! three times). It shows all signs of the kitchen sink language syndrom, but then read the spec for yourself and don't take my word for it.
The question isn't "Is C#/.NET better than Java" because everyone who isn't a MS hater or a one-language-programmer J2EE hack can see the answer. The real question is: "Is the superiority of C#/.NET enough to offset the costs of moving to it from J2EE."You know, sometimes strong convictions of mind are a sign of shallow and simplistic thinking. Before categorically claiming that "it's so easy to see the answer", make sure you have the experience and knowledge to add weight to those words. It's abundantly clear to me that by any measure, you don't.
Eh, now, I spent way too much of my time answering an AC, so I'll go now.