175 lines
5.9 KiB
HTML
175 lines
5.9 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Programming Languages mini-HOWTO: Programming Languages</TITLE>
|
|
<LINK HREF="Programming-Languages-3.html" REL=next>
|
|
<LINK HREF="Programming-Languages-1.html" REL=previous>
|
|
<LINK HREF="Programming-Languages.html#toc2" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Programming-Languages-3.html">Next</A>
|
|
<A HREF="Programming-Languages-1.html">Previous</A>
|
|
<A HREF="Programming-Languages.html#toc2">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s2">2. Programming Languages</A></H2>
|
|
|
|
<P>C, Lisp and Perl are traditional hacking languages in the
|
|
GNU/Linux culture; Python, PHP, Java and C++ have gained new
|
|
ground recently.
|
|
<H2><A NAME="ss2.1">2.1 Concepts in the Table</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<DL>
|
|
<P>
|
|
<DT><B>Language</B><DD><P>A common name of the language.
|
|
<P>
|
|
<DT><B>Beginner</B><DD><P>Indicates how well suited the language is for
|
|
people with little programming experience. A language marked with
|
|
``yes'' should be viable for a beginner's first programming
|
|
language.
|
|
<P>
|
|
<DT><B>Performance</B><DD><P>How fast your applications are likely to
|
|
run when you put them into production use. Performance depends
|
|
more on your algorithmic programming skills than the actual
|
|
language. As a rule of thumb, C, C++ and Fortran are sometimes
|
|
necessary because they can offer better performance than other
|
|
languages - at other times they might be unwieldy for the desired
|
|
purpose. (One idea for unscientific ``benchmarking'' of the
|
|
languages would be to implement a simple sorting algorithm in all
|
|
of them and compare running times. This of course does not measure
|
|
the performance of the actual language - since that concept does
|
|
not make sense - but only the implementation. Of course it's also
|
|
not a very reliable or thorough method, but it would give an
|
|
example how running times in different languages can
|
|
differ. Anybody want to help me with this?)
|
|
<P>
|
|
<DT><B>OOP, Object-Oriented Programming vs. other paradigms</B><DD><P>Object-oriented programming is an important programming paradigm
|
|
that is gaining popularity. In object oriented programming, data
|
|
structures and algorithms are integrated into units, often called
|
|
classes. OOP is often contrasted with procedural programming
|
|
(which uses separate algorithms and data structures). It is not
|
|
strictly dependent on language: you can do OOP in languages not
|
|
listed as such (C for example), and program in the procedural
|
|
style in languages that are listed as OOP. I've listed as OOP
|
|
languages that have special features or add-ons to facilitate OOP.
|
|
Functional languages (Lisp for example) are a bit different breed
|
|
- among other things, functional programming is a superset of
|
|
OOP. Logic programming (Prolog), also called declarative
|
|
programming, on the other hand, is not related to the other types
|
|
of programming in a similar sense.
|
|
<P>
|
|
<DT><B>RAD, Rapid Application Development</B><DD><P>More dependent on
|
|
the tools you are using than the actual language. There is a
|
|
HOWTO on GUI development tools for Linux, although it's out of
|
|
date. With a good graphical tool you can do RAD. RAD can be
|
|
powerful when based on code reuse as well, so free software could
|
|
provide a good starting point.
|
|
<P>
|
|
<DT><B>Examples</B><DD><P>Mentions fields of programming the language is
|
|
most often used in. Other good (and bad) uses exist, but they are
|
|
less typical.
|
|
<P>
|
|
<P>
|
|
<DT><B>Comments</B><DD><P>Additional information on the language, like
|
|
capacities and dialects.
|
|
<P>
|
|
</DL>
|
|
<H2><A NAME="ss2.2">2.2 Major Languages</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<PRE>
|
|
|
|
Perl
|
|
Beginner: Yes - OOP: Yes
|
|
Examples: Scripting, sysadmin, www
|
|
Comments: Powerful for handling text and strings
|
|
|
|
Python
|
|
Beginner: Yes - OOP: Yes
|
|
Examples: Scripting, application scripting, www
|
|
Comments:
|
|
|
|
TCL
|
|
Beginner: Yes - OOP: No
|
|
Examples: Scripting, sysadmin, applications
|
|
Comments:
|
|
|
|
PHP
|
|
Beginner: Yes - OOP: Yes
|
|
Examples: Www
|
|
Comments: Popular for web databases
|
|
|
|
Java
|
|
Beginner: Yes - OOP: Yes
|
|
Examples: Cross-platform applications, www
|
|
Comments: Spreading to new areas, eg. e-commerce infrastructure
|
|
|
|
Lisp
|
|
Beginner: Yes - OOP: Functional
|
|
Examples: Emacs modes (for Elisp), AI
|
|
Comments: Variants Elisp, Clisp and Scheme
|
|
|
|
Fortran
|
|
Beginner: No - OOP: No
|
|
Examples: Mathematical (scientific) applications
|
|
Comments: Variants f77 and f90/95
|
|
|
|
C
|
|
Beginner: No - OOP: No
|
|
Examples: System programming, applications
|
|
Comments:
|
|
|
|
C++
|
|
Beginner: No - OOP: Yes
|
|
Examples: Applications
|
|
Comments:
|
|
</PRE>
|
|
<H2><A NAME="ss2.3">2.3 Shell Programming</A>
|
|
</H2>
|
|
|
|
<P>Shells are an important programming environment, too. I haven't
|
|
covered them because I don't understand the field very thoroughly
|
|
yet. Knowledge of shells is important for anyone who works on
|
|
Linux regularly, more so for system administrators. There are
|
|
similarities between shell programming and other kinds of
|
|
scripting - often they can achieve the same goals, and you have
|
|
the option of choosing between native shell and a separate
|
|
scripting language. Among the most popular shells are bash, tcsh,
|
|
csh, ksh and zsh. You can get basic information on your shell with
|
|
the <EM>man</EM> command, <EM>man bash</EM> for example.
|
|
<H2><A NAME="ss2.4">2.4 Other Languages</A>
|
|
</H2>
|
|
|
|
<P>Other languages of note: AWK, SED, Smalltalk, Eiffel, Ada,
|
|
Prolog, assembler, Objective C, Logo, Pascal (p2c converter)
|
|
<H2><A NAME="ss2.5">2.5 Links</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<UL>
|
|
<LI>
|
|
<A HREF="http://www.tunes.org/Review/Languages.html">A general info site</A> on programming languages, lots of info
|
|
and opinions</LI>
|
|
<LI>
|
|
<A HREF="http://dev.scriptics.com/">TCL</A></LI>
|
|
<LI>
|
|
<A HREF="http://www.perl.org/">Perl</A></LI>
|
|
<LI>
|
|
<A HREF="http://www.python.org/">Python</A></LI>
|
|
<LI>
|
|
<A HREF="http://www.php.net">PHP</A></LI>
|
|
<LI>
|
|
<A HREF="http://www.javasoft.com/">Java</A></LI>
|
|
<LI>
|
|
<A HREF="http://clisp.cons.org/~haible/packages-clisp.html">clisp</A></LI>
|
|
</UL>
|
|
<HR>
|
|
<A HREF="Programming-Languages-3.html">Next</A>
|
|
<A HREF="Programming-Languages-1.html">Previous</A>
|
|
<A HREF="Programming-Languages.html#toc2">Contents</A>
|
|
</BODY>
|
|
</HTML>
|