kevinlawler / kona

Open-source implementation of the K programming language
ISC License
1.36k stars 138 forks source link

Does kona have dependencies, triggers, GUI? #304

Open StefanScott opened 9 years ago

StefanScott commented 9 years ago

An earlier released version of K had:

Reference:

http://web.archive.org/web/20050504070651/http://www.kx.com/technical/documents/kreflite.pdf

page 35:

Dependencies Dependencies provide spreadsheet-like formulas within applications. A dependency is a global variable with an associated expression describing its relationship with other global variables. The expression is automatically evaluated whenever the variable is referenced and any of the global variables in the expression have changed value since the last time the variable was referenced. If evaluated, the result of the expression is the value of the variable. If not referenced, the value of this variable is the last value it received, either by ordinary specification or a previous evaluation of the dependency expression.

The dependency expression is an attribute of a global variable whose value is a character string holding the dependency expression, for example:

 v..d: "b + c"

page 45:

Triggers A trigger is an expression associated with a global variable that is executed immediately whenever the value of the variable is set or modified. The purpose of a trigger is to have side effects, such as setting the value of another global variable. For example, suppose that whenever the value of the global variable x changes, the new value is to be sent to another K process where it is to become the new value of the 0th item of the variable b. This trigger is set simply by placing the expression on the appropriate node of the K-tree:

x..t: "pid 3: (`b; 0; :; x)"

where pid is the identifier of the other process. Note that relative referents like b are not resolved in the attribute dictionary of x, but are entries in the same directory as x.

page 14:

Graphical User Interface The value of a variable can be printed during an interactive K session simply by entering its name alone on a line. The value can also be shown on a display screen in any one of the usual ways: as a chart, table, button, layout, and so forth, and almost as simply as entering its name. For example, if n is a list of numbers, you may chart these as x-values by assigning “chart” as n’s display class attribute:

n..c: `chart

followed by

`show $ `n

(There are also several screenshots of the GUI in Chapter 15, starting on pages 229-230.)

Does Kona also implement dependencies, triggers and a GUI?

Kona is a great project. Thanks for any help!

tavmem commented 9 years ago

Kona does not currently implement dependencies, triggers or a GUI.

K2 came to market in 1998, and was the primary product offered by Kx Systems. It included dependencies, triggers and a simple GUI.

K3 (with KDB and KSQL) was a transition product. KDB and the associated query language, KSQL became the primary product of Kx. The accessible underlying language, K3, was quite similar to K2.

For KDB+ and q it's a different story. Though K4 is also accessible, it is quite different from K3, is proprietary to Kx, with no manual and little documentation. There is no GUI in q. Kx recommends using q with the R language for display purposes. Triggers disappeared ... the book "q For Mortals" has no entry for triggers in its index. However, dependencies were still a feature of q.

There are no plans to incorporate a GUI into Kona. The strategy of using R for display purposes is probably a good choice when using Kona.

Since triggers were dropped from q, it is unlikely that they will be added to Kona.

Dependencies may be a different matter. As they survived the transition to q, it may be worthwhile to explore them further as a possible addition.

raould commented 8 years ago

Hi,

This seems confusing since Kona purports to be K, not Q. If Kona is Q then I guess I'd suggest changing the statements that say it is K. $0.02

E.g.

https://github.com/kevinlawler/kona/blob/master/README.md

tavmem commented 8 years ago

It may seem confusing ... here is some clarification: Kona is attempting to be an open source implementation of k3. Not all features of k3 have been implemented yet. Dependencies, triggers, and the GUI have not yet been implemented ... and may never be.

Kona is definitely not q. q is a different language, implemented on top of k4. q is not any version of k.

raould commented 8 years ago

Thanks. :-)

bakul commented 8 years ago

On Fri, 08 Apr 2016 10:27:03 PDT Raoul Duke notifications@github.com wrote:

Thanks. :-)

No. There are a number of differences between kona and k3.... You may wish to check archives of kona-users and kona-dev google groups.

[Edit: never mind! I missed the earlier context]