Question

When asked to create system XYZ and you ask to do it in Python over PHP or Ruby, what are the main features you can mention when they require you to explain it?

Was it helpful?

Solution

This is one of those cases that really boil down to personal preference or situational details. If you're more comfortable and experienced with Python, then say so. Are they asking you to justify it because they're more comfortable with one of the other environments? After you're done, will the system be passed off to someone else for long-term maintenance?

If they ask you to use a technology or language that you're not as familiar with, then make sure they know up-front that it's going to take you longer.

OTHER TIPS

The best sell of Python I've ever seen was by a manager in our group who had a young daughter. He used a quote attributed to Einstein:

If you can't explain something to a six-year-old, you really don't understand it yourself.

The next few slides of his presentation demonstrated how he was able to teach his young daughter some basic Python in less than 30 minutes, with examples of the code she wrote and an explanation of what it did.

He ended the presentation with a picture of his daughter and her quote "Programming is fun!"

I would focus on Python's user friendliness and wealth of libraries and frameworks. There are also a lot of little libraries that you might not get in other languages, and would have to write yourself (i.e. How a C++ developer writes Python).

Good luck!

It's one of the preferred languages over at Google - It's several years ahead of Ruby in terms of "maturity" (what ever that really means - but managers like that). Since it's prefered by Google you can also run it on the Google App Engine.

Mircosoft is also embracing Python, and will have a v2.0 of IronPython coming out shortly. They are working on a Ruby implementation as well, but the Python version is way ahead, and is actually "ready for primetime". That give you the possibility for easy integration with .NET code, as well as being able to write client side RIAs in Python when Silverlight 2 ships.

Focus on the shorter time needed for development/prototype and possibly easier maintenance (none of this may apply against Ruby).

I would consider that using python on a new project is completely dependent on what problem you are trying to solve with python. If you want someone to agree with you that you should use python, then show them how python's features apply specifically to that problem.

In the case of web development with python, talk about WSGI and other web libraries and frameworks you could use that would make your life easier. One note for python is that most of the frameworks for python web development can be plugged right into any current project. With ruby on rails, you're practically working in a DSL that anyone who uses your project will have to learn. If they know python, then they can figure out what you are doing with django, etc in a day.

I'm only talking about web development because it appears that's what you are going to be working on seeing ruby, python and PHP in the same list. The real message that's important is applying to whatever it is you like about python directly to some problem you are trying to solve.

Give them a snippet of code in each (no more than a page) that performs some cool function that they will like. (e.g show outliers in a data set).

Show them each page. One in PHP, Ruby and Python.

Ask them which they find easiest to understand/read.

Tell them thats why you want to use Python. It's easier to read if you've not written it, more manageable, less buggy and quicker to build features because it is the most elegant (pythonic)

I agree with mreggen. Tell them by working in Python you can get things done faster. Getting things done faster possibly means money saved by the client. In the least it means that you are working with a language you a more comfortable in, meaning faster development, debugging, and refactoring time. There will be less time spent looking up documentation on what function to use to find the length of a string, etc.

Though All 3 languages are versatile and used worldwide by programmers, Python still have some advantages over the other two. Like From my personal experience :-

  1. Non-programmers love it (most of 'em choose Python as their first computer language,check this infographic php vs python vs ruby here)
  2. Multiple frameworks (You can automate your system tasks, can develop apps for web and windows/mac/android OSes)
  3. Making OpenCV apps easily than MATLAB
  4. Testing done easy (you can work on Selenium for all kind of web testing)

OOPS concepts are followed by most languages now , so how come Python can stay behind! Inheritance, Abstraction and Encapsulation are followed by Python as well.

Python as of now is divided into two versions popularly that are not much different in terms of performance but features. Python2.x and Python 3.x both have same syntax ,except for some statements like :-

  1. print "..." in Python2.x and print() in Python3.x
  2. raw_input() in Python2.x and input() in Python3.x (for getting user input)

In the end, client only cares about money and Python helps you save a lot as compared to PHP and Ruby , because instead of hiring experienced programmers , you can make a newbie learn and use Python expertly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top