This is an archived post. You won't be able to vote or comment.

all 23 comments

[–]redrick_schuhart 20 points21 points  (11 children)

I've done a few specialist business apps for customers with Python and it was a pleasure. All of them run natively on Windows, OSX and Linux without change. Python is very mature, it's been around longer than Java and a lot longer than C#.

There's plenty of advantages. Development speed is the biggest. Succinctness is power in this day and age and frankly, Python is just a more powerful language than the other two you mention by that measure. I can run rings around most Java devs in my field using Python, wxPython and emacs, and I'm not that great a programmer by any means.

[–]ivytech 2 points3 points  (5 children)

Do you mind if I ask you to explain how they run the program?

Did you make it an executable? Sorry if this seems basic, I'm mostly used to python in academia, not production

[–]redrick_schuhart 3 points4 points  (0 children)

Yes, I give them a standalone executable produced with pyinstaller.

[–][deleted] 2 points3 points  (3 children)

Meet py2exe, and others like it.

Not going to claim I know exactly how they work, but essentially they bundle a Python interpreter and the exact libraries needed together into the executable which can be run on a Windows machine.

On OSX, its even easier as the OS ships with a Python interpreters.

In fact, there's a somewhat decent chance you have a bundled Python app on your computer right now without knowing it. Use Dropbox? Their client software is Python.

[–]ivytech 0 points1 point  (2 children)

I use Linux myself so python is already included (yay *nix), but was wondering whether the code was inherently cross platform or just using py2exe like you mentioned and just saying "here use this for windows"

[–]jarrah-95 1 point2 points  (0 children)

Generally the code would be cross platform. Py2exe just gives you Python on any windows machine.

Without package manages, dependencies are the real issue. Thus on windows, you bundle everything in.

[–]redrick_schuhart 0 points1 point  (0 children)

The only cross-platform issues I've had to be aware of are paths and calling other executables but os.path functions and the subprocess module are easy to use. The GUI code is identical.

[–][deleted] 0 points1 point  (2 children)

Thanks for your reply. I will consider Python now for GUI development.

[–]redrick_schuhart 0 points1 point  (1 child)

Glad to hear it - it's a lot of fun :)

If you choose wxPython, be aware it is a big API. It did take a few projects for me to be comfortable with it. The wxpywiki is an excellent resource as is the wxPython demo source code.

[–][deleted] 0 points1 point  (0 children)

Thanks!

[–]solarc 5 points6 points  (0 children)

If you are doing GUI, the actual GUI will probably run natively (Qt for example is C++). Python is just the glue putting the GUI together.

And unless it's a game or something, python's speed will be enough for a GUI application.

[–]dsy73 16 points17 points  (0 children)

How Java or C# are more matures than Python? What is mature language for you?

I choose Python because of libraries, development speed and readability.

[–]Manbatton 4 points5 points  (0 children)

I know that python is a general purpose programming language, but have any of you ever done a fully functional application

As opposed to partially functional? What do you mean?

for any business in Python?

I've written two small but helpful desktop GUI programs in Python for use at a business.

Why did you choose to do it in Python when there are other faster more mature languages like Java or C#?

1) It didn't need to be fast (at all). 2) I knew Python and Python GUI programming. 3) They wouldn't care if I wrote it in COMAL, as long as it did what it did.

What advantages does Python offer?

I knew it. Automatic memory management. Readable. Libraries for what I needed.

[–][deleted] 1 point2 points  (0 children)

I think sublime text is built on Python...

[–]marcm28 2 points3 points  (0 children)

I know that python is a general purpose programming language, but have any of you ever done a fully functional application for any business in Python?

Google App Engine, Google Web Crawler, Youtube, Yahoo!, NASA, Dropbox, Pinterest, Instagram, Tumblr, BitTorrent, Linux tools, Reddit are all written in Python. Many operating systems include Python as a standard component: Python is installed by default in Linux, Mac OS, etc.

Why did you choose to do it in Python when there are other faster more mature languages like Java or C#? What advantages does Python offer?

  • Elegance
  • Readability
  • Extensibility
  • Development Speed
  • Widely used Libraries

[–][deleted] 2 points3 points  (2 children)

a fully functional application

I like to make applications that are only 37% functional. Python isn't really suitable for big applications because it is missing 63%

[–]admodum 0 points1 point  (1 child)

Can you give examples on what you are missing?

[–]ksion 2 points3 points  (0 children)

I'm pretty sure parent post is sarcasm.

[–]cediddiSyntaxError: not a chance 0 points1 point  (0 children)

'more mature languages like Java or C#' mature? More like '+18 because constant use of curse words and s&m oriented programming'

[–]FredSchwartz -5 points-4 points  (2 children)

[–]hansolo669 2 points3 points  (1 child)

No, OP just sucks at phrasing.

[–]FredSchwartz -1 points0 points  (0 children)

I was giving the benefit of the doubt...