On Saturday 26 Dec 2009 10:05:37 Uri Even-Chen wrote: > On Sat, Dec 26, 2009 at 9:51 AM, Oron Peled <o...@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 > >
There are some lists for them here: * http://en.wikipedia.org/wiki/Category:Free_software_hosting_facilities * http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities * http://www.dmoz.org/Computers/Open_Source/Project_Hosting/ In addition you may wish to browse, search or follow http://freshmeat.net/ or http://directory.fsf.org/ - they are directories for software with announcements. > > 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. Just a note - there is no dichotomy between compiling a language and it being a "scripting" language. For example, Perl, Python and PHP are all compiled into bytecodes, and CRuby will get a bytecode-based backend in ruby-1.9.x. What you probably mean is compiled into binary machine-code executables. This actually is possible to some extent with dynamic languages too. And just for the record see: * http://xoa.petdance.com/Stop_saying_script * http://www.perl.com/pub/a/2007/12/06/soto-11.html Java and the .NET-based languages are also compiled into bytecode, which is then executed. (Though there's an extra level of JIT). > 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++. Yes, for better or for worse. Personally, it has been my feeling that programs written in either Java or C++ seem incredibly difficult to get right, although in these cases from different reasons. Maybe working in C++ with a framework such as Qt is a good idea: http://www.shlomifish.org/open-source/portability-libs/ I have a multi-threaded program that someone who contacted me about http://www.shlomifish.org/rwlock/ wrote in C++ which works perfectly if you use printf and gets stuck quickly if you replace them with "cout <<" (I have a define for toggling them). Someone once gave me a link to a forum post which documented this, but this seems so basic that it should just work. He also was unable to use my RWLock (despite prefering it over the built-in POSIX rwlock) because it caused him more problems. Eventually, he said that he became convinced that he should have written his program in C instead of 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. I should note that C#/.NET/etc., while having originated from Microsoft, are not specific to Microsoft and http://www.mono-project.com/ has implemented them for most other OSes besides Microsoft. Recently I ported some Perl 5 code to Mono and C# (because the Perl code ran too slowly for my taste and what I tried to do). Without really knowing C# beforehand, it took me only a day to write that program (409 lines of C# code and 113 lines of Perl code to help test it (according to SLOCCount)), and it ran fine - started quickly and seems to have run much faster than the Perl code. So I was happy I chose C# for that instead of C which I know better. Naturally, this is just a relatively simple algorithmic and command line program, which isn't representative of the more complex software that C# tends to be used for, so I cannot comment on the suitability for it. What you are right about is that most C# and .NET shops will expect you to develop and deploy on Windows, because Mono is both incomplete and deploying .NET apps on non-Windows platforms may exhibit bugs or non-portabilities in the program. Someone once sent me a C#/.NET program he wrote and I couldn't run it on Linux because it used backslashes for paths. (This is naturally not limited to .NET - you can write Windows-specific software in almost any language). > Also, thanks for the websites you sent me. I know sourceforge, the > others I will check later. > I personally am not maintaining any Java or C++ projects (and am happier this way), but there are many bugs in KDE (which I'm using) that can be fixed - http://bugs.kde.org/ and KDE is a large C++ project. Regards, Shlomi Fish -- ----------------------------------------------------------------- Shlomi Fish http://www.shlomifish.org/ Optimising Code for Speed - http://shlom.in/optimise Bzr is slower than Subversion in combination with Sourceforge. ( By: http://dazjorz.com/ ) _______________________________________________ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il