I was really hoping GNU Classpath was mostly compatible, and I still test every single Java project against it, but I still find even basic things that work in Java 1.6 don't work in even the latest GNU Classpath.
Example: new String(byte[], Charset) No sir, no such constructor.
It supports the String version (providing the charset name) because more code uses that, but the "correct" way to use it, with a real Charset object, is not supported. It would probably be a few minutes of work to change it, but obviously they're too busy with other things.
Java2D programs barely run at all. Swing is laughable. On the other hand, SWT generally runs perfectly well because it can be incorporated directly, not cloned like Swing.
I also disagree with the great cost of the Java compatibility kit, but having it there at all is a great idea. It's basically one big unit test harness, and we all know unit testing is a good thing when done right. So now Sun have a unit testing framework they can use to ensure new releases really do maintain backwards compatibility, and one that alternate implementations can use to have a reasonable confidence their version of Java actually works.
At this point it wouldn't even surprise me if Mono was rebased on OpenJDK. OpenJDK has a vastly superior garbage collector and JIT engine, and just generally a lot more maturity and skill in its implementation. Mono can reuse a lot of that technology without breaking compatibility with.NET, and then Mono might even become worth using. Until then, we have OpenJDK itself.
That's very geeky and impressive, but basic economics suggests that work like that will become a net loss, not a net gain, as cheap good-enough alternatives emerge. So while it's very geeky, I suspect it's not a good idea to base a business on.
Put down the crack pipe. Java still has at least 3-4x as much penetration as.NET in the enterprise alone, and in community open source.NET barely makes an appearance at all. Microsoft's marketing should not be confused for fact.
I only started Linux around 2.4.16 or so, and I learned iptables properly. It's not even hard if you understand networking itself. Now I just have a few general scripts I deploy when I want, including a very simple one just for client deployments to only allow SSH as incoming.
Firewalls are 100% useless against Flash, which loads via outbound HTTP just like the rest of your web content. I recommend disabling Flash entirely or using an open source implementation like swfdec (which is only slightly more functional than just disabling Flash:P)
Oh believe me, I've been keeping up with ECMAScript and Mozilla Rhino and all of that. It's still rubbish compared to Python and Ruby. I'm just impressed Firefox manages to use it on such a large scope in spite of all its flaws. Well, the same could be said of C++:P
I like Opera as well, but every time I try it it's just web-incompatible enough to piss me off. And even when it's very good, it still doesn't fit at all into Windows *or* Linux. At least Firefox 3 in particular fits right in to GNOME.
You're completely forgetting the most impressive part, that it has a very fast JavaScript interpreter integrated into the entire browser, not just for web page scripts but for browser addons. So that's an entire dynamic programming language with support for quirks from other browsers and bindings to the entire browser's functionality. Knowing that's at the heart of Firefox I can't believe it works at all some days.
Maybe the communication problem is that, yes, you won't lose water, but you'll lose whatever the car is using as its real fuel. So you'll put in your once-ever bottle of water, and as long as you fill up with regular fuel at regular prices, you'll never run out of water! Doesn't matter, some people will buy it anyway.
Microsoft has already released a fair part of Windows' source as the "Research kernel". Surprisingly enough it's not bad, but it takes more than clean code to make a clean operating system.
This isn't fair to say. GPLv3 already offers an incredible level of protection within the limits of copyright law, and you're demonising it for not being able to extend those protections even further. What evidence is there that it is "designed to out-compete other licenses"? If it genuinely offers protections other licenses don't, I very much hope it does get used. We only need several good licenses for different purposes, and I'm of the opinion that GPLv3 is one of them.
There's *always* a non-zero probability of lawsuits, GPLv3 or not. A lawsuit can happen whether or not it will succeed, and legal fees can bury you even if you officially "win". That's just the kind of world we live in. GPLv3 has its faults, but it's built out of compromises that carve out a safe area we developers can use as shelter. As a bonus it almost completely limits the Microsoft-Novell pact's long term damage.
I agree that you can't have it both ways - go public to get investors, then make private decisions to screw those investors. But for us Average Joe Dualcore consumers, Microsoft failing to become less powerful is the best we could ask for. Google becoming more powerful is questionable, but so far they've used their power for far greater good than Microsoft.
Wow, in about 15 seconds that went from being a site I've never heard of, to the one site I have chosen as the worst I've seen in years. Sometimes you think you've learned to keep clear of horrible sites, but the lure of something Slashdotty is too strong to resist. Apparently its own maintainer agrees, as it hasn't been updated in two years.
At least the GPLv3 protects you in this case. If I remember correctly, by distributing to you a GPLv3 implementation of their patent, a company explicitly protects you from suits based on that patent. GPLv3 has guys like you in mind. That's why it's an even more aggressive little-guy protector than GPLv2.
I've found myself using and loving Inkscape for all my vector graphics needs. It supports exporting to EPS which is very nice for integrating into LaTeX documents. I haven't seen anything else nearly as elegant and useful. I've used it even for things it really wasn't designed for, such as orgcharts and graph structures.
Netbeans now has UML tools, though I don't know how they compare to any other product. For the price of nothing you may as well try it out.
All you have to do is give up freedom of thought and beliefs, and you get lots of "benefits" and integration into a "community". Sounds great right? The same could be said of any cult or oppressive political regime.
This argument has been done to death and remains pseudoscience. The answer is very simple. It exists because it is the only way it could exist. The very fact that it does exist is sufficient, and it is not necessary to place an intelligent God at the cause end, much less imply that it's the same God in any particular religion.
I don't have any problem believing there's some intelligent force governing the world, not that I have any in mind. I do refuse to believe that any specific God any religion has come up with is the right one. That would truly be well outside reasonable "chance".
I used to think vi and ctags were enough, but when my first big Java project crept past 2000 or so lines I decided it was time to learn Eclipse. Since then I've written many tens of thousands lines more, and now Eclipse and its plugins have advanced to the point that I even write Python and C/C++ in Eclipse. It's not like starting with Eclipse ties me to Eclipse forever, but as long as I get more machine assistance with Eclipse, I stay with it.
ctags just can't compare to the incredible level of integration you get in Eclipse. Even NetBeans can't compare. Eclipse has its own compliant Java compiler which it uses directly and iteratively, marking where code is broken before you've even saved the file, let alone done a build. And builds themselves happen extremely quickly and automatically, to the point that it becomes completely practical to just import libraries as projects instead of archives and get a little more flexibility.
So what's your problem? Of course it's still available. Well, except when companies go belly-up and the code is lost forever.
Your only issue is that you fail to communicate the difference in tools to your managers, who cannot reasonably be expected to understand intuitively.
It's not their fault if they see two tools, described identically, available for vastly different prices, and end up picking the one that's free and never ties them to a single vendor.
Hey, just out of curiosity, what tools do you as a programmer prefer to pay for? The only thing I could imagine paying for personally would be Qt4. I've tried Visual Studio 2008 Professional and it's still humiliated by Eclipse, so I don't think you're talking about that.
... I'm generally pro-choice... like it being discovered that said baby has no brain... What, and deny the world the next generation of Reality TV stars?
I know very well, but in Python there's none of that "attached to the self class" nonsense. Methods can exist entirely independently, and in fact object methods are just a special case where the self parameter is curried. In Ruby it's the other way around, where being an object method is the norm and being a function is a special case.
But this isn't about implementation details, it's about *idioms*. Where you do map(f, x) in Python, you do x.map{|a| f(a)} in Ruby. So Python is more functional and Ruby is OO.
I was really hoping GNU Classpath was mostly compatible, and I still test every single Java project against it, but I still find even basic things that work in Java 1.6 don't work in even the latest GNU Classpath.
Example: new String(byte[], Charset)
No sir, no such constructor.
It supports the String version (providing the charset name) because more code uses that, but the "correct" way to use it, with a real Charset object, is not supported. It would probably be a few minutes of work to change it, but obviously they're too busy with other things.
Java2D programs barely run at all. Swing is laughable. On the other hand, SWT generally runs perfectly well because it can be incorporated directly, not cloned like Swing.
I also disagree with the great cost of the Java compatibility kit, but having it there at all is a great idea. It's basically one big unit test harness, and we all know unit testing is a good thing when done right. So now Sun have a unit testing framework they can use to ensure new releases really do maintain backwards compatibility, and one that alternate implementations can use to have a reasonable confidence their version of Java actually works.
At this point it wouldn't even surprise me if Mono was rebased on OpenJDK. OpenJDK has a vastly superior garbage collector and JIT engine, and just generally a lot more maturity and skill in its implementation. Mono can reuse a lot of that technology without breaking compatibility with .NET, and then Mono might even become worth using. Until then, we have OpenJDK itself.
That's very geeky and impressive, but basic economics suggests that work like that will become a net loss, not a net gain, as cheap good-enough alternatives emerge. So while it's very geeky, I suspect it's not a good idea to base a business on.
Put down the crack pipe. Java still has at least 3-4x as much penetration as .NET in the enterprise alone, and in community open source .NET barely makes an appearance at all. Microsoft's marketing should not be confused for fact.
I only started Linux around 2.4.16 or so, and I learned iptables properly. It's not even hard if you understand networking itself. Now I just have a few general scripts I deploy when I want, including a very simple one just for client deployments to only allow SSH as incoming.
Firewalls are 100% useless against Flash, which loads via outbound HTTP just like the rest of your web content. I recommend disabling Flash entirely or using an open source implementation like swfdec (which is only slightly more functional than just disabling Flash :P)
Oh believe me, I've been keeping up with ECMAScript and Mozilla Rhino and all of that. It's still rubbish compared to Python and Ruby. I'm just impressed Firefox manages to use it on such a large scope in spite of all its flaws. Well, the same could be said of C++ :P
I like Opera as well, but every time I try it it's just web-incompatible enough to piss me off. And even when it's very good, it still doesn't fit at all into Windows *or* Linux. At least Firefox 3 in particular fits right in to GNOME.
You're completely forgetting the most impressive part, that it has a very fast JavaScript interpreter integrated into the entire browser, not just for web page scripts but for browser addons. So that's an entire dynamic programming language with support for quirks from other browsers and bindings to the entire browser's functionality. Knowing that's at the heart of Firefox I can't believe it works at all some days.
Maybe the communication problem is that, yes, you won't lose water, but you'll lose whatever the car is using as its real fuel. So you'll put in your once-ever bottle of water, and as long as you fill up with regular fuel at regular prices, you'll never run out of water! Doesn't matter, some people will buy it anyway.
What do you mean, leaked?
http://www.microsoft.com/resources/sharedsource/licensing/researchkernel.mspx
It's not exactly SourceForge but it'll get you the source.
I don't know if that'll have the current MP scheduler though.
Microsoft has already released a fair part of Windows' source as the "Research kernel". Surprisingly enough it's not bad, but it takes more than clean code to make a clean operating system.
This isn't fair to say. GPLv3 already offers an incredible level of protection within the limits of copyright law, and you're demonising it for not being able to extend those protections even further. What evidence is there that it is "designed to out-compete other licenses"? If it genuinely offers protections other licenses don't, I very much hope it does get used. We only need several good licenses for different purposes, and I'm of the opinion that GPLv3 is one of them.
There's *always* a non-zero probability of lawsuits, GPLv3 or not. A lawsuit can happen whether or not it will succeed, and legal fees can bury you even if you officially "win". That's just the kind of world we live in. GPLv3 has its faults, but it's built out of compromises that carve out a safe area we developers can use as shelter. As a bonus it almost completely limits the Microsoft-Novell pact's long term damage.
I agree that you can't have it both ways - go public to get investors, then make private decisions to screw those investors. But for us Average Joe Dualcore consumers, Microsoft failing to become less powerful is the best we could ask for. Google becoming more powerful is questionable, but so far they've used their power for far greater good than Microsoft.
Wow, in about 15 seconds that went from being a site I've never heard of, to the one site I have chosen as the worst I've seen in years. Sometimes you think you've learned to keep clear of horrible sites, but the lure of something Slashdotty is too strong to resist. Apparently its own maintainer agrees, as it hasn't been updated in two years.
By the way, for an actual good Slashdot side-site, http://www.seenonslash.com/
At least the GPLv3 protects you in this case. If I remember correctly, by distributing to you a GPLv3 implementation of their patent, a company explicitly protects you from suits based on that patent. GPLv3 has guys like you in mind. That's why it's an even more aggressive little-guy protector than GPLv2.
I've found myself using and loving Inkscape for all my vector graphics needs. It supports exporting to EPS which is very nice for integrating into LaTeX documents. I haven't seen anything else nearly as elegant and useful. I've used it even for things it really wasn't designed for, such as orgcharts and graph structures.
Netbeans now has UML tools, though I don't know how they compare to any other product. For the price of nothing you may as well try it out.
All you have to do is give up freedom of thought and beliefs, and you get lots of "benefits" and integration into a "community". Sounds great right? The same could be said of any cult or oppressive political regime.
This argument has been done to death and remains pseudoscience. The answer is very simple. It exists because it is the only way it could exist. The very fact that it does exist is sufficient, and it is not necessary to place an intelligent God at the cause end, much less imply that it's the same God in any particular religion.
I don't have any problem believing there's some intelligent force governing the world, not that I have any in mind. I do refuse to believe that any specific God any religion has come up with is the right one. That would truly be well outside reasonable "chance".
I used to think vi and ctags were enough, but when my first big Java project crept past 2000 or so lines I decided it was time to learn Eclipse. Since then I've written many tens of thousands lines more, and now Eclipse and its plugins have advanced to the point that I even write Python and C/C++ in Eclipse. It's not like starting with Eclipse ties me to Eclipse forever, but as long as I get more machine assistance with Eclipse, I stay with it.
ctags just can't compare to the incredible level of integration you get in Eclipse. Even NetBeans can't compare. Eclipse has its own compliant Java compiler which it uses directly and iteratively, marking where code is broken before you've even saved the file, let alone done a build. And builds themselves happen extremely quickly and automatically, to the point that it becomes completely practical to just import libraries as projects instead of archives and get a little more flexibility.
So what's your problem? Of course it's still available. Well, except when companies go belly-up and the code is lost forever.
Your only issue is that you fail to communicate the difference in tools to your managers, who cannot reasonably be expected to understand intuitively.
It's not their fault if they see two tools, described identically, available for vastly different prices, and end up picking the one that's free and never ties them to a single vendor.
Hey, just out of curiosity, what tools do you as a programmer prefer to pay for? The only thing I could imagine paying for personally would be Qt4. I've tried Visual Studio 2008 Professional and it's still humiliated by Eclipse, so I don't think you're talking about that.
... I'm generally pro-choiceThe marketing for that game was done all wrong. Insiders report that it was meant as an interactive preview of 3DMark2020.
I know very well, but in Python there's none of that "attached to the self class" nonsense. Methods can exist entirely independently, and in fact object methods are just a special case where the self parameter is curried. In Ruby it's the other way around, where being an object method is the norm and being a function is a special case.
But this isn't about implementation details, it's about *idioms*. Where you do map(f, x) in Python, you do x.map{|a| f(a)} in Ruby. So Python is more functional and Ruby is OO.