Jump to content

Tools for quality software development


Recommended Posts

I would like my next customers to use mandriva, so I would like to aim my next software project to mandriva, but I've been using MS platform for development and deployment since a while.

 

I would like to know if are there any development tools whith features like:

- Able to produce printable reports.

- Easy connection with databases (Firebird and Postgress)

- GUI designers.

- General support tools/plug-ins

 

I've found Qt but I think there must be other options too. (And I've realized I can't develop commercial-open source software without paying to Trolltech...)

 

Thanks a lot!

 

 

[moved from Software by spinynorman]

Link to comment
Share on other sites

Yap, I've read the Qt license and it says that you can only develop open and free software if you don't pay Trolltech

 

You have to purchase the commercial version if you want create open software or commercial software, I was very surprised, too!

 

Also, I would prefer to develop in C++, but alternatives are welcome. My software have to be able to work with firebird. Postgres and mysql would be good too. I want to create applications as soon as posible. And I need to print reports too.

 

It has to let me make great GUIs too. (i.e. flashy... candy eye).

 

I would prefer avoid Java because multiplatform is not a requierement, so I would prefer not to sacrifice speed.

 

KDevelop + Qt

Price: high :sad:

GUI (of the result product): medium

API: medium

DB Postgres: yes

DB Firebird: no :sad:

DB mysql: yes

ODBC: yes

RAD: medium

Performance: Good

Printable reports: don't know

 

wxWidgets (aka wxWindows)

Price: Free :)

GUI (of the result product): medium

API: medium

DB Postgres: no

DB firebird: no :sad:

DB Mysql: no

ODBC: yes

RAD: no

Performance: Good

Printable reports: don't know

JavaEE + Eclipse

Price: ( 100$ year/developer ? ) cheap

GUI (of the result product): medium

API: good

DB Postgres: don't know

DB firebird: don't know

DB Mysql: don't know

ODBC: Yes

RAD: yes :)

Performance: Medium

Printable reports: don't know

 

Thanks, please tell me wchich set of tools do you recommend me, and correct me if I am wrong. Thanks

Edited by Roberto Oropeza
Link to comment
Share on other sites

You seem to be bundling together three things in your evaluation

- IDE for development (eclipse, kdevelop, anjuta)

- language of code (java, C++, python, ...)

- widget library (AWT, SWT, Qt, Gtk, ...)

 

But you can develop C++ with eclipse, you can use SWT with java, there are lots of possibilities. All your database questions are down to the language, not the IDE or the widget library.

 

I'm not sure what you mean by "printing reports", I'm guessing you just need to generate a pdf or word doc and let that do the printing, right?

And I'd question your statement for java - "Price: ( 100$ year/developer ? ) cheap". Eclipse is free, the java SDK is free, what is the 100$/year for? As far as I know you don't have to buy a license to sell java programs.

 

Also what do you mean by "RAD" - the ability to do a quick prototype or the ability to have a team working simultaneously on the project?

 

And C++/Qt can for sure talk to Postgres and Mysql, there are bundles of programs doing just that. I don't think connecting to those databases will be a problem for any of your options. I know nothing about Firebird but a few seconds with wiki tells me that it supports C++, java, perl, python, and I'm guessing anything else which supports odbc.

 

I think the criteria you've got are more like this:

IDE - cost, maturity/stability, features

language - speed of development (for you and/or team), libraries

widgets - cost, looks, design tools

 

I think speed of execution is a factor but probably much less important than you think. Is it going to take you 2 weeks to develop in Visual Basic but 6 months in Python?

If "flashy guis" is a priority, then just look at the open source projects which you consider "flashy" (digikam? stellarium? blender?) and see what they use. Maybe the standard widget libraries aren't flashy enough...

 

And about the Qt licence, is the software you're going to produce going to be open but not free? Does that mean, you will sell it but also sell the source code including rights to modify and redistribute? Seems to me like you'll sell one version and then find the source legally and freely redistributed, no?

Link to comment
Share on other sites

Thanks a lot, Yes, I'm bundling a lot of things, but this is because I care about them all. And I don't know exactly which is what, e.g, Qt also have an IDE for GUI design, isn't it?

 

I'm not sure what you mean by "printing reports", I'm guessing you just need to generate a pdf or word doc and let that do the printing, right?

Oh, and by printing reports I mean to make a query to my database and fill a report with its data, would be better if my user doesn't have to deal with opening another application to print her report, (some of my users are usaurious :) )

 

But you can develop C++ with eclipse, you can use SWT with java, there are lots of possibilities. All your database questions are down to the language, not the IDE or the widget library.

Perhaps there are many possibilities, which is good, I want the best of all!, which one would you choose?, please tell me. Remember I come from where the vendors try to put everything in one package: IDE + Language + Library, even DB, so when I think of mixing things I get a little confused, and with so many choices I would like to start with a good mix, and then switch one or two things. Otherwise I would have to test it all... I would like, but I don't have much time.

 

And I'd question your statement for java - "Price: ( 100$ year/developer ? ) cheap". Eclipse is free, the java SDK is free, what is the 100$/year for? As far as I know you don't have to buy a license to sell java programs.

Once I saw a full-page publicity which stated just that, I wasn't interested in java by the time, what was the meaning?, I don't know. I think JavaEE is not free, do I need JavaEE to talk to my database?, I don't know.

 

By RAD I mean Rapid Application Development, I don't care too much about team development.

 

And C++/Qt can for sure talk to Postgres and Mysql, there are bundles of programs doing just that. I don't think connecting to those databases will be a problem for any of your options. I know nothing about Firebird but a few seconds with wiki tells me that it supports C++, java, perl, python, and I'm guessing anything else which supports odbc.

So I'll better correct this information on my previous post.

 

I think the criteria you've got are more like this:

IDE - cost, maturity/stability, features

language - speed of development (for you and/or team), libraries

widgets - cost, looks, design tools

I'm so noobie that I don't know which criteria I have :P , yes, that's me. Please tell me what set of tools do you like/use the most :).

 

And about the Qt licence, is the software you're going to produce going to be open but not free? Does that mean, you will sell it but also sell the source code including rights to modify and redistribute? Seems to me like you'll sell one version and then find the source legally and freely redistributed, no?

Nope, this one I disagree, Trolltech is very clear about not selling commercial software with the free version of Qt, they don't care if it is open source or not. Once you get some money using their library, you should be using the commercial version of their product... I am not a lawyer, but it seems pretty clear for me from their license text and their web page... if you (or someone) is really sure it is not like that, for sure, please let me know.

 

Thanks a lot, please keep giving me set of tools which I should use. (by the way, this is the longest post I've ever wrote :mellow: )

Link to comment
Share on other sites

Qt also have an IDE for GUI design, isn't it?
Qt has a gui designer application, yes. But it generates code which you can then use in the IDE of your choice. It's not a complete IDE by itself.

 

Otherwise I would have to test it all... I would like, but I don't have much time.
If you're short of time, one heavy criterion is what you already know. Do you already know any C++? Java? VB? Sometihng else? That's for sure the best starting point if you're in a hurry.

 

I think JavaEE is not free, do I need JavaEE to talk to my database?, I don't know.
I might be wrong but I think you can develop J2EE applications for free and deploy them onto something like Tomcat / Apache for free. But it doesn't sound like you need the Enterprise bits, no. Developing and deploying a standard java app won't cost you anything - but if you want to deploy the runtime too you'll have to look at the licensing rules. Or just deploy your app and say that they need to get the JRE from somewhere else.

 

By RAD I mean Rapid Application Development, I don't care too much about team development.
You can develop quickly in any language. Some (eg VB) are more suited to quick prototyping than others (eg C).

 

Trolltech is very clear about not selling commercial software with the free version of Qt, they don't care if it is open source or not. Once you get some money using their library, you should be using the commercial version of their product...
So let me get this right - you want to release your software as open source (for example, using the GPL), and at the same time charge money for it? This was my earlier question, you can certainly sell things you've released under the GPL, but under the terms of the GPL the person you sold it to has every legal right to just give it away to anyone for free, publish it on the internet, etc etc. They could give it to Mandriva and they could package it in the repositories if they wanted, because you've allowed them to do this with the GPL licence - Is this what you're intending to do?

Or are you really wanting to keep it closed-source and sell the compiled code as a product?

Link to comment
Share on other sites

You're getting a lot mixed up here. Many of the things you list are usable from a range of programming languages. And chances are, most of those programming lanuages have support for all of the things you want.

 

Linux is slightly different... generally tools do one thing and do it well, so there aren't many big all in one "RAD" solutions -- they don't make sense.

 

For example, I use:

Editor: Gvim

Language: Python

UI Toolkit: pyGTK

Databases: sqlite, but mysql and all the others are available

UI designer: Anything GTK can use Glade

 

Rapid development? Extremely! I can write simple but useful applications in an afternoon easily.

 

In the above, you could easily substitude any of those. You could use nano, emacs, kdevelop, gedit, kate or any other editor. For language, there's C, Ruby, Perl, etc. Toolkit, slighly less option, but still GTK and wxWidgets.

 

So there's an incredible range answers to what you're looking for. You just need to evaluate what you really need in terms of a programming environment depending on your skill level and the actual task at hand.

Link to comment
Share on other sites

A long time out of here, anyway...

 

So let me get this right - you want to release your software as open source (for example, using the GPL), and at the same time charge money for it?

Yes, but not using GNU GPL, my clients are not allowed to sell or give my product to, but they can explore, verify, or modify the product any way they like. It is free like speech, not like beer.

 

If you're short of time, one heavy criterion is what you already know. Do you already know any C++? Java? VB? Sometihng else? That's for sure the best starting point if you're in a hurry.

 

Ok, I'm quite good in C++ with Borland VCL library, I've developed large command-line programs in Python (one of those helps me to generate nice PHP menu based applications for the web), I'm good in C#, but not as much as in C++, and only developed two not-so-difficult nor big commercial applications. I know Java, but just developed test programs. I'm good in PHP too...

 

I've used wxWidget for testing a year ago, and is quite difficult for me, and slow to compile. I'm wondering how easier it can be in Python (wxPython) (I've already installed wxGTK 2 and I am about to compile wxPython against it)

 

I think Java would be good, but I also dislike the look and feel of Java applications, and one big "motivation" to move my product to mandriva is the useful candy-eye...

 

Linux is slightly different... generally tools do one thing and do it well, so there aren't many big all in one "RAD" solutions -- they don't make sense.

OK, I am about to feel how good it can be, I'll tell you when I finish my project... :)

 

For example, I use:

Editor: Gvim

Language: Python

UI Toolkit: pyGTK

Databases: sqlite, but mysql and all the others are available

UI designer: Anything GTK can use Glade

 

Thanks :D , great, I'm about to test Kwrite + Python + wxPython, I'll watch pyGTK later, but I think it must be harder than wxWidgets... isn't it? I'll see if I can find a good tutorial...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...