Hello Dmitry,
thanks a lot for trying it out!

2018-03-15 2:50 GMT+01:00 Dmitry Avtonomov <[email protected]>:

> I find it incredible that Jaroslav is saying "... people aren't willing to
> dedicate 10minutes of their personal time to try HTML/Java API in action
> ...". How are they supposed to discover that?
>

To be fair, I also mentioned "... do you have recent version of NetBeans
9.0..." - e.g. the build time doesn't count.

Let's try it out with time logging:
>
> 15:33 - Setting out to search for NetBeans on google, landed on
> https://netbeans.org/, latest version 8.2
> 15:34 - Search for "netbeans apache" (only did this because I knew what to
> search for), landed on https://netbeans.apache.org/
> 15:34 - Go to downloads (https://netbeans.apache.org/download/index.html)
> - no binaries
> 15:35 - I've already built v9 once, just deleting it took several minutes
> 15:41 - Start clone `git clone https://github.com/apache/
> incubator-netbeans.git` <https://github.com/apache/incubator-netbeans.git>
> 15:44 - Clone + checkout done
> 15:44 - `ant` (i had ant 1.10 installed, jdk - oracle 1.8, core i7 6700hq)
> ...
> compilation took 24 minutes 29 seconds
> ...
> `ant tryme`. Popup message:
>
> "Java features limited":
> - install nb-javac library (highly recommended)
> - run NetBeans on JDK 9 or later
>
> Click button to install nb-javac plugin.
> Warnings about unsigned plugins.
> Restart IDE.
>

Alas, this is the nb-javac licensing problem, that will be hard to mitigate
anytime soon.


> That's already quite some trouble that would stop 99.5% of people who
> might have wanted to try it out.
>
>
> Select: File -> New Project -> JavaFX -> Java HTML5 Application (again,
> only because I knew from this thread where to click)
> Read description: "Generates a WebView based DukeScript application".
>
> DukeScript? WebView based?... huh...
>

Geertjan also suggested to make the wizard more prominent. I noticed that
Toni is currently thinking of some adjustments... personally I would split
the wizard into few: "Java Desktop App", "Java iOS App", "Java Android
App", "Java SPA App", etc. That would promote that NetBeans does support
development/deployment to all important platforms of these days.


> Click, wizard opens. Font is different, project type selector radio
> buttons not aligned to text (image):
>
> Select "Visual HTML/Java example", project opens, immediately get warning
> about project problems (Export-Package/Provate-Package contains packages
> from dependencies) (image):
>
> It did run, but not that I understand the structure of 5 projects that got
> created or how to use it. I can start "... Client for Web" project from the
> IDE, but how do I build a runnable application? (image)
>

This is a great usability study. Toni has written a [getting started
tutorial and a book](https://dukescript.com/documentation.html), but yes,
it would be better if the system was usable without reading anything. I
always advocate supporting "cluelessness" (and I hope I did support it when
designing the HTML/Java API), but I never verified whether people building
on top of it (e.g. Toni and his projects and wizards) do the same thing.


> So yeah, I totally understand people googling for "Java Vaadin Electron
> tutorial". As a matter of fact I was one of those people just 2 weeks ago,
> even though I have built NB 9 previously.
>
> The samples I was able to run were running either in my default browser
> (so it depends on system browser) or in, presumably, javafx webview
> window(?), which lacked significantly in performance (the examples ran,
> judging visually, at 10-20fps, while in the browser it was smooth, so I
> couldn't tell the frame rate). I guess something like electron can be used,
> but I have no idea how to achieve this.
>
> It needs:
> - basic documentation
>

I am trying to make the Javadoc entertaining
http://bits.netbeans.org/html+java/, but +1 - more is needed

- geertjan style tutorials
>

+10, Geertjan, do you hear it?

It needs examples of:
> - how to feed large amounts of data from Java to JS running the view
>

Yes, this is often needed and I and Toni did some experiments with it. In
fact we even proposed a paper about it to ManLang conference. The trick to
improve throughput of Java -> JS communication would be:
http://bits.netbeans.org/html+java/1.5/net/java/html/js/JavaScriptBody.html#wait4js()

Btw. how much data you are talking about?


> - how to communicate data back from the view into the java program
>

The low level API is here:
http://bits.netbeans.org/html+java/1.5/net/java/html/js/package-summary.html


> - how to build and run the application outside of the ide
>

I am not sure if Toni described that somewhere, but I remember there was a
blog about "redeploys" done from outside of the IDE...

https://dukescript.com/best/practices/2015/04/12/no-redeploys.html
and maybe
https://dukescript.com/update/2017/01/14/trybuypresenter.html


> - preferably show how to create an application not from an archetype
>

That is easy: clone an existing one: https://github.com/jtulach/minesweeper

However I guess you mean from scratch. I am afraid that would be too
complex. The configuration of various maven plugins to work in
orchestration among each other on different platforms is something I admire
on Toni's work the most. I wouldn't like to reproduce that from scratch
myself. The best is to start with empty archetype and remove things that
you don't want, at least that is what I do.


This project template does get close to being a nice starting point and
> it'd be great to see it grow, but it's a stretch to expect anyone to know
> about it at this point.
>

That is too nice conclusion. However thanks for trying and providing your
comments, they form an excellent usability study. I can try to improve the
Javadoc & co. and Toni can improve the archetypes and wizards. Geertjan
could start a tutorial (or series of tutorials), right ;-?

Thanks and please continue to push us forward!
-jt

Reply via email to