finos / kdb

kdb+ Working Group from FINOS Data Technologies program
Apache License 2.0
44 stars 23 forks source link

2021-05-03 - KDB Project Call Meeting Minutes #46

Closed alvin-c-shih closed 2 years ago

alvin-c-shih commented 3 years ago

Date

Monday, May 3rd, 2021 - 9:30am EST / 2:30pm BST (first Monday of every month)

Attendees

Fullname Affiliation GitHub Username
Aitana Myohl FINOS @aitana16
Erik Friis
Alvin Shih Morgan Stanley @alvin-c-shih
Aaron Davies Morgan Stanley @adavies42
Peter Gyorok Morgan Stanley @gyorokpeter
Alok Dutt Citi

Meeting notices

Agenda

WebEx info

Webex

Dial-in and Project Materials

adavies42 commented 3 years ago

hi

agitana commented 3 years ago

hi

ColinEberhardt commented 3 years ago

Hi @alvin-c-shih - there was a brief mention on the All Community call last week that the KDB group were interested in contribution towards a new UI? I think someone mentioned that KDB Studio is a NetBeans app and that you wanted something more modern?

We might be able to help with this - could you perhaps elaborate a little?

(I was going to attend the call today but it is a bank holiday In the UK!)

gyorokpeter commented 3 years ago

@ColinEberhardt Yes, the motivation is that the current editor backend is very dated so features commonly found in modern editors are missing. So either it could be migrated to the latest version of the NetBeans codebase or any other modern Java-based UI framework. This would affect the majority of the code in the project as it was basically forked from NetBeans at some point, and the KDB-specific parts are relatively small.

ColinEberhardt commented 3 years ago

Thanks for the info @gyorokpeter - does it have to be a Java-UI? We do very little Java-based UI, the vast majority is JavaScript / TypeScript, using React or Angular.

alvin-c-shih commented 3 years ago

Main points:

  1. kdb+ client API. Would have to be able to port this without significant runtime performance penalty (say under 2x): https://github.com/finos/kdb-studio/blob/master/src/main/kx/c.java
  2. Pluggable authentication mechanism. Each environment might use something slightly different: https://github.com/finos/kdb-studio/blob/master/src/main/studio/core/IAuthenticationMechanism.java
  3. Export results to Excel in a way that doesn't trigger warnings.

As long as these requirements are met (plus being reasonably modern, of course), almost anything goes. :-)

gyorokpeter commented 3 years ago

Additionally the aim of this project is to be a desktop client, rather than another browser tab. This is the very reason I'm still using this program instead of Kx Analyst which is available with the enterprise KDB license (or Kx Developer if you don't have that). So the result of doing such a drastic change would be a completely new project and not a new version of KDB Studio.

ColinEberhardt commented 3 years ago

Thanks @gyorokpeter and @alvin-c-shih - I certainly don't want to push you down a technology route that you are not happy with. For a bit of context, I am the CTO of Scott Logic, a UK-based technology consultancy. I'm always on the look-out for interesting open source projects that our consultancy can potentially work on between client work. When I heard about this one in the All Community call it sounded interesting.

We're pretty flexible about which technology we use, but it does have to be something that reflects the type of work we typically do for a client.

With that in mind, is it worth us doing a little bit of a feasibility study to see whether using JavaScript / React / Electron (making it a desktop app), is a viable option - meeting the performance, auth and Excel integration requirements mentioned above?

psmulovics commented 3 years ago

Have you considered doing it as a vscode plugin? Thst way, you can use JavaScript and node to develop, and you still have a desktop app. Many similar things, let it be jupiter notebooks or python support, is already there, so it could be a nice addition. Also, distribution is provided free by the marketplace.

ColinEberhardt commented 3 years ago

Hi @psmulovics - completely agree, VSCode is a very good option for this sort of environment. Have you seen this?

https://github.com/jshinonome/vscode-q

@alvin-c-shih @gyorokpeter - before we invest any time in exploring this further (i.e. looking at technology options, planning / sizing the project), I do want to confirm that you think it is worthwhile? We don't want to invest time looking into an option that isn't right for this project!