5 ms·
The most worrisome factor in this lawsuit is how this will impact java as a language and a platform. If Google loses this lawsuit, java as a language and platfo
by jchonphoenix 16y ago
The most worrisome factor in this lawsuit is how this will impact java as a language and a platform. If Google loses this lawsuit, java as a language and platform could easily die. Many companies would refuse to use it, just to be on the safe side and avoid litigation from Oracle.
Oracle probably doesn't realize the massive damage it has done to the java platform just by going forward with this suit. Due to the looming threat of Oracle closing the java platform, startups and companies may begin avoiding the java platform in the same way they avoid the Microsoft stack. In fact, I can't see any reason why I WOULDN'T choose the .NET framework over java if both are so closed. At least C# has lambdas...
- bad_user 16y ago> At least C# has lambdas... And an open-source alternative which compared to other open-source Java efforts, is in pretty good shape, and also has a pledge from Microsoft. I feel attracted by .NET, but every time I end up using it I wish I didn't ... it's like every year I wish for summer to go to the beach, but when it's finally summer and I'm at the beach ... it's too hot, it's too crowded, the water is dirty and I don't want to be there :)
- loup-vaillant 16y agoIf you like lambdas, you'd probably like F# better: lighter syntax, types are inferred, and it looks like it's quite well supported by Microsoft. But of course, if you consider F#, you may want to use the more free and open Ocaml.
- bruceboughton 16y agoYou can like lambdas without wanting to go fully functional... just like you can like objects without wanting to go fully object-oriented.
- gaius 16y agoThose are called structs ;-)
- bruceboughton 16y agoNot everyone accepts that the object systems in Java and .NET are fully object-oriented.
- loup-vaillant 16y agoConsidering that no definition of "object-oriented" is accepted by everyone, I'm not sure your criticism is valid. My suggestion: drop the term "object-oriented" altogether, and refer to more specific features.
- bruceboughton 16y agoWhich brings me back round to my initial assertion: >> You can like lambdas without wanting to go fully functional
- loup-vaillant 16y agoWell, F# and Ocaml aren't purely functional… so you're right.
- loup-vaillant 16y agoWell, I'm not sure. First, assignments are evil[1], which means you should avoid setters. Second, inheritance is evil, for similar reasons (thick interface). Third, every time I saw mixins or class polymorphism, lambdas or sum types, would have been simpler, respectively. Once you like lambdas, functional programming becomes more attractive than a black hole. [1]: http://www.loup-vaillant.fr/articles/assignment http://www.loup-vaillant.fr/articles/assignment
- barrkel 16y agoSum types are not as dynamically extensible at runtime, or by third party libraries, as class polymorphism.
- loup-vaillant 16y agoFor the particular cases I saw, runtime extensibility never mattered. (Do you have one where it does?) And extending a third party sum type is not very hard: data LibType = Zero | One Int | Two Int Int data MyType = ZeroOneTwo LibType | Three Int Int Int (It of course implies that you use MyType instead of LibType in your code.) Finally, if you really want to extend a sum type, no work around allowed, you might want to look at Ocaml's variant types.
- vetinari 16y agoThe keywords were "extensible dynamically at runtime", not just "extensible, period". Runtime extensibility matters at systems that you cannot shut down, where have to upgrade live systems, for example. If you are doing just "run it once again, no big deal" application, then it does not matter, you are right.
- barrkel 16y agoThe code using LibType is code you don't control; you can't change it to use MyType instead. Indeed, you don't even have the source code to it. That's also why the extensibility happens at runtime.
- jamii 16y agoNote that both F# and Ocaml have object systems and have excellent support for imperative style programming. http://caml.inria.fr/pub/docs/u3-ocaml/ocaml-objects.html#advanced http://caml.inria.fr/pub/docs/u3-ocaml/ocaml-objects.html#ad...
- jules 16y agoNote that OO programming in F# requires a lot of type annotations (even more than in C#, you need to explicitly upcast).
- statictype 16y agoF# has better library support (at least if you're on Windows). It also has monads.
- contextfree 16y agoIt has monad syntax, but like C# it has no support for higher-kinded polymorphism (contextfree.livejournal.com) so unlike Haskell there's no way to create generic helper methods that work with every monad type. (Not to discourage anyone from trying F#, which is a nice language anyway.)
- nickik 16y agoWhy should java as a platform die? Most people use the Sun JVM and you will still be able to use that others like IBM have contracts with Sun. So no problem there. So if the JVM goes closed source it still wont go away because the support of Sun/Oracle will stay the same. It would have a big impact but not as big as you discribe. I would still take the JVM because the the languages are better and I don't want to be bound to windows spezialy for servers.
- jchonphoenix 16y agoCompanies would be afraid of the whims of Oracle. I honestly believe that most individuals would trust Microsoft over Oracle. Microsoft is no longer a huge evil empire. Their goal is to augment their bottom line, and in the case of the .NET framework, their goals and yours would align. Additionally, the languages in the JVM are not better. Anyone who has used C# can tell you that Microsoft did an extremely good job designing that language. It can almost be stated that C# is hands down better than Java as a language (its dependency on Microsoft products aside). Also, what do you mean by "languages" as a plural? The other JVM based language are free of Oracle's control. If they wanted, they could use IcedTea, so Java's really the only platform at stake here.