.....
Re: [project lombok] Why not request a JSR to include it in Java SE?
We've tried to get far less ambitious changes into java, and I'm holding back when I say that the experience has been "disappointing".
Our most recent 2 attempts:
* Allow 'any annotation' as a valid option for annotation fields. This lets us enable onMethod, onConstructor, and onParam properly. This was shot down under the motto: "Looks like you put in all the effort we usually ask for" (including patches to both the JLS and javac, and a lengthy discussion on the effects), but there is 'no time'. Note that the 2 persons involved in this part of java, Joe Darcy and Alex Buckley, created an entirely different annotation-related feature a few months later, so I can only conclude that either Not-Invented-Here syndrome is involved, or, anything that isn't directly requested by other departments in oracle is simply not important.
* Show how that other proposal (multiple annotations of the same type on a single member) is ill thought through and is clearly being rushed, with a spec half-baked. I've been informed my comments are not welcome, and that there is at this point no time (heh, that sounds familiar) to fix things. Note that right now the spec is being changed anyway due to comments from the JavaEE lead that originally asked for this feature. Yet again that 'no time' things seems to be a convenient excuse, but, then, I don't know how things are run inside oracle. That is a big part of the problem - opaqueness.
You can see why, personally, I've given up. The process to add things to java is too opaque and the effort required to satisfy requirements is far too large knowing that so far we've been turned down every time. If I had a reasonable guarantee that, if the spec is near perfect, the patches to javac are bug free, and there are no outstanding issues, that it would happen, I'd put in the effort.
I get the strong feeling that if no project lead within Oracle personally cares, your odds of getting anything into java is pretty much nil, but no Oracle project lead is going to go public with support in case things backfire.
--Reinier Zwitserloot
On Sun, Jan 6, 2013 at 12:35 AM, Mike Dias <mike.rodr...@gmail.com> wrote:
I was upset with Java by ALWAYS force me to write getters/setters. I love Java, but I hate the unnecessary verbosity of getters/setters.
So I found the Project Lombok and my eyes can shine again with clean code! =)
In my humble opinion, this project should be part of the Java SE and fortunately this is possible through of Java Community Process:
"Any individual, organization, or company that signs the Java Specification Participation Agreement (JSPA). (Members may also be called Participants elsewhere on this web site.) Members enjoy all the privileges of Public participation, plus they can:
propose new or revised Java API specification projects by filing a JSR..."
What do you think?
--
--
OpenJDK is as much open source as Android: it is in the licensing sense; but not in the community and collaboration sense.
Someone should probably invent a new word for it, so that people don't have false assumptions.
In Scala at least, I'm finding almost the entire community still think of themselves as Java programmers. Java nowadays is first and foremost a platform, and you're still programming against Java even if you're not not using Java-the-language.
What Java *isn't* about here is default mutable collections, and use-site variance, and get/set property accessors, and lambdas being delayed at the same time as you gain the ability to put underscores in numbers, or any of the other delays and setbacks that cause a project like Lombok to even be needed in the first place!
for(x <- myCollection) yield { x.toString }
myCollection map { x => x.toString }
For far too long, people (in this group as well) have inflated "open source" with artificial attributes. It's odd really, because the wording is quite precise; the source code is open for inspection, and depending on the license, open for modification. However, just how the project is governed is out of the scope of any OSS-license that I am aware of.
I guess, BTW, what are the popular projects that can be designed as "Open community".
Scala could do better on getters and setters by exposing a Java foo.getBar() as foo.bar.
Similarly it's about to be left behind when Java adds lambdas because Java lambdas get assigned a type according to the context they're used in, whereas Scala lambdas get assigned a type based on their arities, parameter types and return types, so e.g., executor.execute(() -> { System.out.println("hello world"); }); in Java 8 will be
executor execute new Runnable { override def run() { println("hello world") } } in Scala, unless you use/write some wrappers converting Scala's () => Unit to Runnable.
I would also add that if boilerplate code drives you nuts, you may want to simply consider Scala. That language really addresses most of the lombok issues, and since they don't have to patch it on top of a legacy language, they were able to address the issues more elegantly. Scala handles the getter/setter issue particularly elegantly.
--
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/-/L33RPtkOi8cJ.
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.
--
You received this message because you are subscribed to the Google Groups "Java Posse" group.
To unsubscribe from this group, send email to javaposse+unsubscribe@googlegroups.com.
I'm looking for the other way around: A java feature (or alternate spec for a proposed feature) designed by some member of the community - how do you get that into java? I'm talking about extremely small changes that do not involve any contentious issues. Simple stuff like: Allow 'Annotation' as a legal type for annotation member methods, in addition to the already existing: Any specific annotation type, any primitive, String, Class, any enum, and a 1-dimensional array of any of those.
--
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/-/sfaUET_9H_AJ.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
I'm quite happy about the static methods in interfaces.
Please pick on a different feature to complain about the process with. :)
--
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/-/REbwJ3iun8wJ.
The point I'm making is that the decision whether something gets the “official” treatment or is merged in behind the curtains seems to be driven more by marketing aspects and less so by technical aspects.
As long as you have an approved JSR with a mandate to make supporting
language changes, you can make supporting language changes.