Which programming language should I use?

Discussion in 'C++ / C# / Java' started by hylt, Aug 19, 2005.

  1. http://www.cs.ubc.ca/~murphyk/Software/which_language.html

    Which programming language should I use?
    Kevin Murphy, 3 December 2002.

    My Desiderata for a language
    The language should

    Have an intepreter for rapid prototyping, ease of debugging, and maximum fun.
    Have a native code (not just byte code) compiler that produces fast code that can be run stand-alone or be called from the interactive environment.
    Have good support for vectors, multi-dimensional arrays, strings, hash tables, etc. in the standard library.
    Have a free implementation.
    Work under linux and windows (so I can transfer code easily between my desktop and my laptop).
    So I did some web searching and found lots of interesting stuff (see below).
    Some language comparisons
    Computer language shootout benchmarks
    An empirical comparison of C, C++, Java, Perl, Python, Rexx and Tcl for a search/ string-processing program, Lutz Prechelt, TR 2000
    Revenge of the Nerds, Paul Graham, 2003. Interesting discussion of C++, Java, Lisp, Python and Perl.
    Why I hate (programming language) advocacy, by Mark-Jason Dominus (2000).
    Religious zealotry for Python and other languages
    Keith Waclena's programming language comparison (1997)
    Java vs Lisp, JPL study
    Lisp's macros, a response to Graham's "Beating the averages" article
    Numerical benchmark of C++, Java and Fortran, 4 Jan 2003
    Lisp vs Ocaml vs C++.
    Why Ocaml?
    Comparison of Matlab, R/S/Splus, Gauss, etc.
    Comparison of mathematical programs for data analysis, Stefan Steinhaus, tech report, 2000.
    This is a very detailed comparison of features and speed of several interactive scientific programming environments, e.g. Matlab, Mathematica, Splus.
    User comparisons of several interactive langauges
    Matlab vs R discussion, April 2004. Note: you can call matlab from R and vice versa.
    Short but sensible comparison of Splus and Matlab, 2003.
    Econometric programming environments: Gauss, Ox and S-PLUS, Francisco Cribari-Neto. J. of Applied Econometrics, 12(1):77-89, 1997
    Ox can not be used interactively, and has a C-style syntax (it even requires users to pre-declare variables!). Its only advantage is speed. S-Plus has tons of features and good documentation, but is slow. Gauss is somewhere in between.
    MATLAB as an econometric programming environment, Francisco Cribari-Neto and Mark J. Jensen. J. of Applied Econometrics, 12(6):735-432, 1997.
    The basic conclusion is that Matlab has excellent graphics and sparse-matrix facilities, but is slower than Gauss/Ox (especially on code with loops), and has few statistical routines built-in (one must buy the stats toolbox).
    R: Yet another econometric programming environment, Francisco Cribari-Neto and S. Zarkos. J. of Applied Econometrics, 14(3):319-329, 1999.
    The basic conclusion is that R is much faster than Splus on code with loops, but a little bit slower on vectorized code. (Gauss/ Ox is much faster than both; in my experience, R and Matlab have about the same speed.) However, R has much better memory management than Splus, and R is free. Otherwise, R/S/Splus are essentially the same.
    Scilab, an open source alternative to Matlab.
    Octave, an open source version of matlab.
    Lush, Yann Le Cun's lisp-like Matlab replacement. It seems to meet many of the desiderata above (although it does not work on windows), and has proven adequate for real time computer vision and large-scale machine learning experiments.
    PVwave, described by John Fisher as "Matlab on steroids". It is designed for data analysis and visualization.
    R, an open-source version of S. Click here for a list of pros and cons for rewriting BNT in R. Click here for a new project to implement a graphical models library in R.
  2. 顶一下。