Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I developed a client/server application with PowerBuilder in the past for medical clinics and done maintenance for it until now.

Now, some clients are asking me to develop a release for Mac/Linux and need some advice about what programming language/technology is best suited for it and the learning curve.

It’s not a very very big program but I’m the only developer and have done it in my spare time. PowerBuilder is very productive for this kind of projects (database centric), but it’s not multiplatform and it’s hard to sell PowerBuilder application now days (web, .NET, java sells a lot better with his marketing).

My programming skills:

  • I studied C and C++ in the past (university) but never used it on real projects
  • Have some Java experience but not in desktop applications
  • Some experience with Ruby on Rails for web projects
  • Good skills with PowerBuilder and C# (.NET) (there are my main developing languages)

My first dilemma is if I change the desktop application to a web interface, but I think the user will lose some user-experience, and some doctors don’t have a clinic (they are alone at home with my software). I think installing a web application (with webserver) for one user will be overwhelming.

If I continue developing desktop application, what is at the moment a good framework/toolset to learn having my skills?

Somebody has had similar experiences?

share|improve this question

closed as off topic by Ryathal, Walter, gnat, maple_shaft Jun 29 '12 at 12:21

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Please re-read to the FAQ where it states which questions are not appropriate to ask here. what language you should learn next, including which technology is better –  maple_shaft Jun 29 '12 at 12:23
add comment

4 Answers

I did 10 years on Powerbuilder (v1 thru to v7). From v5 we did a lot of work with their web environment and addressed the Mac/Linux requests by going thin client. We eventually migrated the application to Java/Tomcat/Struts and 100% thin client.

If I had to do it today I'd look at Java with Spring. Wavemaker, also supported by VMWare, is a surprisingly close to Powerbuilder and the Datawindow. (BTW, I'm a java guy, I know nothing about tools available for C#)

You can ship a browser based application to run on a standalone computer, the browser points back at the computer. Or bundle it all up as a VM.

share|improve this answer
add comment

Delphi might be a suitable candidate for you, as it now supports Mac development. Its used quite a bit in vertical market software such as yours. Particularly with the newer editions of Delphi, they've made some effort to make the VCL (the class framework) more 'familiar' to .NET programmers.

You would, though, want to check that their x-platform GUI meets your requirements, as it doesnt use native widgets. If you need a 'pure' Mac interface, it may not suit.

share|improve this answer
add comment

If you're not averse to spending money, Servoy might be a fit. You can develop in Javascript in Eclipse with a proper UI designer and full ORM functionality and the same solution can be run as a desktop Java application or in a browser. When running in the browser it's AJAX, HTML, CSS and some Javascript, all the logic runs on the server and there are no browser plugins so it's very cross-platform.

It uses a familiar stack - Tomcat, Wicket, Hibernate, Rhino and Java of course.

share|improve this answer
add comment

Your requirements are:

  • cross-platform support
  • stand-alone system (no external server required)
  • "reasonably good" GUI libraries available / included
  • database connectivity will be required

You have limited skills with Java, C, and C++, so they are presumably lower on your list.

I would consider either:

  • C# with the Mono Project to help guarantee portability.
  • Silverlight is another platform that might meet your requirements. It is built on top of .NET technologies however the Linux implementation of Silverlight, known as Moonlight, was recently abandoned by the Mono team.

Moonlight is still available, but Xamarin won't be developing it. The main Moonlight page has not been updated based upon that interview.

Silverlight will give you the ability to run an application within a browser, but not require a web server for the back-end. In other words, everything can be local.

I'm pretty down on PowerBuilder as I think its UI capabilities are horrible. With that bias out in the open, either of those two platforms will have a much more visually appealing UI than what PB can offer.

You could also (re-)write the application in Java. There are tons of references out there for solid UI work in Java, and it meets all of your other requirements. The only downside is you aren't as familiar with it.

I would encourage you to reflect upon what platforms you truly need to support. In my region, very few medical offices are running Linux for a desktop. It's primarily Windows with the occasional Mac. C# and / or Silverlight would give you an excellent UI refresh on the Windows platform, and portability to Mac. Microsoft continues to provide Silverlight for Mac.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.