Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed4a.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'subject:not': 0.03; '"this': 0.03; 'source,': 0.04; '(even': 0.05; 'subject:Python': 0.06; 'binary': 0.07; 'distributing': 0.07; 'dynamically': 0.07; 'source.': 0.07; 'statically': 0.07; 'executable': 0.09; "people's": 0.09; 'release,': 0.09; 'subject:software': 0.09; 'subject:using': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '*only*': 0.16; 'bytecode': 0.16; 'consciously': 0.16; 'doing,': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'opposite': 0.16; 'range.': 0.16; 'roy': 0.16; 'subject: \n ': 0.16; 'which,': 0.16; 'wrote:': 0.18; 'code.': 0.18; 'wed,': 0.18; 'all,': 0.19; 'file,': 0.19; 'written': 0.21; 'feb': 0.22; 'machine': 0.22; 'code,': 0.22; 'cc:addr:python.org': 0.22; 'days,': 0.24; 'fairly': 0.24; 'people,': 0.24; 'question': 0.24; 'cc:2**0': 0.24; "i've": 0.25; 'source': 0.25; 'references': 0.26; 'least': 0.26; 'gets': 0.27; 'header:In-Reply-To:1': 0.27; 'external': 0.29; 'am,': 0.29; 'message-id:@mail.gmail.com': 0.30; 'along': 0.30; 'code': 0.31; 'usually': 0.31; 'subject:that': 0.31; 'file': 0.32; 'figure': 0.32; 'run': 0.32; 'running': 0.33; 'subject:the': 0.34; "i'd": 0.34; 'agree': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'subject:?': 0.36; 'effort': 0.37; 'virtual': 0.37; 'server': 0.38; 'rather': 0.38; 'that,': 0.38; '12,': 0.39; 'how': 0.40; 'even': 0.60; 'then,': 0.60; 'identify': 0.61; 'matter': 0.61; 'companies': 0.62; "you'll": 0.62; 'real': 0.63; 'today': 0.64; 'great': 0.65; 'linked': 0.65; 'within': 0.65; 'between': 0.67; 'close': 0.67; 'optimized': 0.68; 'reverse': 0.68; 'smith': 0.68; 'money': 0.72; 'physical': 0.72; 'day': 0.76; 'cpu.': 0.84; 'decades,': 0.84; 'drm': 0.84; 'engineered': 0.84; 'expose': 0.84; 'subject:kinds': 0.84; 'good,': 0.91; 'to:none': 0.92; 'choice.': 0.93; 'directly.': 0.95 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=AFDSPD8qGvrvI9dq2tsdfjezqypuY9LOuBMXwfLj19Y=; b=kwCWEF06g6PWcktOHoYgbDjJVgqz3HhlbZSfEG6nqmALdhFu8ciodGDU/UlhY0STHk BrN2QA62k+wZT9UT9/JuW9MOPjEmg4gPJ7ittuEeIfrvhD2j4ZtkKSr18W6HgIMhDKR4 3SJN1R0n8yGCD+U9gw0ZL0JvPNgw81jY6gzpd2z7FiZ4ky6dkm41Vl7+nIyWDVcLhpxH ym/EVbDXnmY3iEOI0S35i5qD9YAakm5FiqzXVWGUwA9ARPWXmov58lvxRIvNKWc/zN7x N3Jtsiggvm9+4/15NqwhMyqjvKqzxmg8sQ8POSvEkT0p1F1PtDUJ6lPA+uITO8uWnGrb flnQ== MIME-Version: 1.0 X-Received: by 10.68.162.66 with SMTP id xy2mr45033357pbb.46.1392129456303; Tue, 11 Feb 2014 06:37:36 -0800 (PST) In-Reply-To: References: <52f9b6af$0$11128$c3e8da3@news.astraweb.com> Date: Wed, 12 Feb 2014 01:37:36 +1100 Subject: Re: What are the kinds of software that are not advisable to be developed using Python? From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 36 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1392129460 news.xs4all.nl 2833 [2001:888:2000:d::a6]:36563 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:65911 On Wed, Feb 12, 2014 at 1:24 AM, Roy Smith wrote: > Whether I mind shipping my source, or you mind shipping your source > isn't really what matters here. What matters is that there *are* > people/companies who don't want to expose their source. Perhaps for > reasons we don't agree with. For those people, Python is not a good > choice. But if it comes to that, there's really nothing that's all that great a choice. After all, a small amount of introspection will identify the external references in something (even C code has that, unless every single call is statically linked; and even then, I've used gdb usefully on other people's optimized binaries), so while someone might not be able to figure out how your code works, they can at least figure out what it's doing, and call on it directly. The only difference between a .pyc file and a binary executable is that the pyc bytecode is written for a virtual machine rather than a physical CPU. It's not a matter of "this is good, that is bad", but a spectrum of difficulties - optimized C code with everything statically linked is about as close to one extreme as you'll get without consciously obfuscating your code, and well-commented source is the opposite extreme. A minified source file, a .pyc file, or a dynamically linked .so, all are just someplace along that range. It's just a question of how much time and effort it takes to figure out the internals of the code. Considering that there are big companies spending lots of money devising DRM schemes, and their code often gets decompiled or reverse engineered within a day of release, I'd have to say that even obfuscated code is no real barrier. The *only* way to expose nothing is to publish nothing - which, these days, usually means running your software on a server and distributing a fairly dumb client... a model that MUDs have been using to great effect for decades, and are even today able to be run commercially. ChrisA