Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 19:05 UTC (Fri) by mikov (subscriber, #33179)
[Link]
No, kidding. I have been a big Java supporter for a long time (despite its serious shortcomings), because I thought that after the GPL release Java was essentially like C - everybody is free to do anything with it - re-implement, extend, subset, whatever... Something really good was bound to come from that. After all, even RMS approved it.
Oh, how wrong and naive I was.
Practically speaking, this means that none of the alternative Java implementations - GCJ, gij, JamVM, Kaffe, Jikes RVM, etc, are safe. That is just disgusting!
This has definitely cooled my enthusiasm for Java to the extent that I am seriously looking into Mono/C# for future projects. C# has always been a more pleasant language, so why resist? May be Miguel was onto something from the beginning?
Thank you, Oracle. And, Larry Ellison, you can kiss my ... ahem ... stderr?
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 19:53 UTC (Fri) by marduk (subscriber, #3831)
[Link]
> This has definitely cooled my enthusiasm for Java to the extent that I am
> seriously looking into Mono/C# for future projects. C# has always been a
> more pleasant language, so why resist? May be Miguel was onto something
> from the beginning?
Microsoft also has patents on C#/.Net stuff. De Icaza (Novell) has a agreement with Microsoft such that Microsoft promises not to sue them regarding said patents. The rest of the OSS community has no such promise and so I see no obvious advantage with respect to your argument.
As for Google, I wouldn't be surprised if the same thing would be happening if they had base Dalvik on C#, with the only difference being the complainant being Microsoft instead of Oracle.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 20:31 UTC (Fri) by mikov (subscriber, #33179)
[Link]
Well, my point was that implementing either language apparently has some legal uncertainty, so in that case at least one can choose the more "pleasant" one :-)
IANAL, but apparently the Microsoft Community Promise provides at least some manner of defense.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 22:09 UTC (Fri) by bronson (subscriber, #4806)
[Link]
If you have the luxury of changing languages, why not choose one that's not patent encumbered? Agreed that C# is a much nicer language than Java, but that's like saying you'd rather have a purple gun blow your foot off than a gray one.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 23:20 UTC (Fri) by mikov (subscriber, #33179)
[Link]
I don't really have the luxury of changing language immediately, nor am I really eager to do it, but in future projects I might be able to affect the choice of language.
But theoretically speaking, other than C#, I don't see any robust and realistic replacement for Java. Such a language should satisfy at least these requirements:
a) strong static typing
b) precise garbage collection
c) efficient multi-thread support and multi-threaded GC
d) comparable or better performance to Java
e) robust standard library
f) good developer tools
g) multi-platform support
C/C++ fails b) and epically fails e). The rest of the open source languages fail c) and d) miserably, and most of them also fail a).
I personally really like Scheme, but it fails all of the requirement :-) In short, there are no real alternatives as of yet.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 13, 2010 23:38 UTC (Fri) by jonabbey (subscriber, #2736)
[Link]
Have you taken a look at Clojure?
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 14, 2010 0:12 UTC (Sat) by mikov (subscriber, #33179)
[Link]
I have briefly and I liked it, though I haven't had time yet to explore it in detail...
Alas since it targets the JVM or .NET, in this context it doesn't help :-(
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 14, 2010 1:48 UTC (Sat) by Cyberax (subscriber, #52523)
[Link]
Yep, I have the same problem.
C# is really nice (with LINQ and everything), but Mono runtime sucks big time. They still don't have a precise compacting GC! Fail.
Google's Go is looking more and more interesting. It's building up a respectable standard library right now. Although, the Go language is a bit 'idiosyncratic' for me.
Mozilla Rust is another interesting approach, but it's in a deep development. But I'll definitely be keeping an eye on it.
What else? D language was nice in 2002, now it's just weird (also, no precise GC).
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 16:22 UTC (Sun) by jmalcolm (subscriber, #8876)
[Link]
It is basically beta status right now but it builds by default with the current code in git. You can select either the older or new GCs at runtime.
It is still not fully precise.
Based on what I have read, I would expect it to be shipping as part of the stable mono version in a month or so.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 16:31 UTC (Sun) by Cyberax (subscriber, #52523)
[Link]
Yes, I'm somewhat of a GC geek, so I have actually checked its source code (about a year ago, AFAIR). It's better than Boehm GC, but not by much.
I seriously hope that Google's work on Unladen Swallow will give good GC support for LLVM. And then we can start producing interesting things, like Scala compilable directly into machine code.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 21:32 UTC (Sun) by jmalcolm (subscriber, #8876)
[Link]
Scala looks very interesting to me. I wish the .NET effort had more bite. Just this morning I was wishing I could provide default method implementations as part of C# interfaces and wished I had something like Scala's traits.
Are you referring to compiling Scala to Java bytecode, running that on VMKit over LLVM, and using an Unladen Swallow inspired GC? Or are you talking about something even cooler?
I know that Mono can use LLVM as the backend. I guess it takes a bit longer to JIT but the resulting code is faster after that. Perhaps your Scala scenario would benefit Mono as well.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 23:10 UTC (Sun) by Cyberax (subscriber, #52523)
[Link]
"Are you referring to compiling Scala to Java bytecode, running that on VMKit over LLVM,"
No, I'm talking about compiling Scala directly into machine code using LLVM. This is doable and is not particularly hard, it requires only a new backend for Scala.
"and using an Unladen Swallow inspired GC? Or are you talking about something even cooler?"
I'm talking about Swallow's GC.
"I know that Mono can use LLVM as the backend. I guess it takes a bit longer to JIT but the resulting code is faster after that. Perhaps your Scala scenario would benefit Mono as well."
Mono's LLVM experiment is not complete, it can't be used in production.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 14, 2010 5:19 UTC (Sat) by kragil (guest, #34373)
[Link]
Skala 2.8
Tools are better now and they promise to not change the language in a incompatible way anymore.
IMHO Skala is one of the most advanced languages anywhere.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 14, 2010 9:24 UTC (Sat) by paulj (subscriber, #341)
[Link]
I'm a C programmer mostly, but one who's had to do a good bit of Java programming over last few years. There's a newish language, "Vala", which looks interesting and more and more attractive the more I dig into it. I havn't built anything decent sized with it yes, but I'm using applications which are (e.g. Pino - app is small, but it's handling largeish amounts of data with ease; shotwell).
Might be worth a look. It does have garbage collection, but reference counted - not a scanning GC, don't know if that is sufficient for your b. (Some might consider a deterministic, ref-counted GC to be better for certain purposes where control is important).
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 14, 2010 9:58 UTC (Sat) by PO8 (guest, #41661)
[Link]
So, so offtopic.
That said, Haskell / GHC is everything you wanted and more.
replacement for java
Posted Aug 15, 2010 2:06 UTC (Sun) by pjm (subscriber, #2080)
[Link]
> Haskell / GHC is everything you wanted and more.
Haskell/GHC fails at least (d).
As the poster indicated with the comment about Scheme, there are many languages that are good in one way or another but that nevertheless fail the set of "requirements" given in that post.
replacement for java
Posted Aug 15, 2010 16:05 UTC (Sun) by malor (subscriber, #2973)
[Link]
I'm not sure if it's just a case of doing well on benchmarks, but Haskell did extremely well on speed tests when I last looked it up. IIRC, it was way faster than anything but straight C/C++.
I was also surprised by how well C#/.NET did... for a VM runtime, it kicks ass. But Haskell was much faster.
replacement for java
Posted Aug 17, 2010 9:05 UTC (Tue) by PO8 (guest, #41661)
[Link]
It's not just benchmarks. GHC does a reasonable job of turning Haskell into efficient native code. It is easier to write non-performant Haskell code than in C or Java, but if you know what you're doing programs should be plenty competitive with either.
Best of all, you can almost always choose better algorithms in Haskell than you would have in C or Java with equivalent code complexity. In a way, mini-benchmarks like the not-a-Shootout (http://shootout.alioth.debian.org/) understate the case for Haskell performance by forcing everybody to use the same algorithm.
I've written many thousands of lines of C and Java over the years. These days my userland code is written in Haskell wherever possible.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 21:45 UTC (Sun) by bronson (subscriber, #4806)
[Link]
I've dabbled with Haskell in the past... there were a lot of neat things (damn that quicksort example is awesome) but I couldn't manage to like it. It excelled at gluing tiny perfect parts together but, once I wrote a nontrivial amount of code, I found my stuff hard to follow. It wasn't like I could get an overview by reading, say, main().
I'm very curious what would happen if a pragmatist came along and toned down Haskell's uncompromising attitude. Make a nice compromise language, one that feels less alien to the world of imperative programming.
You think I should give Haskell another try? It doesn't seem to be catching on in the industry at all.
(continuing the trend of going wildly offtopic...)
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 17, 2010 9:18 UTC (Tue) by PO8 (guest, #41661)
[Link]
Haskell has the longest learning curve of any of the 10 or so programming languages I have ever gotten workably good at. It is a different way of thinking about programming, at about the same level as Pascal over assembly code. Once you get it, you can write large structured programs that are easier to understand and work with than their imperative counterparts would be.
We actually have a company here in town, Galois, that is quite successful commercially using Haskell for contracts involving high-assurance systems. I suspect that Haskell's commercial growth will be slow-but-steady over the next few years.
If you want a "compromise" language, you could check out CaML, SML or F#. These are strict functional languages---a lot of the nice properties of Haskell, but a lot easier for an imperative programmer to learn to use well in a reasonable timeframe. I used to write a lot of SML, but once you get the hang of it Haskell is nicer in many ways.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 10:53 UTC (Sun) by alextingle (subscriber, #20593)
[Link]
"precise garbage collection" is a contradiction in terms, at least when applied to Java-style GC.
C++'s garbage collection is *precise* -- objects are destroyed when they go out of scope. In Java, you never know when you're going to get your memory back.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 17:44 UTC (Sun) by mikov (subscriber, #33179)
[Link]
Precise as opposed to a conservative gc like Boehm's.
C++ destructors are not gc.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 16, 2010 17:16 UTC (Mon) by Cyberax (subscriber, #52523)
[Link]
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 9:13 UTC (Sun) by josh_stern (guest, #4868)
[Link]
It's not necessarily only the language that is patent encumbered. Some of the patents can also apply to parallel implementations in other languages. Such usage seems less likely to be sued, but not theoretically immune from it.
Oracle sues Google over use of Java in Android (ars technica)
Posted Aug 15, 2010 10:49 UTC (Sun) by alextingle (subscriber, #20593)
[Link]
Why do you want to use Java OR C#? Both languages/environments sit in an uncomfortable position somewhere between scripting and compiled... all the convenience of a compiled language combined with the raw speed of a script!!