I came up with Erlang, because it did not exist


the Author, Joe Armstrong, developer Erlang

I, as a programmer-timer, sometimes I like to remember my youth ...

When, in the distant 1967, I started to learn programming, I chose between languages Fortran and Algol. About Algol were a lot of rumors, but almost no useful information was impossible to find, so I started with Fortran.

Writing the same program on average took 3 weeks:

week 1 — writing programs on paper and sent to a computer center, where I did punch cards.
week 2 — checking the punched cards, and load them into the computer;
week 3 — acquisition and analysis of the results.

When the compiler reaches the first syntax error in the program, he stayed, and it threw me back to the beginning, to the first week. To correct 10 errors in the program could take 30 weeks!

Although in some ways it was even good — it has taught me to think before writing the program and not to make mistakes.

In 1970 I studied at the University. I was able to print the card, and the time required for this phase, from weeks down to 4 hours. I still wrote on Fortran'.

In 1974, I had access to a computer Honywell DDP516 — huge memory of 32 KB. Finally, the Fortran compiler will compile a program of 100 lines in less than a week!

And in the same year I started working at CERN and to use the supercomputer CRAY1, which will compile 100 of thousands of lines of code in Fortran in 1 picosecond (haha, actually he was a million times slower than my current mobile phone)!

And I still wrote on Fortran'.

Soon I was able to play with DEC10 — now I could write code in Fortran'e, Basic and Assembler'e, and he was multi-tasking! If I lived in USA, I would become bill Geits, but I lived in Edinburgh.

In 1976 I got a job at NORD10 Fortran'e and Assembler'e, this computer was really fast, handled the programs in seconds!

In 1980 I was still programming in FORTRAN (forgot the name of the machine). All files lie in one folder, it was not a full-screen editor, no version control system. I wrote about 150 thousand lines of code in Fortran'e for all this!

1985 — I joined Ericsson with stunning VAX11/750. I finally got the opportunity to learn new languages. Farewell To Fortran!

I have studied (to varying degrees) Lisp, Prolog, awk, bash, smalltalk, TCL, and became a Pro in Prolog (arrrrr — my precious)

I've played with almost all languages that I've ever seen (ML, forth, ...)
1986 — beginning of period Erlang (I couldn't learn Erlang, as it did not exist, so you could say that I created it) — it was the offspring from Prolog+Smalltalk.

Then I learned (horrible) C. Mike Williams (co-maintainer of Erlang) said that my C code is crap and looks like my Fortran. His phrase sent my C in the trash...

When I started to gain the popularity of C++, I tried to read a book about it... still left a dent on the wall behind the piano, where I threw in a fit of anger! I thought that the development of C should make things easier, and it was even more confusing!

As time went on.

I tried Java, was not impressed, although of course it's better than C++, but it's so wordy! My fingers are going numb when Fortran'e write hundreds of lines of code to implement the simplest of things — like on Java. I also later programmed in Python (normal), Ruby (norm), Lua (better), Javascript (my love :-). The study of these languages really took me a lot of time. I have 15 years of experience in Fortran — sufficient, to become a Pro in it, Prolog 10 years, 20 years, Erlang, and so on.

It took a long time to assimilate new ideas. Fresh ideas in programming come very rarely. About once every 20 years who have really good, fresh idea. Programming is now not far away compared to the level of 20 years ago — in fact, as was the mess in the code, and left.
IDE's and a version control system have made our world worse. You have all the old versions of mess, and the mess, and the IDE means you can't even see this mess. Still the best IDE in the world is your BRAIN.

So, what to do with your education? I will try to see where you could start.

You can choose from more than 20 languages (all of them are good for a particular task). What took me 40 years of study, you can try to study for 2-3 years, there is nothing impossible.

What languages should a beginner learn what should be taught in schools?

Despite the huge variety of languages for any taste, stop on something one is not an easy task. The old saying: "choose language in accordance with the problem to be solved". Easy to say so when you know 20 (or more) languages (with varying degrees of professionalism), but if in a locked Luggage only Java and C — this advice is not much help! Especially fun when the solution of CLP-language takes just a few lines on the same C — thousands!

So here are my recommendations for studying:

the
    the
  • C
  • the
  • Prolog
  • the
  • Erlang (yum-yum :)
  • the
  • Smalltalk
  • the
  • Javascript
  • the
  • Haskell/ML/OCaml
  • the
  • LISP/Scheme/Clojure


A couple of years should be enough (per LANGUAGE). I don't mean the "quick start", or something. If you want fast code, immediately run to the store for a book "PHP for dummies" and spend the next 20 years, Google questions like "how to calculate the length of the string".

We are still very weak in the interaction of different programs and modules written in different languages. Still the best way to interact is to use the UNIX find... | grep | uniq | sort | ...
The fundamental reason for this is that there must be some intermediate language interaction between components with clearly defined protocols.

Interaction by message passing is one of the ways, the basis of object-oriented programming, but it is implemented poorly in most languages. If all apps in the world talked on the sockets and lipowski S-vyrajeniem and would have a standard description exchange protocols, then we would much more efficient to reuse code.
Today the concentration of languages and different methods is huge, but how to combine these methods together — is implemented very poorly. Study protocols, not languages.

And learn ALGORITHMS.

Your health!

PS the article approximate

Author: Joe Armstrong; the Original article at angliyskom; the author of the translation: metadiel

Friends, I urge everyone who is not indifferent to IT topics and startups and know English to join the English translation of interesting articles! Output: pumping English, expanding horizons and respect from those who can't afford to read them in the original. Write in PM!
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

March Habrameeting in Kiev

PostgreSQL load testing using JMeter, Yandex.Tank and Overload

Monitoring PostgreSQL with Zabbix