Blender over 10 years.. what are your thoughts ?

It is a question from a person who doesn’t want to be accused of trolling a thread for giving honest, yet controversial opinion in one posted purely for the purposes of reading whimsical and/or self-affirming responses.

Something I’ll keep in mind should I ever ask you to trust me. You’ll note I did no such thing.

I think, if you actually read the OP, he was asking where we think Blender would be, not the forums or Blender community. However, don’t let that get in the way of trolling people you disagree with. It’s not like others have tried to keep it lighthearted and non-personal at all. Obviously the OP and participants were after another troll thread :rolleyes:

Sigh, my previous posts were a bit flippent! (Im allowed an opinion too eh? :)), but since some people take this very serious, heres my own (more serious) viewpoint on language choice in Blender.

@san, no need to appeal to authority with (Linus’s derisive comments about C) I rather stay away from that - it stops people thinking for themselves.

But there opinions are still interesting when taken in context, experienced developers like Linus (or any Blender devs’s) saying it doesn’t make it right, but IMHO it at least means they (probably) have a point, at least when it comes to the areas where they’re experts
(Lets assume Python, Ruby, Linux, Git, Blender, Samba… etc while not being right by default, are probably not complete idiots for choosing C!)

There is no absolute better/worse, IMHO, its more about being fit-for-purpose,
I think people kid themselves when they imagine they use the best tool for the job (talking languages but it applies to other areas too).

New languages are released all the time - Undoubtedly some are technically better when what we use today.
But lots of these don’t gain traction either and fade away - so theres real practical reasons not to jump ship to the new-shiny stuff (though by now this wont apply to C++).

To me fit-for-purpose has to include what existing devs are able to work with effectively. It comes down to what maintainers are confidant to support/fix/improve.
For example - currently the depsgraph is being rewritten in C++, it makes sense in this case because some fairly complex relationships need to be represented and C++11 has some really useful ways to do that.

On the flip side the decimator modifier used C++ in (what I found to be) a fairly poor & confusing way, so I rewrote in C, while adding support for UV’s, vgroups… & different decimation methods.

One last thing about C use in Blender, I get the impression some negative opinions on C are caused by devs who use it for things its not good at, eg - string manipulation, high level logic… But I think we avoid some of the pain-points by using C & Python, so where speed isn’t so important we can just quickly script functionality which would be really verbose & error prone in C.

http://yosefk.com/c++fqa/ (also if you like c++ a lot can be learned from it. :))

There is no reason to use C++ for new projects. However, there are existing projects in C++ which might be worth working on. Weighting the positive aspects of such a project against the sad fact that C++ is involved is a matter of personal judgment.
If you end up working with C++, don’t try to “fix” it (or “boost” it). You’ll just add more layers of complexity. The most productive approach is to accept the problems and try to write simple code which people can easily follow.

it think the blender developers are very reasonable by just using subsets of c++ where it makes sense (dependency graph,…). i have read a comment by one of the modo developers on the modo forums which stated that modo also mostly is c with only some c++.

:slight_smile:

i wonder if d (or other similar languages) could be included in blender’s code base as easily as c++? probably not? the advantage of c++ is how compatible with c it is. at the same time many of its disadvantages result from that.

i don’t know where blender will be in 10 years but if i think of where blender was 12 years ago at the time when it became open source… a lot has changed. so problably a lot will change in the future too. :slight_smile:

at the beginning it wasn’t really the gui that made blender unusable for me (after getting over muscle memory issues with view navigation) but strange things like that you could only select vertices (no edges or faces). i couldn’t get over it and only started to really use blender when the other selection modes got introduced. :slight_smile:

@kakapo - Theres really nothing stopping us from using other languages, but it does add quite a lot of hassles (interface existing code, devs need to know how to write/debug… have development environments setup). Anyone building needs to have said langauge… etc.

So its not a decision taken lightly, that said, I’m keeping my eye on LLVM based languages - since we depend on LLVM for OpenShadingLanguage - it may be interesting to integrate LLVM based languages which could allow much faster addons in areas we currently dont support (compositor-nodes, mesh-modifiers for eg) - But think this is still quite a way off.

Aren’t there ways more C++ developers than C developers around? This would mean more possible Blender developers …

In 10 years we will still have people like SaintHaven, BTolputt and others, who are never satisfied and/or critical because major blockbusters & AAA’s still use proprietary software, no matter how many people will be enabled by Blender to produce quality content.

Hopefully! Because the yea sayers leads a software to nowhere. It’s usually the critics that leads software development into the right direction.

I’ve seen software dying at its hardcore fans because they protected its fan product a bit too good against the critical voices. The critics left, the software died, end of game. And the developer of this software still wonders what happened. Nobody moaned anymore, all was fine, so why did the software die?

I see the same happen to Blender at the moment. Just mentioning the UI nowadays is like starting a war.

The Blender future? Blender will most probably be in the same situation like nowadays. Which isn’t really bad. Blender is one of the flagship projects of open source development. And the involved devs does an excellent job. But it is not really good neither, compared to the big boys. Commercial products have a much higher development pressure. And are much more oriented at the users needs. While open source has to fit the developers needs and wishes.

Blender is a hobby tool. It is very promising, but two or three steps behind here and there. And doesn’t always deliver what is needed. I just hate to switch to another software because Blender is once more ways too complicated to use or even not able to finish the task at all. Plus not to forget the gpl barrer that stops it from making the step into the mayor league anyways. Because commercial plugin developers fears gpl like the devil the holy water.

I used to think this too, but IMHO its really not that simple…

By this logic you would expect there to be more BGE devs because its written in C++? (or other areas - Cycles for eg).

I also used to think we shouldn’t have trouble finding Python devs because its far easier to write then C/C++, yet we have trouble maintaining existing addons.

Java is a very popular language too now, yet the port of Blender to Java never got very far, and Moonlight3D (3D-App written in Java), also didn’t seem to attract much development.

Rather then look at overall language popularity, IMHO you need to take into account popularity in each field (ray-tracing, systems-programming, game-engines… etc).


Also - what software is dying - name names?

Yes, there are of course other important factors too. Making a 3D software is a bit more complicated. So no wonder that you struggle to find people at all. No matter in what language.

name names?

The software that i talk about was called Gamecore. A game development tool. It was on par with Unity back in the days. It’s long gone now.

To prevent misunderstandings, Blender is of course far away from dying. But there is a heavy tendency to make the critics quiet.

Damn. I have to stop myself from jumping on flamebaits…

See what i mean with making critics quiet? You disagree with my opinion, so it just has to be a flamebait :wink:

there was and is a lot of constructive criticism that caused blender to become better in the recent years. and then there are a lot of bitter forum posts… :slight_smile:

I think in 10 years many more parts of blender will be self-contained, separable, reusable modules like cycles, bullet, opensubdiv OSL. It should be more exciting for a Developer to create say a shiny reusable “open geometry modifier system” than to improve blender’s modifier stack.
But whatever the future will bring it’s good that the starting point is already a feature complete general purpose 3D application.

Ok, here is my (serious) attempt to predict were Blender could be in 10 years time.

I choose to show 2 scenarios - were there in both cases will be a push to have more professionals using the program. It is based on Ton’s Blender Conference keynote in 2012, were he said that professional use of Blender will take Blender development to the next level. And I agree with him.

Scenario 1 : Here the development focus have been mainly on adding features. With not that much development resources allocated to UI.

It is a development philosophy I call the ‘zBrush way’. Were the development team acknowledge that Blender have a steep learning curve (because the Blender UI-philosophy is not that conventional). But that the program will still be interesting to learn and use in a professional pipeline, if it gets features you can find nowhere else in the cgi/vfx industry.

The problem with this approach will be that the Blender development team is small. Blender is a suite of ‘sub’ programs (modelling, texturing, rendering, composting, physics, asset manager…) and development is spread out.
Compare this to zBrush were all development efforts is much more focused.

So, as I see it, this development model will not work. Blender will have no killer-features in 10 years time, the manpower is simply spread out too thin.
The professional use of the program will be a bit bigger than now (Blender hobbyist turned professionals). But in a professional marketplace were time=money, other programs have better features, or/and a flatter learning curve with a more streamlined UI (because of more UI resources). And Blender hobbyist turned professionals will have a serious challenge competing with other cgi/vfx studios.

Scenario 2 : Here Blender developers (with Blender Foundation at its centre) acknowledge that scenario 1 is a fight too big to win. So there are a real honest push in development resources allocated to UI.

As a result, conventions from the ‘big players’ in the software industry will be implemented (but we are not talking about turning Blender into a clone or anything like that). So the learning curve will flatten. The UI will be streamlined and flexible (with less built in contradictions), and Blender will be more relevant to pick up in a professional pipeline. Were (again) time=money.

So in scenario 2, there will in 10 years time be substantially more professional users than now. Supporting development of Blender - with their own developers, or with donations to the Blender Foundation. And in effect taking Blender development to the next level.

So this is my predictions. And they are of course very subjective.

…because as physicist Niels Bohr once said - ‘It is difficult to predict, especially about the future’. :):wink:

Holy crap! I avoided learning C++ (I did learn C and C#, though) so I never knew about this. I have to agree with you, ideasman42. Making things more cryptic is NOT a step forward.

@tiles, re - make the critics quiet. not sure about that, some people are really un-relenting on their complaints, weather devs agree with them or not. At some point its not constructive to keep complaining about same issues again and again.
The Why dont developers make ‘my personal wishlist’ their #1 priority … kind of complaints.

@joahua - this isn’t as simple as we improve UI or not. UI will be improved of course… but how significant the changes are, how much they help… is subjective.

@rontarrant - I feel a bit guilty for showing one side of the story, to atone, heres some horrible C code in Blender :slight_smile:
http://developer.blender.org/D660
http://developer.blender.org/diffusion/B/browse/master/source/blender/blenlib/BLI_array.h;e15cdec2d49ee47a85897db9838578a298146513$87

I can only speak for myself here, but I think the reason it is hard to find maintainers for existing addons is the lack of sex appeal. An addon usually has a small audience, which means there is not much perceived glory in maintaining it, only a sense of duty. With addons, you just hope there is an artist who needs the addon to work, who either speaks python or knows someone who does, because without such a drive, it is hard to get into it. Getting into fixing stuff, even addons is quite hard. The python api is not transparent. That means one needs some insenstive to ckimbthe learning curve. I recently learned how to write addons and it was non trivial, even though I consider myself quite good with python.

I seems to me that you have not read my post before closely enough. I’m not describing a scenario with no UI development. I’m describing a scenario with little development resources allocated to UI development. And a scenario were UI development is a important part of the development strategy. And gets allocated more of a this (scarce) resource - paid developers.

And oh yes, it’s subjective. But I guess everything is in the end, especially speculating about Blender’s development in 10 years time. :slight_smile:

@tiles, re - make the critics quiet. not sure about that, some people are really un-relenting on their complaints, weather devs agree with them or not. At some point its not constructive to keep complaining about same issues again and again.
The Why dont developers make ‘my personal wishlist’ their #1 priority … kind of complaints.

This coin has two sides, as usual :slight_smile:

That permanent complaints nags you as a developer is out of question. Too many people tries to pull you into too much different directions. And i know you only have two hands. So i feel with you here.

But that’s the way it is with software development. Feedback is essential. How would you know about the users need when there is no communication? And when people complains about an issue again and again then chances are big that they complain for good reason.

Priorities is the key here. I as a user have of course different priorities than you as a developer. But i as a user am normally the target of the things that you do as a developer. I USE your software.

And it becomes a bit problematic when our priorities are too far away from each other. Especially when i have to use other software for basic things for example. And when i complain that i have to, and get told that my complain is not constructive nor helpful.

It’s not ten Hail Mary’s and five repetitions of the Lord’s Prayer, but it’s a reasonable penance. :wink:

FWIW, any reasonably powerful &/or expressive language will have examples where developers have abused it and created a monstrosity. Computer languages are like spidey powers - greater power = greater responsibility. C++ comes with more expressive power and, therefore, needs more responsibility in it’s use. Awful code can be written in any language and, honestly, it is more the developer than their preferred coding language. Choosing C++ (or C) isn’t going to make a bad developer better - it’s just going to allow them to make different mistakes.

+1. It’s getting a little tiresome that any disagreement is classified as trolling. There are trolls on both sides of most the debates about Blender here, but being on one side or the other doesn’t define someone as a troll. Try to see through the disagreement to the intent of the poster. Trolling is defined by doing/saying things in order to get a negative response. For example, I would posit that sebastian_k’s comment is closer to the definition of trolling than the post he singled out.

What addons?

Many: https://developer.blender.org/maniphest/project/3/type/Bug