spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.1k stars 1.57k forks source link

Feature: Enso & UML Support #17461

Open Spencerx opened 2 years ago

Spencerx commented 2 years ago

Extending functionality. Is it possible to accommodate Enso which used to be Luna and UML for visual approach to

1) coding 2) prototyping

Ofcourse creative users will find many other possibilities for using frameworks and toolchains inside Python including Cython, Jython which on the face of it offer unique attributes that don't evade the attention of coders using them regularly.

Enso would help extend the ability to data wrangle, thinking outside the box would also mean you could draw up UML style diagrams to achieve goals without being bound by specific tools restrictions or language depending on which type of diagrams be they Behaviour, Interaction and Structure Diagrams with many different visualisations coming from each UML tool out there but each represents the same UML visual elements with similar properties depending on project detail, it's always easy to deal with legacy source trees and other artifacts that can force anyone involved with a project to hit a brickwall or circle a traffic circle when the only options are closed set of tools.

A easy approach would be Jupyter Notebooks to use to understand, at least sketch notes or on prototyping, at least take notes especially offering that visual layer, some people are moving from other languages to Python but we know we're not limited depending on the development environment and stack at our disposal!

Best

github.com/enso-org/enso

dalthviz commented 2 years ago

Hi @Spencerx thank you for your feedback! I think this kind of functionality could be thought as an external plugin (which from the little I have read about enso, the external plugin should provide an Qt/PyQt/PySide based GUI for the enso engine/compiler). However I think this is kind out of scope of Spyder right now although if you want to implement the external plugin we could try to guide you or point you into plugin examples :)

Pinging @spyder-ide/core-developers just in case (maybe someone has more info about/has used enso)

andfoy commented 2 years ago

These kind of plugins can be developed once https://github.com/spyder-ide/spyder/pull/17467 is done

Spencerx commented 2 years ago

It's always better to have another development environment at your disposal than one. I can do that myself all the time but it won't help in a multi user environment, so I'll mention @wdanilo, @sylwiabr, @radeusgd, @MichaelMauderer.

As they use it all the time.

wdanilo commented 2 years ago

Hi guys! @Spencerx thanks for mentioning Enso and summoning us here.

@dalthviz, Enso has 2 parts – GUI written in Rust, that compiles to WASM and runs in WebGL (so you can embed it in any WebView) + GraalVM-based backend (polyglot: https://enso.org/language). Just to clarify how it works.

If anyone would be interested in integrating Enso, we would love to help :)

Best, Wojciech

dalthviz commented 2 years ago

Thank you for the clarification @wdanilo ! I will reopen this to keep track of it since as @andfoy said probably some work in progress could enable a easier plugin creation in the future.

Also, think about embedding the GUI via WebView maybe an example plugin that does that is the spyder-ide/spyder-notebook