this post was submitted on 29 Jan 2025
117 points (95.3% liked)

No Stupid Questions

36679 readers
1789 users here now

No such thing. Ask away!

!nostupidquestions is a community dedicated to being helpful and answering each others' questions on various topics.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules (interactive)


Rule 1- All posts must be legitimate questions. All post titles must include a question.

All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.



Rule 2- Your question subject cannot be illegal or NSFW material.

Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.



Rule 3- Do not seek mental, medical and professional help here.

Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.



Rule 4- No self promotion or upvote-farming of any kind.

That's it.



Rule 5- No baiting or sealioning or promoting an agenda.

Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.



Rule 6- Regarding META posts and joke questions.

Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.

On fridays, you are allowed to post meme and troll questions, on the condition that it's in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.

If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.



Rule 7- You can't intentionally annoy, mock, or harass other members.

If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.

Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.



Rule 8- All comments should try to stay relevant to their parent content.



Rule 9- Reposts from other platforms are not allowed.

Let everyone have their own content.



Rule 10- Majority of bots aren't allowed to participate here.



Credits

Our breathtaking icon was bestowed upon us by @Cevilia!

The greatest banner of all time: by @TheOneWithTheHair!

founded 2 years ago
MODERATORS
 

Like, how are you, not just as a greeting.

you are viewing a single comment's thread
view the rest of the comments
[–] evanmccarter@sh.itjust.works 2 points 1 day ago

FYI I don't think Python is really suitable for use with a production environment. After you want to start installing other people's modules, you'll encounter nightmares without any good solutions, and someone will eventually be extremely unhappy that you decided to use Python (probably within 5-10 years, if not much sooner): https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/

In general, Python seems to be much too closely coupled to the Shell Command Language (which you should also try to use as little as possible): it seems like a lot depends on the environment, so trying to use Python after interacting with a PATH variable or changing the working directory might unexpectedly produce different results. A clear example of this is the idea of "virtual environments", as using one essentially requires that using Python is managed using the Shell Command Language (see what I expect is the source code for the "activate" and "deactivate" utilities also). "Virtual environments" seem to be extensively used by at least Pipenv. Also, the people managing Python seem much more concerned about maintaining interoperability with C than with making packaging less terrible (this is understandable, but other languages also interact with C while having better packaging systems).

I personally prefer to use The Go Programming Language for more things recently, since packages are very easy to publish and programs are much easier to use with minimal preparation, and I've had a much easier time with refactoring and testing, and the huge speed difference is helpful too. Rust also seems to have a quite robust packaging system, but it seems that there are fewer features provided with main utilities (like measuring code coverage). I recall that npm has been relatively easy to use, but nowadays I'd avoid using JavaScript unless I absolutely have to (in the same way I avoid Python or the Shell Command Language).

Regardless of whether you're interested in Go or Python or some other programming language, I find that it's easier to keep up with best practices for software engineering by checking documentation for linting tools and fixer programs referenced by ALE: https://github.com/dense-analysis/ale/blob/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/autoload/ale/fix/registry.vim https://github.com/dense-analysis/ale/tree/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/autoload/ale/fixers https://github.com/dense-analysis/ale/tree/6c337ad19ca32fcb11ff7f29a8e68598763b59a2/ale_linters

These are some other sources that I found to be relevant to Python:

I'll say that using Python is probably better than using C or C++ (especially since it seems that there are many more published best practices regarding package management for Python than for C), but it's probably better to choose a different memory-safe programming language if you have a choice at all.