Programming Languages
Most of my work is related to data management and analysis, so the languages reflect that. The languages that I mainly use are R and Java. These languages are not as fast as the languages for real-time systems (C, C++). However, I am becoming more interested in Domain Specific Languages (DSL). DSLs are higher-level languages designed for a specific task or problem.
Languages Influence Network Diagram
http://exploringdata.github.io/vis/programming-languages-influence-network-2014/
http://exploringdata.github.io/vis/programming-languages-influence-network-2014/
R
R is a statistical programming language (www.r-project.org) that is interpretative in nature. It also has elements of being a functional programming language. The best IDE for R currently is RStudio (www.rstudio.org).
R is also being used for interfacing with Nvidia GPGPU (parallel processing using Graphical Processing Units).
R is also being used for interfacing with Nvidia GPGPU (parallel processing using Graphical Processing Units).
Julia
Julia was designed for high-performance technical computing.
Julia is also designed out of the box for parallel computing.
Julia IDE: http://forio.com/products/julia-studio/
Julia IDE: http://www.lighttable.com/ with http://junolab.org/docs/installing.html
Julia was designed for high-performance technical computing.
Julia is also designed out of the box for parallel computing.
Julia IDE: http://forio.com/products/julia-studio/
Julia IDE: http://www.lighttable.com/ with http://junolab.org/docs/installing.html
Python
Some useful Python toolkits are:
Python Random Forests using GPUs
http://blog.explainmydata.com/2013/10/training-random-forests-in-python-using.html
A good Python IDE is: http://www.jetbrains.com/pycharm/
- http://www.scipy.org/
- http://nltk.org/
- http://www.pygame.org
- http://scikit-learn.org/dev/index.html
Python Random Forests using GPUs
http://blog.explainmydata.com/2013/10/training-random-forests-in-python-using.html
A good Python IDE is: http://www.jetbrains.com/pycharm/
Java
A good Java IDE is: http://www.jetbrains.com/idea/
GPSS
GPSS (General Purpose Simulation System) was developed by IBM.
A web-version of the language can be found here: http://webgpss.com/
A web-version of the language can be found here: http://webgpss.com/
AMPL
AMPL is a an Algebraic programming language mainly used in integer programming (constraint based systems). AMPL can be accessed via the NEOS webserver.
source: http://en.wikipedia.org/wiki/AMPL
source: http://en.wikipedia.org/wiki/AMPL
REBOL
REBOL (Relative Expression Based Object Language) is a cross-platform[4] data exchange language and amulti-paradigm dynamic programming language originally designed by Carl Sassenrath (architect and primary developer ofAmigaOS) for network communications and distributed computing.
Douglas Crockford of JavaScript fame has described REBOL as "a more modern language, but with some very similar ideas to Lisp, in that it's all built upon a representation of data which is then executable as programs" and as one of the JSON influences.
REBOL introduces the concept of dialecting: small, optimized, domain-specific languages for code and data, which is also the most notable property of the language according to its designer: "Although it can be used for programming, writing functions, and performing processes, its greatest strength is the ability to easily create domain-specific languages or dialects".
source: http://en.wikipedia.org/wiki/REBOL
The REBOL Scripting Language
http://www.drdobbs.com/embedded-systems/the-rebol-scripting-language/184404172
Douglas Crockford of JavaScript fame has described REBOL as "a more modern language, but with some very similar ideas to Lisp, in that it's all built upon a representation of data which is then executable as programs" and as one of the JSON influences.
REBOL introduces the concept of dialecting: small, optimized, domain-specific languages for code and data, which is also the most notable property of the language according to its designer: "Although it can be used for programming, writing functions, and performing processes, its greatest strength is the ability to easily create domain-specific languages or dialects".
source: http://en.wikipedia.org/wiki/REBOL
The REBOL Scripting Language
http://www.drdobbs.com/embedded-systems/the-rebol-scripting-language/184404172
Scala
Scala is a functional language that uses Java as an underlying component. Scala is one programming language that I haven't used yet -- but would like to experiment with it.
Visual (Graphical) Programming
"There's an old saying: 'Visual programming is like trying to get to the moon by climbing a tree. You make a lot of good early progress, at first, but pretty soon you have to go back to your funding agency and ask for a bigger tree.'"
Marten
Graphical Programming for MacOSX
http://www.andescotia.com/products/marten/
Marten
Graphical Programming for MacOSX
http://www.andescotia.com/products/marten/
Prolog
Prolog is a logic programming language and used for Artificial Intelligence and Natural Language Processing (NLP). IBM Watson used Prolog as one component of their system.
We have included a Prolog implementation with the WebReports software. I also have a version of Borland Turbo Prolog from the 1990s. I have done some experimenting with Prolog, mainly around NLP and expert-based systems.
Creating Web-Applications in SWI-Prolog
http://www.pathwayslms.com/swipltuts/html/index.html
Gentle Introduction to Prolog
https://bernardopires.com/2013/10/try-logic-programming-a-gentle-introduction-to-prolog/
We have included a Prolog implementation with the WebReports software. I also have a version of Borland Turbo Prolog from the 1990s. I have done some experimenting with Prolog, mainly around NLP and expert-based systems.
Creating Web-Applications in SWI-Prolog
http://www.pathwayslms.com/swipltuts/html/index.html
Gentle Introduction to Prolog
https://bernardopires.com/2013/10/try-logic-programming-a-gentle-introduction-to-prolog/
Probabilistic Programming
BUGS (Bayesian inference Using Gibbs Sampling) http://www.mrc-bsu.cam.ac.uk/bugs/
DARPA - Probabilistic Programming for Advancing Machine Learning (PPAML)
https://www.fbo.gov/index?s=opportunity&mode=form&id=4a3a33415756f596fae229defed7deaa&tab=core&_cview=0
Processing
Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work. Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production. (source: processing.org)
D3js
D3.js is a visualization language. more information can be found at http://D3js.org.
Lisp
Language Comparison F#, Ocaml, Scala, Clojure, Ruby and Haskell
https://gist.github.com/2934374
Lisp Machine
One of the things that I would like to play with is a Lisp machine. The Lisp machine was a computer developed in Lisp, which would be in contrast to the computers we currently use. I found that the Lisp machien can be run on a DEC (Digital Equipment) computer, however, these are hard to find now.
More information: http://en.wikipedia.org/wiki/Lisp_machine
More information: http://en.wikipedia.org/wiki/Lisp_machine