| Coding is the discipline that is pervasive in all IT systems. There is a huge amount of information
available on programming languages and the art of
coding. The Development Books in the Poised Solutions Tech Library covers a large spectrum of programming languages. Those pursuing the art of
development should find a number of interesting Development Books contained within.
Computer coding or programming can be done at various
levels of abstraction. The most basic level is machine code;
instructions that the CPU uses to run all programs. The second
generation languages, one step up from first generational
machine code are assembly languages, the mapping to machine
code is one to one but the instructions are written using
mnemonics.
Up from assembly are third generational languages, which
tend to be compiled to native, system languages. The fourth
generation languages tend to use virtual machines and
interpretors to run the instructions, which gives good cross
platform. Shell languages, and SQL used for database access also fall in this
category.
Another branch of programming languages are the functional
languages, which tend to deal more with the mathematics of
computer science, though also tend to be very good with
concurrency.
Markup languages are also heavily used, as text requires
some context for its display, HTML is perhaps the best known, and XML is used very often to store documents in.
Coding and Programming Library Sections
- Assembly
Assembly is considered low level programming, interfacing
nearly directly with the CPU. It is important to know
assembly programming though as all programs eventually run
at the machine code level, and to truly understand how a
computer and a program works an appreciation of assembly
is essential.
- System
System programming refers to producing kernels and low
level engines and applications. The C programming language
tends to dominate this field, with C++ handling the engine
of applications. System languages can be used for higher
level tasks where performance is critical though the
development life cycle tends to be longer.
- General
General programming languages tend to be in the fourth
generation, and are dominated by Perl, Python, Lua, and
Java. General programming languages solve business and
research problems, they often cannot access internals to a
system directly though can be made to do so, and offer a
plethora of libraries to solve common problems.
- GUI
GUI (Graphical User Interface) programming is
used to create graphical applications that run inside a
window system. Generally GUI refers to full raster pixel
control as opposed to character control found in terminal
applications, frame buffers can also be used if a full blown
windowing system is too much overhead. Cross platform
compatibility is a useful feature of a GUI coding platform,
and there does exist many different toolkits.
- Shell
Shell coding languages allow the quick construction
of programs to work together for general administration,
development and user tasks. Most shell languages are
directly accessible from a command line or combined
in a script. Shell programming is perhaps the fastest
and most powerful coding, so it is something to research
quite deeply, it is a very handy swiss army knife in
computer system usage.
- Functional
Functional programming has been used in computer science
from the very early days, it actually forms a fork of
programming style. Functional programming is more akin to
writing mathematical formulae to create a program that
solves a logical problem. Functional has a lot of advantages
to the journey man and expert programmer, concurrency is but
one of them, with the use of state machines and lite weight
processes, but also in the robustness of code and
development times.
- Web
Web programming environments are a result of the high
interest in the HTTP both for Web sites and Intranets. Web
languages allow for the web paradigm in various ways,
the best known are PHP, ASP and ColdFusion. General programming
languages tend to offer a lot of web libraries, and the
web paradigm has been broken down enough to generally
go for an application server approach.
- Browser
Browser based languages cover markup languages (HTML and
XML), distributed client side programming languages
(JavaScript) and browser specific languages (XUL
Runner). Browsers represent the client side to the
web model, and are also used to browse structured
local information.
- Database
Databases form an essential part of most systems, most
computer programs are really concerned with the storage
of some changing data and calculation based on that data.
SQL is a set based language that is used most
often in relational database management systems, though
of course other styles of data storage do exists.
- Philosophy
It is often said that programming is never really
taught it is an innate skill, it certainly is a skill
that can be honed, and there are various different
philosophies and meta ideas about coding. Is coding
engineering or art, perhaps a blend of the two? This
section deals with books that explore this element
of coding.
|
|