JaroslavTulach at 05:26, 11 June 2023 - 2023-06-11 05:26:48

←Older revision Revision as of 05:26, 11 June 2023
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
==== Marketing Version ====
 +
 +
There is a difference between [[MarketingVersion]] and engineering approach to versioning. Hear why: [[MarketingVersion|read more]]...
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 05:26, 11 June 2023 (UTC)
==== Do not Expose Deep Hierarchies! ====
==== Do not Expose Deep Hierarchies! ====

JaroslavTulach at 05:39, 24 September 2022 - 2022-09-24 05:39:21

←Older revision Revision as of 05:39, 24 September 2022
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
==== Do not Expose Deep Hierarchies! ====
 +
 +
Do not expose [[DeepHierarchy]] of classes when designing an API!
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 05:39, 24 September 2022 (UTC)
==== Using '''record''' on any [[JDK]]! ====
==== Using '''record''' on any [[JDK]]! ====

JaroslavTulach at 07:10, 23 April 2022 - 2022-04-23 07:10:05

←Older revision Revision as of 07:10, 23 April 2022
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
==== Using '''record''' on any [[JDK]]! ====
 +
 +
Do you like '''record''' or other modern Java language features? Would you like to use them on older JDKs? Then read about [[Frgaal]] - the retrofit compiler for Java.
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 07:10, 23 April 2022 (UTC)
==== 2021: Code [[VSCode]] [[UI]] in [[Java]] ====
==== 2021: Code [[VSCode]] [[UI]] in [[Java]] ====

JaroslavTulach at 07:43, 10 December 2021 - 2021-12-10 07:43:41

←Older revision Revision as of 07:43, 10 December 2021
Line 3: Line 3:
<startFeed />
<startFeed />
 +
==== 2021: Code [[VSCode]] [[UI]] in [[Java]] ====
 +
 +
Seven years ago, in 2014 I wanted to unify UI of various IDEs around [[HTML]] (see below). However the motivation to do so was never compelling enough. Using [[Swing]] (or [[SWT]]) is more natural. Finally, in 2021 we found good enough reason: [[VSCode]] and its [[NetBeans]] based extension!
 +
 +
[[Image:Vscodehtmlui.png]]
 +
 +
Since December 10, 2021 it is real: one can code [[HTML]] [[UI]] in [[Java]] and display it in [[VSCode]] as well as [[NetBeans]]. See [https://github.com/apache/netbeans/pull/3349 PR-3349].
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 07:43, 10 December 2021 (UTC)
==== [[Bck2Brwsr]] 0.50: Ready for 2021 Technologies ====
==== [[Bck2Brwsr]] 0.50: Ready for 2021 Technologies ====

JaroslavTulach at 04:47, 1 October 2021 - 2021-10-01 04:47:08

←Older revision Revision as of 04:47, 1 October 2021
Line 196: Line 196:
I'd like to announce few changes related to apidesign.org site.
I'd like to announce few changes related to apidesign.org site.
-
First of all, the [[Knockout4Java]] is now a [[netbeans:HTML4Java|NetBeans subproject]] and yesterday I managed to release its first bits as a stable version 0.7 - follow [[Knockout4Java|three simple steps]] to see how powerful [[Java]]/[[HTML]] user interface can be.
+
First of all, the [[Knockout4Java]] is now a [[HTML4Java|NetBeans subproject]] and yesterday I managed to release its first bits as a stable version 0.7 - follow [[Knockout4Java|three simple steps]] to see how powerful [[Java]]/[[HTML]] user interface can be.
The other change is that I am migrating the whole website to new hosting infrastructure. [[Sources]] are up, [[Main Page|mediawiki]] as well. However I still need to recover mailing lists, etc. If you find something that is not working and should, please [[Talkback]]. Thanks in advance.
The other change is that I am migrating the whole website to new hosting infrastructure. [[Sources]] are up, [[Main Page|mediawiki]] as well. However I still need to recover mailing lists, etc. If you find something that is not working and should, please [[Talkback]]. Thanks in advance.

JaroslavTulach at 03:50, 4 August 2021 - 2021-08-04 03:50:21

←Older revision Revision as of 03:50, 4 August 2021
Line 4: Line 4:
-
==== [[Bck2Brwsr]] 0.50 ====
+
==== [[Bck2Brwsr]] 0.50: Ready for 2021 Technologies ====
For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to [[Bck2Brwsr 0.50|bring Bck2Brwsr transpiler into the 2021 age]]: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.
For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to [[Bck2Brwsr 0.50|bring Bck2Brwsr transpiler into the 2021 age]]: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.

JaroslavTulach at 03:48, 4 August 2021 - 2021-08-04 03:48:39

←Older revision Revision as of 03:48, 4 August 2021
Line 4: Line 4:
-
=== [[Bck2Brwsr]] 0.50 ===
+
==== [[Bck2Brwsr]] 0.50 ====
For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to [[Bck2Brwsr 0.50|bring Bck2Brwsr transpiler into the 2021 age]]: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.
For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to [[Bck2Brwsr 0.50|bring Bck2Brwsr transpiler into the 2021 age]]: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.

JaroslavTulach at 03:48, 4 August 2021 - 2021-08-04 03:48:26

←Older revision Revision as of 03:48, 4 August 2021
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
 +
=== [[Bck2Brwsr]] 0.50 ===
 +
 +
For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to [[Bck2Brwsr 0.50|bring Bck2Brwsr transpiler into the 2021 age]]: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.
 +
 +
Read more at [[Bck2Brwsr 0.50]] release page...
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 19:48, 1 August 2021 (UTC)
==== Run on JDK8, use JDK11 APIs! ====
==== Run on JDK8, use JDK11 APIs! ====

JaroslavTulach at 06:17, 16 February 2021 - 2021-02-16 06:17:00

←Older revision Revision as of 06:17, 16 February 2021
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
==== Run on JDK8, use JDK11 APIs! ====
 +
 +
Do you want to [[AlternativeImplementation|run your application on JDK8]], but use JDK11 APIs? That's traditionally done with a reflection. But there is a [[AlternativeImplementation|better way]]!
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 06:17, 16 February 2021 (UTC)
==== [[Helidon]] MP 2.0 supports [[GraalVM]] [[NativeImage]] ====
==== [[Helidon]] MP 2.0 supports [[GraalVM]] [[NativeImage]] ====

JaroslavTulach at 19:17, 29 June 2020 - 2020-06-29 19:17:44

←Older revision Revision as of 19:17, 29 June 2020
Line 2: Line 2:
<startFeed />
<startFeed />
 +
 +
==== [[Helidon]] MP 2.0 supports [[GraalVM]] [[NativeImage]] ====
 +
 +
[[Helidon]] MP implements the [[MicroProfile]] specification based on various other standard [[JavaEE]] subspecifications including [[CDI]]. Getting [[Weld]] (the reference [[CDI]] specification) running on top of [[NativeImage]] is particularly tricky. Not only [[Weld]] dynamically scans for various annotations, but it also dynamically emits [[bytecode]] for its helper classes during runtime. Solving this required more insight into [[JavaEE]] than available among compiler engineers - not that [[I]] had it initially, but the close co-operation with Tomáš Langer (the [[Helidon]] lead engineer) helped us get started. Tomáš prepared various trivial [[CDI]] sample projects and [[I]] was then able to get them running on [[NativeImage]] by writing a dedicated '''WeldFeature'''. Once the initial road block was gone the [[Helidon]] team was able to move forward on their own and get their enhanced [[Weld]] running on top of [[NativeImage]].
 +
 +
[[Helidon]] 2.0 [https://medium.com/helidon/announcing-helidon-2-0-19c245f5488a was released] on June 24, 2020. It's [[MicroProfile]] edition (including compatible [[CDI]] implementation) works with [[NativeImage]].
 +
 +
--[[User:JaroslavTulach|JaroslavTulach]] 19:17, 29 June 2020 (UTC)
==== Available on Safari Books Online ====
==== Available on Safari Books Online ====