Friday, September 5, 2014

Some Common Programming Languages

People will often ask me questions like like "How is C different from C++?",  "What makes folks use Python instead of Perl?", "Are Java and Javascript the same?", "What is an HTML programmer?"  Of course, these questions could have long, detailed, technical responses. Though, I find usually that's not what folks want. They simply want a one or two sentence simple explanation.   So, I put together this languages matrix to try and answer these simple questions with simple, one or two sentence answers. I hope it helps.



LanguageTypical UsageNotes
General Purpose Compiled Programming Languages
C Low level system programming. Older language used for Linux/Unix kernel.The foundation of UNIX and the the father of Java, C++, ObjectiveC and C#.  Developed in 1969. Used heavily in the 1970's-1990's.  "Procedurual" (Not Object Oriented)
C++Common language for performance centric tasks. Large API / Vendor support.Object oriented additions to C. Very widely used. High learning curve. Lots of features. First standardized in 1989.
Objective CPrimary development language for Mac OSX/iOS development.Another object oriented language based on C. Has a "dynamic runtime" while C++ is static.  Has notably different syntax than C, C++, and Java.
SwiftSupported by Apple for Mac OSX/iOS development.A newer option from Apple for native iPhone and Mac development.
General Purpose Interpreted or Semi-Compiled Languages
JavascriptAny dynamic web page. Not the same as Java! Built into web browsers.  Used for dynamic web pages in HTML5 as well as almost every web site on the internet.
JavaCross platform and enterprise development.  Minecraft!Well known.  Taught in colleges.  Considered "High Ceremony" since lots of code is required even to do small things. Somewhat similar syntax to C/C++.  Generally does not perform as well as "compiled' languages like C, C++, Objective C.
C# (C-Sharp)Java-Like language for Microsoft Windows development
Runs on a VM just like Java.
PythonA great general purpose scripting language.  Capable of a wide variety of tasks such as  web sites,  database communication, games, and image processing. Integrates with many entertainment industry software packages like Maya, Houdini, and Nuke. Scripting language with clean readable code. Easy to learn and maintain.  Surpassed Java as top learning language in schools.
PerlSystems administration.  Text parsing and data manipulation.Powerful scripting language. Can do a lot with small amounts of code. Often referred to as a "write only" language because loose formatting constraints makes it difficult to read others code.
PHP"Back End" web pagesGenerally used as a server-side language for websites. Code is executed on the server per page request and is usually written to output HTML or other browser interpreted data.
Data Description Languages
XMLData description and transfer language for data files and web sites.
HTMLWeb page description language interpreted by web browsers
JSONData description and transfer  language for data files and web sites.Considered by some to be easier to read than XML. Often used when returning data from web sites.
Application Specific Languages
SQLUsed for database queries to relational databasesRuns within many different brands and types of relational database.
Bash/Tcsh/CshQuick utilities.  Systems administration. Unix automation tasks.Scripting language that runs within the specific UNIX shell environment.
MELApplication specific language for Maya. Used for Maya plugins and automation.Scripting language that runs within Maya. Being displaced by Python.
HScriptApplication specific language for Houdini. Used for Houdini plugins and automation.Scripting language that runs within Houdini
CudaNVidia specific graphics processing language. Used to optimize applications to run on the graphics card. (GPU)
GLSLOpen GL Shading Language. Used in real time tools to offload graphics processing to the graphics card (GPU)Replacement for OpenGL