[CentralOH] Python for Developing Enterprise Systems?

Thomas Winningham winningham at gmail.com
Sat May 23 09:51:38 CEST 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/centraloh/attachments/20150523/ec7f459c/attachment-0001.html>


More information about the CentralOH mailing list