Wednesday, October 12, 2016

The Art of Writing Software

computers are like musical instruments built to perform their machines cleverly
crafted but made of dumb stuff they can do only precisely what they're told
what makes them perform is a stream of instructions written in code the code of
composers is called musical notation
the code of computer programmers is software
it didn't occur to me at the time that I just had to program in order to be a
happy man where you know by adding a couple lines took to my to my program
give me a real high I it must be the way you know poets feel when they're when
they're or musician and so on . q 2 spent five decades of his life
practicing and teaching the art of programming a discipline
he loves I saw my first computer in 1957 which is pretty late in it in the
history game as far as computers
my concern on the other hand programming was still pretty much and of a new thing
one night a guy showed me how it worked and it was love at first sight
i i i i could sit all night with that machine and play with it to people who
loved puzzle solving and intricacy early computers were seductive and empowering
astonishingly fast
they seemed capable of figuring out just about anything anything that is it could
be expressed using the native commands for that particular computer
it's machine language computers are very very dumb and
you have to have to use very small words to make them understand and you have to
speak in a very formalized way a lot of times that's that's what programming is
is knowing how to speak to the machine in a way that will make it
do a little dance you want to do early programmers road machine language in
numbers numbers representing strings of zeros and once on and off the binary
commands an individual computer circuit can understand but for humans
writing in numbers is tedious and error-prone so it didn't take long for
programmers to invent ways of making this machine language or human friendly
the first step was to substitute names and symbols that were easier to remember
and then get the computer itself to translate this coded assembly language
into binary assembly language was still tedious but using the computers
themselves to translate from human programming languages to the machines
binary language was the key that unlocked the software revolution
well programming you know in machine code was is pretty lousy this to engage
with me the all that was available was at a server at a very crude assembly
program and so I figured well let's make it a little easier
after four years work in 1957
IBM released the first complete higher-level language
programmers could now Express familiar scientific formulas and logical
instructions and statements that made sense to them
fortran compiler software would then translate these formulations into the
expanded instructions in binary the computer needed programmers no longer
had to learn each computers machine language instructions
instead compilers are written to translate fortran programs for any
fortran was written for the scientists and engineers who first needed and
supported computing in 1959 a language called cobol made programming for
business applications easier
based on experience from grace hopper is pioneer flow matic language
cobol with its close to English expressions became the most widely used
language for creating business software over the decades hundreds of languages
have been written optimized for different needs
the expressions in these languages became more distant over the years from
what the machines would need to do
let's say add the next data item to the running some and closer to what the
programmers really wanted to achieve like create a list of expensive books
sorted by title
as computing became personal so did programming languages today millions of
us do routinely what programmers do we tell a computer in code
what we wanted to do like compute the average of all our salaries we invent
languages that let us simulate other languages so that we can allow people
who are experts in businesses do their own programming and one of our goals in
the seventies which I think has happened is that most people feel and power to
change the computer
writing standardized compact instructions is just one part of
programming software programs exist to process data all kinds of it
data also needs to be interpreted and organized for binary computers of course
binary numbers can represent the decimal numbers
some have been assigned standard interpretations as alphabet letters and
symbols data gets organized into strength into lists tables trees and
more defining how data is represented an organized has become more and more
important after all
stupendous quantities of data are now accessible to the world's computers
if i had a video camera several of them around me from the moment I was born
until the day I died
I could probably keep all that information easily in today's technology
and about the space of a search sugar cube
so the question for me from the software site is it is what can I do with that
what the programmer wants to do is get answers and solve problems
choose an appropriate language define how the data will be represented and
structured now the programmer must create step-by-step procedures that will
accomplish the task much like a chef creating a recipe
the programmers recipes are called algorithms which doesn't mean saying now
computer you do this it means
thinking of a series of operations in a way of specifying those operations that
will make the events occur that you want to occur and that sounds so simple it's
almost never really simple for even the simplest steps like sorting data lists
in order
there are hundreds of possible algorithms good
there are thousands of kinds of problems how do you look up a customer in a list
doesn't seem very hard to find the best route from A to B not so easy
model the forces in hurricane very very complicated
easy or hard all programming problems are solved with languages data
structures and algorithms plus a lot of hard focused concentration
I found that writing software was much more difficult
anything else i had done in my life I had to keep so many things in my head at
once it
I couldn't just put them down and start something else
programmers write software in a world of technology that's constantly improving
their efforts have always pushed computing toward more complex grandeur
it seems that will always be true
writing you software is an act of human creativity
it is the highest of high tech and also in our
you know I just want to i want it to be elegant in a way that that hangs
together somebody
you can read it
software programmers have extended our reach
amplified our minds and giving us immense powers in a world alive with
information and interaction those who lived not long before us would have
called it magical
but it's not magic its software making computers