Free software projects in Java or C++

Free software projects in Java or C++

Shlomi Fish shlomif at iglu.org.il
Sat Dec 26 15:45:23 IST 2009


On Saturday 26 Dec 2009 15:09:36 Micha wrote:
> On 26/12/2009 10:05, Uri Even-Chen wrote:
> > On Sat, Dec 26, 2009 at 9:51 AM, Oron Peled<oron at actcom.co.il>  wrote:
> >> On Friday, 25 בDecember 2009 23:38:38 Uri Even-Chen wrote:
> >>> A friend of mine suggested me to join a free software (open source)
> >>> project in Java or C++, to gain experience in these languages.
> >>
> >> Your friend gave you a good advice. However, please note that usually
> >> there is no *immediate* reward. It's not like a (free software) newbie
> >> joins a project and three months later he is swamped with job requests.
> >>
> >> Working on a free software project tend to increase your capabilities
> >> by exposing you to different technologies and working styles. On the
> >> long run (years), this can bring you not only fun, but work as well.
> >
> > Thanks for your advice.
> >
> >>> Do you have an idea how to find a good project I can join, in Java or
> >>> C++ or maybe Python?
> >>
> >> There are many sites hosting free software projects. Some of them:
> >>   www.sourceforge.net
> >>   savannah.gnu.org
> >>   gna.org
> >>   github.com
> >>
> >> Since you used some scripting languages in the past (PHP), it looks
> >> like python would provide easier learning curve for you.
> >
> > I personally prefer compiled programming languages than scripting
> > ones.  I have experience with both, Pascal and C vs. Basic and PHP and
> > Perl.  I want to learn Python, but I think there are less jobs with
> > Python, so it's better I learn Java or C++.  I think there are many
> > jobs in Java and C++.  There are also jobs in C# and .NET, but I
> > prefer not to be stuck with Microsoft technologies.  I don't like
> > Microsoft, although I have been using their products for many years.
> > Also, thanks for the websites you sent me.  I know sourceforge, the
> > others I will check later.
> 
> I don't know where java is at the moment. It's been years since I worked
>  with it seriously. If previous experience still applies, the leap from c
>  to java is much bigger than from c to c++. Java is much more of a zealot
>  about object oriented approaches. It means it will take longer to do the
>  move, but will teach you more about object oriented paradigms and force
>  you not to get stuck at the position of writing c in c++.
> 
> If you go with c++, take note that a lot of companies that do c++ and
>  windows will use microsoft specific approaches. It can help to learn cross
>  platform libraries though. Allows you to be cross platform and with
>  smaller companies you may be able to push your will.
> 
> boost is a very important set of libraries for solving a lot of things.
> stl vs atl/mfc is always a big issue where stl is standard but sometimes a
>  bit of an overkill.
> 
> As for GUIs, personally I like wxwidgets which is cross platform and LGPL.
>  The other main mature option is qt which, if things haven't changed again,
>  has an option of a GPL license also for windows for open source projects
>  and a commercial license for commercial projects. 

Actually, things have indeed changed:

* http://lwn.net/Articles/315843/ - "It was a pleasant surprise, then, when 
Nokia announced that the Qt library will be released under the LGPL version 
2.1. "

* Same in Whatsup.org.il in Hebrew:

http://www.whatsup.org.il/modules.php?op=modload&name=News&file=article&sid=6247

It kinda makes sense for Nokia to do that, because:

1. The GPL/Commercial dual-licence was the foundation of Troll Tech's (= Qt's 
Parent Company) revenue stream. However, for Nokia it is just a drop in the 
bucket, and not their main line of business.

2. Nokia should strive to make Qt as commonplace as possible so it will be 
commonly used and ubiquotous.

3. Some companies are still too scared of the LGPL to use it in their 
commercial projects (or even in-house ones) and would prefer to shell out the 
money for the commercial licence. I'm not saying this fear is rational, but 
that's life.[Licences]

{{{{
[Licences] - Someone I talked to said he would prefer not to use OpenSSL 
(which is under the original BSD Licence) for something he needed to do, 
because some of their customers were under the impression that open-source 
implied something GPL-like, and so had a more problematic licensing terms.
}}}}

But in any case, it's good news for people who would like to develop Qt-based 
software under non-GPL compatible licences, including proprietary ones.

I should note that Qt contains QtCore and Wx contains WxBase which are two 
pure-API and non-GUI libraries that abstract away many system services such as 
data structures and threads. They may pose a good and tested alternative to 
STL/Boost . For other libraries like that look at:

http://www.shlomifish.org/open-source/portability-libs/

>  wxwidgets uses the
>  native gui, qt draws it's own. Each approach has it's merits (native look
>  vs consistent look)
> 
> If you look at wxwidgets, have a look at wxformbuilder for designing the
>  GUI.
> 

Yes, there are many other differences between Qt and wxWidgets too.

Regards,

	Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
What does "Zionism" mean? - http://shlom.in/def-zionism

Bzr is slower than Subversion in combination with Sourceforge. 
( By: http://dazjorz.com/ )



More information about the Linux-il mailing list