Python found its destiny in machine learning. R found its destiny with statistics. JavaScript found its destiny being the web language. Is Julia’s destiny building the virtual world?
Why?
Because the virtual world offers! A yacht might cost you $10M. In the virtual world, you can give everyone one! The ability to “conjure” stuffs up in the virtual world is one of the many amazing abilities the virtual world gives.
For the virtual world, we need content, that is, creative content.
Here is my dream plan to leverage Julia to build the dream virtual world. This would require cooperation with creative professionals. The ease of the language could also aid in reducing gap between the creative tool developers and users.
Now, let’s see each aspect of the virtual world and how we can leverage Julia.
Drawing: This part is one of the most speculative, but here’s an idea. Drawing, like programming, is telling the computer what to do. The configuration of pixels that is the drawing you want is already possible and can easily be stored by a computer. What you need is a way to tell the computer what you wants. Sometimes you may do it pixel by pixel. Currently, you draw the picture you want line by line. Asset reuse is usually shunned. If you know anything about abstraction, you might want to ask if it could be abstracted further, and I would say the history of programming languages suggest yes. Being one of the top languages in the capability of abstraction, what about we try abstracting the process of drawing itself? Just… how?
Simple animations: Similar to the above, but now you add one dimension to the mix. Can you interpolate between frames? What kind of information does it need?
Movies/etc: Now you want VFX and so on. Julia not only offers abstraction we can build from, but the performance needed to perform complex computation flexibly. Add physics simulations/etc as well
Games: Now add AI and so on.
Music: Now, I believe we can finally synthesize music by simulating air pressure. This was not computationally feasible before.
And the virtual world gonna contain all of the above. Which means the entire creative industry.
So, do you think the destiny of Julia lies in the creative industry and ultimately the virtual world?
Oh, okay, this post is flagged apparently. I’m afraid I don’t understand why. Maybe I am biased because I want to make a virtual world and I just stumbled across Julia and then believe in it to be the tool.
Or is it a taboo or something to talk about the virtual world?
Maybe I haven’t done a good work of articulating my ideas in my head into why Julia could be (not yet) a language for creative works, but please take the charitable interpretation.
I guess I’ll wait for a staff action this time. I believe I’ve been polite and civil in discussions. Maybe speculative and crazy sometimes, I accept that.
If Julia is not and will never be for these, it’s okay.
Thank you for the Julia community for supporting me along the way.
Don’t take the flag too personal, the flag is in the first instance just so that moderators can keep an eye on the topic. A lot of the topics you posted were highly speculative which often isn’t really conducive to a fruitful discussion so it’s helpful for mods to be aware.
As to your question: Julia is a Turing complete and modern programming language, like many others. It has some well known pros and cons, just like other languages. You can absolutely build whatever you want with it, how hard that’s going to be will depend on (1) how well your use case fits the pros of Julia (and avoids the cons) and (2) whether there is some ecosystem around what you are trying to do that you can leverage (or at least a chance that this might develop).
I think you’ll benefit more from this forum if you try to ask some more tangible questions like
I want to build a web server in Julia that two users can interact over
I want to render a 3D interactive landscape in Julia
I want to connect Julia to a VR headset
or whatever might be needed to build your virtual world (I don’t know anything about building a virtual world so these are just wild guesses).
In all these, there is virtually no Julia code or anything “concrete” that connects the topic to Julia. And there never really seems to be any “result” that comes out of it in the sense of some code that can be run to achieve something relevant to the claimed goal. So is the point of all these topics only the discussion itself? I think most people that spend their time helping and answering are doing that with the belief that there are actually plans in creating the thing being asked about. If not, maybe a blog or something would be a more suitable venue.
If you look a bit closely, you can see an overarching narrative. To create the best game, we need some good AI so I pondered into making AIs, then figured out the AI won’t exactly work well (competitive chess engines requires lots of compute to develop and StarCraft 2 bots community barely have compute at all.) Then, come the wargame, which I actually am making. Game mods, well, game mods are in many games and my war game itself also intends to support mods. And finally, the voice synthesizer is my idea in an early phase.
Yeah, I understand that you see disparate nodes but for me they’re actually connected.
Oh, and forget about that programming language one. I was just thinking something.
Did you post it to the “offtopic” category originally?
If someone else moved it for you then it seems excessive to flag it too. Or if was flagged first and moved. If in doubt I post here, sometimes clearly offtopic stuff, not even about Julia, or like you more speculative.
I can understand you being exited about Julia. I certainly was from the start and still am.
Caveat: Turing completeness does not imply satisfactory performance or reasonable effort to reach it. A game console can be emulated by a PC, but hardware discrepancies can make the game run too slowly to be playable by a human.
I don’t know if this was worthy of flagging, I suppose a moderator will decide when they see it, but broad speculation of whether Julia is suitable for some uncharted waters isn’t ever going to be a conversation that goes far. People can talk about the broad strengths and weaknesses of Julia, but nobody can know the practical hurdles until they try. Questions about specific subproblems would be more productive, like asking “what cheese should I use and where can I get it” instead of “are we capable of making a sandwich franchise”.
Flagging a post in the “offtopic” section… well, there should be a great deal/intensity of offensive material.
Maybe a better way would be for the people not interested in a subject (regardless of how far-fetched or dreamy/unrealistic it might look) not to engage in it.
On a personal note (and I feel free to say it here now because the OP also opened the subtopic of “why to flag a civilized post in the offtopic section”), I personally experienced cases where I felt free to express my hopes about the language, and I was directly instructed that I should think differently (Nah, it didn’t take).
I’m not sure if my feedback matters, but here it is anyway: a while back, I started to post here as a way to “give back”, and I felt pretty enthusiastic for a while. However, the ex-cathedra attitude and the feeling of academicism entrapment made me lose the desire to get involved (so I am pretty much back to being a consumer).
I can empathize with that feeling, I’ve also made a couple more “high level” posts over the years and they usually didn’t get the response I hoped they would. But after maintaining Makie for a couple years I have developed a different view.
When people post their hopes and dreams about Makie, if it could do this or that, or they have some big idea, it doesn’t really help. I mostly had all of these ideas at one point or another as a side effect of dealing with this library every day. But they are hard to get done, and there are many small things to decide and work out along the way. That’s where the real work lies and that’s where posts on Discourse or so just don’t help. Same with Julia itself, I’d presume, although I’m only a very casual contributor to that.
The most effective way that people from the community help me when developing Makie is by filing really concrete bug reports. Then I can go and fix them. I can’t exercise all that functionality in all the different possible ways myself so there the crowd factor really helps.
Other ways to give back are suggesting (or even writing) documentation improvements, which is really good when outsiders/beginners to the language / a package do it. Or helping other users with their problems.
I think I’ve only really really rarely seen unkind responses to that kind of activity (voicing a technical concern in a blunt way is a bit more common), it’s mostly the “hot take”, speculation, or “demanding change” threads where people get annoyed and angry with each other.
Anyway, that’s just the patterns I seem to have noticed over the years, maybe it helps you to see it from that perspective, maybe not.
Maybe your comment doesn’t get some key details across, but disagreement and persuasion is part of any collaborative process. Everyone has the right to express their own opinions, and that will often involve trying to convince other people that their opinions are wrong. A development cannot go forward if there are objections in the team, and everyone has to play by standard rules they may not personally agree with. It is understandably frustrating when the project doesn’t go the way you want as a result.
But the great thing is nobody can stop you from doing as you like in a fork or your own package. Maybe you prove yourself right and you made something more tangible to attempt to persuade people, if that is even necessary to share your results anymore. Maybe the detractors had a point and you run into unsurmountable hurdles that are better demonstrated than ever. Either way, you accomplished something of consequence with your effort and time. Other people’s disapproval doesn’t have to get in the way of that.
I am not talking about technical stuff like working on a piece of code or a package. I would actually feel pretty embarrassed to complain that somebody pointed out a flaw or suggested a better technical solution.
I am referring to the bigger picture - like merely wishing the language to flourish and occasionally discussing some more global language directions. You get it - stuff where different minds can reach different conclusions (and still be rational) even if everybody has access to the same data.
Maybe it is better that I no longer add such feedback (since I am not willing to go into specifics anyway - and without that, it seems I leave too much room for interpretation).
So let me retreat in silence and return to my Julia code and embrace my consumer status.
I’m still confused how this an example of ex-cathedra at the moment though. This is a community moderation action rather an official moderation action. A community member flagged it. The action is coming from the bazaar rather than an administrator.
An administrative action looks quite different. This thread would have been closed rather than a single post muted. If anything at the moment, I think we are experiencing a minor administrative lapse due the US Thanksgiving holiday. For example, syntax highlighting is broken, and we are not able to fix it right now.
While you are attributing your discontent to top down moderation and censorship, I’m starting to wonder if its actually the opposite. Could it be that a vocal few are left too unchecked? Does the community have too much power to slience others?
You are exactly right - I am not complaining about top-down moderation (although, at times, it seems to rule in favour of the part of the community who derails the discussion and only reacts when the victim is pissed off and starts to have some strong reaction).
My exact issue was related to how the community treats various members. Those members usually get punished for finally reacting (and having a topic derailed and closed because the community cannot stop branching and making big stuff of inconsequential misconceptions is a kind of punishment).
To be clear, the above issue didn’t happen to me (topic-related).
As I said - I am not willing to go into specifics. Mainly because, at the same time, I also have a tremendous intellectual respect for the same people I would end up complaining about. Also - I suspect that there is not much ill intent at play (mostly, people with already-earned respect and authority can just use that to settle an argument quickly). However, the effect on newcomers who dare to start discussions about Julia’s place in the world does not reflect the welcoming effect that the community can display when the same category of users might ask a technical question (e.g., wonder why some call does allocate).
Whatever, I feel that this is a waste of time. I just wanted to answer respectfully.
We are a diverse community with various goals. I’ll focus my attention on the technical side and try to ignore altogether drama-related stuff.
My objective might be better served by talking about Julia outside this forum.
I know it might not be exactly what you meant, but there definitely seem to be parts of the Julia community where making suggestions isn’t just seen as neutral (not that helpful), but seems to be actively discouraged. “There’s not enough Julia contributors, so we should be snarky to people who ask for new features in the Discourse” seems like a great way to make sure there are never enough Julia contributors. If nothing else, it gives the impression that nobody’s interested in any new features, so what’s the point of making a PR (just for it to get rejected)?
If you like an idea, there’s nothing wrong with asking OP if they’re interested in making a PR. But feature requests are still helpful for seeing what actual users need or want from a package. In the worst case, you can just say “Sorry, we don’t have enough resources to work on this right now.”
Lots of people have just seen one too many of their PRs or threads derailed by flaming and bikeshedding, at which point they lose most of their interest in contributing to Julia or the ecosystem. I know at least 3 or 4 people this applies to.
The creators may have encouraged such personality, at one point at least, but demands go against Discourse community standards. Etiquette is pretty much the opposite of acting however you prefer, after all.
That said, I’m guessing the original topic was more speculation than actually demanding anyone do anything.
Requests seem more suitable as PRs, brainstorming suitable for discourse threads. Even then, rejecting PRs a team can’t agree on is reasonable in a collaborative environment; no project can be cohesive if every request is implemented by default. Again, nothing stops people from implementing features in independent libraries. Whatever the case, no excuse for snark; threads can just be ignored after respectful disagreement, no need to keep pushing. I do wish there were more ways of dealing with that besides a moderator possibly coming in later to close down a thread for everyone.