Future of Programming
Future of Programming
4/15/2011
Song to Cyberspace
Every few decades, the most modern programming languages are superseded by new
ones that offer new features, concepts, and build upon previous deficiencies. With new
technology come out at a rapid pace, new programming languages will soon follow to keep up.
There are also deficiencies in current language models that need to be fixed. In order to
contemplate on what languages will look like in the future, you must first know the history of
coding. It must also be noted why new languages are created and what the differences are
between old and new media. Les Manovich outlines these points in The Language of New
Media. Finally, we will look at three routes that programming languages may take in the near
future: Artificial Intelligence Programming, Graphical Structural Design, and Natural Language
Programming.
History
Programming at its most basic level is giving technology instructions through the form of
0’s and 1’s. This is called 1GL, or machine language. For example, a toaster knows when to turn
understand that no more how much programming P2 max (V0[:8.0],V1[:8.0]) => R0[:8.0]
languages progress and how abstract they become, the V0[:8.0] => Z1[:8.0]
languages’ interpreters break down the program you (Z1[:8.0] < V1[:8.0]) -> V1[:8.0] => Z1[:8.0]
create into this machine language. This is the Z1[:8.0] => R0[:8.0]
END
1
Leonid Sklyut
4/15/2011
Song to Cyberspace
digitization Manovich was talking about when he stated that new media is represented
numerically.
The next step in the progression was assembly language, which still provided the same
instructions but with several keywords that made applications easier to code. Assembly
C USING HERON'S FORMULA WE CALCULATE THE
languages such as Plankalkul still used
C AREA OF THE TRIANGLE
machine language. However, they used a
799 S = FLOATF (IA + IB + IC) / 2.0
more understandable structure so that the
AREA = SQRT( S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *
programming field could be expanded to
+ (S - FLOATF(IC)))
more users. With the creation of these
WRITE OUTPUT TAPE 6, 601, IA, IB, IC, AREA
languages, the ideas for the most basic
601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2,
machines were made feasible. These + 13H SQUARE UNITS)
provided a basis for more complex instructions grouping machine code into sets of their own
instructions and keywords. FORTRAN was built in 1954, and contained a set of 32 keywords.
This provided the most basic textual support for logical programming, moving past basic ON and
OFF statements. Other languages soon followed such as COBOL, The keywords included IF,
ELSE, GOTO, and FORMAT. These keywords allow the programmer to create conditional
statements using much less code than before for products such as digital clocks, and such. These
2
Leonid Sklyut
4/15/2011
Song to Cyberspace
languages made coding easier but still lacked the abstraction to create applications that we see
today.
There are several reasons that new programming languages may be created. The first is
that a completely new concept is created. Another reason is that there may be deficiencies in
current languages that are not able to fix themselves and therefore a new language and approach
is required. Artificial Intelligence is a relatively new concept that is different from the current
orientation of programming languages. This concept may also be used to fix the outlined
3
Leonid Sklyut
4/15/2011
Song to Cyberspace
deficiencies in current applications. Also, the combination of strong points from multiple
languages may be combined into one creating a more efficient and robust programming
language. The last reason is that the simplification of code will invite more developers and allow
regular users to create simple applications to fit their needs. Graphical Structure Design fits this
Les Manovich provides several key categories in which new media differ from current
media. The progression of programming languages can be traced through these five points. He
beings by stating that all new media is represented numerically. In terms of programming
languages, newer versions are quickly moving away from this numerical representation to a more
simple representation. However, it must not be overlooked that although the representation of
these languages may be simplifying, they are still being translated into the basic machine
language that is 0's and 1's. His second point is modularity; he refers to this as the fractal
structure of new media. New media may be more complex, but it builds on previous media in a
modular fashion. For example, newer versions of Java may come out, with easier keywords and
built-in functions. These functions build on code that was already written and incorporate new
principles. This also coincides with his statement that each module or building block of new
media that is retained from previous media retains its own form and solidarity although it’s part
of a new whole. Each function can still be viewed on its own and viewed as its own separate
object. Automation, the third point, refers to new media being serving to automate operations in
media creation and access. Future programming languages will follow a similar concept where
the user will no longer have to write code to complete tasks. Using Graphical Structure Design
(GSD), the development environment used to create applications will provide the user with
4
Leonid Sklyut
4/15/2011
Song to Cyberspace
prewritten functions that have been used in the past for recycling rather than coding from scratch.
The user simply has to select from a menu of options or type in natural language instructions.
The development then environment will selects these functions from a database and piece the
program together.
“A new media object is not something fixed once and for all, but something that can exist
in different, potentially infinite versions. This is another consequence of the numerical coding of
new media and the modular structure of a media object” (Manovich 36). This concept,
Manovich's fourth point which is variability, states that the elements of the new media may be
assembled in infinitely many ways allowing for as many versions that may be assembled. This
concept fits with the idea of GSD as well as artificial intelligence programming. If a language
were to be created that could think creatively, infinitely many possibilities for products, ideas,
and assemblies would arise. Programs could be assembled and reassembled to virtually any
structure and purpose. Manovich's final point, transcoding, describes that new media translates
we first began to work with computers because the machine layer of applications forces
constrains on the applications and so our concepts of organization were transformed. I feel that
with the proliferation of programming languages, these concepts will again be transcoded. Rather
than having to think about how we store data and organize information, the new viewpoint will
become how this information is manipulated automatically and how to work in unison with
near future? There several limiting factors of the programming language model today. Over the
5
Leonid Sklyut
4/15/2011
Song to Cyberspace
course of the entire history of programming, it has been conceptualized that coding is typing in
commands and writing code. While this is true, it does not necessarily mean that it is the most
efficient way. This method is time-consuming and very repetitive. Database processing also is in
need of a redesign. Currently, in order to access items in databases, a user must learn two
different languages and use them together. This also adds to being more time consuming. In the
Programs do strictly what they are coded to do and involve no intuition based on unexpected
As I previously mentioned, applications made today are not intuitive. They are created to
solve problems and provide services. I feel that in the future, programming will extend to writing
applications that can handle unexpected events, build their own databases of knowledge, and use
that knowledge with minimal maintenance. Operating systems currently provide updates and
patches to their software to make it more secure and fix bugs. In an ideal programming
environment, the operating systems would know what to do with the bugs and be able to create
their own solutions. This will require focus in the field of Artificial Intelligence Programming.
This aspect is currently being used in several fields including video games and airplane control
software. This aspect of programming will grow to become the backbone structure of all
difference between old and new media. In the future, a program will be able to think for itself in
6
Leonid Sklyut
4/15/2011
Song to Cyberspace
terms of maintenance and debugging. This is not to say that computers will one day rule the
world, but that less user involvement will be necessary. One of the key problems with this is that,
just as with earlier programming languages, automation will put thousands of people out of
work.
Each new stage of programming presents new features, easier methods for implementing
them. “Each of these new stages can also be seen as progressively more enabling... Indeed the
history of software is one of increasing abstraction” (Manovich 117). With the abstractness of
current programming languages, the creation of a new language that follows current syntax and
structure is simply not logical. There is no room for the current style of programming to become
simplified any more than creating additional modules for existing languages. There is only one
category of languages that can make programming simpler, and that is natural language
programming. Ex:
If U_ is 'smc01-control', then do the following. Define
As you can see, relative to the structure of current programming languages, NLP is much
more simple and easy to write because they look and function just like a normal paragraph.
According to Wikipedia, concepts created and used in NLP are based on generic human concepts
7
Leonid Sklyut
4/15/2011
Song to Cyberspace
of organization and speech. “Each sentence in an NLP program is either (1) stating a relationship
in a world model or (2) carries out an action in the environment or (3) carries out a
(Wikipedia). There are currently several ways of translating existing coding languages into this
format, which is useful for documentation intermediate between plain code and pure explanation.
However, in the future this may become the programming language of choice.
getting application development into the hands of everyday users to satisfy their own needs.
With the progression from assembly and machine languages to higher level programming
languages, more people became qualified to code software. As languages become easier to
understand,, application development falls into the hands of more average users. Applications
such as Dreamweaver and Frontpage, allow users with little or no programming experience to
create web pages without coding a single keyword. With modern technology, applications can be
made in the same way but still lack graphical functional programming. With GSD, business
8
Leonid Sklyut
4/15/2011
Song to Cyberspace
able to choose functions from libraries and connect them with conditionals and other
this added functionality, users can create functions such as “format essay for submission” in MS
Word or other applications to be reused later. The user would start the “coding” by pressing a
button, and then performing all the tasks that they normally do to format an essay such as double
spacing, margins, and creating headers. After they stop the coding, the program saves the
function so that next time a user clicks the “format essay for submission” button, they application
9
Leonid Sklyut
4/15/2011
Song to Cyberspace
Works Cited
Eckel, Bruce. "Programming in the Mid-Future." The Artima Developer Community. 10 Mar.
thread=284730>.
<http://www.voidspace.org.uk/python/articles/object_shaped_future.shtml>.
http://en.wikipedia.org/wiki/Natural_language_programming
Manovich, Lev. The Language of New Media. Cambridge, MA: MIT, 2002. Print.
Taft, Darryl K. "The Future of Programming: Less Is More - Application Development - News &
Enterprise Analysis - News & Reviews - EWeek.com. 28 Aug. 2006. Web. 29 Apr. 2011.
<eWeek>.
10