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.
Best Answer
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.