From a point where he goes slightly off topic, but I really liked it:
It's not so much that the game favors evil, but that the definition of "good" is really twisted:
Good adj: anything which increases the stock price.
Considerations about employees, products, customers and community are all secondary. They only enter the equation as ways to achieve goal 1. Morality or high principles have no place in the corporate discourse. They maximize the stock price, within the bounds of the law. Corporations like Oracle and Exxon tend to be perfectly rational. They "buy laws" because it's perfectly legal to spend money on lobbyists and political campaigns. While you and I might think that it is morally reprehensible to buy elections, like the recent case with Target, it is nonetheless totally legal. Given the rules of the game, it would be bad for a corporation to not buy an election, if failing to do so would negatively impact their stock price. I could rant for a long time on this one, but not today… The whole modern concept of a public company is deeply flawed. But the game is what it is.
Edward Bernays: Propaganda or the movie "version": Century of the Self (both on archive.org, btw Adam Curtis is about as underrated as Robert Fisk -- no means by accident)
Manufacturing Consent (same spirit movie as in the thread)
Understanding Power (basically they simplify and reiterate stuff backed up in this book)
And and if you are still reading this, have fun reading Dictators, by Jacques Bainville.
Robert Fisk's "The Great War for Civilisation: The Conquest of the Middle East" is strongly recommended - a very personal account, and all the better for it.
It's a bit unreasonable for him to get his speculative project (Oak) funded on the one hand, yet on the other he has a problem with the corporation actually earning the money to be able to do that.
A corporation is a technology, it's the metaphysical form of the factory, it's a tool for transforming low-value inputs into high-value outputs. There simply is no point in talking about the morality of inanimate, non-sentient objects.
> There simply is no point in talking about the morality of inanimate, non-sentient objects.
Agree, and I would add: but they have the legal status of persons, and they invoke human "rights" like the right to own property. They even have the right to freedom of speech (Citizens United). They enlist the political support of naïve voters, asserting government encroachment on these "rights". So they want it both ways: They're machines built to maximize value for shareholders, yet they assert the privileges of citizens too.
The fundamental goal of capitalism, at least American capitalism, is to increase the amount of passive income generated by business activity. The functional representation of this is that lenders share of economic activity increases and the borrowers share decreases, and you are all borrowers because you pay taxes and the government pays enormous interest on its debts.
In fact, the only people who are not borrowers to some extent are those who live off tax free government bonds.
I know I'm going to be downmodded, but I don't care, I want to share my feelings.
Java is one of my least favorite things in the world. Yeah, I know, starving children, war, genocide, that stuff is bad too. But Java is what I hate most.
So it makes me ... gleeful ... to see that Oracle is doing such an amazing job killing it. People want to keep using it, they want new features, they want to improve the ecosystem, they want to pay Oracle lots of money for the privilege of using it. But instead, Oracle sues its users, fires the innovators that made it, and does everything in their power to kill it. And now we have a "dead language"(which, as a Perl programmer, is a term I really like to throw around and mean).
Be gleeful all you want, but this is mostly a _patent_ suit. In fact, if you're running a fully compliant Java stack, Sun has given you a patent grant for that and you should be in the clear.
But Perl6 running on Parrot? Oracles JVM-related patents may very well apply, so your best bet is to hope that your favourite language never gets used by a high profile company in one of the next leading mobile platforms.
Google went out of its way not to use any code created by Sun, and didn't even use the JVM as a foundation in order to (hopefully) be in the clear.
So be careful what you wish for. My first reaction was also that of "good riddance!", but in the end the whole situation is just sad. I never liked programming Java, so I decided to keep it out of my programming life. Maybe that's why I don't hate it so much. :)
From what I can tell, there is a patent grant on the OSS version provided you pass the closed source compatibility suite.
> (iv) pass all test suites relating to the most recent published version of the specification of the Java 2 Platform, Standard Edition, that are available from SUN
That's an explicit Java patent grant separate from the open-sourcing (note the 2000 date, long predating OpenJDK). The exact patent status of OpenJDK is somewhat murky, though. Some people (incl. some lawyers) think that there's an implicit patent grant in the GPL, because the GPL explicitly prohibits distributing under the GPL any software that does not have all relevant patents licensed under royalty-free licenses. So if you gave someone a license to use your software under the GPL but didn't give them license to use a relevant patent, your licensing is self-contradictory: you will be simultaneously giving them a license to use your code under the GPL, and then that license is immediately terminated by the GPL's Section 7.
Therefore it's possible that a court might infer that giving someone a GPL license must imply a patent grant, because it would be absurd to assume that the licensor intended to give a license that was immediately self-terminating.
Courts do generally try to avoid interpretations of parties' actions that would assume they were meaning to undertake null or self-contradictory actions. But I'm not sure how much I'd bet on that outcome.
edit: Forgot another unlitigated possible angle. It's one thing to open-source something with a very explicit reservation of patent rights, like "this source code may be used under the terms of the [license], but Sun reserves any rights to patents that may cover portions of the software, which must be licensed separately". But what if you open-source it with a more blanket statement? With the OpenJDK release, there was a lot of rhetoric about openness from Sun, that amounted to: Java is now open source, you may use it for anything you want, as long as you comply with the terms of the GPL. It's possible that a "here, use this for free if you want" offer implies a license of any patents needed to use it. At the very least, it'd be somewhat dishonest to go up to someone and say, "hey, I've got this great thing you can use... here I'll give it to you free", and then come back five years later and accuse them of violating a patent. I mean, you're the one who gave it to them in the first place and told them it was okay to use it! So this might either imply a patent license, or at least present some sort of "inducement" or "estoppel" defense to a patent suit.
While I am no fan of Java the language myself, there is no reason for schadenfreude. I would like to see Java survive, if only because of its virtual machine (and Jython, Clojure, JRuby, etc).
Probably no reason that Clojure and Scala can't be ported to their own VM, especially with Clojure's self-hosting push. Yeah, the JVM has a lot of libraries, but the libraries will follow the developers when the dead-ness of Java starts getting in the way.
Well, no offense, but remind me never to work with you. I'm sorry that the Java programmers were condescending to the Perl programmers back in 2002 but could you just get over it? Sometimes Java is the right tool for a given job. If you're against any platform on principle (aside from the single-vendor principle), then you're guaranteed to be wrong some % of the time.
If all you do is webapps, fine, Java sucks for webapps, continue hating.
That is, if you're not leaking memory or file handles. But assuming you're competent and not using JBoss, long-running process with hotspot native compilation means that it'll soak into a performance profile that's perfect for what it's doing. Entirely different category of performance than scripting languages.
I hate it because it's designed to prevent me from writing good code. I like writing good code, so I don't like tools that stand in my way. Perl lets me do whatever I want. (Which in my case, is to use a state-of-the-art object system, instead of Java's baked-in 1970s era object system.)
Perl has many more high-quality Free libraries, and I personally know a good percentage of the authors, which makes it all that much more appealing. Java may have more programmers, but there is no community; it's all 9-5ers that couldn't care less about programming.
Honestly, the only language I've ever used that didn't have enough libraries was Common Lisp.
Funny. I used Perl professionally for more than half a decade and I always had the same feeling about it. I didn't like how it seemed to always favor the worst way of doing everything. Even today every Perl program has to start without about 20 using statements to get it usable right?
I also disagree about the libraries. Java has many more than Perl, they're just not collected in one place. The Java ones run in huge environments, so while they may not be good for throwing out a cheasy log parsing script in 10 minutes, they will probably scale well beyond what you'll need.
No, the Class::MOP metaobject protocol and Moose are.
bless is an object system object system. Class::MOP adds introspection and first-class classes, attributes, methods, and so on. Moose is the object system on top of all that.
The flexibility of Perl's original object system object system allows all object systems -- whether they are hand-coded 'bless'-based objects, Class::Accessor objects, Mouse objects, or Moose objects -- to interact seamlessly.
This means the system can constantly improve, and it does. There are hundreds of "MooseX::" extensions that tweak the way a class or object works, and they all compose nicely together because they all follow the metaobject protocol. The MOP allows further extension and exploration, like easy-to-use and efficient object databases (see KiokuDB).
Anyway, Java keeps trying to add extensibility. But its extensibility is tacked on, and it is massively underused by the community. (Too many people still write getters and setters and think they are "programming"!)
Perl has always been about extensibility, and its community has always been about using it. In the 90s (when Java was created) this was maybe not so good. Now, though, it's awesome.
Well, I agree that Java's bumping into some hard limits -- lack of standard accessor methods as you point out, and no reified generics are constantly annoying. I do think it's reaching the end of it 's natural life and will be looking to move to Go for the same class of problem in the future.
I guess we can just agree to disagree on the rest.
I don't hate Java, but I dislike Java because I almost always find situations where I wish I had better abstraction mechanisms (where "better" means neither "Your IDE can generate code for you!" or "What do you have against writing XML files to perform code generation at startup?")
Yup, and I'm fine with being "wrong some % of the time" as long as I don't have to use Java. (C++ and PHP are also on that list.)
If I need to write something that's fast and portable, I use Haskell. If I need to write something that is gluing a bunch of libraries together, I use Perl.
(Java does have a lot of libraries, but the problem is that the libraries are not well-designed. Perl has a lot of well-designed libraries, and when there isn't a well-designed library, it's easy to find the right balance between rewriting, fixing, and working around. That has not been my experience with Java.)
Well, respectfully, you sound like a lot of people I know that never really learned their way around Java, therefore, it must suck.
If you're working on something where static typing and the compilation step are non-starters, then yeah, don't use Java or C++.
Regarding the libraries -- Java collections? java.util.concurrent? Guava? Those 3 by themselves will get you a long way, and for anything more specific you usually have a choice of several libraries.
I spent many years of my life writing Java. I don't mind static typing and compilation; I use Haskell extensively. (The difference being that Haskell's static typing actually makes correctness guarantees, and that when developing you can test your code in the REPL.)
I tend to think of libraries as "make me a nice HTML form" or "talk to this strange router" or "connect to Twitter". Every language has collections, concurrency, and various utility libraries like Guava. Nothing wrong with the examples you list; I've used them and am not that impressed.
It's kind of like when you jump into the water to save your drowning friend, and you both die. The JVM was just trying to be nice, but its friend was too much weight for it to save.
> > I think it's quite hard to stop fragmentation on mobile without stopping innovation. Mobile phones differ radically in speed, screen, memory, bandwidth, input-method, and so on, to produce a single app that runs everywhere well is a tall order, even if the APIs were identical. J2ME was a nice try, but the profiles themselves created fragmentation. Android devices are fragmented in a smaller way by contrast, first, the bar for performance minimum and OS features are set way higher. Secondly, there's no profiles
> This was very true in the mobile world a decade ago and was a huge driver of fragmentation; but with todays dramatically more powerful handsets, and especially given the concentration on high-end handsets, there's no reason for any fragmentation.
Hrm. He seems to be forgetting how many non-super-fancy-high-end phones there are out there. Ironically, those phones are one reason to keep using Java ME.
I use J2ME and enjoy it. I purchased three J2ME applications, worth 100 EUR, that as far as I know still don't exist on "smartphones" (good dictionaries).
I also use Opera Mini which is exactly what I need.
For me J2ME apps seem to be much "safer" to use than the "smartphone" ones which typically get access to much more on the phone than it would be really needed. Not to mention that the dictionaries do work perfectly "offline."
Yeah, Opera Mini 4 not being available on android is a major consoling factor when I decide once again to keep my crappy Symbian phone and spend the money on something else instead. (Opera Mini 5 is available, but it is a horrible usability regression. All the functions I use regularly like "reload"(hi, HN frontpage) and "switch to mobile view" which are at most three key presses in 4 are more than ten in 5, and the font rendering which sometimes seems to use non-system fonts is atrocious, using 50% more space than the small system font while being less readable and still not displaing italics.
I can't help thinking that Gosling is very likely to get roped into this thing as a witness, and all his public statements are going to be grist for the two mega-companies' legal mills. If I was him I'd be taking a vacation somewhere without telephones right now. For a year.
Maybe he looks at himself as having an activist role through all this - one where he has to influence public opinion and generate enough momentum with the public and Sun's customers to actually force Oracle's hand. Thats my reading between the lines based on the last few blog posts he has made.
As "The Father of Java" and an author of one of the patents in question he's probably resigned to getting roped into this (although not necessarily as a witness, maybe only depositions).
I think that would be unlikely seeing as he's not being employed by either company.
He has to observe his non-disclosure duties to Oracle regardless of the suit, although obviously they are going to be a lot more prominent due to it. Oracle could try to take legal action to shut him up but the fallout from that would be catastrophic and they've not shown themselves to be that dumb yet (I think; encouraging most/nearly all??? of their best software developers to jump ship by paying them a lot less is seriously dumb, though, unless they bought Sun's software portfolio purely for its IP as Gosling has been wondering).
No matter what the merits of the case may be, or who is
right, or who has a "right" to do what, the crossfire in
the battle will be hugely distractive (and I don't just
mean the patent case). I wish they'd all vent their
testosterone elsewhere.
Interestingly relevant to BSD-style vs. GPL-style licensing:
> The vision of freedom that most of the big corporate interests had was the ability to make their platform sticky: to destroy interoperability so that (for example) Java software developed on Microsoft platforms could only run on Microsoft platforms. They wanted the freedom to capture developers. ... "Freedom" is a freakishly relative word. The freedom of the large software companies is directly at odds with the freedom of developers.
It's not so much that the game favors evil, but that the definition of "good" is really twisted: Good adj: anything which increases the stock price. Considerations about employees, products, customers and community are all secondary. They only enter the equation as ways to achieve goal 1. Morality or high principles have no place in the corporate discourse. They maximize the stock price, within the bounds of the law. Corporations like Oracle and Exxon tend to be perfectly rational. They "buy laws" because it's perfectly legal to spend money on lobbyists and political campaigns. While you and I might think that it is morally reprehensible to buy elections, like the recent case with Target, it is nonetheless totally legal. Given the rules of the game, it would be bad for a corporation to not buy an election, if failing to do so would negatively impact their stock price. I could rant for a long time on this one, but not today… The whole modern concept of a public company is deeply flawed. But the game is what it is.