Open jpthiele opened 1 week ago
I think with a little rephrasing it still fits very well into the LIBS skill.
In my mind, a library is always something reusable that you load into your program, but in the end you write your program in any way you want, and end up with a binary that you control how it is produced.
In a framework (again according to my understanding), you always end up fitting some of your code inside someone else's code, ending up with an executable binary that is produced as the framework defines.
This distinction between the "who controls how the entry-point executable is produced" could help formalize the definition, right?
Both library and framework have very clear as distinguished definitions in SE already and we should not try to define our own as that only adds confusion. But the definition fits very well with your understanding :)
Yes the entry-point might be a good way to explain it. The question is how we want to distinguish between the two and if they fit into one skill.
Do we need this much detail? Couldn't we just say
encompasses handling/documenting dependencies with other packages. libraries or frameworks.
Do we need this much detail? Couldn't we just say
encompasses handling/documenting dependencies with other packages. libraries or frameworks.
A framework is difficult to integrate as it is not aimed at that, so I would leave that sentence as is.
After reading it again, the main goal of the skill was to build something that can be distributed, which would also include packages (so something a package manager like apt, yum, dnf, pip, etc.) could consume. Interestingly, we only mention packages in the 'what do people need to know' part.
I added a first draft but I would also add a sentence about knowing how to package software (if needed in the community).
All in all I think we should maybe rename the skill to `Building distributable software (DIST)'?
After discussions at Dagstuhl with Heidi Seibold and Bernhard Rumpe I read the LIBS skill again and we should discuss reworking it in some sense.
First a quick differentiation:
Especially when designing tools and methods with a specific purpose that require very little programming knowledge from a user frameworks should play an important role and RSEs should at least know the distinction.