From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.13.254.131 with SMTP id o125mr26472408ywf.56.1436541031125; Fri, 10 Jul 2015 08:10:31 -0700 (PDT) X-Received: by 10.140.86.105 with SMTP id o96mr310710qgd.11.1436541031087; Fri, 10 Jul 2015 08:10:31 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!au2pb.net!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!z61no122898qge.0!news-out.google.com!4ni79932qgh.1!nntp.google.com!z61no122895qge.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 10 Jul 2015 08:10:30 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=193.251.73.50; posting-account=O3LyFwoAAACc1uh60ZcOUmAGdDmGsEcV NNTP-Posting-Host: 193.251.73.50 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <68a73dfe-4453-46d1-884c-1276a2280adc@googlegroups.com> Subject: Re: GNOGA v1.1 Released - Ada Cloud Desktop and Mobile Development From: slos Injection-Date: Fri, 10 Jul 2015 15:10:31 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:26742 Date: 2015-07-10T08:10:30-07:00 List-Id: Le mercredi 8 juillet 2015 15:07:31 UTC+2, David Botton a =E9crit=A0: > > In Gnoga features, one can read "Write complex web-apps or desktop apps= with no HTML or JS" and I can't buy this since even if not writing HTML on= e has to know it to use Gnoga. >=20 > It is the case that you do not need to know HTML/JS the DOM etc with Gnog= a, but knowledge is power. Just like knowing Win32 APIs helps but not neede= d if you use GWindows or CLAW for UIs on Windows. >=20 >=20 > > I can hardly imagine a web designer writing the Ada code, compiling it,= running it and refreshing the page in the browser. So I guess the workflow= would rather be : design a web app with your favourite HTML / CSS / JavaSc= ript editor, and embed in some Gnoga controls by querying the DOM and addin= g them to it. >=20 > Gnoga has many uses, while it can be used for "web", one of its target us= es is for App UIs and embedded systems. For Web Gnoga excels with a workflo= w as you have described. For rapid prototyping of Apps that can also work w= ell. I just posted to the Gnoga list a PDF on how to use an on-line simple = HTML/Bootstrap form generator as a quick and easy GUI builder for Gnoga for= ms as an example. >=20 > In cases of using external design tools you do not have to constantly rec= ompile your code. Simply attaching IDs at of the DOM as you point out is su= fficient if you are working with designers and for Web sites that is often = the best way to do it. For apps, it depends on your needs and how often the= "design" will change. >=20 >=20 > > It seems to me that Gnoga requires direct DOM manipulation to refresh d= ata where AngularJS (http://angularjs.org/) or RactiveJS (http://ractivejs.= org/) will provide simpler (user point of view) two-way data binding. >=20 > Only if you are using JavaScript do you have these concerns. From the Ada= perspective you do not have to play around with the DOM or worry about dat= a binding (a cludge for dealing client side only code in JS, I still prefer= using JS directly there to "data biding" solutions.) >=20 > I prefer imperative event driven programming for UIs, respond to change e= vent and make changes there to other controls, etc. I find that the "data b= inding" magic fails in practice once things become a bit more complicated t= hen a total on spread sheet (and even then fails if you need that calculati= on to also notify the server of its change. >=20 >=20 > > I am in no way a web specialist and I try to understand the philosophy = of the many libraries / frameworks in the field and how Gnoga compares. >=20 >=20 > The first thing is to compare it to Gtk and Cocoa not to Web tech which i= t uses. >=20 > Then once you've "got it" say, hey cool I can now program web sites in th= e same style as local desktop Apps like Visual Basic or Delphi. >=20 > Then.. You see how Gnoga is innovative and paradigm changing for web deve= lopment on the cloud and UI development for mobile and desktop that is trul= y portable. >=20 > > Gnoga's market place would provide bindings to further libraries. > >=20 > > What about D3JS (http://d3js.org/) >=20 > No point to using that with Gnoga as far as I can tell at first glance. S= ame as Angular, etc. >=20 > > or Smoothie Charts (http://smoothiecharts.org/) ? >=20 > Looks like an easy and good addition. >=20 > The Core of Gnoga is extremely stable and working well at this point with= 1.1. The majority of work ahead is in tools and bindings to complex widget= s. >=20 >=20 > > In fact, from my perspective, the application written in Ada should onl= y serve the web page and provide the data using websocket to a JavaScript o= bject managing the interaction with the browser / user. >=20 > That is because you are think like a web person not a UI developer for ap= plications. >=20 > One can use Gnoga in that way and it is certainly superior to any solutio= n in any language that way as well :) >=20 >=20 > > Having the Ada application managing the UI seems to require too much ov= erhead, doing DOM manipulation, when the data changes often. >=20 > No "human" interaction is not going to be an issue as calculations and da= ta manipulation are done on the Ada side. The "html" page is just a renderi= ng engine for the results. >=20 > However there are time where it makes sense to have things handled on the= client side and if we ever have an llvm (unencumbered by GPL viruses) back= end we can push the Ada to the client side as well. For example, until then= something like the Ace code editor that I am using on the new IDE in Gnoga= which is written in JS is bound to Gnoga but fine controls are handled by = it on the client side and yes if was all Ada at this point could feel a lit= tle sluggish. Unfortunately until I have the time or someone else has the t= ime to revive dragoneggs or an alternative those parts will need to remain = in JS or language compiling to JS. (As a side note, if Ada.NET was not viru= sed, I'd probably pursue updating that as there is a compiler freely availa= ble to compile .NET to ASM.js shame, I wonder if Martin realized the devast= ation GPL has on runtimes to kill future open source work not just closed s= ource) >=20 > So instead think like this, "widgets" for the GUI if complex (at least fo= r now) requiring a lot of interaction should be in JS, but everything else = can be in Ada. If a lot of design work is being done (such as in a web page= ) then the design should be in HTML and CSS and Gnoga can just use View.Loa= d_File and then View.Attach_With_Parent to the IDs set in those designs tha= t require interaction or data. >=20 >=20 > > I'd like to ear your opinion and thoughts on this please. >=20 > I appreciate the discussion, Gnoga takes some time to fully "get" for man= y. It is a far better solution then web servers for Ada for any web work, b= ut it is also as good a solution (although not perfect yet since as pointed= out complex widgets would need more client side Ada that is not possible y= et) as GtkAda or GWindows for Ada GUIs. >=20 > David Botton Thanks Mister BOTTON for the detailed answer. I will take some time to digest all the provided information and study Gnog= a further on to see how it compares or could use other libraries. Best Regards, St=E9phane http://slo-ist.fr/ada4autom