Android (Java) ported to Mono (C#)

193 views
Skip to first unread message

Casper Bang

unread,
May 10, 2012, 10:01:59 AM5/10/12
to java...@googlegroups.com
Hard not to be impressed by what the Mono guys succeed at creating for fun:

Fabrizio Giudici

unread,
May 10, 2012, 11:15:35 AM5/10/12
to java...@googlegroups.com, Casper Bang
On Thu, 10 May 2012 16:01:59 +0200, Casper Bang <caspe...@gmail.com>
wrote:

> Hard not to be impressed by what the Mono guys succeed at creating for
> fun:
> http://blog.xamarin.com/2012/05/01/android-in-c-sharp/

Cool. What I find fun are the various sentences such as "replacing Java
with C# where more performance is needed":

1. Interesting to know that Java runs on Android :-) at the same moment
Google is denying it.
2. Suits apart, performance on Android is related to _Dalvik_, not _Java_.

Also, I don't see the legal advantage of moving to the risk of being
suited by Oracle to the risk of being suited by Microsoft. It's true that
C# is an open specification, but patents remains always a sword of
Damocles, and "promises" by corporates make me laugh...


--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
fabrizio...@tidalwave.it
http://tidalwave.it - http://fabriziogiudici.it

Casper Bang

unread,
May 10, 2012, 11:42:58 AM5/10/12
to java...@googlegroups.com, Casper Bang
Cool. What I find fun are the various sentences such as "replacing Java  
with C# where more performance is needed":

1. Interesting to know that Java runs on Android :-) at the same moment  
Google is denying it.

Miguel demonstrates in other places in the text that he is fully aware of the differences between the JVM (Hotspot) and Android (Dalvik), so I think you should read the sentence as a reference to design decisions taken by Sun when writing the JLS (he mentions value structs, P/Invoke, reified generics).
 
2. Suits apart, performance on Android is related to _Dalvik_, not _Java_.

True, but given the fact that we don't have a relevant modern smartphone platform with the JVM, that exercise becomes rather theoretical.
 
Also, I don't see the legal advantage of moving to the risk of being  
suited by Oracle to the risk of being suited by Microsoft. It's true that  
C# is an open specification, but patents remains always a sword of  
Damocles, and "promises" by corporates make me laugh... 

On the other hand, what are we to do, sit on our hands and not try things because we might get hurt in the process? I've heard Miguel described as optimistically naive and he has made some enemies from his convictions. In any event, at the moment Oracle seems worse than Microsoft. Promises aside, patents can be worked around, API "copyright" (if Oracle should succeed their stunt) can not.

Fabrizio Giudici

unread,
May 10, 2012, 11:58:38 AM5/10/12
to java...@googlegroups.com, Casper Bang
On Thu, 10 May 2012 17:42:58 +0200, Casper Bang <caspe...@gmail.com>
wrote:

> Miguel demonstrates in other places in the text that he is fully aware of
> the differences between the JVM (Hotspot) and Android (Dalvik), so I
> think
> you should read the sentence as a reference to design decisions taken by
> Sun when writing the JLS (he mentions value structs, P/Invoke, reified
> generics).

I know that he knows, but it's precisely because he knows that I'd expect
more precision in what he writes, everywhere in the post :-)

> True, but given the fact that we don't have a relevant modern smartphone
> platform with the JVM, that exercise becomes rather theoretical.

... apart from the FUD-spreading side effect against Java in general.

> On the other hand, what are we to do, sit on our hands and not try things
> because we might get hurt in the process? I've heard Miguel described as

Well, as an Android developer perhaps I'm optimistically naive, but I
don't feel menaced by the lawsuit. Maybe I'll get surprised, but in the
end most of us think that Google will just pay some money to Oracle (una
tantum, or in form of a fee), and much less than the original request. And
the story is over.

> optimistically naive and he has made some enemies from his convictions.
> In
> any event, at the moment Oracle seems worse than Microsoft.

Perhaps because C# is minimally used in the mobile world? In any case,
Microsoft already makes tons of money out of Android (but indirectly)
thanks to patents (*):

http://www.trefis.com/stock/goog/articles/76522/google-gripes-as-microsoft-strikes-samsung-licensing-deal/2011-09-29

Figure out whether they could even take advantage of Android being totally
built on C#.


(*) Ironically, as we joked yesterday night at JUG Lugano, the primary
interest for Microsoft of not killing Android is that it's precisely the
point that they are making most money out of it than out of Windows
Phones. While Windows Phone might not look bad, Nokia is performing bad,
has fatally slipped down in the list of top manufacturers and frankly
speaking I wouldn't bet on it.

Casper Bang

unread,
May 10, 2012, 3:48:50 PM5/10/12
to java...@googlegroups.com, Casper Bang
... apart from the FUD-spreading side effect against Java in general.

I would not call it FUD, to write about a hacking project on your own blog complete with a Git repo and benchmarks. I take your reaction as a natural defensive position from a Java/JDK enthusiast. :)
 
Well, as an Android developer perhaps I'm optimistically naive, but I   
don't feel menaced by the lawsuit. Maybe I'll get surprised, but in the  
end most of us think that Google will just pay some money to Oracle (una
tantum, or in form of a fee), and much less than the original request. And  
the story is over.

Except, I'm willing to bet that the whole mess is creating a whole lot more FUD than anything coming out from the Mono camp. Not so much against Android, but the Oracle JDK ecosystem - which quite frankly has remained a very uninspiring place in what feels like an eternity.

In any case,  
Microsoft already makes tons of money out of Android (but indirectly)  
thanks to patents (*):

It's very hard to get specifics about these things and in any case, it's very low profile and seems to be "business as usual" between large corporations and their lawyers.


Message has been deleted

clay

unread,
May 14, 2012, 2:42:30 PM5/14/12
to java...@googlegroups.com, Casper Bang
The evaluation edition of MonoDroid is emulator-only, so you can't do any benchmarking or even verify their benchmark results without buying a very expensive license. I have a ton of ideas for benchmarking this, and installed MonoDroid and did some coding, but the MonoDroid eval edition wouldn't let me build a binary to run on an Android device. The regular license is $999 and while there may be some cheaper academic/hobbyist options, I'm not giving them large sums of money to verify their claims. BTW, the regular Eclipse Android development stack is 100% free. And that's not some limited starter edition, you get the full toolset for free.

The benchmark results posted on the Mono blog aren't using one of the many standard benchmarking suites, they weren't run by an impartial entity, and they aren't even making a reasonable pretense of being fair. The Mono guys developed their own internal custom benchmark designed to make Mono look good and Dalvik look bad and they cherry pick the results accordingly. Their Git repo also has the SciMark benchmark source code running on Dalvik/Mono, but they didn't choose to publish those results. If you look around for Android benchmarks, there are a ton of them. If I could without buying a $999 MonoDroid license, I'd port them to C# and run them, and see how they stack up. I'd imagine if these results were favorable to Mono, they'd be publishing them on their blog themselves. If some big company like Intel/AMD/Nvidia published these types of heavily customized "benchmarks" like this, they would be laughed at.

Google has the Renderscript and the C/C++ NDK which I suspect are the more high performance low level SDK options. Dalvik's design goals weren't primarily centered around runtime performance, but memory considerations, battery life issues, UI responsivenes, app startup/switching issues.

Dalvik Turbo, is a drop in replacement for Dalvik that supposedly delivers 2.8x faster runtime performance on benchmarks. What are the ups and downs, between this, native Dalvik, the Mono VM, and others.

Dalvik Turbo seems to have the simple goal of providing a faster VM without any other associated agenda. Many alternate programming languages like Scala/Kotlin/Clojure/Fantom aim to provide a variety of innovations at the programming language level but really strive to acommodate multiple VM ecosytems without playing a heavily partisan role. Mono isn't like that. They have a history of evagenglizing everything Microsoft and bashing opposing infrastructure like Java, using technical bullet points like stack value types or reified generics as ammo fodder for that contentious debate, and being absolutely obnoxious about the whole thing.

Casper, you say the JDK ecosystem is uninspiring. To each his own, but I disagree. I love the culture of innovation that has happened outside of Sun/Oracle within the JDK community. All kinds of alternate languages (Scala/Kotlin/etc) alternate build tools and paradigms (Maven/Gradle), web frameworks, configuration frameworks, competing IDEs, all innovate and suceed or fail based on largely merit. In the .NET world, the community at large is very resistant to using anything that isn't officially Microsoft. It's extremely rare to see a .NET shop use a non-Microsoft IDE, development OS (there is a very small minority doing .NET/Mono on Linux/Mac), programming language, build tool, web framework, testing framework, or anything. Even when there are high quality alternatives out there; for example, Scala/Clojure/Fantom have been on .NET for a while, but there is nearly zero adoption. The .NET world is less a culture of open innovation and more a culture of Microsoft and that isn't appealing to me.

Fabrizio Giudici

unread,
May 14, 2012, 3:32:04 PM5/14/12
to java...@googlegroups.com, clay, Casper Bang

> Casper, you say the JDK ecosystem is uninspiring. To each his own, but I
> disagree. I love the culture of innovation that has happened outside of
> Sun/Oracle within the JDK community. All kinds of alternate languages
> (Scala/Kotlin/etc) alternate build tools and paradigms (Maven/Gradle),
> web
> frameworks, configuration frameworks, competing IDEs, all innovate and
> suceed or fail based on largely merit. In the .NET world, the community
> at
> large is very resistant to using anything that isn't officially
> Microsoft.

I can't talk myself as I don't know the .NET world. But whenever I meet
people who know both worlds I always hear the same story: that the .NET
ecosystem is ridicolously smaller than the Java one, for a number of
reasons including tooling, frameworks, etc... - and culture. The very
latest comment I've heard from a corporate owner, who's also a tech man,
is: I've interviewed a pair of C# developers (he's going to open a line of
development in C#) and while they were extremely proficient with Microsoft
visual tools, they were completely clueless for what concern code. They
even didn't know what patterns are.

I repeat: I can't tell this by my direct knowledge.

clay

unread,
May 14, 2012, 4:30:04 PM5/14/12
to java...@googlegroups.com, clay, Casper Bang
On Monday, May 14, 2012 2:32:04 PM UTC-5, fabrizio.giudici wrote:
But whenever I meet  
people who know both worlds I always hear the same story: that the .NET  
ecosystem is ridicolously smaller than the Java one

From a tooling and infrastructure technology perspective, .NET is smaller. But in terms of small business and contractor usage, I wouldn't think so. There are tons of jobs and many sectors of software development that are absolutely standardized on Microsoft.

There is absolutely more choice, variety, and more cutting edge tools in the JVM ecosystem. And that's precisely what draws a lot of technology tinkerer types and what a lot of manager types don't like.

What's nice about less choice from a management perspective is that development personnel are more generic and easily interchangeable. There is less debate and time wasted on underlying technology and infrastructure, Microsoft best practices is the holy bible. There aren't a zillion different web frameworks, there are two (there used to be one but now they have traditional ASP and the MVC option). There aren't several major IDEs and several development OSs, there is just Visual Studio and Windows (and an extremely small fringe using other choices). 

Fabrizio Giudici

unread,
May 14, 2012, 4:34:51 PM5/14/12
to java...@googlegroups.com, clay, Casper Bang
On Mon, 14 May 2012 22:30:04 +0200, clay <clayt...@gmail.com> wrote:

> On Monday, May 14, 2012 2:32:04 PM UTC-5, fabrizio.giudici wrote:
>>
>> But whenever I meet
>> people who know both worlds I always hear the same story: that the .NET
>> ecosystem is ridicolously smaller than the Java one
>>
>
> From a tooling and infrastructure technology perspective, .NET is
> smaller.
> But in terms of small business and contractor usage, I wouldn't think
> so. There are tons of jobs and many sectors of software development that
> are absolutely standardized on Microsoft.

I agree, I wasn't talking about the market share, which I don't object to.
I was talking about technology, choice and culture.

Casper Bang

unread,
May 14, 2012, 4:48:04 PM5/14/12
to java...@googlegroups.com, Casper Bang
On Monday, May 14, 2012 8:42:30 PM UTC+2, clay wrote:
The evaluation edition of MonoDroid is emulator-only, so you can't do any benchmarking or even verify their benchmark results without buying a very expensive license. I have a ton of ideas for benchmarking this, and installed MonoDroid and did some coding, but the MonoDroid eval edition wouldn't let me build a binary to run on an Android device. The regular license is $999 and while there may be some cheaper academic/hobbyist options, I'm not giving them large sums of money to verify their claims. BTW, the regular Eclipse Android development stack is 100% free. And that's not some limited starter edition, you get the full toolset for free.

First of all, I hope we can agree that it's ok for a company to create a commercial software package if it provides value to the customer. Secondly, th pro license is $399, less than half that of Visual Studio. Third, Xamarin offers 30-day unconditional money-back guarantee, so that shouldn't stop you.

The benchmark results posted on the Mono blog aren't using one of the many standard benchmarking suites, they weren't run by an impartial entity, and they aren't even making a reasonable pretense of being fair. The Mono guys developed their own internal custom benchmark designed to make Mono look good and Dalvik look bad and they cherry pick the results accordingly. Their Git repo also has the SciMark benchmark source code running on Dalvik/Mono, but they didn't choose to publish those results. If you look around for Android benchmarks, there are a ton of them.

Never put too much into benchmarks in the first place, it's entirely irrelevant to the overall user experience. I could wish for standard tests for comparative reasons but it's still not a deal-breaker for a .NET shop who can now target Android and iOS. There's no single litmus test when it comes to VM and runtime because there are so many factors. I happen to think it's not inconceivable that Mono can outperform Dalvik in some cases, or reverse, in fact it would be odd of that was not the case.
 
Casper, you say the JDK ecosystem is uninspiring. To each his own, but I disagree. I love the culture of innovation that has happened outside of Sun/Oracle within the JDK community. All kinds of alternate languages (Scala/Kotlin/etc) alternate build tools and paradigms (Maven/Gradle), web frameworks, configuration frameworks, competing IDEs, all innovate and suceed or fail based on largely merit. In the .NET world, the community at large is very resistant to using anything that isn't officially Microsoft. It's extremely rare to see a .NET shop use a non-Microsoft IDE, development OS (there is a very small minority doing .NET/Mono on Linux/Mac), programming language, build tool, web framework, testing framework, or anything. Even when there are high quality alternatives out there; for example, Scala/Clojure/Fantom have been on .NET for a while, but there is nearly zero adoption. The .NET world is less a culture of open innovation and more a culture of Microsoft and that isn't appealing to me.

I agree with you, that there are a lot of innovation happening - but it's in the periphery rather than at the official JVM level, probably born out of frustration. The .NET world is certainly not perfect, but it's more polished and certain choices have been taken for you by people who meet 3 times a week to ensure things fit together well. Corporations wants standards, because it allows them to transfer and scale resources without too many obstacles. It's entirely possible this is not a concern to fortune 500 companies, who have dedicated toolchain, backend, frontend, test, deployment etc. teams, but I work for a small company with 15 developers where we've seen this as a problem. Which logging framework? Which container? Which ORM? Which build tool? Which IDE? Web-framework? Test framework? Which XML parser? Which REST framework.........? 

Fabrizio Giudici

unread,
May 14, 2012, 4:57:27 PM5/14/12
to java...@googlegroups.com, Casper Bang
On Mon, 14 May 2012 22:48:04 +0200, Casper Bang <caspe...@gmail.com>
wrote:


> deployment etc. teams, but I work for a small company with 15 developers
> where we've seen this as a problem. Which logging framework? Which
> container? Which ORM? Which build tool? Which IDE? Web-framework? Test
> framework? Which XML parser? Which REST framework.........?

Responsibility to choose is the price to pay for freedom. :-) In any case,
the questions don't make much sense. You don't want to make choices?
Forget everything that is not Java standard, use only JEE. This put you in
the same situation as .NET.

clay

unread,
May 14, 2012, 6:03:09 PM5/14/12
to java...@googlegroups.com, Casper Bang
On Monday, May 14, 2012 3:48:04 PM UTC-5, Casper Bang wrote:
Never put too much into benchmarks in the first place, it's entirely irrelevant to the overall user experience. I could wish for standard tests for comparative reasons but it's still not a deal-breaker for a .NET shop who can now target Android and iOS. There's no single litmus test when it comes to VM and runtime because there are so many factors. I happen to think it's not inconceivable that Mono can outperform Dalvik in some cases, or reverse, in fact it would be odd of that was not the case.

This is the far more calm and reasonable version that I can agree with.

You created a one line thread linking the Xamarin blog post titled, "Android Ported to C#". 90% of that is obnoxious, flame bait, flame war stuff. First, Android is mostly C code. They just ported the Java parts to C#.

Secondly, most of the post has nothing to do with their Java->C# porting efforts of Android OS code. They are bashing Java as a whole, poking at the Oracle lawsuit, boasting about the C# ECMA stuff and everything Microsoft, they restate their tired standby C# is better than Java flame war bullet points about "structures, P/Invoke, real generics" -- which you requote --, and then they boast about C# performance using their own homegrown cherry picked benchmark test that the militant fanatics like you can parrot off.

Sure, if a company has a heavy committment to C# and wants to port to iPhone/Android or keep some common C# code across all iPhone/Android/Windows Phone (although almost anything that touches an API will still require different code branches), they make a practical product. But their posts are beyond obnoxious, their benchmarks are outrageous, and they have a militant fan base that amplifies that flame war mindset.
 
I agree with you, that there are a lot of innovation happening - but it's in the periphery rather than at the official JVM level, probably born out of frustration.

Was Scala or Kotlin or Gradle or Hadoop or IntelliJ created out of frustration? To some extent every great technology could arguably have come from frustration, but I don't see any reason to single out innovations in the JVM space in this regard.

And I'd agree that most of the JVM ecosystem innovtion has not been at the official JVM level. In some ways that is a positive. I'm hoping that the official JVM picks up the pace. I'm hoping that that things like Jigsaw deliver genuine innovation and that Java moves to an app-specific library rather than a system-level product (which Mono already does).

Casper Bang

unread,
May 15, 2012, 12:59:01 AM5/15/12
to java...@googlegroups.com, Casper Bang

On Tuesday, May 15, 2012 12:03:09 AM UTC+2, clay wrote:
You created a one line thread linking the Xamarin blog post titled, "Android Ported to C#". 90% of that is obnoxious, flame bait, flame war stuff. First, Android is mostly C code. They just ported the Java parts to C#.

They cross-compiled over a million lines of code and thereby in effect replaced the core DNA of Android (Dalvik). Most everything you do on Android, involves going through Dalvik. You can't make calls, raise events, talk to the web etc. from the NDK.
 
Sure, if a company has a heavy committment to C# and wants to port to iPhone/Android or keep some common C# code across all iPhone/Android/Windows Phone (although almost anything that touches an API will still require different code branches), they make a practical product. But their posts are beyond obnoxious, their benchmarks are outrageous, and they have a militant fan base that amplifies that flame war mindset.

Don't throw rocks when you live in a glass house. Do they have an agenda to push? Absolutely. However, calling people who like a revamped Java (which is all C# really is when you get to the bottom of it) for militant fans is pushing it. I've been writing in Java almost since it's inception. The lack of harmony, standardization and features has become abundantly clear over the last ½ decade where a blind commitment to backwards compatibility in particular, has manifested itself as a supertanker, without a captain, moving only on inertia. Eventually all the kinetic energy will have been depleted and I see little evidence of Oracle being able to boost it - only a pragmatic Google has launched a tug-boat, which oddly the lawyers up in front are trying to cut the cables to.
 
Was Scala or Kotlin or Gradle or Hadoop or IntelliJ created out of frustration? To some extent every great technology could arguably have come from frustration, but I don't see any reason to single out innovations in the JVM space in this regard.

More or less yes, and I think it's pretty telling that in the last half a decade alternative languages on the JVM went from being a silly theoretical exercise to a necessity. When following mailing lists for these alternative languages, it's all to clear how people are trying to shoehorn stuff into the JVM which is was not meant to support. This is particular evident within the dynamic language camp, which is seeking the likes of a DLR. Also, consider how many luminaries have left the official JDK space out of the same frustration... Neal Gafter comes to mind as one of the most prominent, with his "Thoughts about the future of the Java Programming Language" blog has remained unchanged since 2010.

And I'd agree that most of the JVM ecosystem innovtion has not been at the official JVM level. In some ways that is a positive. I'm hoping that the official JVM picks up the pace. I'm hoping that that things like Jigsaw deliver genuine innovation and that Java moves to an app-specific library rather than a system-level product (which Mono already does).

That's also my hope. If I did not care about Java at all, I would not hang out on this forum. It's just that... after so much waiting for lambdas, a decent calendar API etc. one starts to look elsewhere - to where a core technology is being pushed by engineers from the bottom up. While it's true we have Scala, Fantom, Kotlin, Ceylon etc. occupying this space, and I can pick and choose for our own hobby projects, that does not fare well with a small to medium corporation seeking standard technology. This is where .NET excels and will continue to grow marked share at the expense of Java. Which is a shame, we need competition in order to avoid growing stuck in one place.

Google should've bought Oracle, submittet a cleaned up rebooted Java and the JVM as an open standard and things could've looked much more interesting.

Cédric Beust ♔

unread,
May 15, 2012, 2:25:35 AM5/15/12
to java...@googlegroups.com, Casper Bang
Casper wrote:
 
Eventually all the kinetic energy will have been depleted and I see little evidence of Oracle being able to boost it

Really? I certainly don't approve of everything that Oracle has done regarding Java since they took over, but it's hard to argue against the fact that they pulled off in one year what Sun wasn't able to achieve in five: release a new major version of the JDK.

More or less yes, and I think it's pretty telling that in the last half a decade alternative languages on the JVM went from being a silly theoretical exercise to a necessity.

According to whom or what? Not a single one of these alternative languages has managed to make even a small dent in Java's dominance. Groovy seems to be the number two language on the JVM with a single digit percent in mind share, followed by Scala with an even smaller portion.

Don't get me wrong, I love the energy of this field and I can't help but get excited whenever I hear that a new language is coming out on the JVM, but I have absolutely no illusion whatsoever that any of these languages is a "necessity", much less on its way to replace the allegedly dying Java.
 
Google should've bought Oracle, submittet a cleaned up rebooted Java and the JVM as an open standard and things could've looked much more interesting.

I am not really convinced that Google would have been more aggressive in terms of adding new features to the language, so I think you would have been equally disappointed by the results. Even if they did, it's unlikely that their goals would have aligned with yours.

I am a bit surprised by the disproportionate attention that a lot of people are paying to language features, to be honest, as if the existence or the absence of certain features is going to be a decisive advantage to a company or provide an endless amount of happiness to developers, magically making them ten times more productive.

A successful language is a puzzle made of many pieces, of which syntax is only one. I experiment with cutting edge languages all the time and I can tell you that most of the time, the buzz provided by convenient native support of properties or lambdas is very, very quickly negated by immature tools, broken IDE support, the absence of interesting problems and clever solutions, buggy libraries, incomplete documentation and nonexistent, and sometimes hostile, communities.

I certainly have my beefs with the Java syntax and nothing would make me happier than never having to implement a getter ever again, but no other language, even outside the JVM, comes even close to matching it in most of these other categories that are so often conveniently overlooked by language purists.

-- 
Cédric

Fabrizio Giudici

unread,
May 15, 2012, 2:55:24 AM5/15/12
to java...@googlegroups.com, Cédric Beust ♔, Casper Bang
On Tue, 15 May 2012 08:25:35 +0200, Cédric Beust ♔ <ced...@beust.com>
wrote:


> Really? I certainly don't approve of everything that Oracle has done
> regarding Java since they took over, but it's hard to argue against the
> fact that they pulled off in one year what Sun wasn't able to achieve in
> five: release a new major version of the JDK.

Agreed. Let's not forget that now we also have a (Open)JDK 7 for Mac OS X,
aligned with other versions. It might not be that relevant given that a
minuscule fraction of developers use Mac OS X, but Oracle solved a decade
long problem.

> More or less yes, and I think it's pretty telling that in the last half a
>> decade alternative languages on the JVM went from being a silly
>> theoretical exercise to a necessity.
>>
>
> According to whom or what? Not a single one of these alternative
> languages
> has managed to make even a small dent in Java's dominance. Groovy seems
> to
> be the number two language on the JVM with a single digit percent in mind
> share, followed by Scala with an even smaller portion.

Correct. Additionally, if more languages were a strict necessity to
replace Java, not only Java would have been passed, but you'd get a single
alternative language dominance. Instead, you have many. That's why I think
it's a normal dynamic of people innovating the scenario and I think it's
great that this mostly happens in the community.

To answer the original question about .Net vs Java communities, we could
ask ourselves: how many of the good things (languages, tools, practices)
people are using now (in both communities) originated out of the former
and the latter community?

Kevin Wright

unread,
May 15, 2012, 4:50:09 AM5/15/12
to java...@googlegroups.com, Cédric Beust ♔, Casper Bang
On 15 May 2012 07:55, Fabrizio Giudici <Fabrizio...@tidalwave.it> wrote:
On Tue, 15 May 2012 08:25:35 +0200, Cédric Beust ♔ <ced...@beust.com> wrote:


Really? I certainly don't approve of everything that Oracle has done
regarding Java since they took over, but it's hard to argue against the
fact that they pulled off in one year what Sun wasn't able to achieve in
five: release a new major version of the JDK.

Agreed. Let's not forget that now we also have a (Open)JDK 7 for Mac OS X, aligned with other versions. It might not be that relevant given that a minuscule fraction of developers use Mac OS X, but Oracle solved a decade long problem.


The overall fraction may be low, but it's significant.  Attend almost any developer conference and take a look at the laptops in use, a 50:50 ratio of MacBooks to other brands is not common, perhaps even higher amongst speakers.

I'm quite sure that this has already had a negative impact on JavaFX 2.0.  Take those people tho are best known for exploring new technologies, who are eager to then embrace some of them, to then stand up and talk about their experiences.  Then release a new tech and tell these people that it wont run on their platform, yet.  Then be vague about the release date.  Then give them a crippled 32-bit version.  Then brace yourself for a total and utter lack of mainstream interest.

Never underestimate the minuscule fractions.


 

More or less yes, and I think it's pretty telling that in the last half a
decade alternative languages on the JVM went from being a silly
theoretical exercise to a necessity.


According to whom or what? Not a single one of these alternative languages
has managed to make even a small dent in Java's dominance. Groovy seems to
be the number two language on the JVM with a single digit percent in mind
share, followed by Scala with an even smaller portion.

Correct. Additionally, if more languages were a strict necessity to replace Java, not only Java would have been passed, but you'd get a single alternative language dominance. Instead, you have many. That's why I think it's a normal dynamic of people innovating the scenario and I think it's great that this mostly happens in the community.

To answer the original question about .Net vs Java communities, we could ask ourselves: how many of the good things (languages, tools, practices) people are using now (in both communities) originated out of the former and the latter community?



--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
fabrizio...@tidalwave.it
http://tidalwave.it - http://fabriziogiudici.it

--
You received this message because you are subscribed to the Google Groups "Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.




--
Kevin Wright
mail: kevin....@scalatechnology.com
gtalk / msn : kev.lee...@gmail.com
vibe / skype: kev.lee.wright
steam: kev_lee_wright

"My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra

Kevin Wright

unread,
May 15, 2012, 4:51:28 AM5/15/12
to java...@googlegroups.com, Cédric Beust ♔, Casper Bang
On 15 May 2012 09:50, Kevin Wright <kev.lee...@gmail.com> wrote:


On 15 May 2012 07:55, Fabrizio Giudici <Fabrizio...@tidalwave.it> wrote:
On Tue, 15 May 2012 08:25:35 +0200, Cédric Beust ♔ <ced...@beust.com> wrote:


Really? I certainly don't approve of everything that Oracle has done
regarding Java since they took over, but it's hard to argue against the
fact that they pulled off in one year what Sun wasn't able to achieve in
five: release a new major version of the JDK.

Agreed. Let's not forget that now we also have a (Open)JDK 7 for Mac OS X, aligned with other versions. It might not be that relevant given that a minuscule fraction of developers use Mac OS X, but Oracle solved a decade long problem.


The overall fraction may be low, but it's significant.  Attend almost any developer conference and take a look at the laptops in use, a 50:50 ratio of MacBooks to other brands is not common, perhaps even higher amongst speakers.

That should, of course, have read:

"a 50:50 ratio of MacBooks to other brands is not UNcommon"

Fabrizio Giudici

unread,
May 15, 2012, 4:55:32 AM5/15/12
to java...@googlegroups.com, Kevin Wright, Cédric Beust ♔, Casper Bang
On Tue, 15 May 2012 10:50:09 +0200, Kevin Wright
<kev.lee...@gmail.com> wrote:

> I'm quite sure that this has already had a negative impact on JavaFX 2.0.

What do you mean? The news are that Oracle's JDK 7u4 embeds JavaFX 2.0
(OpenJDK not yet). Not tried yet, I'm still killing some residual problems
in the migration to JDK 7 in my apps.

The only negative impact I see is about embedding a JRE in one's app (it
has been discussed here in the past), as the JRE size grew up
substantially because of the JavaFX inside the JRE.

Vince O'Sullivan

unread,
May 15, 2012, 5:04:49 AM5/15/12
to java...@googlegroups.com, Casper Bang
On Monday, 14 May 2012 23:03:09 UTC+1, clay wrote:
...their posts are beyond obnoxious, their benchmarks are outrageous, and they have a militant fan base that amplifies that flame war mindset.

It's lucky we're not like that, isn't it.  ;) 

Kevin Wright

unread,
May 15, 2012, 5:10:47 AM5/15/12
to java...@googlegroups.com, Casper Bang
It's like religion.

If you share the first few chapters of your holy book with someone else, you'll launch the crusades to defend your interpretation and the final few chapters.  If you have nothing in common, you'll get along peacefully.

When was the last time you heard "opinion pieces" or whispered racist comments objecting to the presence of shintoists or buddhists in your community?



--
You received this message because you are subscribed to the Google Groups "Java Posse" group.
To view this discussion on the web visit https://groups.google.com/d/msg/javaposse/-/dAG0fuISSGIJ.

To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.

Fabrizio Giudici

unread,
May 15, 2012, 5:22:06 AM5/15/12
to java...@googlegroups.com, Kevin Wright, Casper Bang
On Tue, 15 May 2012 11:10:47 +0200, Kevin Wright
<kev.lee...@gmail.com> wrote:

> It's like religion.
>
> If you share the first few chapters of your holy book with someone else,
> you'll launch the crusades to defend your interpretation and the final
> few
> chapters. If you have nothing in common, you'll get along peacefully.
>
> When was the last time you heard "opinion pieces" or whispered racist
> comments objecting to the presence of shintoists or buddhists in your
> community?

Undeniable no community is safe from the religion-like approach. But we
can pursue objective points. For instance, my previous question about how
many state-of-the-art items people are using today come from each of the
two technologies. That's something reasonably objective.

Ricky Clarkson

unread,
May 15, 2012, 5:26:26 AM5/15/12
to java...@googlegroups.com, Casper Bang

> I am not really convinced that Google would have been more aggressive in terms of adding new features to the language

Right.   With Josh Bloch at the helm, forever showing *compiler test cases* as examples of complex code, and dragging out the phrase 'use up our complexity budget' to put down anything he doesn't like, it would likely move at a glacial pace.

> I am a bit surprised by the disproportionate attention that a lot of people are paying to language features, to be honest, as if the existence or the absence of certain features is going to be a decisive advantage to a company or provide an endless amount of happiness to developers, magically making them ten times more productive.

For me at least it's more that the lack of such features makes it difficult to get certain code styles into generally-understood Java code, meaning that people stick with poor solutions just because Java makes them less noisy than better solutions.

> I certainly have my beefs with the Java syntax and nothing would make me happier than never having to implement a getter ever again, but no other language, even outside the JVM, comes even close to matching it in most of these other categories that are so often conveniently overlooked by language purists.

IDE support isn't exactly overlooked, just bear in mind that most language creators would have grown up with more primitive tools like emacs, vi, and never switched fully.  Martin Odersky has in the last couple of years made a concerted effort to stay in Eclipse so that he can see the Eclipse plugin bugs and fix them even while he works on the Scala compiler.  Before that he would use emacs and trust others to get Eclipse right, which they didn't.

The next lot of languages, as we're already seeing, come from people who started out with IDEs, so don't fret, this is a problem that will largely solve itself.

Regarding acidic communities, you and I both know that you're talking about one man in particular who has a particular opinion he never shifts from and calls anyone who disagrees with him uneducated or worse.  He's not a community.

Casper Bang

unread,
May 16, 2012, 4:05:15 AM5/16/12
to java...@googlegroups.com, Casper Bang

Really? I certainly don't approve of everything that Oracle has done regarding Java since they took over, but it's hard to argue against the fact that they pulled off in one year what Sun wasn't able to achieve in five: release a new major version of the JDK.

I hear what you are saying, but isn't that much like being able to throw a frozen dish (prepared and put together by someone else) into the microwave and pressing the button? It's not really the hard part... especially leaving stuff status quo.

According to whom or what? Not a single one of these alternative languages has managed to make even a small dent in Java's dominance. Groovy seems to be the number two language on the JVM with a single digit percent in mind share, followed by Scala with an even smaller portion.

No not yet, but it's not hard to extrapolate from the community and events within it. You can of course disagree, but I definitely see a backlash against (legacy) Java and a desire to push the art forward. 
 
I am a bit surprised by the disproportionate attention that a lot of people are paying to language features, to be honest, as if the existence or the absence of certain features is going to be a decisive advantage to a company or provide an endless amount of happiness to developers, magically making them ten times more productive.

A successful language is a puzzle made of many pieces, of which syntax is only one. I experiment with cutting edge languages all the time and I can tell you that most of the time, the buzz provided by convenient native support of properties or lambdas is very, very quickly negated by immature tools, broken IDE support, the absence of interesting problems and clever solutions, buggy libraries, incomplete documentation and nonexistent, and sometimes hostile, communities.

I certainly have my beefs with the Java syntax and nothing would make me happier than never having to implement a getter ever again, but no other language, even outside the JVM, comes even close to matching it in most of these other categories that are so often conveniently overlooked by language purists.

No, it's much better to debate over Lamba syntax for 5 years right? We can of course not throw everything and the kitchen sink into a language. However, as we learn new programming techniques and patterns; there's a need for generalization and bringing these into the language as idioms and first class constructs. There's also a need for cleaning up old mishaps and drawing a line in the sand occasionally. A great many things drown in the complexities of trying to achieve orthogonality on a platform which lacks an architect and which never removing anything when lessons are learned.

Fabrizio Giudici

unread,
May 16, 2012, 4:16:27 AM5/16/12
to java...@googlegroups.com, Casper Bang
On Wed, 16 May 2012 10:05:15 +0200, Casper Bang <caspe...@gmail.com>
wrote:


> within it. You can of course disagree, but I definitely see a backlash
> against (legacy) Java and a desire to push the art forward.

I don't see any backlash, but this is subjective. It's hard to discuss on
these basis. If we look at Tiobe, which as I said many times has to be
considered with a very large pinch of salt, it's true that Java is slowly
degrading. C# seems to be slowly growing, but it's so far from Java that I
see hardly a strategic move. The only language which is gaining a lot is
ObjC and this is due to iOS, not to anger towards Java. With the current
trends, ObjC apart, nothing will significantly change for a few years.

Casper Bang

unread,
May 16, 2012, 4:51:56 AM5/16/12
to java...@googlegroups.com, Casper Bang
I don't see any backlash, but this is subjective. It's hard to discuss on  
these basis. If we look at Tiobe, which as I said many times has to be  
considered with a very large pinch of salt, it's true that Java is slowly  
degrading. C# seems to be slowly growing, but it's so far from Java that I  
see hardly a strategic move.

True enough. In any event, it's not the language merits that would push corporate to .NET, it would be a desire to interact and integrate seamlessly with other Microsoft based business systems (XRM, SharePoint, Axapta, SiteCore etc.).
 
The only language which is gaining a lot is  
ObjC and this is due to iOS, not to anger towards Java. With the current  
trends, ObjC apart, nothing will significantly change for a few years.

True again. ObjC is a horrible language, but being based on LLVM they certainly do have some options there, one "just" have to avoid stepping on Apple's toes (i.e. including a VM) but then again, that very same limitation will also be present on the Windows 8 platform.

clay

unread,
May 16, 2012, 4:53:32 PM5/16/12
to java...@googlegroups.com, Casper Bang
On Wednesday, May 16, 2012 3:51:56 AM UTC-5, Casper Bang wrote:
True enough. In any event, it's not the language merits that would push corporate to .NET, it would be a desire to interact and integrate seamlessly with other Microsoft based business systems (XRM, SharePoint, Axapta, SiteCore etc.).


Casper, this is your bright side. You are touching on the core issue that genuinely concerns me and triggered my emotional posts: engaging programming work versus the reality of most paid programming jobs. Exotic programming language features are intellectually interesting but generate few job positions. SharePoint integration/maintenance work is basically completely devoid of anything intellectually interesting but generates lots of salaried job positions.

Most salaried programmer work is not remotely interesting. Typically businesses don't hire programmers to do interesting new development. They choose the interesting parts from off the shelf components and hire programmers to handle implementation, integration, maintenance, and support.

When businesses are hiring for mundane integration, support work, they want to make the work as easy as possible, they want to be able to hire from the widest pool as possible, and they want programmer personnel to be as interchangeable as possible. That means reducing developer choice and using a more streamlined toolset. Microsoft has been successful and given this crowd what they want. Java tried to win this crowd with Java EE, but never came close to what Microsoft could do.

The veteran intellectual developer types want maximum choice and flexibility. This is where Java really shines. This is why such a high ratio of the more interesting libraries, concepts, and startups come out of the Java ecosystem.

In the more entry level, ease of use camp, you find a high correlation between those that prefer .NET, point-and-click-interfaces, Windows OS, and Microsoft Office.

In the other more serious technology geek camp you find a high correlation of those that prefer JVM, command line interfaces, UNIX, and LaTeX.

I guess I'm extra sensitive about the Xamarin style Java/JVM/Dalvik bashing, because I perceive it as a threat to my intellectual career interests and a threat to be forced to conform to the more entry level mass market technologies. 

Vince O'Sullivan

unread,
May 17, 2012, 4:12:33 AM5/17/12
to java...@googlegroups.com, Casper Bang
On Wednesday, 16 May 2012 21:53:32 UTC+1, clay wrote:
Casper, this is your bright side. You are touching on the core issue that genuinely concerns me and triggered my emotional posts: engaging programming work versus the reality of most paid programming jobs. Exotic programming language features are intellectually interesting but generate few job positions. SharePoint integration/maintenance work is basically completely devoid of anything intellectually interesting but generates lots of salaried job positions.

Most salaried programmer work is not remotely interesting. Typically businesses don't hire programmers to do interesting new development. They choose the interesting parts from off the shelf components and hire programmers to handle implementation, integration, maintenance, and support.

When businesses are hiring for mundane integration, support work, they want to make the work as easy as possible, they want to be able to hire from the widest pool as possible, and they want programmer personnel to be as interchangeable as possible. That means reducing developer choice and using a more streamlined toolset. Microsoft has been successful and given this crowd what they want. Java tried to win this crowd with Java EE, but never came close to what Microsoft could do.

The veteran intellectual developer types want maximum choice and flexibility. This is where Java really shines. This is why such a high ratio of the more interesting libraries, concepts, and startups come out of the Java ecosystem.

In the more entry level, ease of use camp, you find a high correlation between those that prefer .NET, point-and-click-interfaces, Windows OS, and Microsoft Office.

In the other more serious technology geek camp you find a high correlation of those that prefer JVM, command line interfaces, UNIX, and LaTeX.

I guess I'm extra sensitive about the Xamarin style Java/JVM/Dalvik bashing, because I perceive it as a threat to my intellectual career interests and a threat to be forced to conform to the more entry level mass market technologies.

When software developers that use product X claim some sort of intellectual superiority over software developers who use product Y, all I can think is that they've never heard of the People's Front of Judea.

Roland Tepp

unread,
May 17, 2012, 5:22:46 AM5/17/12
to java...@googlegroups.com
Clay, 

You are making far too broad generalizations, thereby 

About a year ago I had a chance to work for a company that was a small Microsoft shop and as one of my jobs was to bootstrap a web application for managing and administering their SaaS backend, I had a fairly good look at the state of various frameworks, libraries, developer tooling and platforms .NET had to offer and I must admit, the offering was much more diverse and interesting than I had suspected.

There is a fairly rich assortment various OpenSource projects for most anything I've seen in Java.  sometimes just a counterpart of a Java project, like Nant, NUnit, NHibernate, NodaTime, etc; but more often, they have stuff that stands out tall and bright on their own two feet, like Moq, Ninject, to name a few.

And Microsoft. They are still the behemoth they were 10 years ago, but they have opened up considerably since. ASP.NET MVC, NuGet, WPF, RX, NMake and countless other projects that are pretty good  in both innovation and openness.

I am not saying, that it's just as vibrant in the MS land, but you should not simply play them down because they've chosen a different VM and technology stack...

Kevin Wright

unread,
May 17, 2012, 6:28:34 AM5/17/12
to java...@googlegroups.com, Casper Bang
That email is positively *dripping* with exactly the flavour of ennui that inevitably hits almost every programmer stuck in a cubicle working for a "big brand", usually an investment bank,

It sounds to me as though you're ready to join a small company.  Preferably a startup.  With stock options.


Fabrizio Giudici

unread,
May 17, 2012, 6:40:21 AM5/17/12
to java...@googlegroups.com, Roland Tepp
On Thu, 17 May 2012 11:22:46 +0200, Roland Tepp <luo...@gmail.com> wrote:


> There is a fairly rich assortment various OpenSource projects for most
> anything I've seen in Java. sometimes just a counterpart of a Java
> project, like Nant <http://nant.sourceforge.net/>,
> NUnit<http://www.nunit.org/>,
> NHibernate <https://community.jboss.org/wiki/NHibernateForNET?_sscc=t>,
> NodaTime <http://code.google.com/p/noda-time/>, etc; but more often, they
> have stuff that stands out tall and bright on their own two feet, like
> Moq<http://code.google.com/p/moq/>,
> Ninject <http://www.ninject.org/>, to name a few.

Well, the fact that all that stuff is N + the same project originated in
the Java ecosystem seems to demonstrate what I was asserting a few days
ago (I must say that NodaTime is the most hilarious one: JodaTime was born
because Date is the worst API in the Java language, but the fact that a
NodaTime exists means either that the equivalent of Date in C# is bad as
well, or that Stephen, a guy from the Java community, got the best way to
do that).

> have opened up considerably since. ASP.NET MVC, NuGet, WPF, RX, NMake and
> countless other projects that are pretty good in both innovation and
> openness.

... then this is the opposite way: how many of those things originated by
Microsoft have spread to other communities?

Fabrizio Giudici

unread,
May 17, 2012, 6:40:18 AM5/17/12
to java...@googlegroups.com, Vince O'Sullivan, Casper Bang
On Thu, 17 May 2012 10:12:33 +0200, Vince O'Sullivan
<vjosu...@gmail.com> wrote:


> When software developers that use product X claim some sort
> of intellectual superiority over software developers who use product Y,
> all
> I can think is that they've never heard of the People's Front of Judea.

This is true if the discussion only refers to *products*. Things are a bit
difference in the case there are differences in the culture behind
products.

Casper Bang

unread,
May 17, 2012, 7:20:59 AM5/17/12
to java...@googlegroups.com, Casper Bang
Casper, this is your bright side. You are touching on the core issue that genuinely concerns me and triggered my emotional posts: engaging programming work versus the reality of most paid programming jobs. Exotic programming language features are intellectually interesting but generate few job positions. SharePoint integration/maintenance work is basically completely devoid of anything intellectually interesting but generates lots of salaried job positions.

Wow Clay, looks like I struck a nerve there. As someone who's about the spearhead SharePoint integration at my org, I hope yop are wrong. Although I agree with your basic premise, that corporate data-processing with standards systems is dull, when seen from a bottom-up alpha-geek perspective, I also see it as an interesting opportunity to bring value and solve problems of interoperability. Whether that involves writing a LINQ provider, an ODATA backend etc. that is certainly not devoid of intellectual challenges. 

Most salaried programmer work is not remotely interesting. Typically businesses don't hire programmers to do interesting new development. They choose the interesting parts from off the shelf components and hire programmers to handle implementation, integration, maintenance, and support.

When businesses are hiring for mundane integration, support work, they want to make the work as easy as possible, they want to be able to hire from the widest pool as possible, and they want programmer personnel to be as interchangeable as possible. That means reducing developer choice and using a more streamlined toolset. Microsoft has been successful and given this crowd what they want. Java tried to win this crowd with Java EE, but never came close to what Microsoft could do. 

The veteran intellectual developer types want maximum choice and flexibility. This is where Java really shines. This is why such a high ratio of the more interesting libraries, concepts, and startups come out of the Java ecosystem.
In the more entry level, ease of use camp, you find a high correlation between those that prefer .NET, point-and-click-interfaces, Windows OS, and Microsoft Office.

I can assure you, that is not a .NET aspect. Oracle's ADF framework and JDeveloper (we don't get much more official within the Java stack than this) is littered with point-n-click and XML which is utterly impossible to maintain afterward. After 10 years working primarily with Java, I've come to the conclusion that less is more. For productivity and maintainability in the Java world, it's essential to be conservative about choice of technology because it is often replaced by something better, deprecated altogether, inconsistent  and complicated in integrating. Navigating this chaos is not for the faint of heart, startups can do this because they do not have existing business requirement or systems to keep running. Thus, the core problem with the Java ecosystem is that of versionability and scalability over time.
 
In the other more serious technology geek camp you find a high correlation of those that prefer JVM, command line interfaces, UNIX, and LaTeX.

No doubt CS graduates bring along their own preference for tools, technologies and (software) religion/politics - often skewed towards the things you mention. However, one can also choose to adopt the view that a developers purpose is to solve business problems with the best tools available rather than spending time reinventing the wheel, flip-flopping between choices etc.

I guess I'm extra sensitive about the Xamarin style Java/JVM/Dalvik bashing, because I perceive it as a threat to my intellectual career interests and a threat to be forced to conform to the more entry level mass market technologies. 

So because Xamarin is using C# (an open standard, syntactically superior to Java) implemented by one of the most famous active hackers today, it's entry-level and a threat to you? That sounds like the prejudice and typecasting I find to be the worst part of the Java community.

Kevin Wright

unread,
May 17, 2012, 7:37:03 AM5/17/12
to java...@googlegroups.com, Casper Bang
On 17 May 2012 12:20, Casper Bang <caspe...@gmail.com> wrote:
Casper, this is your bright side. You are touching on the core issue that genuinely concerns me and triggered my emotional posts: engaging programming work versus the reality of most paid programming jobs. Exotic programming language features are intellectually interesting but generate few job positions. SharePoint integration/maintenance work is basically completely devoid of anything intellectually interesting but generates lots of salaried job positions.

Wow Clay, looks like I struck a nerve there. As someone who's about the spearhead SharePoint integration at my org, I hope yop are wrong. Although I agree with your basic premise, that corporate data-processing with standards systems is dull, when seen from a bottom-up alpha-geek perspective, I also see it as an interesting opportunity to bring value and solve problems of interoperability. Whether that involves writing a LINQ provider, an ODATA backend etc. that is certainly not devoid of intellectual challenges. 

Most salaried programmer work is not remotely interesting. Typically businesses don't hire programmers to do interesting new development. They choose the interesting parts from off the shelf components and hire programmers to handle implementation, integration, maintenance, and support.

When businesses are hiring for mundane integration, support work, they want to make the work as easy as possible, they want to be able to hire from the widest pool as possible, and they want programmer personnel to be as interchangeable as possible. That means reducing developer choice and using a more streamlined toolset. Microsoft has been successful and given this crowd what they want. Java tried to win this crowd with Java EE, but never came close to what Microsoft could do. 

The veteran intellectual developer types want maximum choice and flexibility. This is where Java really shines. This is why such a high ratio of the more interesting libraries, concepts, and startups come out of the Java ecosystem.
In the more entry level, ease of use camp, you find a high correlation between those that prefer .NET, point-and-click-interfaces, Windows OS, and Microsoft Office.

I can assure you, that is not a .NET aspect. Oracle's ADF framework and JDeveloper (we don't get much more official within the Java stack than this) is littered with point-n-click and XML which is utterly impossible to maintain afterward. After 10 years working primarily with Java, I've come to the conclusion that less is more. For productivity and maintainability in the Java world, it's essential to be conservative about choice of technology because it is often replaced by something better, deprecated altogether, inconsistent  and complicated in integrating. Navigating this chaos is not for the faint of heart, startups can do this because they do not have existing business requirement or systems to keep running. Thus, the core problem with the Java ecosystem is that of versionability and scalability over time.
 
In the other more serious technology geek camp you find a high correlation of those that prefer JVM, command line interfaces, UNIX, and LaTeX.

No doubt CS graduates bring along their own preference for tools, technologies and (software) religion/politics - often skewed towards the things you mention. However, one can also choose to adopt the view that a developers purpose is to solve business problems with the best tools available rather than spending time reinventing the wheel, flip-flopping between choices etc.


Why do you think this is?  If I engage the services of a carpenter/cabinet maker then yes, of course I want them - first and foremost - to solve a storage problem for me.  But if that was the only thing they did then we'd never have the French provincial style, or Rococo, or any of the other wonderful designs that help make life just that little bit richer.
 
If someone makes a wardrobe for me then I WANT them to be passionate about it, to be a craftsman, to make something beautiful.. Surely we owe it to ourselves to do nothing less?

Casper Bang

unread,
May 17, 2012, 8:18:41 AM5/17/12
to java...@googlegroups.com, Casper Bang
Why do you think this is?  If I engage the services of a carpenter/cabinet maker then yes, of course I want them - first and foremost - to solve a storage problem for me.  But if that was the only thing they did then we'd never have the French provincial style, or Rococo, or any of the other wonderful designs that help make life just that little bit richer.
 
If someone makes a wardrobe for me then I WANT them to be passionate about it, to be a craftsman, to make something beautiful.. Surely we owe it to ourselves to do nothing less?

Now we're getting into the debate whether programming is an art/craft. Most skilled programmers I've met, including myself, would be characterized as perfectionists and if not pressed by deadlines, would never finish anything - the painting is literally NEVER really done. There's always another unit-test to be written, some refactoring to be done, algorithm to be optimized etc. etc. 

That's fine and dandy for all our hobby projects, but unless we won the lottery, there's an employer with some strategic commercial agenda and problems for us to solve. Actually shipping, is a product's or service's greatest feature. Admittedly, it's a battle I've struggled hard with most of my professional life, when is it "good enough" and how do you balance due diligence with over-ingeneering.

Ricky Clarkson

unread,
May 17, 2012, 8:25:14 AM5/17/12
to java...@googlegroups.com, Casper Bang

I'd not call them skilled, if you mean they refuse to ship until it's perfect.

--
You received this message because you are subscribed to the Google Groups "Java Posse" group.
To view this discussion on the web visit https://groups.google.com/d/msg/javaposse/-/3mMwhPO7quMJ.

Fabrizio Giudici

unread,
May 17, 2012, 8:39:03 AM5/17/12
to java...@googlegroups.com, Ricky Clarkson, Casper Bang
On Thu, 17 May 2012 14:25:14 +0200, Ricky Clarkson
<ricky.c...@gmail.com> wrote:

> I'd not call them skilled, if you mean they refuse to ship until it's
> perfect.

Exactly. The skill of evaluating when a thing is good enough - that is, a
cost/quality evaluation - is one of the required skills in our business.

Casper Bang

unread,
May 17, 2012, 8:53:01 AM5/17/12
to java...@googlegroups.com, Casper Bang

On Thursday, May 17, 2012 2:25:14 PM UTC+2, Ricky Clarkson wrote:

I'd not call them skilled, if you mean they refuse to ship until it's perfect.

Nothing that definitive. It is just not always easy to judge, managers scream "ship now" when they see a finished UI, but like an ice berg, the bulk of the matter is underneath the surface only for the engineers to see. Even a behemoth like Blizzard with its 3K employees, launched the much anticipated game Diablo III with no-one being able to play even campaigns, since the game requires active connection at all times. Seems like "good enough" was not good enough in that case.

Ricky Clarkson

unread,
May 17, 2012, 8:57:32 AM5/17/12
to java...@googlegroups.com, Casper Bang

Well, shipping might mean to a QA department or a handful of alpha-loving players who give feedback.  I appreciate that certain niches are hard to provide updates for.

--
You received this message because you are subscribed to the Google Groups "Java Posse" group.
To view this discussion on the web visit https://groups.google.com/d/msg/javaposse/-/9erKhtQZiXIJ.

clay

unread,
May 17, 2012, 5:14:11 PM5/17/12
to java...@googlegroups.com
Roland, I absolutely am making broad generalizations. When you are talking about extremely broad ecosystems like Java and .NET, it's necessary to speak in broad generalizations rather than in personal anecdotes.

Of course, .NET has a ton of open source type independent technologies. In fact they have some of the best! Look at Scala and Clojure! They are completely JVM/.NET cross platform. The issue is the .NET community and culture is resistant to anything that isn't Microsoft. This is so ingrained in most people's minds, they instinctively think about Scala and Clojure as purely Java beasts.

You mention a yet another dependency injection framework and a mocking framework... There were hundreds of free and open source C# web frameworks, but they never grew passed the fringe usage stage. Most C#/.NET developers aren't interested in non-Microsoft technologies and C#/.NET managers widely prohibit staff from using non-Microsoft technologies.

In the Java world, it's the opposite. Independent, free, open source technologies like Ant, Maven, Tomcat, Spring, and Eclipse are completely prevalent. Every Java developer knows them. They're widely supported throughout the entire ecosystem. For example, every major Java IDE has tools and features to assist development with Ant/Maven/Spring. Do .NET IDEs (mainly Visual Studio but also MonoDevelop) have tooling features to aid development with independent technologies like the two you mentioned?

Java really has the independent decentralized ecosystem based on technology merit really baked into its culture. .NET has a Microsoft-only completely centralized top-down ecosystem baked into is culture. Generally, people from both camps agree with that.

clay

unread,
May 17, 2012, 5:40:53 PM5/17/12
to java...@googlegroups.com, Casper Bang
On Thursday, May 17, 2012 6:20:59 AM UTC-5, Casper Bang wrote:
I can assure you, that is not a .NET aspect. Oracle's ADF framework and JDeveloper (we don't get much more official within the Java stack than this) is littered with point-n-click and XML which is utterly impossible to maintain afterward.

I emphatically agree with you on the horrors of JSF and Oracle's ADF. They were aiming for the dumbed down success of ASP.NET and their product was worse in every way. There's tons of other garbage within the Java space as well. But this really doesn't affect my main point: Java's overall success has been with the more veteran developers with maximum choice and .NET's success has been with the more dumbed down IT job crowd.  

No doubt CS graduates bring along their own preference for tools, technologies and (software) religion/politics - often skewed towards the things you mention. However, one can also choose to adopt the view that a developers purpose is to solve business problems with the best tools available rather than spending time reinventing the wheel, flip-flopping between choices etc.

It's easy to poo poo someone else's technology preferences as religion/politics. Let me guess, the tools and technologies you love are logical choices for solving business problems, while the technologies the other guy loves are irrational, whiny, religion, and politics.

Casper, I'm sure that if you had to do a ton of integration or maintenance work with some technology stack that you absolutely can't stand, you would be miserable, you'd drag your feet and grouse about it. But one person's trash is another person's treasure. You are passionate about SharePoint C# development work, you are probably energetic about doing it, and I bet your manager is grateful to have you. And those kind of win-win relationships are what make the world a better place.

On one side, workers need to deliver value to their employers and society, justify their jobs, accept compromise, and not be primadonnas. But on the other side, it's reasonable for workers to desire meaning, growth, engagement, and some level of choice and input on tools and technology. Ultimately, the two sides have to continually manage that conflict of interests.

So because Xamarin is using C# (an open standard, syntactically superior to Java) implemented by one of the most famous active hackers today, it's entry-level and a threat to you? That sounds like the prejudice and typecasting I find to be the worst part of the Java community.

I didn't say that at all.

Lots of managers and personal friends who I have a deep respect for, use all Microsoft tools, use C# almost every day, and I would never insult or belittle them. A lot of smart good people use Microsoft Word and don't have the first clue about LaTeX or markup centric document tools, and that doesn't make them bad people, it's just that they don't understand the document tool space very well.

Xamarin isn't merely using C# and building their own products, they are loudly flaming Java/JVM/Dalvik/Google/Oracle. In the post you linked, Miguel de Icaza gloats over the Google/Oracle lawsuit issue, bashes Java syntax, bashes Java performance, and posts some dishonestly cherry picked benchmarks scores. His public posts are more of a manipulative PR guy than a product developer.

I know this specific post is primarily referring to Dalvik not the Oracle desktop JVM and HotSpot, but if C# the language is so superior and more performant than Java, why does Java/HotSpot outperform C#/Mono in benchmarks (I previously posted the link here) by such a large margin? Why won't Xamarin let anyone benchmark their Android products without buying a $399 license? Why doesn't Miguel even acknowledge independent benchmark scores and the overwhelming evidence that contradicts his claims, rather than hiding it and redirecting the public's attention to more heavily doctored benchmarks? He's not even pretending to be reasonable or honest about this.

What's worse is large numbers of people believe him. This post ran on all the big tech news blogs. You can read the editors on those sites as well as thousands of user comments accepting his conclusion that C# is faster than Java. Nevermind that it's the VM that is the major factor in runtime performance rather than source language syntax. And nevermind that Java/HotSpot destroy C#/Mono in these types of microbenchmark tests. And nevermind that he's completely doctoring his benchmark system to manipulate public opinion. And he's prevented other people from benchmarking his open source based product without a $399 license.

And I see Vince O'Sullivan snidely remarks in this thread, "It's lucky we're not like that, isn't it.  ;". Sure, you can say that everyone's opinion is just as biased as everyone else's and every perspective is just as valid or invalid as everyone else's and there's no point in discussing or evaluating anything. I actually care about what I'm doing. When I read this kind of rampant misinformation spreading from this purposefully dishonest source about a tool ecosystem that I think has real merit, I think it's worth commenting on.


 
Reply all
Reply to author
Forward
0 new messages