This site has a motley collection of programs in several languages.
This page is to collect reasons that I use some language over others.
Of course some programs have be transcribed into several languages because they were part of some larger project.
- gcc C
C is fast.
I use it when the job doesn’t demand the benefits of languages below.
Most of my C programs use gcc extensions, mainly nested procedures.
See this too.
I have just a couple of C++ programs.
- clang C
Apple no longer supports gcc. 😠
I badly miss nested functions.
Clang has a few nice advantages.
- Algol 68
- This language has nice syntax and semantics.
The implementation I use has nearly arbitrary precision floating point arithmetic.
The array semantics is powerful and built into the syntax.
- Scheme has indefinite extent procedures and lambda expressions.
It has most of the nice features of LISP while being much simpler than modern LISPs.
Its many parentheses make it easy to browse and edit with an editor that understands parentheses.
It has rational numbers easily accessible.
- is strongly typed which allows it to be much faster and sometimes aids debugging.
It has most of the benefits of Scheme.
Occasionally strong types limit patterns.
Its Screen graphics is very easy to use.
OCaml is harder to edit.
- has first class access to the screen and can make jpg files and such.
- C, Java (OCaml except native compile doeesn’t work on Mac just now.)
- Nested functions
- Indefinite Extent Functions and Lambda expressions
Algol68 has lambda but not Indefinite Extent
- Easy browsing and editing
- Array Semantics (slices and subarrays)
- Algol 68. OCaml has a powerful array library but syntax is awkward.
- Fancy Arithmetic
- High precision floating point:
- Algol (compiler feature)
- C, Scheme, Algol
- Java to Screen and File, OCaml to Screen