The Logic Tier
The logic tier is made up of two
distinct parts – the application language and the application framework. The
easiest way to understand the two is to use the analogy of our own everyday
languages. The programming language is the words we use every day – essentially
our vocabulary. The programming framework on the other hand are the rules,
methods and techniques of putting those words together, a combination of
grammar, commonly used phrases and the like.
There is a huge variety of different
languages, but some of the better used ones, as detailed by Barton George, 6 include:
• Java/.NET – The incumbent enterprise
development languages. Very powerful but relatively difficult to learn and
time-consuming to program in.
• C++ — A statically typed,
free-form, multi-paradigm, compiled, general-purpose programming language. It
is regarded as an intermediate-level language, as it comprises a combination of
both high-level and low-level language features.
• Dynamic languages – These are
popular for creating web applications since they are both simpler to learn and
faster to code in than traditional enterprise standards. This offers a
substantial time to market advantage.
• PHP – A server-side scripting
language originally designed for web development to produce dynamic web pages.
PHP is infamous for being very quick and easy to get started with but turning
into a mess of “spaghetti code” after years of work and different programmers.
• Perl – One of the original
programming languages of the web, Perl emphasizes a very “Unix way” of programming.
Perl can be quick and elegant, but, like PHP, can result in a pile of hard to
maintain code in
the long term. Perl was extremely popular in the first Internet bubble, but it
has since taken a back-seat to more popular development languages such as PHP,
Java, and Rails.
• Python – Like all dynamic languages,
Python emphasizes speed of development and code readability. Python emphases
broadness of functionality while at the same time being a proper, object oriented
programming language.
• JavaScript – Once a minor language
used in web browsers, JavaScript has become a stand-alone language known and
used by many programmers. Most web applications will include the use of
JavaScript.
• Ruby – Ruby and Python are very
similar in ethos, emphasizing fast coding with a more human-readable syntax.
Ruby became famous with the rise of Rails in the mid-2000s and is still very
popular. Ruby can
also be run on top of the Java virtual machine, providing a good bridge to the Java
world.
• Scala – A somewhat exotic
language, Scala is good for massive scale systems that need to be concurrent.
Scala runs on the Java Virtual Machine and Common Language Runtime.
Interestingly Twitter moved much of its back-end systems from Ruby to Scala as
it sought to handle scaling issues.
• R – A programming language and
software environment for statistical computing and graphics.
• Node.js (aka “Node”) – Node takes
JavaScript, which was originally designed to be used in web browsers, and uses
it as a server-side environment. It is intended for writing scalable network
programs such as web servers.
• Clojure – A recent dialect of the
Lisp programming language, Clojure is good for data intense applications. It
runs on the Java Virtual Machine and Common Language Runtime
The Data Tier