26
$\begingroup$

Source code questions. Back in the day, we decided to put these questions outside our scope for a variety of reasons.

Now that we've graduated and matured more as a site, perhaps now is the time to examine the possibility of expanding that scope.

  • C/C++ questions with nothing to do with blender can certainly go on StackOverflow, but
    C/C++ questions that have everything to do with blender are rarely answered on StackOverflow and have nowhere else to go.
  • Many questions would be localized, but then again many questions about the use of blender are also very localized. It should be possible to encourage a policy of asking generalized questions which apply to more than just a specific project, just as we do for regular usage questions.
  • This site has certainly benefited artists, but more technical artists and would-be developers are left without any really accessible resources on blender development. Most developer traffic is either on a mailing list, which leaves its content buried deep in a bottomless pit of archives, or IRC, which, while great for 1-on-1 debugging type problems, suffers from short-term memory loss and common questions must be asked again and again.

I propose allowing source-code questions, but with a carefully monitored lower-bound on localization. Questions such as "How to add a modifier" would be okay, but questions involving a project specific to the OP, such as "How to add a make-awesome modifier" would be too localized. Really, the rules already in place for regular usage questions should work just as well for development questions.
I also suggest the tag for such questions be named , with possibly more specific tags (e.g. , ) if demand is there.

The pros and cons of such an arrangement:
(at least ones I have thought of so far, if you think of more, please do add them)

Pros

  • Finally, an accessible, searchable, approachable place to ask about the internals of blender.
  • Possibly interest developers more in the site, resulting in more user-developer interaction
  • Increase in scope means there are more questions to be asked, and a wider reaching audience to ask/answer them.
  • Make it easier for community members to contribute to blender directly, resulting in more features.
  • Some users could even turn into full-time blender devs, resulting in even more features.
  • More persistent place to keep info for developers than IRC or the mailing list, and possibly easier to add to/more visible than the wiki.

Cons

  • Development questions could damage the site by driving away artistic users (doesn't seem likely IMO)
  • Development questions would go out of date as blender changes. This is of course also true of usage questions.
  • Some questions, such as "where is the code" questions, seem most effectively answered with some kind of general, universal map of blender's source, but such a map would have to be maintained.

If we decide to expand the scope, one problem we'll have to face is that we've been telling everyone that they aren't allowed for years. We can't just change our official scope definition to something like "The Blender Stack Exchange site is for people who use and develop Blender" and expect the questions to magically come rolling in.

In order to "break the new scope in", we'll need to spread the word and set examples of what new kinds of questions are allowed.

A couple ideas come to mind:

  • Make a massive CW post on something relatively simple but with lots of common pitfalls (GPU style), perhaps obtaining the source-code and getting to compile (for multiple platforms)

  • Have a "source-code" day, where users aware of the scope update hang around in chat and have a question and answer party with all the source-code questions that have been in the back of everyone's mind since day 1. (and perhaps copy/paste a short description of whats going on with a link to this post at the bottom of each Q)

$\endgroup$
2
  • $\begingroup$ Does this include build questions? $\endgroup$ Commented Oct 3, 2016 at 17:32
  • 1
    $\begingroup$ @RayMairlot Offhand I'd say no, as most of them are probably one-off machine-specific oddities. Though I think we could consider the occasional CW post if recurring pitfalls appear $\endgroup$
    – gandalf3
    Commented Oct 3, 2016 at 18:31

5 Answers 5

14
$\begingroup$

Surprised that internal code questions are considered off-topic. Seems like drawing the line at the python api is pretty thin.

I support the suggestion, here's why.

I agree with all the pros, although it might be pushing it to say "Some users could even turn into full-time blender devs." Of course, it would increase the likelihood of contribution to development. However, learning the python scripting API is challenging enough, compiling code's another beasty entirely.

Re cons (including those listed in the variety of reasons link):

  • That the site integrity could be "damaged" is just silly. Artists are big boys and girls. But if we're worried they're squeamish, a C/C++ Internals tag could warn them that naked code is ahead.

  • Code going stale is a non-issue, IMO. Most items seem stable. Things that change, e.g., new features, bug fixes, would be (or should be!) self-evident, documented in the code itself. Blender's GUI stuff seems to change more often (to me anyway), but the underlying elements are also probably fairly stable. This could be empirically checked, of course. In any case, someone able to work at this level will (or should) already have enough coding and development experience that coming up to speed on changes is routine, bread and butter.

  • Re a code map - I disagree with even having one. The code repo IS the map, and - unless it was a totally simple question - the answer would likely, frequently require a link to the code in said repo for the context needed to make sense. Here, there'd be the chance of having the dead link issue. If we tried to create and maintain a parallel map, we'd just double the headaches.

I'm in support of C/C++ questions, not just because I'm also interested in this personally, but because it seems necessary as there's nowhere else for it, as the OP mentions.

There's one other (non-disqualifying) CON which could turn PRO: we already don't have a great answer response rate (last I looked, it was ~= 75% and dropping!) ... adding in code questions might well drop the rate more. Or, maybe, such questions might get some of the existing devs to come over here and contribute answers

$\endgroup$
5
  • 2
    $\begingroup$ I don't really think a "map" would be very useful, but having attempted to find stuff in the source before, it is really not as straight forward as one would think. Certainly some kind of CW question explaining the roles of DNA, RNA, and where the actual implementation code lives would be a must-have. $\endgroup$
    – gandalf3
    Commented Oct 1, 2016 at 3:27
  • $\begingroup$ The site's integrity could in all reality be compromised, the quality and quantity of recent posts has been overwhelming, and if you look at a site like Stack Overflow, there are tons of genuinely bad questions to be asked. However, if the community here agrees to be on the alert in the coming months as word gets around, I think that risk could be mitigated. It is not a good idea though to pretend it isn't there. $\endgroup$
    – J Sargent
    Commented Oct 2, 2016 at 12:44
  • $\begingroup$ Yeah, that's really my only real concern too. I totally agree with allowing these questions, but my impression is that most users here that actually bother answering are mostly artists, or technical artists at best. Not sure there'll be anyone around qualified enough for answering, let alone provide actual quality answers. I hope it'd attract some devs, but they are already few and far between and wouldn't want them wasting too much time that could be invested in actual development, though I do recognize the value of possibly attracting new people. $\endgroup$ Commented Oct 3, 2016 at 1:30
  • 3
    $\begingroup$ @NᴏᴠɪᴄᴇIɴDɪsɢᴜɪsᴇ - the main reason I'm not worried about the site being compromised by bad blender c/c++ questions, (leaving bad questions in general unconsidered): the question quality would likely be higher as a poster would already be proficient enough in c/c++ to attempt the innards, and would or should already know how to formulate it. ... Might be a good technical question, but malformed on the deeper code level. That would require a more sophisticated comment/answer. On the other hand, it'd be no big deal to flag "I'd like to learn c/c++ by coding blender." $\endgroup$ Commented Oct 3, 2016 at 17:09
  • $\begingroup$ Indeed, I agree with you. Just pointing out that we do have to be careful before making such a big change. $\endgroup$
    – J Sargent
    Commented Oct 3, 2016 at 23:22
8
$\begingroup$

I am in full support of the proposition too.

For an addon I needed to add control points to the fcurve envelope modifier. I've programmed in C / C++ but many moons ago. Even getting tips on which file to look in / edit, I found my self sitting there and scratching my head.

The "kick-start" from Uncle Entity unlocked some of the internal rna "blender magic" on how to add features to the python API.

Source code questions, such as the example above, would prove to be an invaluable resource and enhance this site (and ultimately blender) IMhO.

Will also reduce the need to go "pestering" the devs on #blendercoders .

$\endgroup$
7
$\begingroup$

Questions about code can be a way to have more accurate information about Blender's behavior even for end user usage. This is can be interpreted to be the case here or here.

Another example is this one, which is not directly about source code (as asking about the algorithm) but the answer needs to be based on it (except if we can find an exact specification about this Blender's algorithm).

And this one is directly about the source, but IMO it could simply be reformulated as "what is the algorithm?" too.

I am globally favorable to allow source code questions as long as they are properly tagged so that they do not annoy people who are not interested in them and as long as these questions are about gathering information about Blender's behavior or Blender's function localization (in the project source). No more.

But, considering some Python questions in the trend "how to do this in Python?", I am not sure that allowing the same for C/C++ is a good idea because question like "how can I modify the source to obtain this?" is far more complex and far more dangerous about the consequent stability of Blender itself (and we could have other questions about "I have modified the code like that, but now Blender crashes when I do this, can someone help me?" or "I have modified the code but now the project fails to compile...") and IMO this can not be constructive at all for BSE.

To summarize, my opinion about that is :

  • OK to allow informational questions about the code like "how this function works or what is the accurate result of this function?" or "where is this function implemented?" (as long as there is no precise map of the code)
  • Not OK to allow any kind of debugging or development requests

In complement (to the code map), another category of questions can be "cook book questions" like "I want to add a new modifier : what are the different parts of Blender involved in it?" (modifier or nodes or editing functions...). But I think these cook books could be more efficient if they were described and maintained in an official Blender wiki.

$\endgroup$
4
$\begingroup$

A couple of the answers already have made good cases for why we should allow source code questions.

So, Lets try it!

Worst comes to worst, we can change the scope back. I don't think our site will be forever ruined if we have two weeks or so of blender internals questions. That way we can see if the questions will actually get answered. In my opinion the only probable risk here is we end up with a stream of never answered questions, like graphicdesign.stackexchange experienced with 3D modeling questions. If that happens, simply undo, and life returns to normal, or at least whatever this site thinks is normal. . .

$\endgroup$
4
  • 3
    $\begingroup$ I'm not sure it's as simple as all that. We can try and shape the scope, but it's really defined the all users who "get" it. It takes time for enough users to "get" the scope, and changing it once will be hard enough. Changing it twice (especially in rapid-succession) would likely cause confusion without end.. $\endgroup$
    – gandalf3
    Commented Oct 2, 2016 at 20:08
  • $\begingroup$ @gandalf3 I disagree. Anyone who'd have noticed the change in the first place, will probably notice the other change. Besides, most users who have trouble are first time visitors, who don't know what the scope is, either way. $\endgroup$ Commented Oct 4, 2016 at 3:15
  • $\begingroup$ Yes, but then those visitors spread the word to others ”idk what's the matter with your file, but maybe you should post on this site I just found... just mind you don't mention your GPU, or they'll get all excited and block your post". Then those users tell other users in a MMO version of telephone, and a reputation starts to form. Undoing that takes time "did you see that stackexchange place came to their senses and allows real questions now?" "nice, I'ma ask one right now!" later.. "what? Closed because of a little sourcecode? This site sucks!" $\endgroup$
    – gandalf3
    Commented Oct 4, 2016 at 3:51
  • 1
    $\begingroup$ @gandalf3 Pity SE wont allow us to temporarily stick a big red banner saying source code questions are now banned on the question page. That would make undo scope changes easier. I guess you have a point, although I still think in practice, everyone is less connected than that. $\endgroup$ Commented Oct 4, 2016 at 14:35
4
$\begingroup$

I vote for allowing source code questions. And agree with all the pro points above. Plus the line between an answer that needs python scripting and source code changes is not always visible when you start to ask a question. You might end in the c code for what you want to do. Happened to me.

It is in general also very discouraging when you first have to think if your question is even allowed before you start to post something. Also source code is Blender.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .