From ethan at mccue.dev Sat Feb 5 21:48:46 2022 From: ethan at mccue.dev (Ethan McCue) Date: Sat, 5 Feb 2022 16:48:46 -0500 Subject: dev.java feedback Message-ID: Hi all, I've gone through a chunk of the dev.java site and marked up feedback in this Figma https://www.figma.com/file/pTnVYD5WHWxsIDoBDuUaFt/dev.java-feedback I know it's infinitely easier to be a critic than a creator, but I think that there are very real structural problems with the site as it exists right now and I don't yet have a better mechanism to affect change. The biggest and most pervasive issue is that there does not seem to be a clearly defined audience. Tutorials will shift rapidly between being targeted at * Total beginners * Beginners to Java who might know another language * Intermediates looking for reference material * Experts looking to catch up on new features and the quality of content suffers massively as a result, ending up not really being useful for any group. I am also cc-ing the discuss mailing list since I think this sort of thing is relevant to the community as a whole. From chad.arimura at oracle.com Mon Feb 7 18:57:16 2022 From: chad.arimura at oracle.com (Chad Arimura) Date: Mon, 7 Feb 2022 18:57:16 +0000 Subject: dev.java feedback In-Reply-To: References: Message-ID: <4D221A1A-A9C4-48D6-B246-AEA74B070469@oracle.com> Thanks for taking the time Ethan. Our team will reach out directly once we?ve had a time to review your suggestions. Chad ? Chad Arimura Java Developer Relations Oracle Corporation +1-415-935-3448 [m] Dev.java - Inside.java - Twitter.com/java - Youtube.com/java > On Feb 5, 2022, at 1:48 PM, Ethan McCue wrote: > > Hi all, > > I've gone through a chunk of the dev.java site and marked up feedback in this Figma > > https://www.figma.com/file/pTnVYD5WHWxsIDoBDuUaFt/dev.java-feedback > > I know it's infinitely easier to be a critic than a creator, but I think that there are very real structural problems with the site as it exists right now and I don't yet have a better mechanism to affect change. > > The biggest and most pervasive issue is that there does not seem to be a clearly defined audience. > > Tutorials will shift rapidly between being targeted at > * Total beginners > * Beginners to Java who might know another language > * Intermediates looking for reference material > * Experts looking to catch up on new features > > and the quality of content suffers massively as a result, ending up not really being useful for any group. > > I am also cc-ing the discuss mailing list since I think this sort of thing is relevant to the community as a whole. From noloader at gmail.com Thu Feb 17 04:47:39 2022 From: noloader at gmail.com (Jeffrey Walton) Date: Wed, 16 Feb 2022 23:47:39 -0500 Subject: Javac does not produce an output file to run? Message-ID: Hi Everyne, I'm having problems creating a test file with a main() method. Everything seems to build but javac does not produce an output file (and it does not error). It looks like the same mystery at https://stackoverflow.com/questions/8295538/javac-not-producing-output. I have not used Java in about 30 years. I am current on my C, C++ and ObjC. How do I fix this? Thanks in advance. ========== Here's the one hint I have. Javac is building TestClient.class, but not TestClient to run: $ find . -iname 'TestClient*' ./com/example/technology/framework/security/encryption/TestClient.class ./TestClient.java Here's what I want to do: $ ./TestClient ========== Here's the tail of the build output, when TestClient is supposed to be built. $ make ... jar cf example-encryption.jar com/example/technology/framework/security/encryption/Encry ptionConstants.class com/example/technology/framework/security/encryption/EncryptionExce ption.class com/example/technology/framework/security/encryption/EncryptionUtility.class com/example/technology/framework/security/encryption/EncryptionManager.class javac -cp example-encryption.jar -verbose -g -sourcepath ./ -d ./ TestClient.java [parsing started SimpleFileObject[/home/jwalton/Desktop/encryption/TestClient.java]] [parsing completed 11ms] [loading /modules/jdk.unsupported/module-info.class] [loading /modules/jdk.attach/module-info.class] [loading /modules/jdk.hotspot.agent/module-info.class] [loading /modules/jdk.naming.ldap/module-info.class] [loading /modules/jdk.jconsole/module-info.class] [loading /modules/jdk.zipfs/module-info.class] [loading /modules/jdk.jlink/module-info.class] [loading /modules/jdk.naming.rmi/module-info.class] [loading /modules/java.naming/module-info.class] [loading /modules/jdk.unsupported.desktop/module-info.class] [loading /modules/jdk.rmic/module-info.class] [loading /modules/jdk.jdi/module-info.class] [loading /modules/jdk.charsets/module-info.class] [loading /modules/java.logging/module-info.class] [loading /modules/jdk.security.jgss/module-info.class] [loading /modules/jdk.jfr/module-info.class] [loading /modules/jdk.management.agent/module-info.class] [loading /modules/java.datatransfer/module-info.class] [loading /modules/jdk.internal.opt/module-info.class] [loading /modules/jdk.pack/module-info.class] [loading /modules/java.scripting/module-info.class] [loading /modules/jdk.jshell/module-info.class] [loading /modules/jdk.jstatd/module-info.class] [loading /modules/java.smartcardio/module-info.class] [loading /modules/jdk.net/module-info.class] [loading /modules/java.security.sasl/module-info.class] [loading /modules/jdk.accessibility/module-info.class] [loading /modules/java.security.jgss/module-info.class] [loading /modules/jdk.internal.le/module-info.class] [loading /modules/jdk.internal.jvmstat/module-info.class] [loading /modules/jdk.editpad/module-info.class] [loading /modules/jdk.javadoc/module-info.class] [loading /modules/jdk.management.jfr/module-info.class] [loading /modules/java.se/module-info.class] [loading /modules/jdk.jartool/module-info.class] [loading /modules/jdk.jsobject/module-info.class] [loading /modules/jdk.naming.dns/module-info.class] [loading /modules/java.transaction.xa/module-info.class] [loading /modules/java.sql.rowset/module-info.class] [loading /modules/java.instrument/module-info.class] [loading /modules/jdk.sctp/module-info.class] [loading /modules/jdk.internal.vm.compiler/module-info.class] [loading /modules/jdk.jdwp.agent/module-info.class] [loading /modules/jdk.scripting.nashorn/module-info.class] [loading /modules/java.desktop/module-info.class] [loading /modules/jdk.internal.vm.ci/module-info.class] [loading /modules/jdk.compiler/module-info.class] [loading /modules/java.base/module-info.class] [loading /modules/jdk.httpserver/module-info.class] [loading /modules/java.sql/module-info.class] [loading /modules/jdk.aot/module-info.class] [loading /modules/java.management.rmi/module-info.class] [loading /modules/jdk.internal.ed/module-info.class] [loading /modules/java.prefs/module-info.class] [loading /modules/jdk.localedata/module-info.class] [loading /modules/jdk.jdeps/module-info.class] [loading /modules/jdk.xml.dom/module-info.class] [loading /modules/jdk.dynalink/module-info.class] [loading /modules/jdk.management/module-info.class] [loading /modules/jdk.crypto.cryptoki/module-info.class] [loading /modules/jdk.crypto.ec/module-info.class] [loading /modules/java.xml/module-info.class] [loading /modules/java.rmi/module-info.class] [loading /modules/java.compiler/module-info.class] [loading /modules/jdk.security.auth/module-info.class] [loading /modules/java.net.http/module-info.class] [loading /modules/java.management/module-info.class] [loading /modules/java.xml.crypto/module-info.class] [loading /modules/jdk.scripting.nashorn.shell/module-info.class] [loading /modules/jdk.jcmd/module-info.class] [loading /modules/jdk.internal.vm.compiler.management/module-info.class] [search path for source files: .] [search path for class files: /usr/lib/jvm/java-11-openjdk-amd64/lib/modules,cna-encrypt ion.jar] [loading /modules/java.base/java/lang/Object.class] [loading /modules/java.base/java/lang/String.class] [loading /modules/java.base/java/lang/Deprecated.class] [loading /modules/java.base/java/lang/annotation/Retention.class] [loading /modules/java.base/java/lang/annotation/RetentionPolicy.class] [loading /modules/java.base/java/lang/annotation/Target.class] [loading /modules/java.base/java/lang/annotation/ElementType.class] [checking com.cna.technology.framework.security.encryption.TestClient] [loading /modules/java.base/java/io/Serializable.class] [loading /modules/java.base/java/lang/AutoCloseable.class] [loading /modules/java.base/java/lang/Byte.class] [loading /modules/java.base/java/lang/Character.class] [loading /modules/java.base/java/lang/Short.class] [loading /modules/java.base/java/lang/Long.class] [loading /modules/java.base/java/lang/Float.class] [loading /modules/java.base/java/lang/Integer.class] [loading /modules/java.base/java/lang/Double.class] [loading /modules/java.base/java/lang/Boolean.class] [loading /modules/java.base/java/lang/Void.class] [loading /modules/java.base/java/lang/System.class] [loading /modules/java.base/java/io/PrintStream.class] [loading /modules/java.base/java/lang/Appendable.class] [loading /modules/java.base/java/io/Closeable.class] [loading /modules/java.base/java/io/FilterOutputStream.class] [loading /modules/java.base/java/io/OutputStream.class] [loading /modules/java.base/java/io/Flushable.class] [loading /modules/java.base/java/lang/Comparable.class] [loading /modules/java.base/java/lang/CharSequence.class] [loading /home/jwalton/Desktop/encryption/cna-encryption.jar(/com/cna/technology/framewo rk/security/encryption/EncryptionManager.class)] [loading /home/jwalton/Desktop/encryption/cna-encryption.jar(/com/cna/technology/framewo rk/security/encryption/EncryptionException.class)] [loading /modules/java.base/java/lang/Exception.class] [loading /modules/java.base/java/lang/Throwable.class] [loading /modules/java.base/java/lang/Error.class] [loading /modules/java.base/java/lang/RuntimeException.class] [loading /modules/java.base/java/lang/invoke/StringConcatFactory.class] [loading /modules/java.base/java/lang/invoke/MethodHandles.class] [loading /modules/java.base/java/lang/invoke/MethodHandles$Lookup.class] [loading /modules/java.base/java/lang/invoke/MethodType.class] [loading /modules/java.base/java/lang/invoke/CallSite.class] [wrote ./com/cna/technology/framework/security/encryption/TestClient.class] [total 206ms] ========== Here's the makefile. It produces the jar file with the expected directory structure. $ cat makefile # EncryptionConstants.java EncryptionManager.java TestClient.java # EncryptionException.java EncryptionUtility.java PROJ_BASE = com/example/technology/framework/security/encryption JC = javac JFLAGS = -verbose -g -sourcepath ./ -d ./ JAR = jar JAROPTS = cf # Cannot do this. Javac is too stupid to find what it needs # JAR_SRCS = $(filter-out TestClient.java,$(sort $(wildcard *java))) JAR_SRCS = EncryptionConstants.java EncryptionException.java EncryptionUtility.java Encr yptionManager.java JAR_OBJS := $(patsubst %,$(PROJ_BASE)/%,$(JAR_SRCS:.java=.class)) all: TestClient TestClient: example-encryption.jar $(JC) -cp example-encryption.jar $(JFLAGS) TestClient.java example-encryption.jar: $(JAR_OBJS) $(JAR) $(strip $(JAROPTS) $@ $(JAR_OBJS)) $(PROJ_BASE)/%.class : %.java $(JC) $(strip $(JFLAGS)) $< clean: rm -f *.class rm -f ./*~ && rm -f example-encryption.jar && rm -rf ./build ./com zip: zip -u -9 encryption.zip *.java From david.holmes at oracle.com Thu Feb 17 05:28:24 2022 From: david.holmes at oracle.com (David Holmes) Date: Thu, 17 Feb 2022 15:28:24 +1000 Subject: Javac does not produce an output file to run? In-Reply-To: References: Message-ID: <23a2d818-3f5f-050f-5734-5916837365f5@oracle.com> Hi Jeffrey, This is a mailing list for discussing the OpenJDK not for general help on how to write Java programs. There are many resources for beginner Java programmers e.g. https://docs.oracle.com/javase/tutorial/getStarted/index.html That said note that javac compiles Java source code (.java files) into Java bytecode (.class files). You then use the java launcher to execute (via interpretation and JIT compilation) those .class files. Regards, David On 17/02/2022 2:47 pm, Jeffrey Walton wrote: > Hi Everyne, > > I'm having problems creating a test file with a main() method. > Everything seems to build but javac does not produce an output file > (and it does not error). It looks like the same mystery at > https://stackoverflow.com/questions/8295538/javac-not-producing-output. > > I have not used Java in about 30 years. I am current on my C, C++ and ObjC. > > How do I fix this? > > Thanks in advance. > > ========== > Here's the one hint I have. Javac is building TestClient.class, but > not TestClient to run: > > $ find . -iname 'TestClient*' > ./com/example/technology/framework/security/encryption/TestClient.class > ./TestClient.java > > Here's what I want to do: > > $ ./TestClient > > ========== > Here's the tail of the build output, when TestClient is supposed to be built. > > $ make > ... > jar cf example-encryption.jar > com/example/technology/framework/security/encryption/Encry > ptionConstants.class > com/example/technology/framework/security/encryption/EncryptionExce > ption.class com/example/technology/framework/security/encryption/EncryptionUtility.class > com/example/technology/framework/security/encryption/EncryptionManager.class > > javac -cp example-encryption.jar -verbose -g -sourcepath ./ -d ./ > TestClient.java > [parsing started > SimpleFileObject[/home/jwalton/Desktop/encryption/TestClient.java]] > [parsing completed 11ms] > [loading /modules/jdk.unsupported/module-info.class] > [loading /modules/jdk.attach/module-info.class] > [loading /modules/jdk.hotspot.agent/module-info.class] > [loading /modules/jdk.naming.ldap/module-info.class] > [loading /modules/jdk.jconsole/module-info.class] > [loading /modules/jdk.zipfs/module-info.class] > [loading /modules/jdk.jlink/module-info.class] > [loading /modules/jdk.naming.rmi/module-info.class] > [loading /modules/java.naming/module-info.class] > [loading /modules/jdk.unsupported.desktop/module-info.class] > [loading /modules/jdk.rmic/module-info.class] > [loading /modules/jdk.jdi/module-info.class] > [loading /modules/jdk.charsets/module-info.class] > [loading /modules/java.logging/module-info.class] > [loading /modules/jdk.security.jgss/module-info.class] > [loading /modules/jdk.jfr/module-info.class] > [loading /modules/jdk.management.agent/module-info.class] > [loading /modules/java.datatransfer/module-info.class] > [loading /modules/jdk.internal.opt/module-info.class] > [loading /modules/jdk.pack/module-info.class] > [loading /modules/java.scripting/module-info.class] > [loading /modules/jdk.jshell/module-info.class] > [loading /modules/jdk.jstatd/module-info.class] > [loading /modules/java.smartcardio/module-info.class] > [loading /modules/jdk.net/module-info.class] > [loading /modules/java.security.sasl/module-info.class] > [loading /modules/jdk.accessibility/module-info.class] > [loading /modules/java.security.jgss/module-info.class] > [loading /modules/jdk.internal.le/module-info.class] > [loading /modules/jdk.internal.jvmstat/module-info.class] > [loading /modules/jdk.editpad/module-info.class] > [loading /modules/jdk.javadoc/module-info.class] > [loading /modules/jdk.management.jfr/module-info.class] > [loading /modules/java.se/module-info.class] > [loading /modules/jdk.jartool/module-info.class] > [loading /modules/jdk.jsobject/module-info.class] > [loading /modules/jdk.naming.dns/module-info.class] > [loading /modules/java.transaction.xa/module-info.class] > [loading /modules/java.sql.rowset/module-info.class] > [loading /modules/java.instrument/module-info.class] > [loading /modules/jdk.sctp/module-info.class] > [loading /modules/jdk.internal.vm.compiler/module-info.class] > [loading /modules/jdk.jdwp.agent/module-info.class] > [loading /modules/jdk.scripting.nashorn/module-info.class] > [loading /modules/java.desktop/module-info.class] > [loading /modules/jdk.internal.vm.ci/module-info.class] > [loading /modules/jdk.compiler/module-info.class] > [loading /modules/java.base/module-info.class] > [loading /modules/jdk.httpserver/module-info.class] > [loading /modules/java.sql/module-info.class] > [loading /modules/jdk.aot/module-info.class] > [loading /modules/java.management.rmi/module-info.class] > [loading /modules/jdk.internal.ed/module-info.class] > [loading /modules/java.prefs/module-info.class] > [loading /modules/jdk.localedata/module-info.class] > [loading /modules/jdk.jdeps/module-info.class] > [loading /modules/jdk.xml.dom/module-info.class] > [loading /modules/jdk.dynalink/module-info.class] > [loading /modules/jdk.management/module-info.class] > [loading /modules/jdk.crypto.cryptoki/module-info.class] > [loading /modules/jdk.crypto.ec/module-info.class] > [loading /modules/java.xml/module-info.class] > [loading /modules/java.rmi/module-info.class] > [loading /modules/java.compiler/module-info.class] > [loading /modules/jdk.security.auth/module-info.class] > [loading /modules/java.net.http/module-info.class] > [loading /modules/java.management/module-info.class] > [loading /modules/java.xml.crypto/module-info.class] > [loading /modules/jdk.scripting.nashorn.shell/module-info.class] > [loading /modules/jdk.jcmd/module-info.class] > [loading /modules/jdk.internal.vm.compiler.management/module-info.class] > [search path for source files: .] > [search path for class files: > /usr/lib/jvm/java-11-openjdk-amd64/lib/modules,cna-encrypt > ion.jar] > [loading /modules/java.base/java/lang/Object.class] > [loading /modules/java.base/java/lang/String.class] > [loading /modules/java.base/java/lang/Deprecated.class] > [loading /modules/java.base/java/lang/annotation/Retention.class] > [loading /modules/java.base/java/lang/annotation/RetentionPolicy.class] > [loading /modules/java.base/java/lang/annotation/Target.class] > [loading /modules/java.base/java/lang/annotation/ElementType.class] > [checking com.cna.technology.framework.security.encryption.TestClient] > [loading /modules/java.base/java/io/Serializable.class] > [loading /modules/java.base/java/lang/AutoCloseable.class] > [loading /modules/java.base/java/lang/Byte.class] > [loading /modules/java.base/java/lang/Character.class] > [loading /modules/java.base/java/lang/Short.class] > [loading /modules/java.base/java/lang/Long.class] > [loading /modules/java.base/java/lang/Float.class] > [loading /modules/java.base/java/lang/Integer.class] > [loading /modules/java.base/java/lang/Double.class] > [loading /modules/java.base/java/lang/Boolean.class] > [loading /modules/java.base/java/lang/Void.class] > [loading /modules/java.base/java/lang/System.class] > [loading /modules/java.base/java/io/PrintStream.class] > [loading /modules/java.base/java/lang/Appendable.class] > [loading /modules/java.base/java/io/Closeable.class] > [loading /modules/java.base/java/io/FilterOutputStream.class] > [loading /modules/java.base/java/io/OutputStream.class] > [loading /modules/java.base/java/io/Flushable.class] > [loading /modules/java.base/java/lang/Comparable.class] > [loading /modules/java.base/java/lang/CharSequence.class] > [loading /home/jwalton/Desktop/encryption/cna-encryption.jar(/com/cna/technology/framewo > rk/security/encryption/EncryptionManager.class)] > [loading /home/jwalton/Desktop/encryption/cna-encryption.jar(/com/cna/technology/framewo > rk/security/encryption/EncryptionException.class)] > [loading /modules/java.base/java/lang/Exception.class] > [loading /modules/java.base/java/lang/Throwable.class] > [loading /modules/java.base/java/lang/Error.class] > [loading /modules/java.base/java/lang/RuntimeException.class] > [loading /modules/java.base/java/lang/invoke/StringConcatFactory.class] > [loading /modules/java.base/java/lang/invoke/MethodHandles.class] > [loading /modules/java.base/java/lang/invoke/MethodHandles$Lookup.class] > [loading /modules/java.base/java/lang/invoke/MethodType.class] > [loading /modules/java.base/java/lang/invoke/CallSite.class] > [wrote ./com/cna/technology/framework/security/encryption/TestClient.class] > [total 206ms] > > ========== > Here's the makefile. It produces the jar file with the expected > directory structure. > > $ cat makefile > > # EncryptionConstants.java EncryptionManager.java TestClient.java > # EncryptionException.java EncryptionUtility.java > > PROJ_BASE = com/example/technology/framework/security/encryption > > JC = javac > JFLAGS = -verbose -g -sourcepath ./ -d ./ > > JAR = jar > JAROPTS = cf > > # Cannot do this. Javac is too stupid to find what it needs > # JAR_SRCS = $(filter-out TestClient.java,$(sort $(wildcard *java))) > JAR_SRCS = EncryptionConstants.java EncryptionException.java > EncryptionUtility.java Encr > yptionManager.java > JAR_OBJS := $(patsubst %,$(PROJ_BASE)/%,$(JAR_SRCS:.java=.class)) > > all: TestClient > > TestClient: example-encryption.jar > $(JC) -cp example-encryption.jar $(JFLAGS) TestClient.java > > example-encryption.jar: $(JAR_OBJS) > $(JAR) $(strip $(JAROPTS) $@ $(JAR_OBJS)) > > $(PROJ_BASE)/%.class : %.java > $(JC) $(strip $(JFLAGS)) $< > > clean: > rm -f *.class rm -f ./*~ && rm -f example-encryption.jar && rm > -rf ./build ./com > > zip: > zip -u -9 encryption.zip *.java From noloader at gmail.com Thu Feb 17 05:48:13 2022 From: noloader at gmail.com (Jeffrey Walton) Date: Thu, 17 Feb 2022 00:48:13 -0500 Subject: Javac does not produce an output file to run? In-Reply-To: <23a2d818-3f5f-050f-5734-5916837365f5@oracle.com> References: <23a2d818-3f5f-050f-5734-5916837365f5@oracle.com> Message-ID: On Thu, Feb 17, 2022 at 12:28 AM David Holmes wrote: > > Hi Jeffrey, > > This is a mailing list for discussing the OpenJDK not for general help > on how to write Java programs. There are many resources for beginner > Java programmers e.g. Thanks David. Maybe I am misunderstanding "discuss -- General discussion about the OpenJDK Community, unmoderated and possibly high-traffic", https://mail.openjdk.java.net/mailman/listinfo/discuss? Are OpenJDK users not part of the community? > https://docs.oracle.com/javase/tutorial/getStarted/index.html > > That said note that javac compiles Java source code (.java files) into > Java bytecode (.class files). You then use the java launcher to execute > (via interpretation and JIT compilation) those .class files. Thanks. From david.holmes at oracle.com Thu Feb 17 07:42:42 2022 From: david.holmes at oracle.com (David Holmes) Date: Thu, 17 Feb 2022 17:42:42 +1000 Subject: Javac does not produce an output file to run? In-Reply-To: References: <23a2d818-3f5f-050f-5734-5916837365f5@oracle.com> Message-ID: <34e2c0ee-da9f-ab2d-fd2b-1e9c0628fafa@oracle.com> On 17/02/2022 3:48 pm, Jeffrey Walton wrote: > On Thu, Feb 17, 2022 at 12:28 AM David Holmes wrote: >> >> Hi Jeffrey, >> >> This is a mailing list for discussing the OpenJDK not for general help >> on how to write Java programs. There are many resources for beginner >> Java programmers e.g. > > Thanks David. > > Maybe I am misunderstanding "discuss -- General discussion about the > OpenJDK Community, unmoderated and possibly high-traffic", > https://mail.openjdk.java.net/mailman/listinfo/discuss? Are OpenJDK > users not part of the community? It is for discussion _about_ the "OpenJDK community", not general discussion by members of that community. Cheers, David >> https://docs.oracle.com/javase/tutorial/getStarted/index.html >> >> That said note that javac compiles Java source code (.java files) into >> Java bytecode (.class files). You then use the java launcher to execute >> (via interpretation and JIT compilation) those .class files. > > Thanks. From ethan at mccue.dev Fri Feb 18 02:43:28 2022 From: ethan at mccue.dev (Ethan McCue) Date: Thu, 17 Feb 2022 21:43:28 -0500 Subject: dev.java feedback In-Reply-To: <4D221A1A-A9C4-48D6-B246-AEA74B070469@oracle.com> References: <4D221A1A-A9C4-48D6-B246-AEA74B070469@oracle.com> Message-ID: Just following up on this. On Mon, Feb 7, 2022 at 1:57 PM Chad Arimura wrote: > Thanks for taking the time Ethan. Our team will reach out directly once > we?ve had a time to review your suggestions. > > Chad > > > ? > Chad Arimura > Java Developer Relations > Oracle Corporation > +1-415-935-3448 [m] > > Dev.java - Inside.java - Twitter.com/java - Youtube.com/java > > > > > > > > > On Feb 5, 2022, at 1:48 PM, Ethan McCue wrote: > > > > Hi all, > > > > I've gone through a chunk of the dev.java site and marked up feedback in > this Figma > > > > https://www.figma.com/file/pTnVYD5WHWxsIDoBDuUaFt/dev.java-feedback > > > > I know it's infinitely easier to be a critic than a creator, but I think > that there are very real structural problems with the site as it exists > right now and I don't yet have a better mechanism to affect change. > > > > The biggest and most pervasive issue is that there does not seem to be a > clearly defined audience. > > > > Tutorials will shift rapidly between being targeted at > > * Total beginners > > * Beginners to Java who might know another language > > * Intermediates looking for reference material > > * Experts looking to catch up on new features > > > > and the quality of content suffers massively as a result, ending up not > really being useful for any group. > > > > I am also cc-ing the discuss mailing list since I think this sort of > thing is relevant to the community as a whole. > > From scott at adligo.com Tue Feb 22 01:40:39 2022 From: scott at adligo.com (Scott Morgan) Date: Mon, 21 Feb 2022 19:40:39 -0600 Subject: Custom Primitives? Message-ID: Hi All, I've been messing around with some data structures / arrays lately and I am wondering if Java will ever have custom primitives, and if those custom primitives could contain optional pointers in some way. I have found a number of similar things Value Classes, https://openjdk.java.net/jeps/401 Primitive Value Classes, etc, but I'm really looking for something a little lower level. Ideally I would like to store an array (with a single pointer pointing at it) of one boolean and one optional pointer / reference, in a primitive array structure to reduce the space of the null pointers. However this creates some obvious problems as length of the boolean only could be one bit and the boolean + the pointer / reference could be 8 bytes and one bit (on 64 bit JVMs). Without the fixed length size of the primitive, I imagine that the mapping to bytes and array indexes would be quite challenging & slow. However I have a gut feeling that something like this path must be possible. Are there any plans to solve problems like these in the current JEPs? Is anyone doing similar research? Cheers, -- Regards, Scott Morgan President & CEO Adligo Inc http://www.adligo.com https://www.linkedin.com/in/scott-morgan-21739415 A+ Better Business Bureau Rating https://github.com/adligo By Appointment Only: 1-866-968-1893 Ex 101 scott at adligo.com skype:adligo1?call Send Me Files Securely: *https://www.sendthisfile.com/f.jsp?id=ewOnyeFQM18IDRf7MMIdolfI * https://discord.com/ Adligo#3066 From david.holmes at oracle.com Tue Feb 22 01:43:08 2022 From: david.holmes at oracle.com (David Holmes) Date: Tue, 22 Feb 2022 11:43:08 +1000 Subject: Custom Primitives? In-Reply-To: References: Message-ID: Hi Scott, Please take this to valhalla-dev at openjdk.java.net to discuss. Thanks, David On 22/02/2022 11:40 am, Scott Morgan wrote: > Hi All, > > I've been messing around with some data structures / arrays lately and I > am wondering if Java will ever have custom primitives, and if those > custom primitives could contain optional pointers in some way. I have > found a number of similar things Value Classes, > https://openjdk.java.net/jeps/401 > Primitive Value Classes, etc, but I'm really looking for something a little > lower level. > > Ideally I would like to store an array (with a single pointer pointing at > it) of one boolean and one optional pointer / reference, in a primitive > array structure to reduce the space of the null pointers. > However this creates some obvious problems as length of the boolean only > could be one bit and the boolean + the pointer / reference could be 8 bytes > and one bit (on 64 bit JVMs). Without the fixed length size of the > primitive, I imagine that the mapping to bytes and array indexes would be > quite challenging & slow. However I have a gut feeling that something like > this path must be possible. > > Are there any plans to solve problems like these in the current JEPs? > Is anyone doing similar research? > > Cheers, From some-java-user-99206970363698485155 at vodafonemail.de Sat Feb 26 00:40:23 2022 From: some-java-user-99206970363698485155 at vodafonemail.de (some-java-user-99206970363698485155 at vodafonemail.de) Date: Sat, 26 Feb 2022 01:40:23 +0100 Subject: Relax Terms of Use / Drop Terms of Use requirement for GitHub comments Message-ID: <82bee4fc769340208e7a0119cda4fec8@vodafonemail.de> Hello, could you please consider relaxing the Terms of Use, or at least reconsider whether interaction on GitHub (e.g. pull request comments) really has to require Terms of Use agreement? The current Terms of Use (https://openjdk.java.net/legal/tou/terms) points 4.d, e, k all mention that by contributing you grant Oracle a "royalty-free, perpetual, irrevocable, worldwide, non-exclusive and fully sub-licensable right and license" to the submissions. While I acknowledge the great and important role Oracle plays in the development of the OpenJDK, I don't really see why this has to imply giving Oracle the right to do close to 'anything' with the submissions, when one only wants to contribute to the OpenJDK (and I am a bit surprised that none of the other companies contributing to the OpenJDK have an issue with this). Related to this is also the enforcement of agreeing to the Terms of Use to be able to interact on GitHub with the OpenJDK development. I don't know of any other project / company doing development on GitHub which is that restrictive. Sure, some others require you to sign a Contributor License Agreement, but interacting (such as writing a pull request comment) does not require this. By enforcing the ToU, you risk to lose potential contributors, because really, who is keen to keep contributing after beeing greeted with a large ToU when merely adding a GitHub comment? (at least there is a "Plain-English summary" version though). The current implementation of this enforcement can also be rather disruptive (for both the comment author and the other users involved in the pull request), as seen in - https://github.com/openjdk/jdk/pull/3402#issuecomment-934771740 - https://github.com/openjdk/jdk/pull/5762#issuecomment-934130809 - https://github.com/openjdk/jdk/pull/5933#discussion_r734980808 - https://github.com/openjdk/jdk/pull/6512#discussion_r755630515 - https://github.com/openjdk/jdk/pull/4103#discussion_r637965569 And it has its flaws, see SKARA-1210 and SKARA-1211. (For what it's worth there is also a small mistake in the comment message; in 'Please Use "Add GitHub user for the summary.' after the closing double quote '"' is missing; and maybe "Use" should not be capitalized) Kind regards From tanksherman27 at gmail.com Sun Feb 27 07:38:41 2022 From: tanksherman27 at gmail.com (Jules W.) Date: Sun, 27 Feb 2022 15:38:41 +0800 Subject: On applying for Author at the JDK Project Message-ID: Hi all, Currently I'm thinking of applying for the Author position at the JDK project, but the OpenJDK Project page (https://openjdk.java.net/projects/) is somewhat vague about how to do so, simply saying to contact the project lead after 2 pull requests have been merged without offering a proper communication channel to do so. Additionally some of the information on the site also seems to be outdated, and I'm unsure of whether this outdated information also includes the section describing the Author application process. Currently the census lists Mr. Reinhold as the project lead for the JDK, is there an unmentioned formal communication channel I can use to apply for Author or should I contact Mr. Reinhold directly as per the page's instructions? (And if I should do the latter, do I contact him directly through his Oracle email address?) Thanks for your patience. best regards, Julian From volker.simonis at gmail.com Sun Feb 27 10:43:20 2022 From: volker.simonis at gmail.com (Volker Simonis) Date: Sun, 27 Feb 2022 11:43:20 +0100 Subject: On applying for Author at the JDK Project In-Reply-To: References: Message-ID: Hi Julian, Yes, just contact Mark Reinhold by email with links to your two contributions. Best regards, Volker PS: plan to wait up to two weeks until your request gets processed. Jules W. schrieb am So., 27. Feb. 2022, 08:39: > Hi all, > > Currently I'm thinking of applying for the Author position at the JDK > project, but the OpenJDK Project page (https://openjdk.java.net/projects/) > is > somewhat vague about how to do so, simply saying to contact the project > lead after 2 pull requests have been merged without offering a proper > communication channel to do so. Additionally some of the information on the > site also seems to be outdated, and I'm unsure of whether this outdated > information also includes the section describing the Author application > process. Currently the census lists Mr. Reinhold as the project lead for > the JDK, is there an unmentioned formal communication channel I can use to > apply for Author or should I contact Mr. Reinhold directly as per the > page's instructions? (And if I should do the latter, do I contact him > directly through his Oracle email address?) > > Thanks for your patience. > > best regards, > Julian > From tanksherman27 at gmail.com Sun Feb 27 12:24:55 2022 From: tanksherman27 at gmail.com (Jules W.) Date: Sun, 27 Feb 2022 20:24:55 +0800 Subject: On applying for Author at the JDK Project In-Reply-To: References: Message-ID: Hi Volker, Got it, thanks for the reply and have a great day! regards, Julian Waters On Sun, Feb 27, 2022 at 6:43 PM Volker Simonis wrote: > Hi Julian, > > Yes, just contact Mark Reinhold by email with links to your two > contributions. > > Best regards, > Volker > > PS: plan to wait up to two weeks until your request gets processed. > > Jules W. schrieb am So., 27. Feb. 2022, 08:39: > >> Hi all, >> >> Currently I'm thinking of applying for the Author position at the JDK >> project, but the OpenJDK Project page (https://openjdk.java.net/projects/) >> is >> somewhat vague about how to do so, simply saying to contact the project >> lead after 2 pull requests have been merged without offering a proper >> communication channel to do so. Additionally some of the information on >> the >> site also seems to be outdated, and I'm unsure of whether this outdated >> information also includes the section describing the Author application >> process. Currently the census lists Mr. Reinhold as the project lead for >> the JDK, is there an unmentioned formal communication channel I can use to >> apply for Author or should I contact Mr. Reinhold directly as per the >> page's instructions? (And if I should do the latter, do I contact him >> directly through his Oracle email address?) >> >> Thanks for your patience. >> >> best regards, >> Julian >> >