0% found this document useful (0 votes)
127 views

Future of Programming

This document discusses the history and future of programming languages. It outlines how languages have progressed from machine language using 1s and 0s to modern languages with keywords, modules, and object orientation. The document also examines reasons for creating new languages, such as addressing deficiencies or incorporating new concepts like artificial intelligence. Finally, it explores potential future directions for languages, including AI programming, graphical design interfaces, and natural language programming.

Uploaded by

lsklyut
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
127 views

Future of Programming

This document discusses the history and future of programming languages. It outlines how languages have progressed from machine language using 1s and 0s to modern languages with keywords, modules, and object orientation. The document also examines reasons for creating new languages, such as addressing deficiencies or incorporating new concepts like artificial intelligence. Finally, it explores potential future directions for languages, including AI programming, graphical design interfaces, and natural language programming.

Uploaded by

lsklyut
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Leonid Sklyut

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

off when a certain condition is met. Refrigerators, P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) =>


R0[:8.0]
microwaves, televisions and radios all use this basic
max(V0[:8.0],V1[:8.0]) => Z1[:8.0]
set of instructions and would not be possible if this max(Z1[:8.0],V2[:8.0]) => R0[:8.0]
simple coding was not invented. It is important to END

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)

languages progressed to the earliest traces STOP

of higher level languages that used easy to END

read syntax and common keywords. They

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.

long some_function(); The next era of programming established the

/* int */ other_function(); standards that modern programming follows. This

/* int */ calling_function() includes blocks of code, modular design, and user

{ defined keywords. The earliest and most simple ones,

long test1; including C, SmallTalk, and SQL, were created in the


register /* int */ test2; 1970’s. These languages were used to create the

operating systems we see today such as Windows


test1 = some_function();
possible. They were soon superseded in the 1980’s by
if (test1 > 0)
Object Oriented Programming which further
test2 = 0;
modularized programming languages and allowed for
else
the programming of applications we see today. The
test2 = other_function();
latest additions we see today are those created for
return test2;

} modern use including manipulating the internet.

Why Look to the Future?

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

need by allowing users to create applications with minimal coding experience.

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

current concepts of organization and categorization. Cultural reconceptualization occurred when

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

machines to complete tasks.

Why should we expect a significant change in programming language concepts in the

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

current programming theory, applications are not organization-aware or security-aware.

Programs do strictly what they are coded to do and involve no intuition based on unexpected

events that may cause crashes, confusion, or security risks.

The Future of Programming: Artificial Intelligence

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

applications in the future.

Artificial Intelligence Programming encompasses automation, Manovich’s third key

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.

Natural Language Programming

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

surface weights Alpha as "[0.5, 0.5]". Initialise matrix Phi as

a 'unit matrix'. Define J as the 'inertia matrix' of Spc01.

Compute matrix J2 as the inverse of J . Compute position

velocity error Ve and angular velocity error Oe from dynamical

state X, guidance reference Xnow .

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

computational procedure or (4) or invokes an answering mechanism in response to a question”

(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.

The Future of Programming: Graphic Structural Design

Graphical Structure Design and Point-and-Click programming will become a way of

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

owners and other users

would be able to create

simple applications to fit

their needs and reduce

costs. Users would be

8
Leonid Sklyut

4/15/2011
Song to Cyberspace

able to choose functions from libraries and connect them with conditionals and other

intermediate go-to statements. Ex:

Point-and-Click programming is actually an extension of any current application. With

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

performs the predetermined operations.

9
Leonid Sklyut

4/15/2011
Song to Cyberspace

Works Cited

Eckel, Bruce. "Programming in the Mid-Future." The Artima Developer Community. 10 Mar.

2010. Web. 05 May 2011. <http://www.artima.com/weblogs/viewpost.jsp?

thread=284730>.

Foord, Michael. "The Future of Programming." Voidspace. Web. 26 Apr. 2011.

<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 &

Reviews - EWeek.com." Technology News, Tech Product Reviews, Research and

Enterprise Analysis - News & Reviews - EWeek.com. 28 Aug. 2006. Web. 29 Apr. 2011.

<eWeek>.

10

You might also like