Python for a desktop app

I currently have a .NET app that I want to convert to being cross platform, as a growing number of my users want a Mac version. Since this forum doesn’t seem to like questions that are “what languages are suitable for these requirements”, I’ll focus this question on Python as the language of choice. Will Python be a good fit for the requirements below? Drawbacks?

  • Desktop app – many of my users do not have an Internet connection where they use the software, so a web app will not do
  • Object oriented
  • Store data in a relational database as well as configuration files
  • Reporting engine, preferably using templates
  • Network connectivity – Some users setup multiple workstations sharing a single data file
  • Support RS-232 serial port communications, read and write
  • Support video capture
  • Play WAV and other sound files
  • Simple app installation – too many of my users are not very computer savvy, so the easier the install the better
  • Be able to implement a demo or time-limited licensing model

I considered Java, but am hesitant being at the mercy of Oracle and many people have had security concerns about the JVM. I also considered the Mono project to keep the app in .NET, but their MoMA utility shows thousands of unsupported items. I really prefer to have just one code base to maintain, instead of one for Windows and one for Mac. Python seems to be what I keep coming back to.

For some background on myself, most of my experience has been with VB, VB.NET, C#, and Java with some dabbling in PHP/Javascript/HTML. All of my desktop experience has been with Windows.

8

You’d be surprised at how feature rich the python environment is. Going down the list, I’ll try and give feedback on each of the points.

  • Desktop app – Yes. You can write applications which require no internet connectivity to function.
  • Object oriented – Big yes. Python supports lots of fun stuff with objects, such as injecting methods into individual instances of classes. You may find some parts less intuitive though, like a lack of a scope, or interfaces.
  • Store data in a relational database as well as configuration files – Yep. You can use databases either locally or through the web. Here’s a link to some more info
  • Reporting engine, preferably using templates – A simple google search showed options of varying complexity based on what you need
  • Network connectivity – Yes, networking is fully supported. You can get down to creatig sockets if you want, or use fully formed libararies to do the lifting for you.
  • Support RS-232 serial port communications, read and write – PySerial
  • Support video capture – Video Libraries are an option
  • Play WAV and other sound files – PyAudio
  • Simple app installation – You talked about this in the comments, but you could also look into python eggs as a form of distribution, or .deb packages if you’re running debian
  • Be able to implement a demo or time-limited licensing model – This is pretty much just limiting the source code that you provide to them. This is no different than any other language in that regard though.

4

Ampt gave you a pretty nice answer, so I will just try to complement it a little bit.

AFAIK Python is precisely the type of Programming Language designed for such a program. It is widely used in Back-End. I used it for creating a plugin for a well know open source program and I can tell you is an incredible scripting and programming language. Most of the requirements you may have usually have a library that satisfies them.

It is a bit different from maybe more strongly typed languages such as Java and as Ampt said it can get a bit messy compared with the cleaner look of other languages, so you have to be ordered. But don’t worry, Python will complain with any slight error you make indenting, as, as you probably know, it depends on it in order to interpret the code.

In terms of network connectivity, I for example, used paramiko in order to make ssh connections and the experience was quite satisfying.

You must keep in mind that Python is NOT a fast executing language when compared to other languages (as you probably already know). So, it obviously has it’s better use cases. Keep in mind this when analyzing if it fits your needs.

As far as getting used to it, it doesn’t mean a problem. In fact, you would probably have more of a problem in going BACK to other languages from it, cause it is a fairly simplyfied one, the sintax it uses.

1

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật