Pierwsze języki programowania

Pierwszym programistą była kobieta ?🙂 Jeśli uznać za pierwszy kod, program napisany do maszyny analitycznej - to tak❤️ Maszyna stworzona przez Charles Babbage, była mechanicznym archekomputerem. Sam Babbage jednak nie zdołał zakończyć prac nad swym wynalazkiem. To Ada Lovelace opisała tę nieprawdopodobną maszynę, po czym stworzyła dla niej program, który obliczał liczby Bernoulliego. No to nieźle😉

Pierwsze języki programowania były zwykle językami maszynowymi lub symbolicznymi reprezentacjami instrukcji maszynowych. Od czasów Ady Lovelace wiele się zmieniło. Dziś zapraszamy troszkę do takiej podróży sentymentalnej do korzeni programowania. Jak wyglądały pierwsze języki programowania i jak przybliżały Nas do coraz lepszego i szybszego kodowania.

Oto krótka historia:

Ada Lovelace Źródło Wikimedia Commons

ENIAC na tle ważnych wydarzeń historycznych.

Choć dziś programuje się komputery w systemie binarnym, to najstarszy komputer, za który uznaje się ENIAC, posługiwał się na początku systemem dziesiętnym.  Jednak, w czasie prac zrozumiano, że  system dwójkowy, jest bardziej efektywny dla operacji logicznych i przechowywania danych. Programowanie tego komputera, wtedy uznawane za jego konfigurowanie,  było skomplikowanym procesem i wymagało zatrudnienia bardzo wielu osób. ENIAC był bowiem programowany za pomocą przewodów i przełączników, co było uciążliwe i czasochłonne. W 1945 roku armia amerykańska zatrudniła 6 kobiet-matematyczek (które do tej pory pracowały przy wyliczeniach trajektorii bomb) nad tajnym projektem rządowym, którym właśnie było programowanie ENIAC. Po roku ich trudy przyniosły niespotykane jak dotąd efekty. ENIAC, zamiast wykonywać pięć funkcji (w tym przypadku było to dodawanie) na sekundę, wykonywał 20 000! WOW. I to był wynik możliwy do osiągnięcia przez każdy z 20 generatorów (ang. accumulators), którymi dysponował ENIAC. Był on też maszyną niezwykle wszechstronną. Początkowo miał służyć do przewidywania pogody. Jednak jego uniwersalna architektura sprawiała, że został wykorzystany do prac związanych m.in z projektowaniem i testowaniem broni jądrowej.

Jak to wszystko ułatwić?

Duży przełom w pisaniu kodów przyniósł Asembler. W 1948 J.M. Hill i Maurice Wilkes opracowali pierwszy asembler dla komputera EDSAC. Był to zestaw makroinstrukcji, które tłumaczono na instrukcje maszynowe. Czyli zmieniono polecenia z naszego na maszynowe, czyt. staliśmy się bardziej "zrozumiali" dla maszyn". Dwa lata później, Alick Glennie, również pracujący przy projekcie EDSAC, opracował język asemblera, który nazywał się "SOAP" (Symbolic Optimal Assembly Program) i był pierwszym językiem asemblera w historii. Kolejne dwa lata później, w 1952 r., IBM stworzyło pierwszy asembler dla komputera IBM 701. W tym czasie równie duży przełom w tej materii przyniósł też  rozwój komputera UNIVAC II. Wynalazki i pomysły przełomu lat 40tych i 50 tych dały początek swego typu standaryzacji i upowszechnieniu asemblera.

Ah ten FORTRAN.

U podstaw powstania FORTRANA jest stworzenie języka, który miałby formę bardziej zrozumiałą dla ludzi, opartą na matematycznych formułach i równaniach. Prace nad nim rozpoczęły się w roku 1954 i po trzech latach powstała pierwsza wersja Fortranu (Fortran I). Warto się tu zatrzymać bo ten rok uznaje się za rok powstania pierwszego języka wysokiego poziomu. Już trzy lata później, w marcu 1957, wydano książkę pt.: "The FORTRAN Automatic Coding System for the IBM 704" autorstwa Johna Backusa i innych członków zespołu IBM. Była to ważna publikacja, która dokumentowała zasady i sposób korzystania z języka Fortran. Oczywiście historia FORTRANA nie kończy się na '58 roku😄 Tutaj zależało Nam na pokazaniu jego wpływu na historię języków programowania.

Źródło: Fortran acs cover - Wikimedia Commons

Co było dalej?

Wydaje, że rok '58 i '59 były momentem zwrotnym w historii języków programowania (lub co najmniej bardzo ważnym😉 ). Na ten rok przypadają bowiem jeszcze trzy ważne wydarzenia. W 1958 powstaje LIPS  i ALGOL, a rok później COBOL.

Każdy z nich wprowadził jakiś przełom.

LISP

W 1958 John McCarthy przedstawił koncepcję języka, który byłby zdolny do manipulowania symbolicznymi wyrażeniami. Wprowadził również podstawowe operacje na listach, takie jak CAR i CDR. Tak powstał LISP. Następnie przyszedł czas na wprowadzenie pojęcia lambda-kalkulu, który pozwalał na formalne wdrażanie operacji na funkcjach i wyrażeniach. W tym samym czasie McCarthy wprowadził też funkcję "eval".

ALGOL

Język ten powstał jako wypadkowa międzynarodowego spotkania matematyków. Matematycy powołali specjalny komitet. Jego cel? Oczywiście, opracowanie nowego języka programowania. W roku 1959 została opublikowana pierwsza wersja standardu ALGOL 60. Język ten miał być używany w naukowych i inżynieryjnych obliczeniach. Wprowadzał liczne innowacje, takie jak: bloki kodu, rekordy, procedury, operatory arytmetyczne, warunkowe i iteracyjne struktury kontrolne i dawał możliwość definiowania własnych typów danych.

COBOL

I znów prawdziwe okazało się stwierdzenie, że potrzeba jest matką wynalazków. Doniesienia z tamtych lat mówią, że programistka Burroughs Corporation - Mary Hawes, w marcu 1959, wezwała użytkowników i producentów komputerów do stworzenia nowego języka komputerowego, który miałby działać na komputerach różnych producentów. Uznała także, że program ten powinien robić zadania księgowe, takie jak obliczanie płac, zapisy kredytów i obciążeń czy kontrola zapasów. I tak COBOL został zaprojektowany przez członków CODASYL. Tutaj swój znaczący wkład miała Grace Hopper. Przez lata związana z marynarką wojenna, w 1949 roku zaczęła pracę dla sektora prywatnego. W 1952 r. Hopper wraz ze swym zespołem stworzyła pierwszy w historii kompilator komputerowy. Stał się on tak naprawdę podwaliną dla języka programowania COBOL (common business oriented language). Grece jest do dziś nazywana - "Babcią COBOL'a'". Sam COBOL był to język wysokiego poziomu, przyjazny dla użytkownika, a jego kod mógł być wielokrotnie wykorzystywany. 

Źródło: https://www.silicon.co.uk/projects/devops/tales-tech-history-cobol-214265

Tutaj na razie postawimy kropkę. Te 15 lat historii języków programowania pokazuje, jak zdeterminowani byli badacze i programiści tamtych czasów. Jak potrafili kreować nowe programy, które miały się stawać jeszcze doskonalszymi narzędziami. Niektóre ich pomysły wyprzedzały epokę. Imponujący jest także fakt, jak różne grupy i organizacje umiały ze sobą współpracować, a nie tylko konkurować😉 . Niezaprzeczalnie, te kilkanaście lat na przełomie lat 40tych i 50tych dało podwaliny do spektakularnego rozwoju naszej dziedziny. W następnych latach było już tylko ciekawiej😄

Będziemy z pewnością jeszcze o tym pisać na naszym blogu. 

Galeria zdjęć

Wideo

First programming languages

The first programmer was a woman ?🙂 If we consider as the first code, this program written for the analysis machine - the answer is YES ❤️ The machine created by Charles Babbage, was a mechanical arch-computer. Babbage, however, failed to complete it. Ada Lovelace was a person who described this incredible machine and wrote a program for it. Machine calculated Bernoulli numbers. Well that's not bad😉

The first programming languages were usually machine languages or symbolic representations of machine instructions. Much has changed since the days of Ada Lovelace. Today, we invite you on a little bit of such a sentimental journey to the roots of programming. What the first programming languages looked like and how they brought us closer to better and faster coding.

Source: Ada Lovelace - Wikimedia Commons.

Here is a brief history:

ENIAC against the background of important historical events.

Although today computers are programmed in the binary system, the oldest computer, which ENIAC is considered to be, used the decimal system in the beginning.  However, in the course of development, it was realised that the binary system, was more efficient for logical operations and data storage. Programming this computer, then considered to be its configuration, was a complicated process and required a great many people. Again ;) women took first fiddle in this matter ;) In 1945, the US Army hired 6 female mathematicians, who up to then had been working on bomb trajectory calculations, to work full-time on a secret government project. This was because ENIAC was programmed with wires and switches, which was cumbersome and time-consuming. After a year, their toil yielded unprecedented results. ENIAC, instead of performing five additions per second [like its predecessors],was performing 20,000! WOW. And this was a result possible with each of the 20 generators (accumulators) at ENIAC's disposal. It was also an extremely versatile machine. It was originally intended to be used for weather prediction. However, its versatile architecture meant that it was used for work such as the design and testing of nuclear weapons.

How to make it all easier?

A major breakthrough in code writing came with Assembler. In 1948, J.M. Hill and Maurice Wilkes developed the first assembler for the EDSAC computer. This was a set of macro-instructions that were translated into machine instructions. That is, the commands were changed from ours to machine instructions, read we became more 'understandable' to machines." Two years later, Alick Glennie, also working on the EDSAC project, developed an assembly language, which was called 'SOAP' (Symbolic Optimal Assembly Program) and was the first ever assembly language. A further two years later, in 1952, IBM created the first assembler for the IBM 701 computer. At this time, the development of the UNIVAC II computer also brought a major breakthrough. The inventions and ideas of the late 1940s and early 1950s gave rise to a kind of standardisation and popularisation of the assembler.

Ah that FORTRAN.

At the heart of the creation of FORTRAN is the creation of a language that would have a form more understandable to humans, based on mathematical formulas and equations.  Work began in 1954 and after three years the first version of Fortran (Fortran I) was created. It is worth stopping here because this year is considered to be the birth of the first high-level language. Just three years later, in March 1957, a book was published entitled: "The FORTRAN Automatic Coding System for the IBM 704" by John Backus and other members of the IBM team. This was an important publication that documented the principles and use of the Fortran language. Of course, the history of FORTRAN does not end with '58😄 Here we were keen to show its impact on the history of programming languages. By the way🙂 Did you know that Fortran played a key role in the spread of programming in scientific communities, enabling fast and precise calculations for fields such as physics, astronomy, engineering and.... meteorology.  The people of Poland are certainly grateful; the weather in Poland is still a mystery, but it is at least somewhat predictable.

Source: Fortan acs cover Wikimedia Commons

So it seems that '58 and '59 were a turning point in the history of programming languages (or at least a very important one😉 ). After all, three more important events fall into this year. In 1958, LIPS and ALGOL were created, followed a year later by COBOL.

Each of them introduced some kind of breakthrough.

LISP

In 1958, John McCarthy introduced the concept of a language that would be capable of manipulating symbolic expressions. He also introduced basic list operations such as CAR and CDR. This is how LISP was born. Then came the introduction of the concept of lambda-calculus, which allowed formal implementation of operations on functions and expressions. At the same time, McCarthy also introduced the 'eval' function.

ALGOL

This language originated as the product of an international meeting of mathematicians. Mathematicians set up a special committee. Its aim? To develop a new programming language, of course. In 1959, the first version of the ALGOL 60 standard was published. This language was to be used in scientific and engineering computing. It introduced numerous innovations, such as code blocks, records, procedures, arithmetic operators, conditional and iterative control structures and gave the possibility to define your own data types.

COBOL

Again, the statement that necessity is the mother of invention proved true. Reports of the time state that Burroughs Corporation programmer Mary Hawes, in March 1959, urged computer users and manufacturers to create a new computer language that would run on computers from different manufacturers. She also felt that this program should do accounting tasks such as payroll calculations, credit and debit entries and inventory control. And so COBOL was designed by members of CODASYL. This is where Grace Hopper made a significant contribution. For years associated with the navy, she began working for the private sector in 1949. In 1952. Hopper and her team created the first ever computer compiler. It actually became the foundation for the COBOL (common business oriented language) programming language. It was a high-level, user-friendly language. The Cobol code itself could be reused many times.

Source: https://www.silicon.co.uk/projects/devops/tales-tech-history-cobol-214265

This is where we will put the dot for now. These 15 years of the history of programming languages show how determined the researchers and programmers of the time were. How they were able to create new software that was to become even more perfect tools. Some of their ideas were ahead of the era. What is also impressive is how different groups and organisations knew how to work together and not just compete😉 . Undeniably, those dozen years in the late 1940s and early 1950s laid the foundations for the spectacular development of our field. The following years were only more interesting😄 .

We will certainly continue to write about it on our blog.

Gallery

Wideo