Ethics in Julia

Yep agreed, these decisions are for the business not the users or customers. I think it’s hard for many people to conceptualize this is a for profit thing. Open source in those territories is trickier.

Also, I kind of want a pet monster too! But is it ethical? Just kidding

1 Like

Again, I stumble over some words here and need to clarify my view: It is not the community (we) and others (e.g. JuliaComputing). It is more that all groups, which somehow have to do with Julia, the language, are overlapping. This overlapping set is the community!

To contribute with respect to the title of this thread, can also be seen e.g. to use Julia and ask for help here. Not only those who did a lot of coding are contributers in this sense. Or another example: an article about Julia in a public newspaper could be seen as contribution, although the author isn’t programming at all.

The latest, IMO, very ethical decision, can be witnessed reading the thread about Telemetry. I know, you know it. Stefan (and the others) are rethinking their approach after concerns from the community to the community (as Stefan and the others are clearly part of it). It was a good, sometimes extreme (IMO), discussion.

What I want to say: when ethic is on the line, never going in against a sicilian! … no, somehow it came to mind… what I want to say: when it is about ethic, it is not so much about decisions, and who has to make them. It is much more about the discussion itself and the various viewpoints!

This discussion is quite unfocused. Thats fine for me as its a lazy sunday. Excuse me, if I am too unfocused for you.

1 Like

I was wondering if there is a group of people who think/care about (business) ethical questions in the Julia universe and its packages?
Do we have people in our community who are experienced in such matters and who would spot ethical challenges?

Who knows? If this group of people exists, they’re probably not in the majority right now (and certainly not in the majority of respondents to this thread) It’s most likely there’s not a large group of people who think or care about ethical issues in Julia. Additionally, any such group will probably just be overrun by the people who offer weak rationale for unethical software. Complaints about unethical software will just be drowned out in a sea of comparisons to screwdrivers or obstinate pleas that all software is just a neutral tool.

Almost half of this thread was jettisoned into another thread which devolved into Damore-tier BIOTRUFS (which as some slight consolation was fortunately closed). That’s… uh… not a great omen. My wager? This community probably isn’t yet diverse’* enough to do ethical software work in general. (especially since any ethical calculus applied by folks will just tend to the majority; making it a near certainty that unethical behaviors which impact marginalized groups will be overlooked or supported)

To me, the link to [RFC] GenderInference.jl seems to only further demonstrate this point. Author of a flatly unethical piece of software is exposed to a source that details the moral horrors of what they’ve written… they then claim to have taken the perspective seriously, and then immediately turn around to note that they’re going to use the software to “measure gender representation in publications” anyway which is precisely the sort of unethical behavior the linked criticism lambasts. The library is still up, still racist, and still tries to enshrine a gender binary; aka it is subject to the criticism and hasn’t evolved (or more appropriately; disappeared). There’s plenty of other literature that criticizes what the author of that library implemented; fortunately, their One Trans Friend didn’t give them the relevant cites so the author doesn’t have to entertain any ethical qualms. crisis averted :wink:

To me, it seems very unlikely that the community will do anything to outline guidelines around software which is considered so unethical that it should not be implemented or supported. So, really, if we truly do believe julian work often embodies solutions to problems in the “best possible way”, we’re going to have to also believe that it’s inevitable julia will end up used for the most unethical uses imaginable. I have no clue how to throw a spanner into the works, ideas welcome.

There’s already at least one talk in julie khan’* this year which could clearly be a stepping stone towards autonomous killing machines. julia’s machine learning ecosystem is getting better and better. we’re probably faced with the grim inevitability that the best possible solutions to the worst possible ideas will end up implemented in julia. (And they’ll be fast, having defeated the two language problem and all sense of hope or ethics)

It’d be nice if this state of affairs changed, but at this point we probably could start to ask a different question:

“What stories will we tell ourselves to help get to sleep at night as our work is leveraged in the most unethical, inhumane and vicious ways, which we did scarcely anything as a community to prevent?”

As an area of ongoing personal concern, I haven’t figured out what my alibi is going to be, but I may settle for some weak statement like “screwdrivers are cool, but multiple dispatch is even cooler!”

There is also a slack channel called ‘diversity’

that’s a 10k message limit memory hole for diversity discussions; and if you bring something up there someone will say the decision should be best placed somewhere else. so that’s probably a no-go. maybe there’s a diversity or ethics channel on the zulip to continue this discussion.

'* (i have no clue how to put footnotes into discourse, so this will have to suffice) there’s plenty of areas of diversity which come with ethical demands which our community seems entirely unwilling to address; in particular those relating to disability. one example: the fact that most videos advertising julie khan this year have been poorly autocaptioned instead of reliably CART captioned doesn’t seem to bode well for the idea that our community tends to take strong ethical stances in service of diversity/accessibility, even when they may incur additional expense. the norm seems to be to do the bare minimum, maintain no principles, and always compromise in the direction that gets or retains the most grant money or most company money. another example: :put_litter_in_its_place: one of the more popular debuggers in our language community is framed around an ableist joke. :put_litter_in_its_place:

1 Like

I don’t really have much to add here, but

made me curious; can you elaborate a bit on that statement?

Also, auto correct or something seems to have changed “JuliaCon” to “julie khan” in your post.

1 Like

I think this is almost impossible unless you are also willing to hobble the language or ecosystem for ethical usecases.

Julia is already used by pharmaceutical companies and investment banks that are “morally ambiguous” in the eyes of some, though the ways in which they are using so far seem to be quite positive. (On the other hand, questionable uses would be unlikely to be publicized)

Ultimately, open source projects that succeed and thrive tend to do so because of the patronage of business users. If I understand correctly, this is where Julia Computing’s money comes from. I would hope that Julia Computing would decline to work on projects with obviously unethical goals, but unfortunately, putting hooks in a license that prohibit the unethical usage of software tends to put off all business customers, not just bad actors. Company lawyers don’t want to be on the hook for someone else’s interpretation of ethics.

The only thing you could really do is define a set of unethical behaviors that are prohibited, but you’re never going to get a lawyer to sign off on vague language about ethics.

Furthermore, many unethical uses of software would not involve distribution at all. Policing internal business uses of software is beyond the scope of every open-source license I’m aware of and would be virtually impossible to enforce.

Julia is a powerful tool, and many of the packages in its ecosystem are powerful tools as well. I think it’s inevitable that some people will take advantage of that power for usecases that most of us would consider unethical. I don’t believe it’s possible to avoid this without crippling the language for ethical usecases.

Think of how many ethical abominations have been made possible by calculus—and then consider what a world without it would look like. When you create a system that augments humans’ problem-solving ability, you will always take the bad with the good.


Also, there are some people who consider the whole of capitalism/market economy “unethical” etc. For pretty much every human endavour you can find a group of people who will have moral qualms about it.

Nevertheless there is nothing preventing software authors from choosing a license according to their ethical preferences. There are examples like the Hippocratic License; I don’t know how these things fare in practice though.


I’d also like to point out that licenses like this one aren’t considered FOSS by any definition of “free and open source”.


Yes, that’s an important point. Users and contributors will just have to decide whether such licenses are compatible with their goals and requirements. Licenses like MIT became widespread because they demand very little, allowing a lot of people to cooperate on software. The more a license restricts, the smaller the number of people who are willing to accept it.

I just linked that license to point out that such licenses exist (there are many others), so people who want to enforce their ethical preferences already have ready-made solutions.

1 Like

Yes, but being non-FOSS it also means that these licenses are incompatible with pretty much any other code out there, so good luck with using it. This, in addition to the fact these licenses are basically non-enforceable.

The first version of the Hippocratic License was ludicrous and its interpretation could be stretched to prohibit the use of software to many people, including the “good ones”.

While I understand and share the goal of making things “for the good”, putting this into a license is just a no-go.


I kind of agree with both @Tamas_Papp and @giordano about these “ethical” licensing. On one hand, it’s nice that people have the option to use them, so they might as well be out there, but on the the other IP lawyers would never sign off on a company using software with a license like this. It’s a non-starter for any business case.

However, if you’re not interested in supporting business cases with your software, I guess these “ethical” licenses are an option.

One thing:

You can use them well enough with permissive licenses like MIT, BSD, Apache, etc. The difficulty is combining them with copy-left licenses like GPL or MPL (my preferred license for most things).

Just to clarify: yes, I fully agree with you about all these points.

Nevertheless, I still think that formulating/using a license like this is the answer to the original question raised in this topic, when viewed as a constrained optimization problem. Sometimes constrained solutions are just very, very bad; this may mean that the constraint is very costly and imposing it is not worth it.


Gallium.jl’s deprecation notice lists the following debuggers:

Juno - the official integrated development environment (IDE) for the Julia language
Debugger.jl - the official Julia debugger
Rebugger.jl - an expression-level debugger for Julia with a provocative command-line (REPL) user interface
MagneticReadHead.jl - a Julia debugger based on Cassette.jl
Infiltrator.jl - allows you to set a breakpoint in a local context, inspect local variables and the call stack, and execute arbitrary statements in the context of the current function's module
You might also enjoy:

Traceur.jl - runs your code and tells you about any obvious performance traps
Cthulhu.jl - descend into Julia code and see it in all its representations.

The only one name I can imagine being interpreted as an ‘ableist joke’ is Rebugger, if ‘re-’ is taken as an abbreviation of a slur for intellectual disability, instead of the stated meaning in the readme:

it is a REPL-based debugger (more on that in the documentation)
it is the Revise-based debugger
it supports repeated-execution debugging


Instead of speculating, it would be great if @anon42746597 would kindly expand on the details. If I interpret the context correctly, making an “ableist joke” is potentially offensive to disabled people, and would then go against the community guidelines. But without specifics it is hard to discuss or remedy this.


Hi there :wave:.

Well, no. The source is taking about using automated methods to assess gender in a situation where it would be just as easy (and more accurate) to just ask people their gender, with appropriate options for non-binary (or better, make it free-text field so that your not imposing any priors on people’s gender expression). I’m 100% in agreement on that.

There is no mention on an alternative to such approaches for assessing the historical representation of an academic discipline. The alternative is that such work went get done. Is that preferable? Maybe, I’m open to being persuaded on that point. I’d certainly prefer journals survey their authors and make such data public - I’ll happily join you in such advocacy, and when that day comes I’ll delete the repo without a second thought.

Well, no. Second paragraph of the README notes this limitation, and links to the specific criticism (note, the link was broken before, fixed now). “Tries to enshrine” sounds like it’s something I’m advocating for, which it emphatically isn’t.

I’m curious why the opinion of Random Person on Internet should hold more moral force with me than my One Trans Friend (who’s work incidentally is working with and advocating for trans people). And also wondering how, having explicitly solicited feedback, done the reading that was offered, and then additional research, suggests that I “don’t have to entertain any ethical qualms.” This seems like a staggeringly ungenerous read of my actions and stated intentions.

If you’re standard for ethical engagement is listening to the first or most extreme position on a topic, then I don’t think I’m likely to meet your standard. But, contrary to your impression, if you point me to additional sources, I will certainly read them and engage, because I care deeply about respecting the rights of trans people.

But I also care increasing the representation of women in my field.Given that I’ve published on this topic, and work at an all women’s college, specifically teaching and mentoring women, this is not just an idle interest. Perhaps you can argue that this goal is not important, or that trans rights are more important, or that there’s a way to do this work without contributing to trans erasure - I’m open to, even solicitous of, all of these arguments. But I’m not open to you claiming I simply don’t give a shit, simply because I disagree with your position.

So, your response to someone asking about whether we should have more discussions about software ethics in the Julia community is to disparage one such discussion because someone expressed a position you disagree with, and then to write off the entire community as “probably incapable” of such discussions? If you actually care about such things as you claim to, I’d urge you to engage with the people who claim to care rather than simply dismissing. This approach is more toxic to such discussions than the people expressing regressive ideas. Your sense of futility forecloses any possibility of progress.


Again, there’s a difference between technically preventing (eg closed-source or not writing the software in the first place), legally preventing (eg through licenses), and morally preventing (through norms and community standards).

I agree that the first two approaches are at best extremely difficult while adhearing to FOSS principles. But this doesn’t have to be the end of the story.

Accepting that this is possible does not mean that it is inevitable, and even if it’s inevitable, that doesn’t mean that discussing it has no value. Attempting to reduce harm on multiple fronts, technically, legally, and through social pressure, while being mindful of tradeoffs, seems like a valuable thing to work on.

Right, but as a community, we can (and in my view should) put pressure on the folks at Julia computing to not participate in unethical businesses. This of course leads to the problem of defining what constitutes unethical businesses, and there’s unlikely to be universal agreement on where to draw this line. But that’s precisely why we should be having the conversation.


Well, no. The source is taking about using automated methods to assess gender in a situation where it would be just as easy (and more accurate) to just ask people their gender, with appropriate options for non-binary (or better, make it free-text field so that your not imposing any priors on people’s gender expression). I’m 100% in agreement on that.

I’m back too, from same thread! :smiley: I don’t mean to derail that broader discussion here or rehash what’s over there, but are you referring to this piece? If so, you and I must have read it quite differently- in my reading, the author’s argument is not that it’s unethical to do merely in an in-person or similar setting when you can simply ask for this information in a different way, but that (my paraphrase) predicting gender from given names is unethical to begin with, because setting up the task that way in the first place implicitly bakes in very specific political ideas about gender that themselves are unavoidably racist and so on. That’s not application-specific, to my mind.

Looking that thread again, it looks like that package was intended for making binary gender predictions for authors of academic work, so here’s a recent (short) paper on that specific use-case, if you (or anyone else) would like to take a look.

Yikes! I’ll take a pass on that one.

I, for example, would be pretty strongly against working with military weapons manufacturers or the DOD, but there are reasonable people who would support Julia for that usecase. On the other hand, there are things I support that I’m 100% sure other community members would find unethical.

I don’t feel it’s my place to enforce my beliefs about ethics on other people unless it’s something that’s approaching a universal norm: i.e. Julia Computing shouldn’t support genocide or human trafficking or whatever. If they had a contract with the DOD, I wouldn’t be happy about it, but it’s their choice.

I really have zero interest in using social pressure to hold Julia Computing or package authors accountable to my standard of ethics.


Yep! Maybe best to revive that other thread? I do want to continue this discussion, but agree that it’s perhaps off topic here (or, not exactly off topic, but at least a separate conversation). Thanks for the link, reading now…

Well, If conversation continues there, I’ll certainly keep reading it, at least.

I’m curious why the opinion of Random Person on Internet should hold more moral force with me than my One Trans Friend (who’s work incidentally is working with and advocating for trans people).

If you don’t mind me saying so, perhaps you can try to imagine why reading a remark like this from you might make me inclined to think that it might not be a totally fruitful discussion. If you recall, I shared that post in direct response to you saying that you wanted to know the opinions of nonbinary people on the subject. I pointed out that not only is the author of this piece nonbinary themselves, but is a researcher whose specific area of academic expertise is gender issues in technology. Seeing you now characterizing that expertise and experience as “the opinion of Random Person on Internet” isn’t very encouraging to me. Hopefully that makes sense.

1 Like

Hey everyone I had a pretty serious misunderstanding of how Julia and it’s entities work together. Some of the statements I made in here may not be applicable. I tried to review them - but errors may still persist. if you see anything off kilter just let me know and I will correct it! Also okay with my opinions/musings being removed. The last thing I’d ever want to do is spread misinformation.

1 Like