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...
... apart from the FUD-spreading side effect against Java in general.
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.
In any case,
Microsoft already makes tons of money out of Android (but indirectly)
thanks to patents (*):
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
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.
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.
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.
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.
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#.
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.
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).
Eventually all the kinetic energy will have been depleted and I see little evidence of Oracle being able to boost it
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.
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.
On Tue, 15 May 2012 08:25:35 +0200, Cédric Beust ♔ <ced...@beust.com> wrote: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.
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.
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.
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.
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.
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: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.
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.
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.
"a 50:50 ratio of MacBooks to other brands is not UNcommon"
...their posts are beyond obnoxious, their benchmarks are outrageous, and they have a militant fan base that amplifies that flame war mindset.
--
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 unsubscribe from this group, send email to javaposse+...@googlegroups.com.
> 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.
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.
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.
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.
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.
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.
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.
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?
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.
I'd not call them skilled, if you mean they refuse to ship until it's perfect.
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.
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.
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.
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.