Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion]: Make Java Playground compelling #6

Closed
reportmill opened this issue Sep 21, 2023 · 5 comments
Closed

[Suggestion]: Make Java Playground compelling #6

reportmill opened this issue Sep 21, 2023 · 5 comments

Comments

@reportmill
Copy link

reportmill commented Sep 21, 2023

Java Playground makes Java more accessible than ever by running in the browser and supporting code snippets and example templates. This is great for learning, experimenting, demonstrating, sharing - exactly what Java needs to attract and keep users and showcase Java in the best possible light.

However, much of what makes Java compelling is the platform and tools, not just the language. Showing Java via simple JavaScript tools can be self-defeating: it hides much of the platform, shows Java in a limited and less engaging way and implies that the best way to write Java is with another language.

Java Playground needs to add a basic set of 'standard modern IDE features' - and it needs to be implemented in Java itself, so this new site shows Java as powerful, flexible, exciting and makes it easy to write code. After all, modern tooling was invented in Java and it is much of what keeps developers excited.

I'm suggesting that dev.java consider changing the foundation of Java Playground to use SnapCode, a free in-browser code editor, written entirely in Java - running in the browser. It has these modern features already:

- Full code completion
- Support for balancing and highlighting paired chars (quotes, parens, brackets, etc.)
- Support for highlighting instances of selected symbols (variables, method names, etc.)
- Support for inline error reporting
- Support for in-browser UI coding (buttons, sliders, textfields, lists, tables, trees, etc.)
- Support for in-browser command line and chatbot processing (System.in / Scanner)
- Support for advanced charting (line, contour, 3D, etc.)
- Support for turtle/pen graphics, vector graphics and 3D programming in Java
- Support for quick access to documentation and library source
- Support for external library dependencies
- Support for UI building
- Support for debugging
- Support for graphics profiling (frame rate, painted region highlighting, etc.)
- Support for quick share of code snippets with encoded URL
- Support to show code as "Puzzle pieces" for visual drag-and-click code editing
- Ability to run on the desktop
- Much more!

Click to run SnapCode: https://reportmill.com/SnapCode/app/

I know the reaction might be "this is beyond our scope". But it's "Java Playground", not "Java Toy". Playgrounds are expansive, full-featured and inspiring - the limitation should be user imagination, not the tool. And I would love to help out.

Jeff at ReportMill

Contact Details (optional)

jeff@reportmill.com

@reportmill
Copy link
Author

SnapCodeWeb

Click to run: https://reportmill.com/SnapCode/app/

@delabassee
Copy link
Member

delabassee commented Sep 22, 2023

Thanks for your feedback.

The Playground aims to help developers, including beginners, to explore Java language features. It is not meant to be some sort of online IDE.

This is the initial version, we still have a lot to do but we believe that the overall user experience is crucial, i.e. it needs to be simple and quick, type a snippet, and get the results.

Your solution is impressive but it clearly targets a different audience.

@reportmill
Copy link
Author

reportmill commented Sep 22, 2023

Thanks for the response, David! I do think the Playground is very nice and an important tool for the community.

The proof of the importance of Java Playground is how much the JavaScript community relies on JSFiddle. We also need a "JavaFiddle" space to share code snippets, do presentations, experiment, teach and support. But JSFiddle is written in JS - and I think our Java Playground would benefit from being implemented in the language it supports.

My solution takes this approach and is targeting the exact same space, it just looks more IDE-ish with the full screen link. It can be configured to just display the Editor+Evaluator just like JP (and loads faster in this form).

I encourage you to look at the new CheerpJ 3 - it is the first real "JVM in the browser". It runs existing jars in the browser with a simple 2 line JS script. It is still preview (launching next month), but it is already fast and lean, and improving daily.

I know you are probably committed to your approach, but I would love to work with you on this or contribute in some way.

Jeff Martin jeff@reportmill.com

@carimura
Copy link
Member

Thanks for feedback and suggestions and your dedication to the Java ecosystem. We'll consider for the future and reach out directly with questions.

@reportmill
Copy link
Author

Thanks Chad. And congratulations all (again) on a great tool - I'm thrilled that Oracle sees this as important!

Please reach out to the CheerpJ people - they are doing amazing work on Java in the browser (including Oracle forms!) and I think they would be thrilled and encouraged to hear from Oracle Dev Relations. Their efforts could use the attention, and CheerpJ 3 would make for a great dev.java news story!

They have a nice discord channel if you want to say hi: https://discord.com/invite/qBMHpK9Kqv

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants