Hi Everyone,

I’ve gotten a lot of older books on mathematics, physics, chemistry, and dabbled a lot in computational simulation with programs like LAMMPS and GROMACS. I am interested in learning how to make a GUI application that I can use to automate graphing functions, understanding how sensitive a model may be to perturbations in particular parameters, and different ways of visualizing data to help me get an “intuition” on subjects. Numpy, SciPy, Pandas, Matplotlib.pyplot, numba, glob, and os, are libraries I like to use. See Gibbs’/Maxwell’s original envisionment of thermodynamic surfaces from the late 1800s.

However, I am a moron with respect to software development. My interests are in the FOSS-sphere of things, but I have never made a piece of software other than botched code to calculate averages, perform PCA, and typical statistics visualizations with distributions, Monte Carlo simulations, and see how this effects the properties of the underlying system of study. I’ve also glanced at design patterns, know the different paradigms of computing to a basic level, and am willing to suffer for long-term educational gains.

The language I’m most comfortable coding in is Python, but I found it discouraging to start writing a software project, as I assume writing something entirely in Python isn’t the best way to ship quality software.

Julia and Matlab are other languages I’ve written programs in. I’ve tortured myself with the whole gamut of toolchains/editors like Neovim (and my inability to get my lua.init file to ever work properly), and prefer to use FOSS tools. I can navigate in a clunky sense around a terminal, but whenever I try to configure my .bashrc or modify the behavior of my editor, it results in me chasing down a particular filepath for an hour just to change the color of the text, or rearrange how the text is displayed to the terminal so that I actually can read what is saying. Without color-coating, it’s hard to distinguish between directories, file extensions, and so forth, and even more frustrating when you can’t get the changes to work.

Essentially, I am a confused orangutan given a mallet.

When I ditched Word for LaTeX several years ago, it inspired me to take my FOSS journey one step at a time, rather than what I did a year ago, where I chucked every proprietary tool into the trash.

I need to actually be able to do work, as one would prefer to drive their car, rather than get out every 5 feet to fix another busted part.

I would like to eventually develop software that ends up in the FOSS sphere, and write programs that do not take up 100GB of space, or have 100s of bandaid layers, countless dependencies, and the whole gamut of issues that plague certain software packages.

Libraries that I’ve looked at are…

  1. Tkinter
  2. PyQt5
  3. Dear PyGui

I don’t particularly care about modern esthetics for the interface. All I care is that the program functions, uses a relatively low amount of resources, and can educate me further about how to rip open a widget, modify the code associated with that particular button, and get a greater control of visualizing concepts taught in math/physics books.

Thank you!

  • SorteKaninA
    link
    fedilink
    arrow-up
    5
    arrow-down
    4
    ·
    edit-2
    10 months ago

    I assume writing something entirely in Python isn’t the best way to ship quality software

    You seem to have a sharp intuition in this aspect.

    am willing to suffer for long-term educational gains

    Have you considered learning Rust? There are some nice GUI libraries for it like iced. It also seems to resonate with what else you’ve written. You can learn by reading this online book: https://doc.rust-lang.org/book/

    • gronjo45@lemm.eeOP
      link
      fedilink
      arrow-up
      2
      ·
      10 months ago

      I’ve had murmurs of Rust throughout my time here… I’ll give it a try and attempt to make a barebones application with buttons.

      Once I’ve either failed catastrophically or have created something to be reviewed, I’ll report back.

      Thanks!

      • CorneliusTalmadge@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 months ago

        There is also a rust book that walks through building a todo app with rust and gtk (gnome desktop). Haven’t gone through it yet myself, but might be something you’d be interested in skimming through.

        • gronjo45@lemm.eeOP
          link
          fedilink
          arrow-up
          2
          ·
          10 months ago

          That looks like a helpful guide to go through as well. I’m not too familiar with compiling/building/making (only the general notions)… In the past, I’ve abandoned programming projects because I got bogged down in the semantics of the documentation.

          Should I stick to drawing high-level flowcharts pursuing a “make this” Occam’s Razor type philosophy and just condition myself to abandon unnecessary pedantic details? Just trying to make sure I follow through with my programming project this time instead of getting overwhelmed!

          • SorteKaninA
            link
            fedilink
            arrow-up
            2
            ·
            10 months ago

            I’m not too familiar with compiling/building/making

            Don’t worry, Rust makes this very simple for you, as you’ll quickly learn once you learn about Cargo. You don’t even need to think about it.

            GUIs are in general quite complicated regardless of language I would say, so it’s perhaps not the best place to start if you want to learn iteratively. But I think you can still make simple GUI things quite quickly so perhaps it’s not too bad.

        • gronjo45@lemm.eeOP
          link
          fedilink
          arrow-up
          2
          ·
          10 months ago

          Definitely will, I appreciate the support :) I’ll hop onto the Rust form after I’ve read the book with some questions.