Julia from the perspective of a pythonista

No, I do not think you are a liar, but I have not experienced the problems you have experienced.

Why? Am I supposed to be responsible for the problems you have experienced in other languages? I’m talking about Julia here because this is where we talk about Julia. If you have a problem with Python or any other language, it 's a place to talk about it in their own communities. When I have a criticism of Julia, am I supposed to accept the problems I have not experienced before? There is a very interesting logic here.

There was a PR to add this but it made some overstated claims which people offered feedback on (even in the form of edits to the PR) but the author didn’t finish the PR, so it is in the “abandoned by author” state at this point. Would be good to merge an edited version of that PR though.

2 Likes

If I may attempt to mediate just a bit: I don’t think @ggggggggg is trying to hold you responsible for any of Python’s faults, nor are Python’s faults at all relevant to Julia’s, nor is this some sort of competition. The point I see is by analogy — you’re very familiar with Python and you’ve long figured out workflows, packages, and idioms that work well for you there. Someone new to Python may very well stumble on things that don’t affect you.

This isn’t to dismiss your points at all — there’s a bunch of good constructive criticism here that can certainly be used to improve on-boarding and user experience. Some of which we’ve heard before and are actively working on, some of which are good reminders to redouble efforts on, and others that are new to me (e.g., perhaps we need to emphasize VS Code more prominently?).

As I said in my initial post here, folks are eager to help and offer suggestions for you get up to speed.

As always, I want to remind folks to please be respectful and assume best of intentions when reading others’ posts. If it continues to be heated and unproductive, we may bring the thread to a close.

18 Likes

For me, Conda (or now rather MiniForge if you want to avoid license issues) worked quite well so far.
The main drawback in my oppinion is that each virtual environment contains copies of all required packages. If you are working with multiple environments, with partly overlapping package requirements, this is quite a waste of disk space.
To my knowledge, there exists no light-weight virtual env solution in Python which only keeps one copy of each package version, like Pkg.jl does. If there is one, please let me know.

1 Like

I think Microsoft does already a good job at that since Windows 7 is out-of-support since last year.

7 Likes

I received valuable tips here and I thank all those who made suggestions.

I am totally agree with you

1 Like

Are you sure about this? As I understand it, conda uses hardlinks to avoid precisely that issue. I think there is also a config option to use softlinks.

1 Like

Yes, at least on Windows.
I just tested it by cloning an existing environment, both take about 2 GB disk space each.

1 Like

I am assuming you did your measurement with a tool that is aware of hard links and does not count them multiple times, and you measured the whole envs folder to avoid this problem.
If not, maybe Windows du (with and without -u) can help, or you can use this powershell command to at least confirm if hardlinks are being used. (I don’t have a Windows available right now to check this myself, unfortunately).

3 Likes

You are right, they are HardLinks. The disk usage information I got from Explorer was misleading.
Thanks for pointing this out!

4 Likes

I think people are mature enough to talk to each other without the need for “Slow Mode”. Please disable it.

The opposite has been proven to be true, even in this nice and great community.

4 Likes

How did you come to this proof?

There has been discussion here which just went wrong. There are people which are banned.
IMO a slow down of some discussions is a good idea and helps to improve the overall quality of them. And imposing an artificial cool down period on some hotheads prevent them to be banned.
(I am bot banned, apparently, but I refer this explicitly on me too!)

Back to the topic:
The first issue I had with OP was the performance problem with VSCode. I can’t reproduce this. From double click VS Code icon, opening a project folder, start REPL, run some code, is a seemless workflow without any waiting times (more than 1-2 seconds, 4sec for the REPL). Of course, in the background the Language Server is working but doesn’t make any problems. So, my guess is, that there is something individually special. I don’t think it’s common experience. The python work flow seems to be extremely long too.

Another point I want to make is, I agree with @SadeghPouriyan . Of course the performance of Julia is in some way a unique selling point of the language, its the justification for Julias existence, the answer to the question “Why another language?”. But the drawback is now, that once a week, the community has to defend another special case, where Julia wasn’t faster and from outside it seems, that it has become some kind of sports to find a proof, that Julia isn’t ALWAYS faster. Well, for me, it’s getting boring.

As far as I know, all claims, that Julia is slower than… have been defeated. But, very important, the high performance solutions, which were found to defeat the claims, aren’t always practicable in the sense, that it can be easily comprehended (by me e.g.) and brought to practice into my own code, therefore worthless. The performance feature should be mentioned but in some more defensive way.

Don’t get me wrong, I am a Julia fanboy, but what I am in love with, is, that my first, straight forward solution in Julia is (in most cases, or better, in all my own cases) much faster (order of magnitude) than my first, straight forward solution in python or R (or C#, perl, Java, bash to name some not so common tools I have to use or better use Julia). In 80% of my problems I am already done with this and happy with the performance. For the other 20% I have to think deeper but can stay with Julia, don’t have to switch to C. This is the big advantage (of course for me). If the problems are solved in python and users are happy, there is no need to change to anything. If there are issues, it could be beneficial to think of a Julia solution. Julia is just a supplement to the toolbox. IMO one of the best tools despite that it is new.

To make my post complete, those are the features I am missing: creating native standalone executables/libraries and a platform independent modern GUI framework. With these features, I would say, I would choose Julia for nearly 100% of my projects in the future.

Well, that happens, when I am forced to wait another hour to post again :slight_smile:

15 Likes

There some kind of a code of conduct here? What talk leads to banning a person? If there is no such law, that is very ridiculous! One person bans the others according to his judgment. If there are laws, then the one who violates them should be punished according to the agreement that was accepted. So I do not see a problem in banning.

Your opinion should not be decisive. Everyone has an opinion for themselves. Laws must be decisive.

@mbauman If there is a dictatorship here, let us know when we register so that we do not upset the dictator at once. If there are rules, act accordingly and do not decide according to your judgement.

I did not found minimum system requirement in their website. I have problem with it and for proofing it recorded my screen. once a piece of software worked somewhere then it is ok and could not has problem anywhere else? You can not reproduce it because your computer is different from mine. but on the same computer I am ok with other extensions.

The feeling I get here is exactly what you are saying, but honestly I am not a fan of any tool. I came here to use the help of others, not to advocate for certain tools.

Is this one of those things that you get used to after a while?

Hi @dariush-bahrami. Welcome!

Just wanted to add another voice saying your feedback and experiences as a new user of Julia are appreciated. I think the contention you are experiencing right now is not necessarily coming from the majority of users here.

I had some similar experiences coming to Julia as you (particularly around time-to-first-plot issues), and am excited to see all the progress being made towards addressing those concerns. I have aslo really appreciated the advice on this forum for various workarounds to those issues.

I think it’s worth noting that, in my experience, moderation on this forum is generally very hands off. There have been a few exceptional situations, where users have been banned. These generally concern egregious, repeated violations of the community standards, whose aims I think speak for themselves.

8 Likes

Can I suggest a framing of why these threads happen so often and why they end up devolving into argumentation?

  • There is a subset of Python/R/Matlab/etc. programs that, translated naively to Julia, are faster – sometimes by a lot.
  • There is a subset of Python/R/Matlab/etc. programs that, translated naively to Julia, are slower – sometimes by a lot.
  • Almost all people generalize too quickly about their experiences with programming languages – (1) they generalize too quickly from a few programs perform to how other programs will perform and (2) they generalize too quickly from their own motivations to the motivations of others.

The last factor matters most because you have a variety of folks who feel their own experiences are being ignored or contradicted every time this kind of topic comes up. This gets particularly amplified when people use sloppy, vague language – which is the norm because high trust communications between people who know each other in real life is extremely sloppy and vague. If you say, “Julia is faster than Python”, you’re being sloppy – and people whose experience contradicts that claim will trust you less after you say this, even if those who agree with you may trust you more. If you say, “the majority of users need the time-to-first-plot to go down a lot before Julia is really usable”, you have the same kind of effect, but flipped to its mirror image.

Ideally, we’d resolve this in a few ways:

  • The Julia advocacy pitch would come off as more measured about Julia’s performance advantages.
  • Users who notice gaps in Julia for their needs would be more measured in how much they claim others will be impacted by those gaps.

But, and this is the real crux of why things don’t seem to improve, that kind of nuance in PR/comms is frequently interpreted by people who aren’t in threads like this as evidence that something is being hedged to conceal deeper problems. If you say, “Julia is better than X for many use cases”, many people will assume Julia isn’t mature enough yet for almost all use cases and will just ignore Julia. So there’s a strong incentive not to use measured language. In addition, once trust is lost, any language that isn’t aggressively hedged to “it’s conceivable that Julia could be better than X for some niche use case” is perceived as dishonest.

And, as a result, things don’t seem to change much. People use sloppy language. People get upset. Their frustration leads them to be more sloppy. It devolves until threads get slowed down or locked.

38 Likes

Yes. All JuliaLang community fora are subject to the Code of Conduct: Julia Community - Standards (julialang.org)

There are very, very few cases of this, outside of spammers and sockpuppets who get summarily banned. Genuine posters being banned has happened once or twice during the entire existence of the forum, and only after multiple warnings and temporary suspensions.

I think @oheil is giving an exaggerated impression of how common this is. Nothing in this thread is even remotely approaching anything bannable, or even worthy of an official warning. The temperature is barely above lukewarm.

The decisions of the moderators and administrators of the forum are decisive, @oheil was just giving a personal opinion, nothing wrong with that, even though I disagree with the opinion in this particular case.

When you sign up, you are bound to the code of conduct. This is completely normal for any forum. No need for language like ‘dictatorship’.

25 Likes

first, is there any code of conduct especially after signing up in the forum? I myself signed in from google and didn’t see any rules. There were only general tips while commenting about being civilized; be reasonable, don’t attack personality, talk about the topic and etc which were all done in this thread. So @mbauman please quote the exact words that were the reason for slowing down the thread?

let’s look at this question from a farther view: why this happens frequently? why isn’t there a once for all extensive discussion thread about this question that when anyone googles it, he/she will find the answer and won’t open another thread? or why isn’t there a complete answer to it in julia’s official website?

where is the exact statement in the code of conduct that explicitly talks about the condition which gives an administrator the permission to slow down a thread?

2 Likes

By registering, you agree to the privacy policy and terms of service

4 Likes