[LUNI] Linux Dev
Clyde Forrester
ccf3 at mindspring.com
Mon Oct 8 20:24:40 CDT 2007
Mark Stuart Burge wrote:
> I am wondering how easy/difficult it is to start developing and thus
> contributing to linux applications.
>
> Having coded z80 assembler decades ago and then Visual Basic 6,
> writing some mediocre, yet useful applications, I am wondering where
> to start.
>
> I bought one of those "learn to program in C++ for linux" books a few
> years ago and have been reluctant to devote any quality time to it
> since noticing that many people are now using stuff like 'ruby on
> rails' 'ajax' 'java' and C++ although standing the test of time, seems
> like machine code in comparison, since the book concentrates on
> building from scratch as opposed to working with all the libraries
> that are out there now.
>
> So, does anyone have any suggestions where I should devote my time.
>
> I would love to be able to open up the source code to some of my apps
> and find fixes, make patches, add functionality etc and finally have
> something to give back to the community.
>
> Do I start by looking into the libraries, to see what functions are
> already available to me ? or is there a standard approach to this that
> others have followed ?
>
>
> Any comments would be appreciated.
>
> Mark
>
First, familiarize yourself with C. The guts of Linux are in C and
assembler. That is not about to change any time soon.
Java takes a while to wrap your brain around, but that's where much of
the money is. At least try a few "Hello" programs so that you can jump
in to it if you find the need.
Perl is great. [Alright, stop the snickering.] Some people can deal with
its odd style and can develop rapidly in it. Some people simply cannot
fathom it. YMMV.
Ruby is cleaner for some folk, and too weird for others. But Ruby on
Rails is the reining king of Web Frameworks. Don't discount PHP.
Python is gaining in popularity. It strikes me as somewhat inflexible. I
also get the feeling that it attracts more than its fair share of zealots.
For some types of applications you may need COBOL, FORTRAN, REXX, lisp,
Lua, Erlang, or one of the more exotic languages.
It is important to note that programming is no longer a matter of
choosing a language. You also need to be familiar with a good IDE, a
version control system, a database engine, a web server, and something
to wrangle html. And then there's some other hard to define
glue-it-all-together sorts of frameworks. And you may have to consider
aspects of the operating system and windowing environment. If you do
heavy number crunching there's all kinds of parallelism, clustering, and
threading things to consider. Effective threading will be a mainstream
issue as multiple cores become more common. Don't ignore the shift to
64-bit processors and operating systems. Don't get stuck with a language
which refuses to make the jump.
My own approach is to see what it takes to acquire and load each
language for Microsoft Windows and/or Linux, and see what it takes to
print "Hello", and to draw a circle. Some languages "just work". Others
are like pulling hen's teeth.
Clyde
More information about the luni
mailing list