Encouraging Python adoption in your organization

A

Alia Khouri

Recently, I've been fortunately placed in a position to possibly
mandate the use of python for certain tasks in my new organization.

Now, I've inherited an environment which is windows-centric, lacking
in knowledge about scripting, and somewhat sub-standard in terms of
productivity. I've also inherited a set of pre-existing systems which
I have to deal with and manage:

- Peoplesoft ERP
- Java webframework based on webwork/hibernate/jboss/mysql
- Lotus Notes/Domino

Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?

Many Thanks.

Alia K
 
S

Steve Holden

Alia said:
Recently, I've been fortunately placed in a position to possibly
mandate the use of python for certain tasks in my new organization.

Now, I've inherited an environment which is windows-centric, lacking
in knowledge about scripting, and somewhat sub-standard in terms of
productivity. I've also inherited a set of pre-existing systems which
I have to deal with and manage:

- Peoplesoft ERP
- Java webframework based on webwork/hibernate/jboss/mysql
- Lotus Notes/Domino

Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?
Pay me to come and give them a class and they'll be converts for life!

regards
Steve
 
R

Roger Binns

Alia said:
Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Simply lead by example. Using win32all you can do wonderful stuff
with COM in order to glue various components together. Let other
people read your code and see how simple it is.

Roger
 
P

Paddy McCarthy

Recently, I've been fortunately placed in a position to possibly
mandate the use of python for certain tasks in my new organization.

Now, I've inherited an environment which is windows-centric, lacking
in knowledge about scripting, and somewhat sub-standard in terms of
productivity. I've also inherited a set of pre-existing systems which
I have to deal with and manage:

- Peoplesoft ERP
- Java webframework based on webwork/hibernate/jboss/mysql
- Lotus Notes/Domino

Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?

Many Thanks.

Alia K
send carefully chosen selection of your developers for training in
Python and probably Zope. Although one can learn on ones own, a few
days away from normal office pressures allows one to concentrate on
the subject better.

Take a good look at what you have and try and do an honest critique -
what is good as well as bad in it, then, discuss your findings and
suggest/ask for suggestions on improvements. Remember your greatest
resource is most likely to be your people.
Try and sell to them the career benifits of an improved system - Can
you Justify to your boss the changes you envisage?

Make python available throughout your domain - Every windows machine
should have Activestates distro. (and/or Cygwin). If you were
thinking of moving to Zope then get it installed and let people know
where it is and were to access tutorials.
Mandate on obvious Python strengths - document each class/function -
self testing modules, platform independance (but pre-define your
platforms).

If your system is just plain bad then you might be able to go with
'What we have is bad in so many ways (and this should be
self-evident). A clean sweep is called for. A new system, a new
language, new training, the company wins - thepeople of your team
wins!

Ta ta, Paddy.
 
J

John Hunter

Alia> Given this context, I'm mulling over strategies to encourage
Alia> the productivity-enhancing benefits and 'joy' of python
Alia> scripting to my developers. Of course, I'd rather be
Alia> persuasive than coercive.

Alia> Any ideas?

Read "Hackers and Painters" by Paul Graham, and then give copies to
your developers. He writes compellingly about the benefits of using
python (or lisp) is a competitive environment.

JDH
 
G

GerritM

Alia Khouri said:
<...snip...>
Now, I've inherited an environment which is windows-centric, lacking
in knowledge about scripting, and somewhat sub-standard in terms of
productivity. I've also inherited a set of pre-existing systems which
I have to deal with and manage:

- Peoplesoft ERP
- Java webframework based on webwork/hibernate/jboss/mysql
- Lotus Notes/Domino

Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?

Many Thanks.
I would recommend to couple the changes to the "hot" topics of the rest of
the organisation. In other words the important and urgent needs. I have
written a short article about this: "From Legacy to State-of-the-art;
Architectural Refactoring"
http://www.extra.research.philips.com/natlab/sysarch/ArchitecturalRefactorin
gPaper.pdf
Besides I would make sure that you promote Python by showing its true value:
high productivity.Do not start to re-implement existing solutions in Python
if there is no clear benefit for the rest of the organisation.

kind regards, Gerrit Muller
 
M

Miki Tebeka

Hello Alia,
...
Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?
1. Read and memorize http://www.infoether.com/~rich/pycon2003.pdf
2. Mention "star" programmers that moved to Python:
- Bruce Eckel: http://64.78.49.204/pub/eckel/LovePython.zip
- Eric Raymond: http://pythonology.org/success&story=esr
- ...
3. When asked about time estimation say something like "in C/C++/Java"
it'll be around two weeks, in Python I can do it in less than one"
4. Be ready for talk about run time performance. Due to modern hardware
Python is "fast enough" and you can always recode stuff in C/C++ using
the C API or just use psyco.
Also Mention that algorithm improvement will give the best performance
(http://www.dadgum.com/james/performance.html)
5. "Be there first". Make a fast prototype that does most of the *visible*
work in Python as fast as you can. This way you'll have a strong
argument to continue with Python.

HTH.
Miki
 
V

Ville Vainio

Miki> 3. When asked about time estimation say something like "in
Miki> C/C++/Java" it'll be around two weeks, in Python I can do it
Miki> in less than one"

One *week*? More like one day for many classes of problems. What's
important is that often a small program that is not worth implementing
at all in C++/Java is trivial in Python, and so the diffrence is one
b/w doing stuff manually vs. having an automated solution.

Miki> 4. Be ready for talk about run time performance. Due to
Miki> modern hardware Python is "fast enough" and you can always
Miki> recode stuff in C/C++ using the C API or just use psyco.

Yes. It's important to note that there is absolutely no
lock-in. Python keeps being used because it rocks, not because the
company is stuck with it.
 
D

Daniel Dittmar

John said:
Read "Hackers and Painters" by Paul Graham, and then give copies to
your developers. He writes compellingly about the benefits of using
python (or lisp) is a competitive environment.

On the other hand, Paul Graham paints Java programmers as dimwits. So
quoting him is likely to start a flamewar. This is perhaps not the best
choice from a diplomatic point of view.

Daniel
 
N

Neil Benn

Daniel said:
On the other hand, Paul Graham paints Java programmers as dimwits. So
quoting him is likely to start a flamewar. This is perhaps not the
best choice from a diplomatic point of view.

Daniel

Hello,

Exactly a much more objective analysis would be required.
Point out the pluses and minuses of _both_ languages - that way you will
get constructive debate, for example your company may say this - J2EE
defines a common interface for enterprise systems - makes things very
portable between implementations : +1 Java vs. Java requires every
method of an interface to be defined, even if you are not using them :
-1 Java.

If you try and say that the simple adoption of python will solve all
your problems then you are setting yourself up for a fall. Anticipate
the questions and if you think that python falls short of
Java/C#/<insert your favorite language here> - then say so - the people
who are anti your solutions will then be more willing to accept the
short falls of their solution in return.

Cheers,

Neil

--

Neil Benn
Senior Automation Engineer
Cenix BioScience
BioInnovations Zentrum
Tatzberg 47
D-01307
Dresden
Germany

Tel : +49 (0)351 4173 154
e-mail : (e-mail address removed)
Cenix Website : http://www.cenix-bioscience.com
 
I

Ian J Cottee

Daniel said:
On the other hand, Paul Graham paints Java programmers as dimwits. So
quoting him is likely to start a flamewar. This is perhaps not the best
choice from a diplomatic point of view.

That is not what he said or meant. As he himself clarifies:

"""In a recent talk I said something that upset a lot of people: that
you could get smarter programmers to work on a Python project than you
could to work on a Java project.

I didn't mean by this that Java programmers are dumb. I meant that
Python programmers are smart. It's a lot of work to learn a new
programming language. And people don't learn Python because it will get
them a job; they learn it because they genuinely like to program and
aren't satisfied with the languages they already know.

Which makes them exactly the kind of programmers companies should want
to hire. Hence what, for lack of a better name, I'll call the Python
paradox ... """

http://www.paulgraham.com/pypar.html

Ian
 
P

Peter L Hansen

Miki said:
3. When asked about time estimation say something like "in C/C++/Java"
it'll be around two weeks, in Python I can do it in less than one"

Please don't do this without taking the time to become proficient
enough with Python that you could *demonstrate* how quickly you
can program with it. Otherwise you'll look like you've been sucked
in by hype and will lose credibility.

I and others have found at least a three-times speedup using Python,
but other than reporting this as "anecdotal evidence" you'd be well
advised not to hype it too much until your own team (or you) are in
a position to put your fingers where your mouth was... (or whatever
the appropriate phrase would be :).
5. "Be there first". Make a fast prototype that does most of the *visible*
work in Python as fast as you can. This way you'll have a strong
argument to continue with Python.

Yes!
 
N

Neil Benn

Ian said:
That is not what he said or meant. As he himself clarifies:

"""In a recent talk I said something that upset a lot of people: that
you could get smarter programmers to work on a Python project than you
could to work on a Java project.

I didn't mean by this that Java programmers are dumb. I meant that
Python programmers are smart. It's a lot of work to learn a new
programming language. And people don't learn Python because it will
get them a job; they learn it because they genuinely like to program
and aren't satisfied with the languages they already know.

Which makes them exactly the kind of programmers companies should want
to hire. Hence what, for lack of a better name, I'll call the Python
paradox ... """

http://www.paulgraham.com/pypar.html

Ian

Hello,

You can quote it in different ways :

---
But when you choose a language, you're also choosing a community. The
programmers you'll be able to hire to work on a Java project won't be as
smart <http://www.paulgraham.com/pypar.html> as the ones you could get
to work on a project written in Python
---

This is from his _own_website - he then follows it up with :

---
Though, frankly, the fact that good hackers prefer Python to Java should
tell you something about the relative merits of those languages.
---

Next we have :

---
And of all the great programmers I can think of who don't work for Sun,
on Java, I know of zero.
---

On the retract posted above :

---
It's a lot of work to learn a new programming language.
--

The response on this would be - 'but you just told me that python is
'easy to learn''.

Although that was probably retracted afterwards - the fact that that
quote exists will be picked up people. I'm not insulting the quality of
writing as it is a very well written article - it just isn't gonna help
anyone trying to advocate python in a sensible business, that kind of
retort sounds like an American election campaign!!

Cheers,

Neil

--

Neil Benn
Senior Automation Engineer
Cenix BioScience
BioInnovations Zentrum
Tatzberg 47
D-01307
Dresden
Germany

Tel : +49 (0)351 4173 154
e-mail : (e-mail address removed)
Cenix Website : http://www.cenix-bioscience.com
 
I

Ian J Cottee

Neil said:
Hello,

You can quote it in different ways :

---
But when you choose a language, you're also choosing a community. The
programmers you'll be able to hire to work on a Java project won't be as
smart <http://www.paulgraham.com/pypar.html> as the ones you could get
to work on a project written in Python
---

(disclaimer - it's late, very tired and should go to bed soon, blah
blah, yada yada)

Anyway - he explains the reasoning. The reasoning is that if you took
100 programmers who call themselves Java Programmers and 100 programmers
who call themselves Python Programmers you are most likely going to find
different characteristics within the two groups. Python programmers are
unlikely to be as focussed on financial reward as Java programmers.
Python programmers are however more likely to be endowed with a love of
the art of programming.

Now I'm not sure if I agree with the statement and frankly, having two
kids and an expensive wife I'm not sure if I'd call myself intelligent
for NOT jumping onto the Java bandwagon ;). But I do understand the point.
This is from his _own_website - he then follows it up with :

Elsewhere he states who he believes to be great hackers. He knows all of
them and therefore I guess he knows what they prefer. I think he also
says that he doesn't feel he can pass judgment on people he does not
know (or has worked with). So it might just be that he doesn't get on
with Java programmers of course ;)
Next we have :

As above

I agree with him and you. Python is easy to learn but it's still a lot
of work to drop your current language, your knowledge of it and risk
moving elsewhere. Especially if you are taking your employers (or
employees) with you.
Although that was probably retracted afterwards - the fact that that
quote exists will be picked up people. I'm not insulting the quality of
writing as it is a very well written article - it just isn't gonna help
anyone trying to advocate python in a sensible business, that kind of
retort sounds like an American election campaign!!

Ooooh ... that hurt! But I agree with that. I don't think he's planning
at talking at any Java conventions soon. I just don't agree he's calling
Java programmers stupid.

peace, beer, cool things

Ian
 
I

Ian J Cottee

Neil said:
Hello,

You can quote it in different ways :

---
But when you choose a language, you're also choosing a community. The
programmers you'll be able to hire to work on a Java project won't be as
smart <http://www.paulgraham.com/pypar.html> as the ones you could get
to work on a project written in Python
---

(disclaimer - it's late, very tired and should go to bed soon, blah
blah, yada yada)

Anyway - he explains the reasoning. The reasoning is that if you took
100 programmers who call themselves Java Programmers and 100 programmers
who call themselves Python Programmers you are most likely going to find
different characteristics within the two groups. Python programmers are
unlikely to be as focussed on financial reward as Java programmers.
Python programmers are however more likely to be endowed with a love of
the art of programming.

Now I'm not sure if I agree with the statement and frankly, having two
kids and an expensive wife I'm not sure if I'd call myself intelligent
for NOT jumping onto the Java bandwagon ;). But I do understand the point.
This is from his _own_website - he then follows it up with :

Elsewhere he states who he believes to be great hackers. He knows all of
them and therefore I guess he knows what they prefer. I think he also
says that he doesn't feel he can pass judgment on people he does not
know (or has worked with). So it might just be that he doesn't get on
with Java programmers of course ;)
Next we have :

As above

I agree with him and you. Python is easy to learn but it's still a lot
of work to drop your current language, your knowledge of it and risk
moving elsewhere. Especially if you are taking your employers (or
employees) with you.
Although that was probably retracted afterwards - the fact that that
quote exists will be picked up people. I'm not insulting the quality of
writing as it is a very well written article - it just isn't gonna help
anyone trying to advocate python in a sensible business, that kind of
retort sounds like an American election campaign!!

Ooooh ... that hurt! But I agree with that. I don't think he's planning
at talking at any Java conventions soon. I just don't agree he's calling
Java programmers stupid.

peace, beer, cool things

Ian
 
P

Peter Hickman

Miki said:
3. When asked about time estimation say something like "in C/C++/Java"
it'll be around two weeks, in Python I can do it in less than one"

On the other hand never rubbish another language just to make Python look better
unless your examples are correct and relevant. This means to bad mouth Perl you
had better be a damned good Perl programmer otherwise you will just be labeled
as an 'ignorant whinny shit'.

This means you do not use the half arsed Perl code that has appeared in this
news group as your evidence. Some managers have been / are programmers and are
going to see that you have no great and are probably a crap programmer.
 
D

Daniel Dittmar

Ian said:
Daniel said:
On the other hand, Paul Graham paints Java programmers as dimwits. So
quoting him is likely to start a flamewar. This is perhaps not the
best choice from a diplomatic point of view.


That is not what he said or meant. As he himself clarifies: [...]
programming language. And people don't learn Python because it will get
them a job; they learn it because they genuinely like to program and
aren't satisfied with the languages they already know.

But what if you already have a team of Java-only programmers and you try
to switch them to Python? Then, this translates to:
You only do programming as a job. You're not genuinely interested in
programming or you wouldn't be satisfied with the language you already know.
<<<

Still doesn't sound much like a compliment.

Daniel
 
I

Irmen de Jong

Alia said:
Recently, I've been fortunately placed in a position to possibly
mandate the use of python for certain tasks in my new organization. [...]
Given this context, I'm mulling over strategies to encourage the
productivity-enhancing benefits and 'joy' of python scripting to my
developers. Of course, I'd rather be persuasive than coercive.

Any ideas?

My Python-compared-to-Java pages may be of some interest:
http://www.razorvine.net/python/PythonForJavaProgrammers

They don't really talk about Python's strong points or why
you "should dump Java and go with Python bla bla", but they
do provide a quick means of showing the way Python works
to people already proficient in Java.

--Irmen
 

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top