Programming Language Overview

This post details the programming languages commonly used in our group.  For each language, we have included installation instructions, suggested reading materials, and other notes.

C

Description Procedural
API Reference http://www.cplusplus.com/reference/clibrary/
Windows Installation MinGW (Blog post about installing this is here), Cygwin
Linux Installation sudo apt-get install gcc
Notes
  • Be cautious of string functions, many built-in C functions are unsafe
  • GNU GCC allows mixing Fortran and C/C++ object files (i.e., call Fortran method from C/C++)

C++

Description Object Oriented
Tutorial http://www.cplusplus.com/doc/tutorial/
API Reference http://www.cplusplus.com/reference/
Windows Installation MinGW (Blog post about installing this is here), Cygwin
Linux Installation sudo apt-get install g++
Notes
  • The Boost libraries contain many reusable components

Java

Description Object Oriented, Managed Memory
Tutorial http://docs.oracle.com/javase/tutorial/
API Reference http://docs.oracle.com/javase/6/docs/api/
Books Effective Java by Joshua Bloch
Windows Installation JDK 6
Linux Installation sudo apt-get install openjdk-6-jdk
Notes
  • Java is a verbose language, but the verbosity allows stronger type safety
  • Consider developing in Eclipse or NetBeans
  • Oracle recently released version 7, which is backwards-compatible with earlier versions

Python

Description Object Oriented, Functional, Managed Memory
Tutorial http://docs.python.org/tutorial/index.html
API Reference http://docs.python.org/
Books Dive into Python by Mark Pilgrim
Windows Installation Python 2.7.2
Linux Installation sudo apt-get install python
Notes
  • There are two major versions of Python, 2.7 and 3.2.  They share similarities, but are not compatible
  • Use easy_install to quickly install packages
  • Use matplotlib for Matlab-like plotting
Advertisements

4 thoughts on “Programming Language Overview

  1. Thank you Dave for posting this. The link for C++ was already posted so thanks and that was all I had to contribute for this post.
    -A. Fernandez

  2. Hi! I’m a Computer Science teacher, and I thought I’d help a bit by mentioning some resources.

    C – cprogramming.com is a really good resource. If you like books, a good start is “Programming in C” by Kochan, followed by “Pointers on C” by Reek.

    C++ – “C++ Primer” by Lippman is a good book.

    Java – your best starting book would be “Java Programming for Kids” by Fain, and “Java Precisely” by Sestoft as a reference.

    Python – the friendliest language here. I use “Hello World” by Sande, followed by “Dive into Python” by Pilgrim – but the latter is outdated now.

  3. Pingback: Water Programming Blog Guide (Part I) – Water Programming: A Collaborative Research Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s