[CentralOH] Python for Developing Enterprise Systems?

Brian Costlow brian.costlow at gmail.com
Sat May 23 16:18:20 CEST 2015


I'm with Thomas on a lot of these points.

If you need SOAP, with Python, you will probably find yourself doing a lot
of work on one or more of Python's SOAP libraries. The details are fuzzy as
it's been 5 years or so, but the last time I did this, we were on a tight
schedule without time to do that, so ended up using one library to create
our endpoints and another for connecting to other endpoints to get around
issues.

The developer tradeoff. You fill find *more* Java developers. As an
average, the Python pool will be *better* developers.

As far as IP. If a smart programmer knows what your product does, she/he
can reinvent it without looking at your code. If you are worried about your
*customers* stealing from you, here's an anecdote:

I used to work on software that was encrypted and hardware key protected
PHP. In our North & South American, Western European, and Japanese markets,
nobody would have made an extra copy anyways, because they wanted
support/upgrades etc. Meanwhile, we did have rampant piracy in Russia and
parts of Asia. That wasn't individual users, but rogue consulting firms
that were selling and supporting cracked copies of the software. That only
happened where the legal system wouldn't let us stop it. The encryption and
keys were a big waste of time... and given what we were doing, we would
have been better off using Perl or Python, but management forbid it because
we could not 'protect the source code'.

One advantage to Python over Java is clarity. You can write bad, hard to
reason about code in either language. But in general, well written Python
will be easier to read and reason about than well written Java. Which
becomes important when someone who didn't write the original has to fix
bugs or add functions (or even the person who did write it has to look at
it a year later). But using other languages on the JVM can provide some of
the same effect.

On Sat, May 23, 2015 at 3:51 AM, Thomas Winningham <winningham at gmail.com>
wrote:

> Having extensively messed with a lot of this, I have a few points but
> others should chime in too.
>
> I might lean towards Java actually, but maybe just barely.
>
> - SOAP ... Python has it, but it is an aging set of libraries... Most
> Python frameworks focus on REST. There are perhaps ways to bridge this gap,
> like writing SOAP <-> REST adapters in Java only where needed, or some
> other product that focuses on this very common need.
>
> - Performance (maybe) .... Threads are Java's life ... But then again,
> things like uWSGI can make Python concurrency astounding for web stuff if
> you let it do the work. JVMs in theory are just "nicer." Pypy is used here
> and there, experimentally, but uWSGI is indeed very cool. You can always
> use C.
>
> - Language ecosystem... You could for instance use Jython although it is
> on 2.7 at the moment. Also there's Clojure (my current fav), Scala, JRuby,
> Groovy and more. Maybe having a choice languages could be a benefit, I'm
> not sure.
>
> A lot of things you mention, however... it is kind of a wash. Python has a
> nice rapid development with dynamic types, but Java's static types could
> give you an extra level of assurance.
>
> I guess you see a lot of tradeoffs which is perhaps why you're asking :P
>
> I think the availability of people is getting to be the same, although
> there are more Java people. Java people maybe worked with just one kind of
> large project, whereas Python people may be more varied and wider in their
> experiences.
>
> A lot of corporate industry types may appreciate a Java stack, but then
> again a Python stack may speak to some sense of agility. Both, like PHP,
> allow for integration with native code.
>
> As far as obfuscation goes, that's all an arms race. You can distribute
> compiled versions of each language sure, but I've also seen a lot of
> reverse engineering tools aimed at obfuscation schemes in just about any
> language... My general political advice would be to focus on other
> competitive advantages than your specific implementations in providing
> value. I guess I see that all as a silly game technically, and a huge risk
> legally and financially, but IANAL. I am too busy innovating than to treat
> people as suspect ;p
>
> Really probably anything other than PHP will be a breath of fresh air,
> although I do understand PHP to have some neat modern cool things going on
> these days. A lot of those innovations are copied from concepts in Java,
> though. So are some of the cool things in Python!
>
> Hope this helps! It is probably too opinionated. I do accept money for
> this advice.
>
> -t
>  Hi Pythonistas,
>
> TL;DR: For enterprise system development needs, is Python a viable option
> versus Java? How can I convince a team with dominant number of Java-trained
> engineers moving away from Php to pick Python over Java?
>
>
> What we do:
>
> Our team is transitioning from targeting startup customers within the
> telecommunications industry, towards enterprise customers with mature
> custom systems.
>
> We currently build our web-based systems in a service-oriented
> architecture (almost), and will be forsaking Php for either Java or Python
> for future development. Furthermore, we might possibly be shifting to
> shrink-wrapped systems as well.
>
> We are at a major turning point in deciding on scrapping what we have
> built and coming up with a new maintainable system fit for enterprise
> demands.
>
>
> Non-technical Considerations:
>
> 1) Industry Bias (sales consideration)
> Our new customers' (especially decision makers) tend to have preconceived
> notions regarding the languages used for software development. It's a fight
> between convincing them or yielding to their preference (which incurs
> large costs).
>
> 2) Protecting I/P by obfuscation (self-preservation consideration)
> The need for protecting our I/P when customers insist they need to keep
> things local and secure. Which means they get access to code (source or
> not) of the system being deployed, i.e. the cloud is not an option.
>
> 3) Availability of resource for hiring to build and maintain system
>
>
> Technical-related Considerations:
>
> 1) Inter-communicating with existing enterprise systems
> - WSDL seems to be really needed
>
> 2) Speed of report generation
> - Multi-processing / Multi-threading capabilities
>
> 3) Development speed (agility)
> - Availability and ease of use of libraries
> - Language features
> - Types of Frameworks that are capable enough to be used for enterprise
> requirements
>    -- e.g. spring, hibernate, J2ee VS Django, Web2py
>
> 4) Availability of development tools
>    - Developer tools which enhance workflow
>    - Testing frameworks
>
> 5) Code maintainability
>
> 6) Ease of deployment
>
> Given that this is a Python mailing list, I'm expecting more biased
> responses. However, hopefully folks with experience in both languages could
> discuss the merits of Java VS Python, specifically towards the well-being
> (pain) of the team moving forward and consideration for bottom-line
> (customer segment).
>
>
> Thank you in advance,
> Kenneth
>
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> https://mail.python.org/mailman/listinfo/centraloh
>
>
> _______________________________________________
> CentralOH mailing list
> CentralOH at python.org
> https://mail.python.org/mailman/listinfo/centraloh
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/centraloh/attachments/20150523/799988b4/attachment.html>


More information about the CentralOH mailing list