Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Medium to Large Scale Python Deployments

34 views
Skip to first unread message

Domenic R. Merenda

unread,
Jun 5, 2002, 5:18:34 AM6/5/02
to
Greetings,

I am running a home-grown Enterprise Resource Planning system, written
entirely in Python, to manage the operations and manufacturing aspects of a
medium ($100,000,000 annual sales) manufacturing organization. I would be
interested in hearing from other individuals who are likewise "betting the
farm" on Python as an ERP or MRP solution, and some of the experiences they
may have had.

We have found Python to be a robust solution for the problems we've
encountered to date, and pass approximately half a gigabyte of daily data
through our custom systems. We have merged the AS/400 (Python 2.1, soon to
go to 2.2.1) with midrange (PIII700) PC's to create an interesting
heterogenous environment.


Cheers!
--
Domenic R. Merenda
Editor, The Edge Report
http://www.edgereport.com


Pedro Vale Lima

unread,
Jun 6, 2002, 4:43:37 AM6/6/02
to
"Domenic R. Merenda" <d...@edgereport.put_a_c_o_m_here> wrote in message
>
> I am running a home-grown Enterprise Resource Planning system, written
> entirely in Python

Hello,

Could you tell us more information about your system (Database Server,
User Interface, Communication protocol, etc)? I am running an ABAP
based ERP but I'm pretty sure your is better :-)

regards,

Pedro Lima

Benji York

unread,
Jun 6, 2002, 10:55:16 AM6/6/02
to
"Domenic R. Merenda" <d...@edgereport.put_a_c_o_m_here> wrote in message news:<KHkL8.21383$eD2.239...@newssvr10.news.prodigy.com>...

> I am running a home-grown Enterprise Resource Planning system, written
> entirely in Python...

Do you have any plans to open source your system. I, and others, would
be most interested in using, and contributing to such a project.

--
Benji York
benji...@cknainc.com

Kragen Sitaker

unread,
Jun 6, 2002, 1:37:16 PM6/6/02
to
"Domenic R. Merenda" <d...@edgereport.put_a_c_o_m_here> writes:
> I am running a home-grown Enterprise Resource Planning system, written
> entirely in Python, to manage the operations and manufacturing aspects of a
> medium ($100,000,000 annual sales) manufacturing organization.

That's fascinating!

> We have found Python to be a robust solution for the problems we've
> encountered to date, and pass approximately half a gigabyte of daily data
> through our custom systems. We have merged the AS/400 (Python 2.1, soon to
> go to 2.2.1) with midrange (PIII700) PC's to create an interesting
> heterogenous environment.

Are you running Python natively on the AS/400? How hard was that?
Does it support dynamic loading of extensions?

Fredrik Lundh

unread,
Jun 6, 2002, 2:52:21 PM6/6/02
to
Kragen Sitaker wrote:

> > I am running a home-grown Enterprise Resource Planning system, written
> > entirely in Python, to manage the operations and manufacturing aspects of a
> > medium ($100,000,000 annual sales) manufacturing organization.
>
> That's fascinating!

indeed.

> Are you running Python natively on the AS/400? How hard was that?

chances are he's using Per Gummedals port:

http://home.no.net/pgummeda/

</F>


Domenic R. Merenda

unread,
Jun 6, 2002, 3:33:00 PM6/6/02
to

Sure, Pedro. The database server is homegrown C and RPG II code running
on the AS/400 for the majority of our "archived" data. The live database is
mySQL on a PC. User interface is PC/400 by IBM, and communcation is handled
over IPX through twisted pair cabling. Kludgy, but it works so far. :-)
OS/400 is a wacky operating system.

--
Domenic R. Merenda
Editor, The Edge Report
http://www.edgereport.com


"Pedro Vale Lima" <ped...@yahoo.com> wrote in message
news:82afc355.0206...@posting.google.com...

Domenic R. Merenda

unread,
Jun 6, 2002, 3:34:30 PM6/6/02
to
Benji,

At some point, I think it is likely. The company is in the process of
being acquired, so it's really up to the new owners. I am a 20%
stockholder, and I've brought up the issue already. The only major
complication is giving up the competitive advantage. And, believe me, we'd
love the community participation. We only have 7 programmers working on the
project now.


--
Domenic R. Merenda
Editor, The Edge Report
http://www.edgereport.com


"Benji York" <benji...@cknainc.com> wrote in message
news:b10fcc9a.02060...@posting.google.com...

Domenic R. Merenda

unread,
Jun 6, 2002, 3:36:03 PM6/6/02
to

Exactly. We plan to upgrade as soon as we test the new version.

--
Domenic R. Merenda
Editor, The Edge Report
http://www.edgereport.com


"Fredrik Lundh" <fre...@pythonware.com> wrote in message
news:FbOL8.42027$n4.95...@newsc.telia.net...

Richard Jones

unread,
Jun 6, 2002, 7:40:34 PM6/6/02
to
On Fri, 7 Jun 2002 09:22, Sam Penrose wrote:
> [Domenic R. Merenda raises the topic of Python used in large contexts]
>
> I'm also curious about large amounts of Python, period. Who knows of
> ~50K Python lines-of-code (LOC) systems? 100K LOC? More?

I'm just taking a punt here, but I'd say we've got around 50k or more lines in
action here (http://www.ekit.com/). It's hard to tell, 'cos there's stuff in
Zope and it doesn't play well with "wc" :)


Richard

Sam Penrose

unread,
Jun 6, 2002, 7:22:08 PM6/6/02
to

Stuart Quimby

unread,
Jun 6, 2002, 8:39:15 PM6/6/02
to
You may be interested in the gnuenterprise project. They are
developing a multi-tier db independant ERP that is open-source.
Details can be found at http://www.gnuenterprise.org.

Stuart Quimby


"Domenic R. Merenda" <d...@edgereport.put_a_c_o_m_here> wrote in message news:<KHkL8.21383$eD2.239...@newssvr10.news.prodigy.com>...

Aahz

unread,
Jun 6, 2002, 8:45:20 PM6/6/02
to
In article <mailman.1023405789...@python.org>,

Sam Penrose <spen...@intersight.com> wrote:
>
>I'm also curious about large amounts of Python, period. Who knows of
>~50K Python lines-of-code (LOC) systems? 100K LOC? More?

Well, there's Zope. My last formal employment was at a job where we had
something like 30-40K LOC. I'd imagine it's moderately rare to get much
larger than that, simply because Python is so compact. (A good
refactoring run at my last job ought to have shrunk the code by at least
10K, IMO.)
--
Aahz (aa...@pythoncraft.com) <*> http://www.pythoncraft.com/

"I had lots of reasonable theories about children myself, until I
had some." --Michael Rios

Domenic R. Merenda

unread,
Jun 6, 2002, 9:09:26 PM6/6/02
to

"Sam Penrose" <spen...@intersight.com> wrote in message
news:mailman.1023405789...@python.org...

> [Domenic R. Merenda raises the topic of Python used in large contexts]

Woah, watch it! You almost made me sound intellegent. Or at the very
least, thoughtful.

> I'm also curious about large amounts of Python, period. Who knows of
> ~50K Python lines-of-code (LOC) systems? 100K LOC? More?

This is easily over the 100K LOC mark, although I don't know the actual
count. We have 37 lib mods for Accounts Payable alone.

Peter Hansen

unread,
Jun 6, 2002, 9:24:06 PM6/6/02
to
"Domenic R. Merenda" wrote:

>
> "Sam Penrose" <spen...@intersight.com> wrote:
> > I'm also curious about large amounts of Python, period. Who knows of
> > ~50K Python lines-of-code (LOC) systems? 100K LOC? More?
>
> This is easily over the 100K LOC mark, although I don't know the actual
> count. We have 37 lib mods for Accounts Payable alone.

Running pycount (http://starship.python.net/crew/gherman/playground/pycount/ )
as "pycount.py -R *.py" in the top level of your source tree would tell
you something more accurate if you wished.

-Peter

Christopher Armstrong

unread,
Jun 6, 2002, 8:19:28 PM6/6/02
to

> I'm also curious about large amounts of Python, period. Who knows of ~50K
> Python lines-of-code (LOC) systems? 100K LOC? More?

chris@radii:~/Projects/Twisted$ find -name '*.py' | xargs wc -l
...
56051 total

http://twistedmatrix.com

Twisted is a framework for writing asynchronous network apps. The reason it's
so big, though, is that we pack a lifetime supply of batteries in the
box. ;-)

--
Chris Armstrong
<< ra...@twistedmatrix.com >>
http://twistedmatrix.com/users/carmstro.twistd/

Domenic R. Merenda

unread,
Jun 6, 2002, 10:11:14 PM6/6/02
to

Yes, thank you. I've been following this since 2000, and have looked at
using some of the code, but wasn't able to open source our work, and so
refrained for using theirs. :-)


--
Domenic R. Merenda
Editor, The Edge Report
http://www.edgereport.com


"Stuart Quimby" <st...@dstoys.com> wrote in message
news:34b82fda.02060...@posting.google.com...

Mike C. Fletcher

unread,
Jun 6, 2002, 10:45:51 PM6/6/02
to
Hey, that's a fun little tool (pycount)...

I seem to create projects in libraries of around 20KLOC. Do projects
accumulate the LOCs of their used libraries though? Is it only
libraries you have created that count? If so, I've got 2 projects of
~50KLOC (the top-level projects, and one of the ~20KLOC libraries were
closed-sourced, the rest were my open-source work).

If used libraries don't count, most of my "projects" are ~ 5 thousand
lines of glue code.

Ah well, back to work, thanks for the diversion,
Mike

Peter Hansen wrote:
> "Domenic R. Merenda" wrote:
>
>>"Sam Penrose" <spen...@intersight.com> wrote:
>>
>>>I'm also curious about large amounts of Python, period. Who knows of
>>>~50K Python lines-of-code (LOC) systems? 100K LOC? More?

...


> Running pycount (http://starship.python.net/crew/gherman/playground/pycount/ )
> as "pycount.py -R *.py" in the top level of your source tree would tell
> you something more accurate if you wished.
>
> -Peter

_______________________________________
Mike C. Fletcher
http://members.rogers.com/mcfletch/


Peter Hansen

unread,
Jun 7, 2002, 1:04:07 AM6/7/02
to
Christopher Armstrong wrote:
>
> > I'm also curious about large amounts of Python, period. Who knows of ~50K
> > Python lines-of-code (LOC) systems? 100K LOC? More?
>
> chris@radii:~/Projects/Twisted$ find -name '*.py' | xargs wc -l
> ...
> 56051 total

How big is that when run through pycount?

(I.e. comments and blank lines don't count!)

-Peter

Jürgen Hermann

unread,
Jun 7, 2002, 3:39:12 AM6/7/02
to

Summary on "twisted"
====================
files 256
lines 51654
bytes 1728211
comments 5993
empty lines 10029
non-commentary lines 29910

Peter Hansen

unread,
Jun 7, 2002, 8:07:37 AM6/7/02
to
Jürgen Hermann wrote:

>
> Peter Hansen wrote:
> > How big is that when run through pycount?
> >
> > (I.e. comments and blank lines don't count!)
>
> Summary on "twisted"
> ====================
> files 256
> lines 51654
> bytes 1728211
> comments 5993
> empty lines 10029
> non-commentary lines 29910

Thanks! Similar results to what I've seen over about 50000
lines in 235 files. Roughly 50-60% code content, and
almost twenty percent blank lines.

I suspect such numbers (perhaps excluding lines of comments)
are more consistent for Python code, whoever wrote it,
than for many other languages.

-Peter

Michael Chermside

unread,
Jun 7, 2002, 10:30:03 AM6/7/02
to
Folks, I think this is a pretty useful thing to collect.

In fact, it might be really nice to collect a list of large (successful)
Python projects and post it somewhere so the Python community could use
it for advocacy.

So do me a favor... if you have (or know of) a large Python project
which you think our community ought to be bragging about, please either
post it to this thread or email it to me. I'll collect the list, and
then see if I can get it posted somewhere appropriate. Please run
pycount (http://starship.python.net/crew/gherman/playground/pycount/ )
as "pycount.py -R *.py" on the top of your source tree, (or modify that
appropriately for your project!).

The exact definition of "large" is fairly vague... I'd say 30K loc is
borderline and 50K loc is definitely big.

Please note that the project does NOT need to be open-source or freely
available to qualify!!!

If I get at least 8 responses, I'll assume there's sufficient interest,
and arrange to get it posted.

Alternatively, if such a list already exists, let me know where, and
I'll volunteer to help update and promote it.

Here's what I have so far:

Project Size(Kloc) URL
------- ---- ---------------------
Zope ??? http://www.zope.org/
twisted >50 http://www.twistedmatrix.com
ekit ~50 http://www.ekit.com/
Domenic's
ERP system >100 --
Something
by aahz 30-40 ???


Sources:
http://groups.google.com/groups?th=b7ec40fc188a2a52&rnum=1

Simon Brunning

unread,
Jun 7, 2002, 11:52:53 AM6/7/02
to
> From: Domenic R. Merenda [SMTP:d...@edgereport.put_a_c_o_m_here]

> Sure, Pedro. The database server is homegrown C and RPG II code
> running
> on the AS/400 for the majority of our "archived" data. The live database
> is
> mySQL on a PC. User interface is PC/400 by IBM, and communcation is
> handled
> over IPX through twisted pair cabling. Kludgy, but it works so far. :-)
> OS/400 is a wacky operating system.

Wacky? Hmm, well, it's pretty different to anything else that I've come
across. Coming from an OS/400 background, Windows and Unix look like
slightly different flavours of the same thing to me. (What do you mean a
program is a file? In OS/400, a file is a file and a program is a program,
dammit, not the same thing at all.)

RPG II? Now that *is* wacky! No structured op-codes at all - you had to do
everything with IFs and GOTOs. Yuck. I hope that anything new is done in
RPGIII at least! (We use RPGIV exclusively for new stuff - the free
formatting rocks. Well, compared to fixed formatting, that is - I still hate
semi-colons and braces everywhere.)

Cheers,
Simon Brunning
TriSystems Ltd.
sbru...@trisystems.co.uk


-----------------------------------------------------------------------
The information in this email is confidential and may be legally privileged.
It is intended solely for the addressee. Access to this email by anyone else
is unauthorised. If you are not the intended recipient, any disclosure,
copying, distribution, or any action taken or omitted to be taken in
reliance on it, is prohibited and may be unlawful. TriSystems Ltd. cannot
accept liability for statements made which are clearly the senders own.


Andy McKay

unread,
Jun 7, 2002, 12:49:17 PM6/7/02
to
> Running pycount (http://starship.python.net/crew/gherman/playground/pycount/ )
> as "pycount.py -R *.py" in the top level of your source tree would tell
> you something more accurate if you wished.

According to cvs we had 90k LOC. After pycount, it became 60k of which only
30k was actually code, the rest comments etc. How to make a project smaller.
And a serious refactoring could get it down to about a third of that.

We'll match those perl guys and get it down to a one line app soon :)
--
Andy McKay
Merlin Technologies


Mike Romberg

unread,
Jun 7, 2002, 1:26:48 PM6/7/02
to
>>>>> " " == Michael Chermside <mch...@destiny.com> writes:

> Folks, I think this is a pretty useful thing to collect. In
> fact, it might be really nice to collect a list of large
> (successful) Python projects and post it somewhere so the
> Python community could use it for advocacy.

> So do me a favor... if you have (or know of) a large Python
> project which you think our community ought to be bragging
> about, please either post it to this thread or email it to
> me.

I'm working on a project which is is a mix of C++ and python.
Currntly the python part of it is:

python ~/pycount.py -R "*.py"
lines code doc comment blank file
35 6 0 20 9 ./data/textFiles/GFECONFIG/Gweight.py
1390 264 0 937 189 ./data/textFiles/GFECONFIG/gfeConfig.py

[snip]

134062 88680 3160 24281 17941 total

The code is for a weather forecast system being developed for the
national weather service:

http://www-md.fsl.noaa.gov/eft/

Mike Romberg (rom...@fsl.noaa.gov)

Bengt Richter

unread,
Jun 7, 2002, 3:42:16 PM6/7/02
to

Is the "comments" number a count of _pure_ comment lines,
# (like this one) ?

I think it would be interesting to analyze comments further,
to see what the relative comment byte count is overall,
and for lines with both code and comments,
"""like this line:""" # (this has code and comment).

Also maybe separate doc-string lines into a separate category,
since they have a dual nature.

Regards,
Bengt Richter

Domenic R. Merenda

unread,
Jun 7, 2002, 4:39:59 PM6/7/02
to

"Simon Brunning" <SBru...@trisystems.co.uk> wrote in message
news:mailman.1023465334...@python.org...

> Wacky? Hmm, well, it's pretty different to anything else that I've come
> across. Coming from an OS/400 background, Windows and Unix look like
> slightly different flavours of the same thing to me. (What do you mean a
> program is a file? In OS/400, a file is a file and a program is a program,
> dammit, not the same thing at all.)

Yes, it is different, to say the least. I enjoy the mixed environment,
though. When I get sick of staring at a dumb terminal, I can hop over to a
PC and make a connection, turning my PC into a revolutionary, new ... dumb
terminal. :-)

> RPG II? Now that *is* wacky! No structured op-codes at all - you had to do
> everything with IFs and GOTOs. Yuck. I hope that anything new is done in
> RPGIII at least! (We use RPGIV exclusively for new stuff - the free
> formatting rocks. Well, compared to fixed formatting, that is - I still
hate
> semi-colons and braces everywhere.)

Ok, you want a laugh? The reason for the RPG II is twofold (no pun).
First, when the system was first begun, RPG II was a newfangled
thingamabobber, and the programmers really wanted to use it. We have
hand-writted documentation like you wouldn't believe. Second, we have a
support contract for RPG II which runs out in July of 2004, so management is
convinced it's the safest way for us to go, in case it somehow ... breaks?

Domenic R. Merenda

unread,
Jun 7, 2002, 4:45:36 PM6/7/02
to

"Michael Chermside" <mch...@destiny.com> wrote in message
news:mailman.1023460091...@python.org...

> Folks, I think this is a pretty useful thing to collect.

> In fact, it might be really nice to collect a list of large (successful)
> Python projects and post it somewhere so the Python community could use
> it for advocacy.

Michael, I agree with you. I was formerly the Vice President of Business
Development for BeOpen.com, while we had PythonLabs there, and I can tell
you that we were compiling such a list for that very reason. Using the
WayBack Machine, I was able to grab the list. Here ya go:


Digital Creations
http://web.archive.org/web/20001119052700/http://www.digicool.com/
Digital Creations built its flagship product, Zope, in Python. Zope is an
advanced, highly adaptable web application server and content management
system in production use across the globe. Zope enables web developers and
content managers to rapidly deploy interactive, dynamic, scalable,
community-oriented web sites. Zope is available at
http://web.archive.org/web/20001119052700/http://www.zope.org/.


eGroups (acquired by Yahoo!)
http://web.archive.org/web/20001119052700/http://www.egroups.com/
eGroups empowers people to share interests and ideas by delivering the
world's best web-based email group service, a technology built in Python.
Email groups facilitate group communication through the ease and convenience
of a user's email account. Python has allowed eGroups to rapidly evolve its
service offering as well as enable it to scale to unprecedented levels.

eGroups decision to use Python helped them achieve rapid growth, leading to
their acquisition by another market leader, Yahoo!.


Google.com
http://web.archive.org/web/20001119052700/http://www.google.com/
Google's mission is to organize the world's online information and to make
it universally accessible and useful.

Google rocketed to the top of the web portal industry by making extensive
use of Python throughout its web crawler and search engine technologies
(later optimized for further performance in C). Google's web crawler now
spans the entire public Internet, with over 1 billion indexed URL's. The
total number of searches served by Google exceeds 13 million per day.


Helix Code
http://web.archive.org/web/20001119052700/http://www.helixcode.com/
Helix Code is a startup building a free Internet desktop based on the GNOME
desktop platform, for Linux and Unix. The company is headed by the leading
devevelopers of the GNOME project. Helix Code ships a variety of Python
programming interfaces for the GNOME libraries and its associated graphical
widget set GTK+.


Hewlett Packard e-speak
http://web.archive.org/web/20001119052700/http://www.e-speak.net/
HP used Python to build a truly open Market Making Broker with XML/HTTP
interfaces at all major interface points. This broker was far ahead of its
time, working across a large space of market makers. Initially, Python was
used only to produce the first prototype, with plans for a production
version to be done in Java. After the Java-intensive product proved less
stable with even fewer features than the Python prototype, Java work was
discontinued and the Python prototype was reworked in order to meet critical
deadlines.


IBM
http://web.archive.org/web/20001119052700/http://www.ibm.com/
IBM uses Python on OS/390 UNIX System Services to facilitate automated
testing of Internet tools.

IBM is using Python to create the business practice logic for the factory
tool control applications that manage a semiconductor plant. Code that had
been previously written in an internal, proprietary scripting language has
been given new life via its port to Python.


Infoseek (acquired by Go Network)
http://web.archive.org/web/20001119052700/http://www.infoseek.com/
Ultraseek Server, Infoseek's commercial search engine product, is
implemented as an elaborate multi-threaded Python program, with the
primitive indexing and search operations performed by a built-in module.
Most of the program is written in Python, and both a built-in spider and
HTTP server can be customized with additional Python code. The program
contains over 11,000 lines of Python code while the user interface contains
over 17,000 lines of Python-scripted HTML templates.


ITI
http://web.archive.org/web/20001119052700/http://www.iti-oh.com/pdi
ITI's Product Data Interoperability (PDI) business provides software tools
and services enabling companies to effectively exchange, reuse, and share
CAD/CAM/CAE/PDM and related engineering data among diverse software
applications used throughout a manufacturing enterprise and it's supply
chain. ITI has had amazing success with Python.


Lawrence Livermore National Laboratories
Los Alamos National Laboratory
http://web.archive.org/web/20001119052700/http://www.llnl.gov/
http://web.archive.org/web/20001119052700/http://www.lanl.gov/
A group at the Lawrence Livermore National Laboratories based its new
numerical engineering environment, CDAT, on Python, replacing a home-grown
scripting language of ten-year standing. CDAT used Python's exceptionally
versatile design to integrate C, C++, and FORTRAN subroutines, affording
climate research scientists an effortless analysis of global climate model
data sets.


MCI Worldcom
http://web.archive.org/web/20001119052700/http://www.mciworldcom.com/
The Data Subnet Manager, MCI Worldcom's internal frame relay configuration
and provisioning suite, uses JPython for regression testing, interactive
debugging, and rapid prototyping of its Java Client. They also use Python in
their automated build processes and CGI scripts.


Microsoft eShop
http://web.archive.org/web/20001119052700/http://www.eshop.com/
eShop, Inc. was originally formed in December 1993 to produce desktop
electronic commerce software. By November 1995, Pandora's Box had been
opened -- the Internet was something that had to be addressed directly,
rather than simply accounted for, and eShop had to move quickly or lose its
competitive advantages. By the time eShop was acquired by Microsoft, less
than a half-dozen engineers had built an entire Web-based shopping system
with Python in about four months. The resulting server was stable,
maintainable, robust, and scalable showing no compromise in quality for such
a brief development period.


NASA
http://web.archive.org/web/20001119052700/http://www.nasa.gov/
Johnson Space Center uses Python as the standard scripting language in its
Integrated Planning System. Efforts are underway to develop a modular
collection of tools for assisting shuttle pre-mission planning and replacing
older tools written in PERL and shell dialects. Python will also be
installed in the new Mission Control Center to perform auxiliary processing
integrated with a user interface shell. Ongoing developments include an
automated grammar based system, whereby C++ libraries may be interfaced
directly to Python via compiler techniques. This technology can be extended
to other languages in the future.


Penguin Computing
http://web.archive.org/web/20001119052700/http://www.penguincomputing.com/
Penguin Computing is a leading manufacturer of Linux servers for web,
database, and other enterprise uses. Much of the software developed at
Penguin for internal use and for shipping with their servers is developed in
Python -- after other languages proved too limiting and difficult to
maintain.


PyBiz
http://web.archive.org/web/20001119052700/http://www.pybiz.com/
Python enabled a small team of senior architects at PyBiz to produce and
deliver both XDisect and eContentMgr on short schedule. It was estimated
that it would have required 3 times the build time and 1.5 times the number
of developers to deliver comparable functionality in Java.

Building in Python allowed delivery of a working product early in the life
cycle, providing more time to evolve the product towards customers' needs as
well as optimize performance of critical areas.


Real Networks
http://web.archive.org/web/20001119052700/http://www.real.com/
RealNetworks has developed a Python binding for their RealMedia client. It
is used extensively in load testing and feature testing of both their server
and client on all of their supported platforms. Additionally, RealNetworks'
build system and bug tracking system have very significant Python
components.


Red Hat
http://web.archive.org/web/20001119052700/http://www.redhat.com/
In the highly competitive Linux market, easy-to-use and flexible
installation technologies have become a key business differentiator. Red
Hat, a leader in Linux and Open Source technologies, identified Python as a
unique and powerful tool for building their installer, Anaconda.


Sapient
http://web.archive.org/web/20001119052700/http://www.shn.net/
Sapient Information Systems built the Sapient Health Network for WebMD with
Python. The service provides chronically and terminally ill people with
information related to their illness. All of the backend web programming
uses Python, as do a large number of internal tools.


Sonics
http://web.archive.org/web/20001119052700/http://www.sonicsinc.com/
Sonics engineers use Python exclusively to construct graphical and
configuration tools (the FastForward Development Environment) which provide
the layout of micro-network-based system-on-chips. Their experiences over
the years with many languages and systems led them to conclude that, with
the available time and resources, they could never have developed the
technology without Python.


Yahoo! Mail and Four11
http://web.archive.org/web/20001119052700/http://www.yahoo.com/
Yahoo! acquired a company called Four11, a technology providing both an
Internet White Pages and a web-based e-mail reading system (renamed from
Rocketmail to Yahoo! Mail). Both of these services were written in Python to
obtain strong performance and flexibility. The Internet White Pages holds a
large number of email address records and the complete US residential
telephone directory -- so searching performance is key. Having acquired both
411 and eGroups, Yahoo! now relies on a wide range of Python-driven
technologies to provide the highly interactive experience its users expect.


80-20 Software
http://web.archive.org/web/20001119052700/http://www.80-20.com/
80-20 Software used Python to rapidly develop a scalable and extensible
document management system that sits on top of the popular Microsoft
Exchange messaging technology. By using Python, they were able to develop
and release to market a feature rich client/server solution in under a year
with only 4 developers. Python provided an excellent prototyping tool for
the server technology, which originally was supposed to be converted to C++
for production use. 80-20 found during its testing that only a few
components needed to be in C++ for greater speed and that more than 90% of
the prototype code could be used unchanged without any significant
performance impact.


> Alternatively, if such a list already exists, let me know where, and
> I'll volunteer to help update and promote it.
>

> Domenic's
> ERP system >100 --

Let's not call it that. :-) And I will check upstairs when we get back
from our vacation to see if it's okay to release the number of lines in the
code. Don't be surprised if it's treated like a National Security issue.
(Shh! If they know how many lines are in the code, they can CRACK US!)

Peter Hansen

unread,
Jun 7, 2002, 7:24:47 PM6/7/02
to
Bengt Richter wrote:
>
> Is the "comments" number a count of _pure_ comment lines,
> # (like this one) ?

I believe so. I haven't examined the pycount code yet.

> I think it would be interesting to analyze comments further,
> to see what the relative comment byte count is overall,
> and for lines with both code and comments,
> """like this line:""" # (this has code and comment).

I consider it a mild stylistic no-no to use line-ending
comments, personally. I believe it's almost always better
to put a block-comment of one or more lines above a block
of code with related purpose. A good comment there tends to
be more maintainable, and useful, than lots of little comments
on each line.

> Also maybe separate doc-string lines into a separate category,
> since they have a dual nature.

I believe pycount does separate out doc-strings. There is a
separate column labelled "doc" which, in our code, was relatively
small (we rarely use doc strings, having avoided that aspect of
Python when writing on an embedded system where all the .pyc
files were stored in our limited 1MB of flash along with the
interpreter...).

-Peter

Geoff Gerrietts

unread,
Jun 7, 2002, 8:14:32 PM6/7/02
to
Quoting Sam Penrose (spen...@intersight.com):
> [Domenic R. Merenda raises the topic of Python used in large contexts]

>
> I'm also curious about large amounts of Python, period. Who knows of
> ~50K Python lines-of-code (LOC) systems? 100K LOC? More?

I'm working on a large web project whose name I hafta jump thru
permission hoops to reveal (though a little perfunctory Googling
old newsgroup posts would probably give you the answers if you care).

I don't have a nice summary version printing out of the version of
pycount I found on starship, so mine may not be as good as others, but
I show:

lines: 173810
code: 127443
doc: 1387
comment: 17873
blank: 27107

I would put the number of python enthusiasts working on this code
somewhere around 50%; others appreciated its merits but were largely
indifferent to concerns of language, and still others were inductees
in the cult of Java.

Some of the code indexed above is autogenerated, for use with
ILU-based services. Some is boilerplate, for similar reasons. But most
has been seen by human eyes and shaped by human minds.

--G.

--
Geoff Gerrietts "Punctuality is the virtue of the bored."
<geoff at gerrietts net> --Evelyn Waugh


Nicola Larosa

unread,
Jun 8, 2002, 3:19:56 AM6/8/02
to
> (we rarely use doc strings, having avoided that aspect of
> Python when writing on an embedded system where all the .pyc
> files were stored in our limited 1MB of flash along with the
> interpreter...).

python -OO ?


--
"Too much cleverness in the parser can turn against you."
Guido Van Rossum

Nicola Larosa - ni...@tekNico.net


Peter Hansen

unread,
Jun 8, 2002, 9:43:37 AM6/8/02
to
Nicola Larosa wrote:
>
> > (we rarely use doc strings, having avoided that aspect of
> > Python when writing on an embedded system where all the .pyc
> > files were stored in our limited 1MB of flash along with the
> > interpreter...).
>
> python -OO ?

I don't recall whether we actually didn't know about that at
the time (I think that was it), or were not willing to accept
the /other/ changes -OO made to the output.

-Peter

Lulu of the Lotus-Eaters

unread,
Jun 8, 2002, 1:14:04 PM6/8/02
to
Since this thread has drifted into line counts, I think it worth sharing
a resource that a fellow-developer shared with me:

SLOCCount:
http://www.dwheeler.com/sloccount/

Take a look. It's not written in Python (I don't think), but it seems
to do a large superset of what pycount.py does. SLOCCount counts the
lines of code in a large number of different programming languages,
using rather clever rules and heuristics both to identify what language
a file actually is, and to discern which lines are code versus comments
(including, e.g. Python docstrings).

SLOCCount also reports some stuff about cost and development efforts. I
would take that with a grain of salt, for lots of reasons. But it's fun
seeing just how many kilodollars you -should- have been paid to write
your open source application :-).

Yours, Lulu...

--
mertz@ | The specter of free information is haunting the `Net! All the
gnosis | powers of IP- and crypto-tyranny have entered into an unholy
.cx | alliance...ideas have nothing to lose but their chains. Unite
| against "intellectual property" and anti-privacy regimes!
-------------------------------------------------------------------------

Benno

unread,
Jun 8, 2002, 8:10:20 PM6/8/02
to
Lulu of the Lotus-Eaters <me...@gnosis.cx> wrote in message news:<mailman.1023557203...@python.org>...

> Since this thread has drifted into line counts, I think it worth sharing
> a resource that a fellow-developer shared with me:
>
> SLOCCount:
> http://www.dwheeler.com/sloccount/
>
> Take a look. It's not written in Python (I don't think), but it seems
> to do a large superset of what pycount.py does. SLOCCount counts the
> lines of code in a large number of different programming languages,
> using rather clever rules and heuristics both to identify what language
> a file actually is, and to discern which lines are code versus comments
> (including, e.g. Python docstrings).

Nice program. Although lines of count has to be about the most abused metric
in existence IMHO. It should surely be the aim of any project to *minimise*
the number of lines of code. (Fewer lines genreally means fewer opporunities
for bugs, easier to find bugs, easier to maintain, and less chance of
duplication.) In my own code I find refactoring (or even rewriting in some
cases), can reduce the lines of code by a factor of 10.

Cheers,

Benno

sameer

unread,
Jun 11, 2002, 9:42:14 AM6/11/02
to
pyljclient: an interesting blend of python and wxpython

http://pyljclient.sourceforge.net

Michael Chermside <mch...@destiny.com> wrote in message news:<mailman.1023460091...@python.org>...

Steve Holden

unread,
Jun 12, 2002, 11:27:44 PM6/12/02
to
"Peter Hansen" <pe...@engcorp.com> wrote in message
news:3D0140BF...@engcorp.com...

> Bengt Richter wrote:
> >
> > Is the "comments" number a count of _pure_ comment lines,
> > # (like this one) ?
>
> I believe so. I haven't examined the pycount code yet.
>
> > I think it would be interesting to analyze comments further,
> > to see what the relative comment byte count is overall,
> > and for lines with both code and comments,
> > """like this line:""" # (this has code and comment).
>
> I consider it a mild stylistic no-no to use line-ending
> comments, personally. I believe it's almost always better
> to put a block-comment of one or more lines above a block
> of code with related purpose. A good comment there tends to
> be more maintainable, and useful, than lots of little comments
> on each line.
>
I wouldn't necessarily disagree, but I used (when programming (gulp) Basic
Plus) to make the line-end comments into a free-form narrative that rough;y
parallelled the code.

[...]
regards
-----------------------------------------------------------------------
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/pwp/
-----------------------------------------------------------------------

Ian Parker

unread,
Jun 13, 2002, 9:00:56 PM6/13/02
to
In article <7hUN8.529345$%u2.2...@atlpnn01.usenetserver.com>, Steve
Holden <sho...@holdenweb.com> writes

I did the same on assemblers (double gulp) and possibly FORTRAN. I think
it's an effective technique on languages where the statements are
relatively short compared to the window width.

Regards

Ian
--
Ian Parker

Michael Chermside

unread,
Jun 14, 2002, 9:08:38 AM6/14/02
to
> I'm working on a large web project whose name I hafta jump thru
> permission hoops to reveal

No problem... if it's OK with you, I'll list it with your name but no
project name. Will that satisfy the hoopmasters?

-- Michael Chermside

Michael Chermside

unread,
Jun 14, 2002, 9:22:52 AM6/14/02
to

Michael Chermside writes:
> In fact, it might be really nice to collect a list of large (successful)
> Python projects and post it somewhere so the Python community could use
> it for advocacy.

Domenic Merenda writes:
> Michael, I agree with you. I was formerly the Vice President of Business
> Development for BeOpen.com, while we had PythonLabs there, and I can tell
> you that we were compiling such a list for that very reason. Using the
> WayBack Machine, I was able to grab the list. Here ya go:

[... excellent list of companies using python ...]

Wow... that's GREAT.

I think this should probably be set up as a list that people can easily
contribute to to enhance and update. With that in mind, the entries
should probably have dates, indicating how recently they were updated.
Do you have an estimate of when these were entered?

Michael Chermside writes:
> Domenic's
> ERP system >100 --

Domenic Merrenda writes:
> Let's not call it that. :-) And I will check upstairs when we get back
> from our vacation to see if it's okay to release the number of lines in the
> code. Don't be surprised if it's treated like a National Security issue.
> (Shh! If they know how many lines are in the code, they can CRACK US!)

This may be a more widespread problem... projects where the project
owner (the corporation) does not want to release the information. We
could simply ommit them, or we could list under "<name withheld by
request>". I would welcome any other suggestions. Of course, the best
solution is convincing them that publicizing thier efforts is really to
their benefit, although this may not work in cases like the CIA.

-- Michael Chermside


James T. Dennis

unread,
Jun 19, 2002, 12:20:46 AM6/19/02
to
Stuart Quimby <st...@dstoys.com> wrote: [top posting corrected]
> "Domenic R. Merenda" <d...@edgereport.put_a_c_o_m_here> wrote:
>> Greetings,

>> I am running a home-grown Enterprise Resource Planning system, written
>> entirely in Python, to manage the operations and manufacturing aspects of a
>> medium ($100,000,000 annual sales) manufacturing organization. I would be
>> interested in hearing from other individuals who are likewise "betting the
>> farm" on Python as an ERP or MRP solution, and some of the experiences they
>> may have had.

> You may be interested in the gnuenterprise project. They are
> developing a multi-tier db independant ERP that is open-source.
> Details can be found at http://www.gnuenterprise.org.
> Stuart Quimby

Notably GNUe makes extensive use of Python and PostgreSQL.

0 new messages