• 0 Posts
  • 26 Comments
Joined 2 years ago
cake
Cake day: August 6th, 2023

help-circle














  • Yes, because

    In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

    Note the “I have the flow of execution”, and the “if I want to build a library”.

    If you just want to build an executable, do as you wish, you already have the flow of execution.

    If you want to build a library, make the relevant classes and functions and get out of the way (i.e., no IO, no long-running tasks).

    If you want to combine them, use the main name check - or, make a package and do entry points that way. Either way works, because both can fulfill the goal of staying out of the way of those importing this as a library.





  • All code needs to have an entry point.

    For Python and some other languages, this is the start of the file.

    For other languages, this is a special function name reserved for this purpose - generally, “main”.

    In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

    In the other kind of language, the thought process is basically: I am building a library. If I want to make an executable, I should create an entry point they the execution starts at.

    The debate is honestly pretty dumb.