I am coming from spending the last few years building apps using Sencha ExtJS for the GUI and that database plumbing (their use of Models and Stores for persistance works really really good). This connected to either ColdFusion (or for the newer apps) Node.JS which handled all of the calls to MSSQL.
Lets take a simple query that, when row is selected we want to display a form with all of the attributes and allow editing. In aware, the only code I have to write after the BO is defined is:
Query Parameters (the FIND)
Query Layout (which attributes to display and the column headings, size, etc.
One process that will open the form when a row is selected (Yea, I know, with a layout can skip that)
The Form Layout
The plus, this is blindingly fast to write, the downside is that the query and form layouts are both tedious to write / test and are less than flexible. (being politically correct).
I don't have to write any code to:
read records,
open forms,
update SQL Tables,
perform any calculations based on if values in some attributes changed
(and our example is very simple, only one BO, no relationships where Aware really really shines in the amount of work it does under the hood.
Now, Sencha let me build a damn georgous screen, with pixel precision. I could have data move, resize, etc. etc.
BUT, I had to issue a REST call for every table to READ, CREATE, UPDATE and DELETE. (Yea, a lot of it was boilerplate where I could copy, paste and change some of the table names. It took a lot longer to test and debug.
I am certainly about 500% faster with Aware. What I can do in 1 day would take a week. and the debugging well, there is NO comparison. (I got to spend a LOT of time with the javascript console open trying to walk through and figure out why sometimes I was getting garbage.)
Why am I adding post to the topic re: Angular. Assuming that there was a robust REST interface (and maybe all you need is to be able to call a process and pass parameters? maybe???). You would have to write a lot of processes to do things we let the engine do for us. If you build your pretty form in HTML and wanted to save the data, you would have to write a "CREATE RECORD" process and pass all of the columns (ok, a JSON object) to the engine, have it parse that, have the ability to send error msgs back to your client if the parsing fails some test, then send the result back if successful.
To me this seems like trying to make Aware do what it does not do very well. My solution to this would do what aware does well, and when you have a need for a "spiffy" UI in part of your application, use DISPLAY URL to call whatever app you write (does not matter tool built the UI, could even be Sencha. Doesn't matter what middleware you wanna use. (Angular fans, go for it) and then use something like Node.js to connect to SQL.
Bottom line, All of your data is stored in SQL so it doesn't matter what tools are used to update it. And its EASY to do this. (I am using Stored Procedures in Aware to update, retrieve, calculate data that would be a lot harder to do in Aware. ) I have not found the need to use a diff. UI (yet), but if you do, pick your fav. tools and then use Node (or whatever middleware) and SQL to update the appropriate tables.
Just my 0.02 cents worth
Bruce