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
