A rant on open sourcing code (or lack thereof) -- aimed towards Discord projects

As some of you may know, I am a huge proponent of open source. Our server at EC/Bot&Dev/General is also one-hundred percent in support of open source software.

Let's take a look at something not Discord related: Keybase - now Keybase have been making some cool updates to their completely free app, and now have things like a complete end-to-end group encrypted chat ("teams") as well as encrypted git. You get something like 100GB space for your folders for free. And they have a large fork of libraries that they use, mostly made in Go, but everything from the keybase-server to the keybase-client is open sourced. Just see for yourself...

Keybase is a private company and they operate under their own, often in-house made tech. They can certainly take a strong protection stance on it. But they don't, and I give them kudos for that!


Now let me interlude here and say that, of course, open source shouldn't be a requirement! Yes, I strongly believe in Capitalism - don't worry xD...



But yes - it is very important to understand that intellectual property has its place. Let's move on to Discord related applications.

There are very few reasons I think Discord applications should be closed source, but I will give my exceptions:

  • It is a severe risk of security to release the code.
  • There is some type of requirement by an upstream used in the code (say a licensed product) that forbids you to do this
  • You don't have the time to support users, help them self-host, etc.*

That last point is a weak one: I know many bot developers that have large bots who post their source online. One example is dabBot, which does not offer self-hosting support. They post their code, however, because - see here

This to me is completely fine. If the developer doesn't want to support self-hosters, they shouldn't have to at all. But, if you want to play around with it, etc. then it's there at your own risk. Simple.

License

Let's talk about licensing for a moment. Not the licenses you buy for a game, but the license you should put on your project. There's the common MIT License and a ton of other ones to choose from in the open-source category. There's even an Unlicense -- which just means public domain free-for-all, no liability. I use it on my small bots as I am more than happy to release my code to the community with no liability or warranties both ways. Of course I will still support self-hosting and installers, etc., but that is my personal choice.

The common reason given is that people don't want others to copy their bots, steal their code and not give them credit. I understand this makes sense in certain situations, especially when developing completely proprietary work (i.e. say you work for IBM and are working on their AI, obviously that is mostly closed). Now let's look at the majority of creators that don't want to open-source their bot: they tend to get a fair amount of money from Patreon, which is a great thing! I am a avid supporter of bot creators. However, most of these bots use open source tools like Lavaplayer and the hard work of the community leaders who develop the API libraries for most of the logic.

FredBoat, which is a large, distributed music bot on Discord, is a great example of a bot that I think is doing it right. Not only are they creating projects like LavaLink used to power large bots with LavaPlayer as open-source, they provide support and even full reference releases for versions! It's sad they only get what they do on Patreon compared to several others making magnitudes more (won't name any specifics). FredBoat gives me nothing; this is just my personal appreciation for creators who both attempt to add new tools and innovate while keeping their large bot open-source and updated. And yeah, FredBoat has some unique code.

Oh yeah, remember those licenses we talked about? MIT, etc? They mean something and putting that means you are breaking the law by stealing code if you break the terms of the license in question. Simple as that.

On an unrelated note, you can see how Facebook's React license got them in trouble - open source of course, but they have a clause where that's revoked if you sue them or infringe on their patented tech - that caused a stir for many who couldn't use React due to their policies as well as Apache changing their license status. Facebook responded with their justifications....but yeah, Google that if it interests you.

Conclusions

This was a rant - at the end of the day, it's a free world. Do what you want as a developer. I just think that there are very silly cases where keeping a closed-source project that is built on very open-source supported software (like Discord bots), and I think if one has a good idea they should be able to confidently license it with an open-source license of their picking (so you get credit or more if you wish depending on the type) and then releasing the code - even if you won't support users with it. This gives back to the community, and most importantly, you cannot use a traditional Discord bot (say any music bot) to actually make a large profit. Yes, some do make a killing on Patreon, but I mean to say that you cannot make a product called `Discord Music Supreme and sell it for $9.99 a month on a website while using LavaPlayer or youtube-dl - even if you managed to get around those, it's against the Discord Terms of Service to commercialize your standard development asset ("bot"). I'm excluding things with the GameBridge SDK as those are partner integrations and don't count here.

Get to the point already! OK, ok...you can't use Discord bots in the traditional sense to fully commercialize, so your project can never really be monetized in a traditional sense. Therefore, it's probably good to just release your code, barring one of the few extreme reasons I mentioned at the top. But, of course, this is my opinion. Developers have (a deserved) pride in their code and it's understandable that "giving it away" sucks. For the cases I described, though, I think there should be less of the closed-source, patented project mentality. Unless it happens to actually be something like that, well, that's another story..

I will stop you from reading any more of my ramblings and end this rant promptly here. Again, this is just my opinion, and I will continue to support open-source bot developers as I know they spend countless hours and give a lot back to the Discord development community, from learning resources to workable bots and more. So to all of those dev's (you guys know who you are): thank you! :)


.vlexar#5320 [Discord] - Any of this boring dev stuff actually interest you? ;o Well, come join our server then! but seriously...do it and I can guarantee that all your life problems will be solved! (If you have any to begin with)

-

Also, per our rules page, none of my "guarantees" can be counted against me, so don't even try - pfftt.

But I'm 100% solid on those.


The actual end.

vlexar

Read more posts by this author.

Subscribe to EC || Bot & Dev || General

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!