Hi everyone, I’m pleased to announce my proposal to build a Fortran playground this summer has been accepted by the organisation.
We will now be starting with the community bonding period where as the name suggests, I would like to familiarise myself with all of you and learn more about Fortran and how we can make it better. Over the course of the following three weeks I want to gather your input on what are your requirements for the playground. While, I have discussed my ideas and proposed features in the proposal, I would love to hear ideas on how we can make it better provided they can fit within the summer. During this period is I want to scope out the project so when the coding period starts(June 13) you have a clear Idea on what you can expect of the project.
This thread is for the discussion of ideas on the playground, I will also be posting an update at the end of every week which keeps all of you informed on the development.
To start, I would really appreciate your input on the design of the playground, you can find the original mockup on figma, I’ve also come up with a second wireframe(I shall have the final design ready in a few hours) that resembles the one at compiler explorer, considering much of the community uses it for experimenting. If you have any other kind of style requirement feel free to post it in the thread or DM me the design(You can ideate anything use figma, draw it up in paint)
Feel free to drop here any resources that you think might help me or anything related to the playground or Fortran in general, I am ready to grab all the insight I can.
Welcome @ashirrwad, and thanks for starting the discussion. While I overall like mockup A, it may be too soon to discuss the design. Instead, I suggest to begin discussing the bigger picture questions, for example:
Who is the target user?
What do we want to accomplish with the playground?
What features should the playground provide (you have a comprehensive list in the proposal)?
Since, the playground will be an extension to the fortran-lang.org, I feel this can be an opportunity to smooth the onboarding for new users. We should aim to give the user an insight on how the language can help them so they get a knack for it and explore it further.
Here’s a list of features I have planned to implement for this project, all of you are welcome to contribute to further to make the best tool:
Robust editor with proper syntax highlighting - I’m planning to use Ace Editor
Theme Functionality - option to configure the look of their code editor, selecting their desired theme, font sizes and other features based on their preference.
Code Sharing - An option to share the code with other users to run the same snippet in the playground, for further collaboration.
Interactive Tutorial - A tutorial to get Fortran newcomers up with the basics of the language and know-hows of creating a Fortran Program.
Code saved in the browser, the last Fortran coded written will be available for users to continue development when they come back to the website
File Saving and Opening - Option for users to load up their Fortran files to edit in the browser or save their current web instance on the machine to use it.
Support for multiple Fortran Versions
Support for multiple Fortran compilers(Currently I plan to incorporate gfortran,Lfortran and intel compilers)
API for external users to directly paste the code onto our website editor
Thank you @milancurcic for ideas to ponder about, we should definitely discuss the big picture first and scope out the objectives for the playground.
Yes, I think we should implement support for the popular libraries, stdlib will definitely be supported. I am also looking into integrating fpm with the playground, if that’s a good idea?
Regarding user-input modules, I’d err on the side of simpler (minimal) and allow user modules in the same source as the program unit.
Otherwise, enabling stdlib (via, say, a check-box/radio) or other fpm packages from fpm-registry (via, say, a drop-down menu) would IMO be a killer feature for quickly trying out a package or an stdlib feature. With current fpm capability, it doesn’t seem to me like it would add much complexity on the backend. This could be added to the list of features from which to prioritize. It’s currently not clear to me how high of a priority this should take over some other features.
Instead of a static text field for an output we will try to implement an interactive console-like interface so that we can have recurring outputs in case a program needs it
More mockups for the UI and polling them before the end of week
Another feature idea: Having the user type code in fragments while the editor completes it,
discussed further on github.
We settled on having React as the front-end framework for the project