How to make commercial software with Python?

How to make commercial software with Python?

Postby JChristian » Sun Jul 03, 2016 8:58 pm

A thing that I always get me wondering is how can a person or company for that matter, build softwares/systems/etc in Python and sell it while while maintaining their Intellectual property (IP) safe?

Python is an interpreted language, that means you always have to give your source code so that the person can run it properly, how can one protect their intelectual property this way? Well, if you're developing something and selling it like a service (SaaS) then your code would be fine as the users would only get the front-end of the software while the back-end is safe running inside your servers. On the other hand, how would you secure your IP if you're selling a "box software", something that people would download and run on their computers?

Finally, I believe this isn't much of a problem when we're talking about compiled languages or even hybrids like Java, where you can compile your Java source code into bytecode and then you can hand it out to people so they can run it using their own Java Runtime Environment (JRE) without ever looking at the code. Would that be correct?

Thanks.
Keep it simple, stupid — kiss principle.
User avatar
JChristian
 
Posts: 37
Joined: Mon May 16, 2016 9:11 pm

Re: How to make commercial software with Python?

Postby micseydel » Sun Jul 03, 2016 9:03 pm

Decompilers exist for anything compiled, bytecode or not. This is a spectrum, not a couple of buckets. You can distribute Python bytecode just as you can with Java, and someone could surely obfuscate/over-optimize that bytecode to make its difficulty to decompile on par with Java or the like even though my understanding is that Python is easier to decompile by default. But there's no silver bullet, SaaS is the closest you can get.

Did you have a specific example in mind where some feature's implementation was important to hide, but impractical to put off to a backend?
Due to the reasons discussed here we will be moving to python-forum.io on October 1, 2016.

This forum will be locked down and no one will be able to post/edit/create threads, etc. here from thereafter. Please create an account at the new site to continue discussion.
User avatar
micseydel
 
Posts: 3000
Joined: Tue Feb 12, 2013 2:18 am
Location: Mountain View, CA

Re: How to make commercial software with Python?

Postby JChristian » Sun Jul 03, 2016 10:38 pm

micseydel wrote:Did you have a specific example in mind where some feature's implementation was important to hide, but impractical to put off to a backend?


Not really, but let's say that John made a really optimized and forward thinking Trader software that interacts with NASDAQ and obviously he doesn't want people to know all the "magic" behind his software. He may have a LICENSE.txt and he could sue people that used and sold his software without permission, but that would be tiresome and not efficient. Even with a LICENSE.txt his source code would be there in plain text and people could see and learn all his innovative way of dealing with NASDAQ, code structures, market analysis, etc, something that he doesn't want to share because took him months, maybe years, to develop.

In the end, if someone wants to build a commercial Python software this person would be locked in a SaaS perspective, as you said. The impractical part would be that the developer would need to not only take care of the source code but also of the infrastructure to run that code on the backend, which is way more expensive and time consuming than selling a box-software.
Keep it simple, stupid — kiss principle.
User avatar
JChristian
 
Posts: 37
Joined: Mon May 16, 2016 9:11 pm

Re: How to make commercial software with Python?

Postby micseydel » Mon Jul 04, 2016 1:16 am

As I said, you can distribute Python bytecode. You don't have to distribute the source. Bytecode (or compiled machine code) is always at risk of being decompiled so that only matters so much.

Programs are like machines. So yes, no matter what countermeasures you take, if you give someone a copy of your machine then you can't stop them from reverse engineering it (some options for physical machines don't exist with software, but I believe the analogy is solid). Providing a service is the only way around that.
Due to the reasons discussed here we will be moving to python-forum.io on October 1, 2016.

This forum will be locked down and no one will be able to post/edit/create threads, etc. here from thereafter. Please create an account at the new site to continue discussion.
User avatar
micseydel
 
Posts: 3000
Joined: Tue Feb 12, 2013 2:18 am
Location: Mountain View, CA

Re: How to make commercial software with Python?

Postby Ofnuts » Mon Jul 04, 2016 8:34 am

JChristian wrote:
micseydel wrote:Did you have a specific example in mind where some feature's implementation was important to hide, but impractical to put off to a backend?


Not really, but let's say that John made a really optimized and forward thinking Trader software that interacts with NASDAQ and obviously he doesn't want people to know all the "magic" behind his software. He may have a LICENSE.txt and he could sue people that used and sold his software without permission, but that would be tiresome and not efficient. Even with a LICENSE.txt his source code would be there in plain text and people could see and learn all his innovative way of dealing with NASDAQ, code structures, market analysis, etc, something that he doesn't want to share because took him months, maybe years, to develop.

In the end, if someone wants to build a commercial Python software this person would be locked in a SaaS perspective, as you said. The impractical part would be that the developer would need to not only take care of the source code but also of the infrastructure to run that code on the backend, which is way more expensive and time consuming than selling a box-software.


Don't overestimate the time it takes to write code. This is the easy part. The hard part is coming up with a good idea, and you won't protect that with a copyright (which only protects your source code), you need a patent (which means publishing your algorithm). Also, don't underestimate the workload of selling box software (making the boxes (investment), delivery, maintenance, enforcing licences, user support...) which is at the same level as running a website. You can also avoid the boxes and sell digital copies though a website (but that's also a website....). And compiled code can be copied... so you have to get into software licence management anyway.

Now, assume what would happen if some rich and litigious person loses money because of your software...

Also, consider that when everyone uses the same software/algorithms, the market adjusts around it... this kind of software, by construction, cannot be popular without being self-defeating.

If the software is any good, use it for yourself (or your employer) and make money that way.
This forum has been moved to http://python-forum.io/. See you there.
User avatar
Ofnuts
 
Posts: 2659
Joined: Thu May 14, 2015 9:46 am
Location: Paris, France, EU, Earth, Solar system, Milky Way, Local Cluster, Universe #32987440940987

Re: How to make commercial software with Python?

Postby JChristian » Mon Jul 04, 2016 3:29 pm

Ofnuts wrote:Don't overestimate the time it takes to write code. This is the easy part. The hard part is coming up with a good idea, and you won't protect that with a copyright (which only protects your source code), you need a patent (which means publishing your algorithm).


You're right, I just didn't express myself correctly, I was talking about all the logic behind the software, the idea, code and everything related, not pure and simple source code.

Ofnuts wrote:Also, don't underestimate the workload of selling box software (making the boxes (investment), delivery, maintenance, enforcing licences, user support...) which is at the same level as running a website. You can also avoid the boxes and sell digital copies though a website (but that's also a website....). And compiled code can be copied... so you have to get into software licence management anyway.


Again, I expressed myself in a wrong way. When I talked about "box-software" I wasn't really talking about a physical box, in reality I was targeting digital self-contained software where people would download, install and run. As you said it's way more complicated to deal with "physical softwares" than digital ones, so that didn't even cross my mind. One may need a website for that, but it would be way easier to create and maintain (one could just have a Wordpress site with a "buy your license here" PayPal button and a video demo of the software, it's a rather lame approach but it would be one way) than a fully-featured web platform using Python + Flask/Django + whatever. Then we'd have to deal with license management, and that's something I believe is very difficult as we have large companies that have their softwares pirated all the time, and I bet they spent a good time trying to "evolve" their license management, in vain.

Ofnuts wrote:Now, assume what would happen if some rich and litigious person loses money because of your software...


Well, if it was user's fault then it isn't developer's problem, just like any Trader platform. The User Agreement and such would take care of cases like this, I think.

Ofnuts wrote:If the software is any good, use it for yourself (or your employer) and make money that way.


Well, I believe if everyone thought this way we wouldn't have Adobe Suite, Microsoft Office, or any major tool we use nowadays...
Keep it simple, stupid — kiss principle.
User avatar
JChristian
 
Posts: 37
Joined: Mon May 16, 2016 9:11 pm

Re: How to make commercial software with Python?

Postby Ofnuts » Mon Jul 04, 2016 6:02 pm

JChristian wrote:
Ofnuts wrote:If the software is any good, use it for yourself (or your employer) and make money that way.

Well, I believe if everyone thought this way we wouldn't have Adobe Suite, Microsoft Office, or any major tool we use nowadays...

The people who use Office don't play against the other users, but with the other users... For these applications, the more users, the better.
This forum has been moved to http://python-forum.io/. See you there.
User avatar
Ofnuts
 
Posts: 2659
Joined: Thu May 14, 2015 9:46 am
Location: Paris, France, EU, Earth, Solar system, Milky Way, Local Cluster, Universe #32987440940987

Re: How to make commercial software with Python?

Postby JChristian » Mon Jul 04, 2016 8:11 pm

Ofnuts wrote:
JChristian wrote:
Ofnuts wrote:If the software is any good, use it for yourself (or your employer) and make money that way.

Well, I believe if everyone thought this way we wouldn't have Adobe Suite, Microsoft Office, or any major tool we use nowadays...

The people who use Office don't play against the other users, but with the other users... For these applications, the more users, the better.


The "Trader" software was just an example, indeed, in this case we would have users competing against each other and the less people have access to knowledge/tools/etc the better for those who already have. But, if we were to build an "Office 2.0" or maybe an Photoshop alternative, all written in Python, then we'd end up with the "more is better" case like you said. Anyway, I think I got the general idea.

:D
Keep it simple, stupid — kiss principle.
User avatar
JChristian
 
Posts: 37
Joined: Mon May 16, 2016 9:11 pm

Re: How to make commercial software with Python?

Postby Ofnuts » Tue Jul 05, 2016 8:24 am

Something that just crosses my mind: with Python you could be using code with a "copyleft".
This forum has been moved to http://python-forum.io/. See you there.
User avatar
Ofnuts
 
Posts: 2659
Joined: Thu May 14, 2015 9:46 am
Location: Paris, France, EU, Earth, Solar system, Milky Way, Local Cluster, Universe #32987440940987


Return to Bar

Who is online

Users browsing this forum: No registered users and 1 guest