Using Python after a few years of Ruby

B

blahemailblah

Although I'm not 100% new to Python, most of my experience using high-
level languages is with Ruby. I had a job doing Rails web development
a little ways back and I really enjoyed it. At my current workplace
though, we're looking at using Python and I'm trying to get back into
the Python "groove" as it were.

I've got plenty of materials to get me up to speed on the mechanics of
the language, but I was wondering about the equivalent of some tools I
was used to using in Ruby. If there's not anything that's a one-to-one
equivalent I totally understand, I'm just looking for some pointers
here to get me started. :)

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool? (Or do I
even need something like that? I haven't worked with any large Python
systems, just little things here and there.)

2) Gems - I've seen a bit about Eggs, but they don't seem to have
anywhere near the official status gems do for Ruby. Are there any
"package management" things like this for Python, or do you usually
just grab the code you need as-is?

3) Web frameworks - yeah, I realize there are tons of these, but are
TurboGears, Django, and Zope still the big ones? I've seen a lot about
Pylons, is that a separate framework or is it a ... well, frame that
other things are built on? (TG seems to be related to Pylons at a
glance?)

4) Unit Test frameworks - If there's a behavioral test suite like
RSpec that's be awesome, but I'd be happy to settle for a good, solid
unit testing system.

Thanks for any advice!
 
J

Jason Scheirer

Although I'm not 100% new to Python, most of my experience using high-
level languages is with Ruby. I had a job doing Rails web development
a little ways back and I really enjoyed it. At my current workplace
though, we're looking at using Python and I'm trying to get back into
the Python "groove" as it were.

I've got plenty of materials to get me up to speed on the mechanics of
the language, but I was wondering about the equivalent of some tools I
was used to using in Ruby. If there's not anything that's a one-to-one
equivalent I totally understand, I'm just looking for some pointers
here to get me started. :)

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool? (Or do I
even need something like that? I haven't worked with any large Python
systems, just little things here and there.)

paver, virtualenv, zc.buildout
2) Gems - I've seen a bit about Eggs, but they don't seem to have
anywhere near the official status gems do for Ruby. Are there any
"package management" things like this for Python, or do you usually
just grab the code you need as-is?

easy_install or pip. Just like gems.
3) Web frameworks - yeah, I realize there are tons of these, but are
TurboGears, Django, and Zope still the big ones? I've seen a lot about
Pylons, is that a separate framework or is it a ... well, frame that
other things are built on? (TG seems to be related to Pylons at a
glance?)

Pylons is sort of a large collection of software related to web
development. Turbogears 2.0 builds on it. There is also CherryPy
(Turbogears 1.0 uses that). Django's still the big dog though.
4) Unit Test frameworks - If there's a behavioral test suite like
RSpec that's be awesome, but I'd be happy to settle for a good, solid
unit testing system.

nose, py.test
 
S

Stefaan Himpe

Hi,
1) Is there anything like a Python build tool? (Or do I
even need something like that?)

If you're going to run the python source code, you don't need anything.
Python builds what it needs automagically. Some tools exist to build
stand-alone executables though, if you'd like to do so (e.g. py2exe,
http://www.py2exe.org)
3) Web frameworks
I quite like the powerful and very intuitive and easy to use web2py
(http://www.web2py.com).

(not to be confused with the minimalist web framework web.py,
http://webpy.org).

Best regards,
Stefaan.
 
E

Emmanuel Surleau

Hi
If you're going to run the python source code, you don't need anything.
Python builds what it needs automagically. Some tools exist to build
stand-alone executables though, if you'd like to do so (e.g. py2exe,
http://www.py2exe.org)

That's not what the gentleman is looking for. Rake is a ruby version of make.
It lets you run tasks with dependencies. You use this for repetitive tasks,
administration, etc. Very convenient.
I quite like the powerful and very intuitive and easy to use web2py
(http://www.web2py.com).

(not to be confused with the minimalist web framework web.py,
http://webpy.org).

Looks interesting.

Cheers,

Emm
 
E

Emmanuel Surleau

Hi there, Ruby transfuge too.
Although I'm not 100% new to Python, most of my experience using high-
level languages is with Ruby. I had a job doing Rails web development
a little ways back and I really enjoyed it. At my current workplace
though, we're looking at using Python and I'm trying to get back into
the Python "groove" as it were.

I've got plenty of materials to get me up to speed on the mechanics of
the language, but I was wondering about the equivalent of some tools I
was used to using in Ruby. If there's not anything that's a one-to-one
equivalent I totally understand, I'm just looking for some pointers
here to get me started. :)

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool? (Or do I
even need something like that? I haven't worked with any large Python
systems, just little things here and there.)

Zed Shaw (of Mongrel fame) apparently created a pythonic rake called
Vellum. However, the website returns a 404, and the egg doesn't seem to
work. Shame.
2) Gems - I've seen a bit about Eggs, but they don't seem to have
anywhere near the official status gems do for Ruby. Are there any
"package management" things like this for Python, or do you usually
just grab the code you need as-is?

Eggs looks like gems. Except that some of them have actual documentation.
The Egg index is here: http://pypi.python.org/pypi. But I'll grant you that
easy_install doesn't have quite the list of options gem has.
3) Web frameworks - yeah, I realize there are tons of these, but are
TurboGears, Django, and Zope still the big ones? I've seen a lot about
Pylons, is that a separate framework or is it a ... well, frame that
other things are built on? (TG seems to be related to Pylons at a
glance?)

Django is kind of like the Rails of Python, while Pylons is kind of like Merb
(it integrates different frameworks to get the job done).
4) Unit Test frameworks - If there's a behavioral test suite like
RSpec that's be awesome, but I'd be happy to settle for a good, solid
unit testing system.

BDD doesn't seem to be a big focus of the Python community. No Cucumber
either :(. Have a look at Nose, it looks decent.

Cheers,

Emm
 
A

Alan G Isaac

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool? (Or do I
even need something like that? I haven't worked with any large Python
systems, just little things here and there.)

http://www.scons.org/wiki/SconsVsOtherBuildTools

Alan Isaac
 
M

Martin v. Löwis

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool?

Depends on what you want the build process to do. For Python packages
themselves, distutils/setuptools should be sufficient (and it's
extensible if you find it insufficient).

It's the defacto standard - nearly every Python package comes with
a setup.py. Use setup.py build, setup.py install, setup.py
bdist_wininst, etc.
4) Unit Test frameworks - If there's a behavioral test suite like
RSpec that's be awesome, but I'd be happy to settle for a good, solid
unit testing system.

The unittest module is in the standard library.

Regards,
Martin
 
B

blahemailblah

Thanks for the help everyone. I'll take some time to go through these
and how they all work. I appreciate the feedback. :)


Dave
 
L

laplacian42

1) Rake - is there an equivalent of Rake? I've seen a bit about SCons,
and it looks really nice, but it seems geared towards being a Make
replacement for C/C++ rather than something that's used to work with
Python itself. Is there anything like a Python build tool? (Or do I
even need something like that? I haven't worked with any large Python
systems, just little things here and there.)

If the things you need automated aren't *too* complex, you'd be remiss
if you didn't at least have a 2nd look at good old GNU make.
2) Gems - I've seen a bit about Eggs, but they don't seem to have
anywhere near the official status gems do for Ruby. Are there any
"package management" things like this for Python, or do you usually
just grab the code you need as-is?

Go have a look at the [PyPI](http://pypi.python.org/pypi) for
packages, download them, and install them using the standard distutils
`python setup.py install` command. This puts packages into your
python's `site-packages` dir.

You can also use the whole eggs/easy_install/setuptools thing, but I
prefer the simpler standard method just described.
3) Web frameworks - yeah, I realize there are tons of these, but are
TurboGears, Django, and Zope still the big ones? I've seen a lot about
Pylons, is that a separate framework or is it a ... well, frame that
other things are built on? (TG seems to be related to Pylons at a
glance?)

Django has a lot of steam.
4) Unit Test frameworks - If there's a behavioral test suite like
RSpec that's be awesome, but I'd be happy to settle for a good, solid
unit testing system.

I'd look at the standard doctest module: http://docs.python.org/library/doctest.html
 
M

Martin

Hi,

2) Gems - I've seen a bit about Eggs, but they don't seem to have
anywhere near the official status gems do for Ruby. Are there any
"package management" things like this for Python, or do you usually
just grab the code you need as-is?

On a side note: Do your friendly SysAdmin Neigboorhood a favor and either:

a) Exactly specify which eggs (or gems for ruby) you need (and their version)
b) Talk to them about wether you could get your eggs packaged

In all cases talk to them ahead of time.

(does that sound strange or what?)

We have a policy where unpackaged and untesteted software isn't
allowed. Unpackaged being no .debs available as we go with debian.
There were quite often annoyances when we refused to "just install"
stuff from gems or eggs, after quite some fighting (with the project
leaders, and C*O mainly, not so much the devs) we managed to get more
involved in the process of development and could place some requests.
It paid of in being able to keep our service levels more easily, and
only being a very minor glitch if the devs get some input beforehand
and don't have to plug monitoring features in a product never designed
to have that feature...

regards,
Martin


--
http://soup.alt.delete.co.at
http://www.xing.com/profile/Martin_Marcher
http://www.linkedin.com/in/martinmarcher

You are not free to read this message,
by doing so, you have violated my licence
and are required to urinate publicly. Thank you.

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
 
T

Tim Hoffman

Hi


For a rake alternative have a look at aap http://www.a-a-p.org/
It won't be a drop in replacement but, does provide similiar
functionality
( i have used to drive delphi, visualstudio, borland c and bunch of
other stuff
build scripts to make a complete windows desktop app) and
automagically build and deploy
60 custom plone sites - in fact all sorts of things.

There are plenty of python web frameworks, some have quite different
approaches,
what suits you will depend very much on your own bias, interest.

T
 
A

Aaron Watters

There are plenty of python web frameworks, some have quite different
approaches,
what suits you will depend very much on your own bias, interest.

I've had a lot of luck with WHIFF
( http://whiff.sourceforge.net )
Of course I wrote it and just released it publicly
recently.

I'm a bit disappointed because I know a lot of people have looked
at the docs and demos and there have been a number of downloads,
but I haven't gotten one comment yet :( zilch nada. (There is
one comment attached to one of the docs, but that was me testing
the comments feature :) ).

Back in the old days you could at least count on someone yelling
at you about how your design was such a bad idea....

-- Aaron Watters

===
HELP! HELP! I'M BEING REPRESSED!
 
G

Gerhard Häring

Aaron said:
I've had a lot of luck with WHIFF
( http://whiff.sourceforge.net )
Of course I wrote it and just released it publicly
recently.

I'm a bit disappointed because I know a lot of people have looked
at the docs and demos and there have been a number of downloads,
but I haven't gotten one comment yet :( zilch nada. (There is
one comment attached to one of the docs, but that was me testing
the comments feature :) ).

Back in the old days you could at least count on someone yelling
at you about how your design was such a bad idea....

[Just read the docs for ca. 5 minutes.]

That's perhaps because a lot of people had the same thought after short
reading/trying out as me:

WTF?! This is weird stuff! Why the hell would I use this instead of a
Python web framework like Django/Pylons/etc.

You should perhaps contrast WHIFF with the other offerings for creating
web applications.

-- Gerhard
 
A

Aaron Watters

You should perhaps contrast WHIFF with the other offerings for creating
web applications.

-- Gerhard

You're right. Thanks for visiting! I'll have to think.
Basically I don't want something which takes over the controls.
I'll have to think about a better way to explain what I mean.

-- Aaron Watters ( http://whiff.sourceforge.net )

===
Sisyphus got ripped.
 
A

Aaron Watters

WTF?! This is weird stuff! Why the hell would I use this instead of a
Python web framework like Django/Pylons/etc.

Ok folks. I've added a page:

"Whiff is cool because: How do you make a page
like this using another package?"

http://aaron.oirt.rutgers.edu/myapp/docs/W1500.whyIsWhiffCool

This doesn't compare WHIFF to Django/Pylons/etc
except to make the unsubstantiated claim that you
can't do the stuff demonstrated on the page as
easily using any other package.

The claim may be wrong, but not to my
knowledge. I'm looking forward to learning
otherwise. Please don't be too harsh.

-- Thanks, Aaron Watters

===
If all the economists in the world
were placed end to end
they'd still point in different directions.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,243
Members
46,835
Latest member
lila30

Latest Threads

Top