[BangPypers] Regarding Python popularity
dhananjay.nene at gmail.com
Mon Feb 8 11:47:23 CET 2010
On Mon, Feb 8, 2010 at 3:22 PM, Srinivas Reddy Thatiparthy <
srinivas_thatiparthy at akebonosoft.com> wrote:
> 1.The other day my friend was saying ;Since python is opensource ,so
> many companies fear that their product's byte code
> could be reverse engineered.To protect their Intellectual Property
> rights they stay away from python,
> is it true?
Java is open source and java's byte code can be reverse engineered. That
doesn't per se hinder the marketability of Java.
Having said that statements made by Noufal in a peer message in this thread
stand valid. Python is not decompilable since python is open source - python
is decompilable because it compiles to a bytecode. Also many python
implementations do ship their source as well.
One does of course wonder how much Intellectual Property protection is
offered by not shipping source code. Most code bases today are substantially
large enough (and in some cases too crappily written) to be extremely hard
to decipher. Moreover in most cases it is the first mover advantage that is
far more important than securing the source code. If I am shipping a
relatively trivial application such as say a Bug Tracking application, the
value of Intellectual Property Protection afforded by not shipping the
source is quite limited imo. On the other hand, if you have some secret
sauce algorithm, then source code protection is important. However such
applications are likely to form a fairly small fraction of the total
universe of applications and they should not be shipped in Python or Java or
C# since all of them compile to bytecode without any optimising passes on
that bytecode (its the optimising passes especially at a assembly level
instruction set which make reverse engineering so much more difficult).
To summarise : Python is unlikely to be at any disadvantage to Java / C#
especially in terms of source code decompilability.
2.What hinders python from becoming a popular OOP language,like a
> is it just slowness of python or dynamic language or Marketing?
> I would like to know .
What is a popular OOP language ? Is it the top 3 or top 10. If it is top 3 -
python is unlikely to get there anytime soon. If it is top 10 its been there
for a long time (perhaps a decade though I could easily be wrong).
Of the total universe of applications perhaps slowness might count for 10%
(purely my individual hunch - no scientific basis for the number)
applications selecting a much faster language. Yet to counter the same PHP
is amongst the 3 most popular languages and it is perhaps slower than
Is it dynamic language ? - Again PHP is a dynamic language and is a case in
point. But PHP really scores due to its extremely low barriers to entry (for
both developers and hosting environments).
Marketing could be a partial answer. Both MS and Sun invested heavily in
terms of marketing Java / C#. Once upon a time in very old days it was said
that you couldn't lose your job by selecting IBM. Marketing also makes sure
that the people making the decision are less likely to feel concerned about
having to defend their choices in the future if and should they select say
Java or C#.
Infrastructure capabilities could be yet another answer. The Java runtime
environment is an excellent engine. Now Python has implementations which can
run on JRE (Jython) and CLR (Iron Python). However most java choices made in
the first half of the decade did not depend upon the JRE.
So to put it simply - there is no simple cut and dry answer. If you look
beyond the Marketing and a bit of the resultant herd mentality, you will
realise that most languages have a good sweetspot they manage to excel at.
And thats what drives popularity. So I would really go back and rephrase the
question. It should not be why or whether python is popular but really, does
the application you want to write lie in the sweetspot area of python or
not. If it does there's a good chance using python will make you and your
team happy at the end of the day, and if it doesn't by all means use the
right language for that application.
> ~ Srini T
> BangPypers mailing list
> BangPypers at python.org
twitter: http://twitter.com/dnene http://twitter.com/_pythonic
More information about the BangPypers