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 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.13.209.5 with SMTP id t5mr12286959ywd.22.1436360850259; Wed, 08 Jul 2015 06:07:30 -0700 (PDT) X-Received: by 10.182.75.197 with SMTP id e5mr69175obw.35.1436360850189; Wed, 08 Jul 2015 06:07:30 -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!usenet.blueworldhosting.com!feeder01.blueworldhosting.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!w90no1711207qge.0!news-out.google.com!a16ni12008ign.0!nntp.google.com!i4no71699ige.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 8 Jul 2015 06:07:29 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=50.138.108.113; posting-account=yiWntAoAAAC1KqC_shmxJYv07B9l6LNU NNTP-Posting-Host: 50.138.108.113 References: User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: GNOGA v1.1 Released - Ada Cloud Desktop and Mobile Development From: David Botton Injection-Date: Wed, 08 Jul 2015 13:07:30 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 7153 X-Received-Body-CRC: 3838898080 Xref: news.eternal-september.org comp.lang.ada:26697 Date: 2015-07-08T06:07:29-07:00 List-Id: > In Gnoga features, one can read "Write complex web-apps or desktop apps w= ith no HTML or JS" and I can't buy this since even if not writing HTML one = has to know it to use Gnoga. It is the case that you do not need to know HTML/JS the DOM etc with Gnoga,= but knowledge is power. Just like knowing Win32 APIs helps but not needed = if you use GWindows or CLAW for UIs on Windows. > I can hardly imagine a web designer writing the Ada code, compiling it, r= unning it and refreshing the page in the browser. So I guess the workflow w= ould rather be : design a web app with your favourite HTML / CSS / JavaScri= pt editor, and embed in some Gnoga controls by querying the DOM and adding = them to it. Gnoga has many uses, while it can be used for "web", one of its target uses= is for App UIs and embedded systems. For Web Gnoga excels with a workflow = as you have described. For rapid prototyping of Apps that can also work wel= l. I just posted to the Gnoga list a PDF on how to use an on-line simple HT= ML/Bootstrap form generator as a quick and easy GUI builder for Gnoga forms= as an example. In cases of using external design tools you do not have to constantly recom= pile your code. Simply attaching IDs at of the DOM as you point out is suff= icient if you are working with designers and for Web sites that is often th= e best way to do it. For apps, it depends on your needs and how often the "= design" will change. > It seems to me that Gnoga requires direct DOM manipulation to refresh dat= a where AngularJS (http://angularjs.org/) or RactiveJS (http://ractivejs.or= g/) will provide simpler (user point of view) two-way data binding. Only if you are using JavaScript do you have these concerns. From the Ada p= erspective you do not have to play around with the DOM or worry about data = binding (a cludge for dealing client side only code in JS, I still prefer u= sing JS directly there to "data biding" solutions.) I prefer imperative event driven programming for UIs, respond to change eve= nt and make changes there to other controls, etc. I find that the "data bin= ding" magic fails in practice once things become a bit more complicated the= n a total on spread sheet (and even then fails if you need that calculation= to also notify the server of its change. > 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. The first thing is to compare it to Gtk and Cocoa not to Web tech which it = uses. Then once you've "got it" say, hey cool I can now program web sites in the = same style as local desktop Apps like Visual Basic or Delphi. Then.. You see how Gnoga is innovative and paradigm changing for web develo= pment on the cloud and UI development for mobile and desktop that is truly = portable. > Gnoga's market place would provide bindings to further libraries. >=20 > What about D3JS (http://d3js.org/) No point to using that with Gnoga as far as I can tell at first glance. Sam= e as Angular, etc. > or Smoothie Charts (http://smoothiecharts.org/) ? Looks like an easy and good addition. 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 widgets. > In fact, from my perspective, the application written in Ada should only = serve the web page and provide the data using websocket to a JavaScript obj= ect managing the interaction with the browser / user. That is because you are think like a web person not a UI developer for appl= ications. One can use Gnoga in that way and it is certainly superior to any solution = in any language that way as well :) > Having the Ada application managing the UI seems to require too much over= head, doing DOM manipulation, when the data changes often. No "human" interaction is not going to be an issue as calculations and data= manipulation are done on the Ada side. The "html" page is just a rendering= engine for the results. However there are time where it makes sense to have things handled on the c= lient side and if we ever have an llvm (unencumbered by GPL viruses) backen= d we can push the Ada to the client side as well. For example, until then s= omething like the Ace code editor that I am using on the new IDE in Gnoga w= hich 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 littl= e sluggish. Unfortunately until I have the time or someone else has the tim= e 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 viruse= d, I'd probably pursue updating that as there is a compiler freely availabl= e to compile .NET to ASM.js shame, I wonder if Martin realized the devastat= ion GPL has on runtimes to kill future open source work not just closed sou= rce) So instead think like this, "widgets" for the GUI if complex (at least for = now) requiring a lot of interaction should be in JS, but everything else ca= n 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.Load_= File and then View.Attach_With_Parent to the IDs set in those designs that = require interaction or data. > I'd like to ear your opinion and thoughts on this please. I appreciate the discussion, Gnoga takes some time to fully "get" for many.= It is a far better solution then web servers for Ada for any web work, but= it is also as good a solution (although not perfect yet since as pointed o= ut complex widgets would need more client side Ada that is not possible yet= ) as GtkAda or GWindows for Ada GUIs. David Botton