Evolution of Programming

 

The Origins (1840s-1940s)

1843: Ada Lovelace’s Algorithm

The history of programming begins with Ada Lovelace, a British aristocrat that was educated in mathematics and science. In 1843, Lovelace created the very first machine algorithm for Charles Babbage’s Difference Machine. This conceptual leap is what gave birth to the idea of programming languages.

1936: Alan Turing’s Theoretical Foundation

Alan Turing published a paper in 1936 that is now regarded as the founding work of computer science. Turing introduced the concept of a universal machine that could follow instructions. This revolutionary idea eventually evolved into plans for an electricity-powered computer that could run programs, mathematically defining what computation meant.

1940s: First Programming Languages and Electronic Computers

  • Konrad Zuse’s Plankalkül: Considered the first programming language for computers, created in the early 1940s to store codes for routine, repetitive tasks
  • Assembly Language (1949): A programming language that simplified computer instructions
  • Shortcode (1949): Developed by William Schmitt for the BINAC and UNIVAC computers
  • ENIAC: The first programmable, electronic, general-purpose digital computer, which required physical rewiring to program

The First Programming Languages (1950s-1960s)

Early 1950s: First Compiler Languages

  • Autocode (1952): Developed for the Mark 1 computer at the University of Manchester, it was the first language that could be translated into machine code
  • Assembly Language: Further evolved as the first step away from machine code, using symbolic representations of machine instructions

Generated image

Mid to Late 1950s: Foundation of Modern Programming

  • FORTRAN (1957): Developed by John Backus at IBM, FORTRAN (FORmula TRANslation) was the first widely used high-level programming language, designed for scientific and engineering calculations. Remarkably, this language from the 1950s is still used today in supercomputers and scientific computations.
  • ALGOL (1958): Created by American and European scientists, ALGOL became the foundation for many renowned languages including Pascal, Java, C, and C++
  • LISP (1958): Created by John McCarthy, introducing many ideas still central to programming today, including recursion and tree data structures. Originally intended for AI, companies like Boeing and Genworks still use it.
  • COBOL (1959): Developed by a team led by Dr. Grace Murray Hopper, COBOL (Common Business Oriented Language) was designed for business applications like credit card transaction processors, traffic signals, and phone calls. It’s still used in banking and gaming today.

1960s: Programming Becomes More Accessible

  • BASIC (1964): Developed by students at Dartmouth College (Beginners All-Purpose Symbolic Instruction Code), it was designed to make programming accessible. Later further developed and marketed by Bill Gates.
  • PL/I (1964): IBM’s attempt to create a language combining the best features of FORTRAN and COBOL
  • APL (1966): A highly symbolic language focused on array processing
  • SIMULA (1967): The first object-oriented programming language, introducing concepts like classes and inheritance

The Structured Programming Era (1970s)

  • Pascal (1970): Designed by Niklaus Wirth and named after French mathematician Blaise Pascal, it was created explicitly to encourage structured programming. So easy to learn, it was used by Apple early in its history.
  • C (1972): Developed at Bell Labs by Dennis Ritchie for the Unix operating system, combining low-level access with high-level abstractions. Many modern languages like C#, Java, JavaScript, Perl, PHP, and Python are derived from C.
  • Smalltalk (1972): Developed by Alan Kay, Adele Goldberg, and Dan Ingalls at Xerox PARC. It pioneered the graphical user interface and pure object-oriented programming. Its principles are present in Java, Python, and Ruby, used by companies like CrowdStrike and Logitech.
  • SQL (1972): Originally called SEQUEL, it was developed by Raymond Boyce and Donald Chamberlain for viewing and altering information in databases.
  • Ada (late 1970s-early 1980s): Named after Ada Lovelace, it was designed by Jean Ichbiah’s team at CUU Honeywell Bull. A high-level programming language extended from Pascal, Ada is used for air-traffic control in various European countries and space programs.

The Rise of Personal Computing (1980s)

  • C++ (1983): Bjarne Stroustrup modified the C language at Bell Labs to create C++, adding object-oriented features, classes, templates, and virtual functions. It’s now used in MS Office, Adobe Photoshop, and various types of high-performance software.
  • Objective-C (1983): Developed by Brad Cox and Tom Love as another object-oriented extension of C, later becoming the foundation for Apple’s operating systems.
  • Perl (1987): Created by Larry Wall, initially for text editing. Today its primary uses include database applications, data processing, graphic programming, and system administration.
  • Haskell (1990): Named after mathematician Haskell Brooks Curry, this primarily mathematical programming language is used in industries that need complex calculations and record-keeping.
  • Visual Basic (1991, but conceptualized in the late 1980s): Microsoft’s attempt to make Windows programming accessible. It allows users to drag and drop sections of code via a graphical user interface (GUI). Parts of Visual Basic are used in applications like Word and Excel.

The Internet Age (1990s)

  • Python (1991): Created by Guido Van Rossum and named after the British comedy Monty Python, it emphasizes code readability. Today Python is one of the most popular programming languages worldwide, used by giants like Google and Spotify.
  • Ruby (1993): Created by Yukihiro Matsumoto as a high-level programming language primarily for web applications development. Today it’s used by companies like Groupon.
  • HTML (1993): Not strictly a programming language, but fundamental to web development
  • Java (1995): Developed by James Gosling at Sun Microsystems with the promise of “write once, run anywhere.” It’s one of the world’s most popular programming languages, used in everything from cell phones to parking machines.
  • JavaScript (1995): Created by Brendan Eich, now ubiquitous in web development. Used for web development, PDF documents, and desktop widgets, it’s on almost every major website, including Adobe, Gmail, and Mozilla Firefox.
  • PHP (1995): Originally known as “Personal Home Page” but now stands for “Hypertext Preprocessor,” it was developed by Rasmus Lerdorf. Used for building and maintaining web pages and server-side development, PHP powers huge platforms like Facebook, Wikipedia, and WordPress.

The Modern Era (2000s-2010s)

  • C# (2000): Microsoft developed C# in an attempt to combine elements of Visual Basic and C. It’s now used in all the company’s products.
  • Scala (2003): Created by Martin Odersky, it can work with Java, giving it an advantage in Android development. Scala is used by social media and entertainment giants like Twitter, LinkedIn, and Netflix.
  • Groovy (2003): An easy-to-learn language developed by James Strachan and Bob McWhirter, used by companies like Starbucks, Craftbase, and Transferwise.
  • Go (2009): Developed by Google to resolve challenges faced by large software systems. Go is popular with big tech companies like Uber, Dropbox, and of course, Google.
  • Rust (2010): Mozilla’s language designed for memory safety without garbage collection
  • TypeScript (2012): Microsoft’s statically-typed superset of JavaScript
  • Swift (2014): Developed by Apple to replace C, C++, and Objective-C, intended to be easier and more versatile. Swift can be used for cloud applications, mobile, and desktop. Language platform Duolingo used it to launch a new app.

The AI and Cloud Native Era (2010s-Present)

  • Julia (2012): Designed for high-performance numerical analysis and computational science
  • Kotlin (2011, widely adopted late 2010s): Modern alternative to Java, particularly for Android development
  • WebAssembly (2017): Not a traditional language, but a binary instruction format for a stack-based virtual machine
  • Dart (2011, popularized with Flutter 2017): Google’s language for multi-platform development
  • Python’s resurgence: Becoming the dominant language for data science, AI, and machine learning

The Future of Programming

As we look ahead, programming continues to evolve in exciting new directions. Low-code and no-code platforms are democratizing software development, making it accessible to those without traditional programming skills. Meanwhile, AI-assisted coding tools like GitHub Copilot are revolutionizing how developers work by generating code from natural language prompts. The emergence of quantum computing is driving the development of specialized quantum programming languages to harness this powerful new paradigm. Simultaneously, domain-specific languages are becoming increasingly sophisticated, offering tailored solutions for specific industries and problems. These trends collectively point to a future where programming becomes both more specialized and more accessible, continuing the remarkable journey that began with Ada Lovelace’s algorithm nearly two centuries ago.

 

 

 

Citations

Aron, Jacob. “Alan Turing.” New Scientist, www.newscientist.com/people/alan-turing/.

Hamilton, Tim. “History of Programming Languages.” Praxent, 4 Oct. 2022, praxent.com/blog/history-of-programming-languages.

The Editors of Encyclopedia Britannica. “Ada Lovelace | Biography & Facts.” Encyclopædia Britannica, 23 Nov. 2018, www.britannica.com/biography/Ada-Lovelace.

Your journey starts here! Let’s talk!

ThemeRex © 2026. All rights reserved.
  Timothy Durham was convicted of rape when a test showed his DNA genotype matched the DNA recovered from the crime scene. Eye witnesses testified that Durham was in a different state at the time of the incident, but he wasn’t exonerated from his 3000 year sentence until follow up DNA analysis showed that the preliminary forensic analysis used in the trial was misinterpreted (Thomas et al.). DNA testing serves an invaluable part in our criminal justice system, but it comes with complications and bias that can lead to wrongful convictions and misinformed juries.  

Background:

Forensic genetics aims to identify the origin of a biological sample. It can be traced back to Karl Landsteiner who discovered human ABO blood groups. With blood groups, suspects could be eliminated based on their blood type. For example, if a suspect had type A blood and there was type B blood left at the scene by the perpetrator, the investigators could rule out the suspect. Unfortunately, the reverse didn’t work. If the suspect and perpetrator both had the same blood type, it can’t be concluded that the suspect was guilty. Blood identifiers evolved into 8 distinct categories which improved the ability to eliminate suspects, but could only conclude that (if the system matched) it might be the perpetrator or this person might be related to the perpetrator (Jobling and Gill). The field evolved in the 1980s with the discovery of Minisatellites, lines of repetitive DNA that don’t encode proteins. Minisatellite patterns in DNA create what we know today as the DNA fingerprint, and it has a much higher accuracy rate than previous methods (Augustyn et al.). Around the same time, a breakthrough for victims of sexual assault was discovered. In the case of assault, bodily fluids of both the victim and the assaulter can get mixed. A process called differential lysis was created which could selectively increase the concentration of sperm in a fluid sample thereby allowing for accurate DNA testing (Jobling and Gill). Forensics evolved to use single-locus probe testing after several years because of its ease of interpretation. It looked at specific minisatellites that had high variability between subjects. This was the first DNA-based method to be used in a criminal investigation. Two murder homicides from several years apart were connected using DNA evidence. The evidence was then used to exonerate an innocent man, and the guilty party was found when he tried to evade mandatory DNA testing for all men in the small town. His guilt was then reinforced when the DNA profiles matched, and he gave a confession (Jobling and Gill). Finding DNA at a crime scene doesn’t guarantee that you’ll find a murderer. There are issues with non-pure samples and limited samples that make DNA work difficult, and accreditation of facilities and new techniques and take time (Jobling and Gill).  

Subjectivity of DNA Interpretation:

In a 2009 publication, the National Academy of Science discusses the possibility for subjective influence in lab based forensics. The interpretation bias happens in complex cases where, for example, there could be a mixture of DNA. A study published in 2011 looked specifically at this issue. A gang rape happened in Georgia, and the mixture in DNA from the case was used to prosecute one suspect after another suspect took a plea bargain to testify against him. With DNA mixtures, there are three possible conclusions: suspect excluded, suspect cannot be excluded, and inconclusive. If the suspect is excluded, it means that there’s little to no possibility that his DNA is part of the sample. If the suspect cannot be excluded, it means that there’s a possibility that his DNA is part of the sample. In the trial, the DNA examiners who knew the context of the case concluded that the suspect being prosecuted could not be excluded. The 2011 study gave the DNA evidence from this case and the DNA profiles of the suspects to 17 forensic examiners. These examiners had no context of the case, and they all worked independently. Of the 17, only 1 came to the same conclusion (suspect cannot be excluded) as the examiners who knew the context of the case. Twelve of the 17 concluded that the suspect who was prosecuted and convicted had no relation to the DNA found in the sample. Not only does this show that subjectivity occurs due to the context of the case, but the 17 examiners came up with different findings based on their past experiences meaning that not all DNA analysis is objective. Some organizations like the Scientific Working Group on DNA Analysis Methods say that quantitative statistical evidence should be presented with every categorical conclusion, but the US doesn’t require this (Dror and Hampikian).

False Positives:

There are two categories that cause wrongful identification in a DNA report: coincidental matches and false positives. Coincidental matches are DNA matches between two unrelated people. The probability of these matches is about 1 to 500,000 for white individuals and about 1 to 350,000 for black individuals. This small probability of coincidental matches makes people feel confident in DNA evidence. False positives, on the other hand, are matches between DNA and test DNA that result from issues in the forensics lab. There have been multiple cases of forensics labs accidentally switching victim and suspected rapist DNA which lead to convictions that were later overturned when the lab realized the error. There are also cases of misreading or misunderstanding a sample. In a case from 1993, a man was convicted of rape because someone interpreted a mixed sample of victim and perpetrator DNA as an individual sample. The conviction was again overturned. To prevent false convictions, retesting DNA is allowed, but it’s not an efficient solution. Many people are pushing for statistical information on the probability of false positives, so that the jurors can make accurate judgements based on DNA evidence (Thomas et al.).  

Conclusion:

DNA analysis is a useful tool for the criminal justice system, but subjectivity can be an issue in forensic testing. To combat wrongful convictions, there are organizations like The Innocence Project who use DNA testing to free the innocent, but reformed forensic testing standards should be put in place to prevent subjectivity and to ensure juries are correctly informed during trials. https://www.innocenceproject.org/    

Citation:

Augustyn , Adam, et al. “DNA Finerprinting.” Encyclopedia Britannica , 26 Apr. 2018, www.britannica.com/science/DNA-fingerprinting#ref153186. Dror, Itiel E., and Greg Hampikian. “Subjectivity and Bias in Forensic DNA Mixture Interpretation.” Science & Justice, vol. 51, no. 4, 2011, pp. 204–208., doi:10.1016/j.scijus.2011.08.004. Jobling, Mark A., and Peter Gill. “Encoded Evidence: DNA in Forensic Analysis.” Nature Reviews: Genetics, vol. 5, no. 10, Oct. 2004, pp. 739–751., doi:10.1038/nrg1455. Thompson, William C, et al. “How the Probability of a False Positive Affects the Value of DNA Evidence.” Journal of Forensic Sciences, vol. 48, no. 1, Jan. 2003, pp. 1–8., doi:10.1520/jfs2001171.