Python, Ruby experiences?

Posts   
 
    
csmac3144
User
Posts: 74
Joined: 12-Sep-2007
# Posted on: 29-Jul-2008 03:17:36   

I am a complete LLBLgen fanboy for .Net data-driven development. Nothing else even comes close, productivity wise (and I evaluated the competition pretty carefully).

Speaking of productivity, I've heard many times that languages like Ruby and Python are substantially more productive than java, and somewhat more productive than C#/VB.Net. Does anyone here have real-world experience with these languages? I'm particularly interested in a truly "open" variant which could run, for example, on Amazon's elastic compute cloud (i.e., under Linux, so I'm not interested in IronPython right now). I'm also very interested to hear how these languages fare in real industrial-strength apps (not simple RoR, ActiveRecord stuff -- real apps requiring a true domain/business object layer). What ORM tools have you used? How do they compare with LLBLgen Pro?

I have no plans to abandon .Net, however I do suspect a truly open source, modern stack is a good secondary option for certain projects.

Oh, I'm also not interested in flame wars (not that we see many of those here smile ).

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 30-Jul-2008 19:11:47   

Hey, Our core products are in ASP.NET using LLBLGEN. I just finished revamping my companies website in RoR (http://www.mission3.com/) There is some simple logic implemented in it, and a set of admin interfaces, etc. ActiveRecord is OK, it can get the quick and dirty job done really fast (which is great for that site).

For Python, I use http://www.sqlalchemy.org/. From a usability standpoint: This framework is almost as good as LLBLGen. I use it for some internal Python scripts (running on cron jobs). I have also worked with DJango's home built ORM, when I built guildreport.com. SQLAlchemy is the clear winner if you choose Python (It is the default ORM for Pylons, and Turbogears is switching over to it). I am pretty sure that Edgewall/Trac use SQLAlchemy as well (don't quote me on that). SQLAlchemy's support for SQL server is excellent (I submitted a ticket and it was fixed for the next release, very quickly).

I can work very quickly in Ruby and Python. If a new feature comes up for the site I can hammer it out very fast, usually less than an hour. If I need utility applications internally I usually pick Python, it has a very nice standard library and the code is very easy to maintain. I have a Python script set to monitor all of our .NET applications, and send out email notification if anything goes down (critical to our business), a set of scripts to pull customer statistics into our portal database (uses Python and SQLAlchemy), log parsing scripts (IIS, CISCO PIX Firewall, email extracting from HTML), and more.

csmac3144
User
Posts: 74
Joined: 12-Sep-2007
# Posted on: 30-Jul-2008 21:03:27   

Skeeterbug:

Thanks for the feedback.

What would make you choose .Net over Ruby/Python for a serious line-of-business app? Are the dynamic languages (and their infrastructure) able to scale the way J2EE and .Net can?

Are you aware of http://www.sapphiresteel.com/ which implements a full Ruby IDE within VS.Net (however it is not an implementation of Ruby on .Net, as is IronRuby).

Any experience with things like mixins and other exotica? I can think of many areas where these dynamic features would have made life much easier.

Seth avatar
Seth
User
Posts: 204
Joined: 25-Mar-2006
# Posted on: 30-Jul-2008 22:31:29   

I've successfully embedded a run-time python interpreter into my winform apps (using IronPython) that has full access to the DAL generated by LLBLGen. It is rather handy for testing stuff while in production.

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 30-Jul-2008 23:18:36   

csmac3144 wrote:

Skeeterbug:

Thanks for the feedback.

You are welcome.

csmac3144 wrote:

What would make you choose .Net over Ruby/Python for a serious line-of-business app? Are the dynamic languages (and their infrastructure) able to scale the way J2EE and .Net can?

I was hired in my current position before I ever started with Python or Ruby. So I took a position has a lead developer on the .NET platform (we outsource a lot of our coding to Peru). Now having nearly 3 years of experience in Ruby and Python, I would absolutely go with them. The Python/Ruby solutions can scale just as well and have great support for interfacing with C/C++ if you need the raw speed.

csmac3144 wrote:

Are you aware of http://www.sapphiresteel.com/ which implements a full Ruby IDE within VS.Net (however it is not an implementation of Ruby on .Net, as is IronRuby).

I use RadRails for RoR development (now Aptana). This is Eclipsed based and has a superior html and css editor. You can also jump between controller/view via ctrl-shift-r. I hate working with ASP.NET on VS 2005.

csmac3144 wrote:

Any experience with things like mixins and other exotica? I can think of many areas where these dynamic features would have made life much easier.

Ruby on Rails is possible because of those cool dynamic features. All of those nifty Active Record methods are generated at run time. You are also free to code without worrying about type checking and it is very easy to introspect objects. I can also open up my Python file with IDLE (awesome light weight editor) and make quick edits. Example:


class Foo(object):
    """
    Test Foo Class - Doesn't do anything
    """
    def __init__(self):
        self.name = "Foo"
        
    def bar(self):
        print "%s - bar() called" % self.name

if __name__ == "__main__":
    foo = Foo()
    foo.bar()
    # Assing instance method to temp
    temp = foo.bar
    temp() # Same as foo.bar()
    print "Name is: %s" % foo.name
    # Print code doc
    print foo.__doc__

You can add this to any python file, and run it stand alone. This makes developing and executing functionality of each class/module very quick and easy. Unit testing is part of the Python standard library.

csmac3144
User
Posts: 74
Joined: 12-Sep-2007
# Posted on: 31-Jul-2008 03:32:51   

Skeeterbug:

Well you've given me lot to think about. My problem at present is that none of my clients would currently consider a dynamic language for anything serious. I have a hard enough time convincing some of them to use the "risky" .Net platform over "safe" java simple_smile

I've seen Aptana before and was very impressed.

Have you ever tried Komodo? Is it worth the $200 versus the Eclipse versions?

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 31-Jul-2008 18:40:15   

csmac3144 wrote:

Skeeterbug:

Well you've given me lot to think about. My problem at present is that none of my clients would currently consider a dynamic language for anything serious. I have a hard enough time convincing some of them to use the "risky" .Net platform over "safe" java simple_smile

I've seen Aptana before and was very impressed.

Have you ever tried Komodo? Is it worth the $200 versus the Eclipse versions?

I tried the free version of Komodo very briefly, so I can't comment on it. If you have trouble with your clients, redirect them here: http://python.org/about/quotes/ or here: http://python.org/about/success/. Google also hired Guido van Rossum, the author and overseer of Python. It should give you an idea how important Python is to Google. smile