Help - Search - Members - Calendar
Full Version: Tools for quality software development
MandrivaUsers.org > Advanced Topics > Command Line, Kernel and Programming
Roberto Oropeza
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]
Abinash
JAVA might be your ANSWER
Roberto Oropeza
Java is good... but... I think it doesn't get the most from the computer, AFAIK, and I want a very good GUI for my product.
theYinYeti
Still, the Eclipse platform could interest you.

Yves.
iphitus
There's a million solutions. Just pick whatever programming language you like and combine it with GTK or wx.

I prefer python+pygtk, but that's purely personal preference.
Steve Scrimpshire
Pardon my ignorance, but what does this mean?
QUOTE
And I've realized I can't develop commercial-open source software without paying to Trolltech...
Roberto Oropeza
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.gif
GUI (of the result product): medium
API: medium
DB Postgres: yes
DB Firebird: no sad.gif
DB mysql: yes
ODBC: yes
RAD: medium
Performance: Good
Printable reports: don't know

wxWidgets (aka wxWindows)
Price: Free smile.gif
GUI (of the result product): medium
API: medium
DB Postgres: no
DB firebird: no sad.gif
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 smile.gif
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
neddie
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?
Roberto Oropeza
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?

QUOTE
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 smile.gif )

QUOTE
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.

QUOTE
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.

QUOTE
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.

QUOTE
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 tongue.gif , yes, that's me. Please tell me what set of tools do you like/use the most smile.gif.

QUOTE
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.gif )
neddie
QUOTE (Roberto Oropeza @ May 17 2008, 05:02 PM) *
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.

QUOTE
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.

QUOTE
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.

QUOTE
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).

QUOTE
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?
iphitus
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.
Roberto Oropeza
A long time out of here, anyway...

QUOTE
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.

QUOTE
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...

QUOTE
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... smile.gif

QUOTE
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 biggrin.gif , 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...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.