views:

132

answers:

5

I have a pawnshop CRUD app written 20 years ago with INFORMIX-SQL/SE (DOS) which is currently running on DOS 6.22 within Microsoft Virtual PC 2007 on Windows Vista. I would like to modernize this app with a GUI, SQL-based engine and retain its existing functionality. It doesn't require any networking or multi-user capability. I would prefer a product which is royalty-free.

I also would like to quickly re-write it with as little effort possible. Which tool would you recommend?

I'm debating whether to re-write my INFORMIX-SQL app with I4GL (character-based) or another Windows/GUI-based tool.

My app is very robust and has some incredible features which my users are very happy with. Only obstacle which is keeping me from effectively acheiving market penetration is, believe it, my app is char-based and I would like to duplicate the same functionality with a GUI. My feeling is that its quicker for a user to process a transaction with my char-based app vs. having to focus a cursor with a mouse, but cosmetics is hurting me!

I would like to know specific instances of limitations, bugs or drawbacks of using another development tool before I invest considerable amount of time evaling another product. Answers to this question could save me a lot of time and money!

If you visit www.frankcomputer.com you can view a video-demo of my pawnshop app. (CAVEAT: The website's in Spanish, use google translate to get a more-or-less decent translation of the text. Start the video at the two-minute mark, with 720p resolution and full-screen to best comprehend my app.)

+1  A: 

Choose whatever language and technology is easiest for you. If you need DB access and a short lead time it sounds like Java or Visual Basic would be best. Both have plenty of free tools to get you started.

Jherico
I'm familiar with C# and VB, but feel that using these langs would take a long time to re-write and future mods. Are there any 4GL's or code generators out there that could accomplish what I need?..or should I eval Access, Oracle APEX, etc.?
Frank Computer
+3  A: 

If I were doing it, I would probably choose to write a WPF GUI in C# with a SQL Server Express backend database. An embedded database like SQLite might work as well. But the main reason I would choose that is because that's what I'm most familiar with. Someone else would likely choose something else...

I might also choose ASP.NET MVC and make it a web application if that were an option (you say that multi-user is not required, but I say it's not required yet).

Also, if you're not the one who's going to be developing it (i.e. you're going to hire someone to build it for you) then I would say that you should find the developer first and let them choose (or at least have a say in) the technology. If you choose the technology up-front then you're simply limiting the field of developers who'll be able to work with you and there's really not much point in that.

Dean Harding
+1. SQL Server Express is free, and all the Visual Studio Express editions are free.
p.campbell
I'm familiar with C# and VB, but feel that using these langs would take a long time to re-write and future mods. Are there any 4GL's or code generators out there that could accomplish what I need?..or should I eval Access, Oracle APEX, etc.?
Frank Computer
+1  A: 

The top languages tags in StackOverflow are C# (by a long margin), then Java, PHP and DotNet, followed by C++ and Python. Some of that will be skewed by the Joel & Jeff origin of the site, but any of those is more than capable of the task. Personally, I'd go with Java or Python but I don't like being tied to the Microsoft stack.

wxWidgets and QT might be options for the GUI components.

Of the databases, mysql, SQL Server Express or Oracle Express Edition are all free and robust. SQLite is good enough for most single user applications though. I'd put this at the bottom of the 'importance' list. For small-scale single user apps, you should be able to chop and change DB platforms without much hassle. The biggest relevance would be in how you actually backup/copy/restore data in the event of disk failure or corruption.

Gary
I'm familiar with C# and VB, but feel that using these langs would take a long time to re-write and future mods. Are there any 4GL's or code generators out there that could accomplish what I need?..or should I eval Access, Oracle APEX, etc.?
Frank Computer
The literature is fairly consistent in that design and testing components consume the majority of the time to produce a product. Coding time is *relatively* small. I suggest you research/post a question on the lines of "I am considering developing a PC-based application. A screen might have between Y and Z fields, mostly text/numbers, with data stored to postgres/mysql.... I am looking at language ####. What would be a reasonable estimate to develop such a screen assuming the design is complete."Or simply benchmark/test developing such a screen for yourself.
Gary
@Gary: Well, my feeling is that if I use 3GL langs like C#, VB, or any other OOPL It's going to take me a long time to re-write this app so perhaps I could shorten the development effort with a 4GL?.. then, which 4GL would you recommend?
Frank Computer
I wouldn't. 4GL has basically died and MVC is the new architecture model - separation of presentation from business logic. IDEs, frameworks and libraries for mainstream languages deliver the same productivity for development as with 4GL's, with the added benefit of integration to heavily used automated testing tools.
Gary
+3  A: 

I'd recommend you use Python with a PostgreSQL backend. Now some will think this is overkill, but after watching your video and reading your site (I had to use a translator), I suspect the added flexibility is something you will truly enjoy by going this route.

The reasons I'd argue for this solution are:

  1. Python and PostgreSQL are both great products with amazing communities when you need them.
  2. Both products have a bright outlook in their development paths. Since you obviously spent a lot of time and effort tweaking SPACE, I'm betting you will do the same over the next 40 years. So, the tools you choose now need to be there for you as you continue your development cycle.
  3. They are both free with friendly licenses.
  4. Cross-platform support.
  5. Scalability. You can use PostgreSQL installed locally and connect via socket or scale it all the way up to several servers using load balanced connection pooling.
  6. Security.
  7. Data integrity. This includes how easy it is to make your whole environment easy to backup and thus easy to restore in the event of a catastrophe.

Whatever tools you end up choosing. I wish you the best in this project. I can tell you are working on something you truly love and that is something more of us should strive for!!

a2j
@a2j: I'm familiar with C# and VB, but feel that using these langs would take a long time to re-write and future mods. Are there any 4GL's or code generators out there that could accomplish what I need?..or should I eval Access, Oracle APEX, etc.?
Frank Computer
@Frank Computer: I'm sorry if I'm missing something that should be obvious to me, but I really don't understand what you are getting at in this follow-up. My mind wants to start guessing, but rather than go off in a direction that provides you no value, I decided to just ask for clarification. Sorry if it's real obvious, but I'm just not seeing it.
a2j
@a2j: Well, my feeling is that if I use 3GL langs like C#, VB, or any other OOPL It's going to take me a long time to re-write this app so perhaps I could shorten the development effort with a 4GL?.. then, which 4GL would you recommend?
Frank Computer
@Frank Computer: I think to some degree what you are asking ends up coming down to a matter of personal preference. You know that gives an answer will have a different one. I gave you my analysis of the situation in the first answer above. Trying to fit with what I see as your primary issues I think you want to address which are: 1. Low cost. 2. Highly productive. 3. Technology that will continue to be viable for more than 10 years. 4. Scalability in case the direction of the project grows.Obviously you did an amazing job with SPACE. It looks to me like your biggest concern now can...
a2j
...answered by taking a few hours and downloading the products suggested. Read a few chapters in the tutorials on how to use them. See if you believe in them once you have seen them in action. For this purpose I'll direct you to a couple of resources: http://docs.python.org/py3k/tutorial/ http://en.wikiversity.org/wiki/Python http://www.postgresql.org/docs/ http://momjian.us/main/presentations/project.html Please let me know any additional things these sites bring up for you. I picked them because I think they will help you decide what direction to go, but once you decide, I can help further.
a2j
+1  A: 

Based upon your answers and your emphasis upon time to make the changes and that you don't seem to want to change the Application at all but it is being forced upon you by then you should certainly evaluate Genero from 4js.

This will allow you to utilise your existing code but provide a nicer looking front-end. You can also maintain a single codebase supporting both character and "Gui" clients.

Steve Weet