Discussion:
[Bug-apl] ⎕GTK
Juergen Sauermann
2018-08-10 17:32:12 UTC
Permalink
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<font face="Helvetica, Arial, sans-serif">Hi,<br>
<br>
I have added a new system function <b>⎕GTK </b>to GNU APL.<br>
<br>
<b>⎕GTK</b> is based on libgtk+ version 3 and provides a simple
(and<br>
therefore somewhat restricted) way of creating and  managing GUIs<br>
from an APL program.<br>
<br>
Think of it as a replacement for <b>⎕</b> and <b>⍞</b> as to
create more intuitive<br>
user interfaces to APL programs.<br>
<br>
<b>⎕GTK</b> is described in <b>HOWTOs/Quad-GTK.h</b><b>t</b><b>ml</b>.<br>
<br>
Enjoy,<br>
/// Jürgen<br>
<br>
</font>
</body>
</html>
Blake McBride
2018-08-10 18:46:01 UTC
Permalink
Hi, and thanks for a great new feature!!

As you know there has been an evolution in GUI interfaces over the years as
follows:

1. Line-by-line (APL Quad, Quad-quote)

2. Desktop GUI applications (Win32, GTK, etc.)

3. Web apps (HTML, JavaScript, REST)

What you have added to GNU APL elevates the possibilities with GNU APL to
the second level.

However, even within level 2, there are (sub-)evolutions. The original
Win32 GUI stuff depended on a central event loop. But I think there is a
better approach that can be adapted to GNU APL. This is something I've
done in a GUI library that is part of a development system I wrote that is
being used commercially (https://github.com/blakemcbride/Dynace). What I
propose is as follows:

1. eliminate the APL-side event loop entirely

2. create the ability to associate APL functions to events on the GTK side
(callbacks). These APL functions would have a standard set of arguments
and return but would do the application work.

I know it can be done because I did it and it is being used by many
developers every day for very real applications. I also think this is a
far simpler and manageable way of doing it.

Just by 2-cents.

Thanks.

Blake McBride


On Fri, Aug 10, 2018 at 12:32 PM Juergen Sauermann <
Hi,
I have added a new system function *⎕GTK *to GNU APL.
*⎕GTK* is based on libgtk+ version 3 and provides a simple (and
therefore somewhat restricted) way of creating and managing GUIs
from an APL program.
Think of it as a replacement for *⎕* and *⍞* as to create more intuitive
user interfaces to APL programs.
*⎕GTK* is described in *HOWTOs/Quad-GTK.h**t**ml*.
Enjoy,
/// JÃŒrgen
Peter Teeson
2018-08-11 16:49:02 UTC
Permalink
Hi JÃŒrgen:
Thanks for ⎕GTK.. Mind you I think it should be called ⎕GUI. That way it may evolve beyond libgtk.

It’s interesting for me because for years I’ve tried to find an elegant way to use the well developed
Apple Cocoa Document template app to provide a GUI for GNUAPL.. Now that we have libapl working I’m at it again.

Of course I look at doing this with the Cocoa app being the main app and libapl as the server.
Whereas I think you view GNUAPL as the main app and the GUI as the server.

From my POV Cocoa provides all the mechanism
 file handles, pipes, even sockets if need be (Obj-C is still C).
Especially Notifications for asynchronous communication ( to read file buffers etc.)

Just my 02¢ 

respect
.
Post by Blake McBride
Hi, and thanks for a great new feature!!
1. Line-by-line (APL Quad, Quad-quote)
2. Desktop GUI applications (Win32, GTK, etc.)
3. Web apps (HTML, JavaScript, REST)
What you have added to GNU APL elevates the possibilities with GNU APL to the second level.
1. eliminate the APL-side event loop entirely
2. create the ability to associate APL functions to events on the GTK side (callbacks). These APL functions would have a standard set of arguments and return but would do the application work.
I know it can be done because I did it and it is being used by many developers every day for very real applications. I also think this is a far simpler and manageable way of doing it.
Just by 2-cents.
Thanks.
Blake McBride
Hi,
I have added a new system function ⎕GTK to GNU APL.
⎕GTK is based on libgtk+ version 3 and provides a simple (and
therefore somewhat restricted) way of creating and managing GUIs
from an APL program.
Think of it as a replacement for ⎕ and ⍞ as to create more intuitive
user interfaces to APL programs.
⎕GTK is described in HOWTOs/Quad-GTK.html.
Enjoy,
/// JÃŒrgen
Chris Moller
2018-08-10 20:12:17 UTC
Permalink
Excellent!
Hi,
I have added a new system function *⎕GTK *to GNU APL.
*⎕GTK* is based on libgtk+ version 3 and provides a simple (and
therefore somewhat restricted) way of creating and  managing GUIs
from an APL program.
Think of it as a replacement for *⎕* and *⍞* as to create more intuitive
user interfaces to APL programs.
*⎕GTK* is described in *HOWTOs/Quad-GTK.h**t**ml*.
Enjoy,
/// JÃŒrgen
Loading...