GSoC'22: Building a Fortran playground

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.

5 Likes

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)?
  • What features to prioritize?

Look forward to the discussion and the ideas.

2 Likes

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.

2 Likes

Welcome @ashirrwad. Any thoughts on how modules will be incorporated? Will we have access to stdlib, etc.

1 Like

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?

2 Likes

We’ll meet on Thursday, 5/26, at 1400 UTC to kick off the project. Everybody’s welcome to join.

Topic: Fortran-lang GSoC 2022 meeting room
Time: This is a recurring meeting Meet anytime

Join Zoom Meeting

Meeting ID: 956 5178 6482
One tap mobile
+16465588656,95651786482# US (New York)

Dial by your location
+1 646 558 8656 US (New York)
+39 069 480 6488 Italy
+39 020 066 7245 Italy
+39 021 241 28 823 Italy
Meeting ID: 956 5178 6482
Find your local number: Zoom International Dial-in Numbers - Zoom

Join by SIP
95651786482@zoomcrc.com

Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia Sydney)
103.122.167.55 (Australia Melbourne)
64.211.144.160 (Brazil)
69.174.57.160 (Canada Toronto)
65.39.152.160 (Canada Vancouver)
Meeting ID: 956 5178 6482

1 Like

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.

2 Likes

We created a repo for this project:

3 Likes

We conducted the weekly GSoC meet with @milancurcic, @everythingfunctional and @Arjen.
Following are the points we discussed:

  • 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
2 Likes