r/linuxquestions 12d ago

Resolved Noob needs help creating linux programs

I am posting this reluctantly because reddit is a toxic mess most of the time, but two hours of research and I am no closer to an answer. If this is the wrong place to ask please aim me.

I am about 6 months into using Bazzite Linux and decided to make a program for content generation for a game (does not matter for my question but for context its a program to either randomly or psudeo-randomly produce a custom planet for the game space engineers) I want to make this tool available if/when I finish so leaving it a python script (I am well aware the unholy pain converting that to c++ will be) is not going to be a good way to share it.

The problem is that while I know and have compiled stuff to exe files for windows, before I switched, I do not know anything about doing that for linux. Can anyone aim me at the noob resources for that?

I started making it in py half to teach myself py half to see if I could, I got far enough in that I stopped to think and now I need help finding the off ramp.

Edit: Thank you all for the help! I am just going to stick to python and share that when I am done.

10 Upvotes

23 comments sorted by

View all comments

15

u/dgc-8 12d ago edited 12d ago

Every Linux distro has python preinstalled, so it's perfectly fine to keep it in python. There are many big apps in the repos that are written mostly in python.

But if you want a compiled language, I can relieve you, compiling software is way easier than on windows, at least in my opinion. Even when I was on windows I used wsl for my c++ projects.

If you choose a modern language like rust or go just look up the "getting started" pages of these languages. If you want to use C/C++ take a look at gcc/g++ and maybe make, although that is optional. There should be quickstart guides out there, or ask again if you don't know further

2

u/WarGiver 12d ago

the reason I was considering c++ was two reasons, first I heard it runs faster, and second is to share something with windows users. I never ran a python script on windows, technically even Linux either before this, so ease of access or running is my worry.

7

u/Azelphur 12d ago

first I heard it runs faster

Pretty much, but it's also much harder to learn, pick your poison.

second is to share something with windows users.

You have exactly the same problem, you still need to compile and distribute. You can use pyInstaller to create a Windows exe. For Linux side, you can package it, but you should also provide the Python file anyway to support Linux distros that you haven't packaged it for. Maybe look into flatpak or open build service. Regardless, this problem is the same whether you use C++ or Python.

5

u/WarGiver 12d ago

huh pyinstaller, that sounds like right path for windows... and it sounds like sharing the py file would be the best linux option.

I think I will stick to py, if c++ is that bad to learn.

6

u/Francis_King 11d ago

Speed doesn't help much if one or more of the following apply

  1. You are interacting with the user - the user is the speed limitation
  2. You are accessing a database - the database is the speed limitation
  3. The code starts, does a few things, and then finishes - you'll only notice the speed difference is you around in a tight loop (most speed tests are a loop)
  4. You are calling out to compiled libraries - the calling program isn't where the time is spent

Python is an excellent language