diff options
Diffstat (limited to 'content/digarden/pages/20210409071539-языки_программирования.org')
-rw-r--r-- | content/digarden/pages/20210409071539-языки_программирования.org | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/content/digarden/pages/20210409071539-языки_программирования.org b/content/digarden/pages/20210409071539-языки_программирования.org new file mode 100644 index 0000000..6df7a21 --- /dev/null +++ b/content/digarden/pages/20210409071539-языки_программирования.org @@ -0,0 +1,130 @@ +:PROPERTIES: +:ID: 77d32578-cf7b-4947-8351-ca2fe19bbf6f +:END: +#+title: Языки программирования + +* Языки программирования +Языки программирования имеют [[id:da3c3733-e508-4a63-a4e9-e8807c73c6f0][Реализации языков программирования]] + +http://progopedia.ru/ + +- [[id:a003951c-d5a6-4390-aeb0-ed1d4d5e8c00][Элементы языков программирования]] +- [[https://hyperpolyglot.org][Сравнение языков программирования <hyperpolyglot>]] +- [[https://web.archive.org/web/20200426084021/https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html][История языков программирования]] + +Личный выбор языков (в порядке предпочтения): +- Python Элементы динамического программирования как в лиспе. Упор на + простоту понимания. Простое устройство интерпритатора. Выбрал бы Ruby, + но он не так популярен. +- Scheme (Guile или Racket) Функциональное программирование, основанное + на лямбда исчислении. Интерпритатор ещё проще чем у мейнстримных + интерпритируемых языков. +- C + Язык операционной системы GNU и множества утилит. Простой язык с множеством стандартов. +- D + Язык между C(++) и Java/C#. Компилируемый, но имеет GC (почти как ~GO~), по функционалу ближе к ~C++~ +- Java + Сложный безопасный язык. Полуинтерпритируемый, полукомпилируемый. +- Scala + Сложный функциональный ооп jvm язык. Хорош тем, что на нём есть работа + и то что он основан на математической функциональной модели. +- Oberon + Минималистичный язык в стиле Си, но безопасный. Вдохновил Java и Go. +- SML + Функциональное программирование с нормальным выводом типов. +- Erlang + Функциональный динамически типизированный язык, расчитанный под + concurrency (параллельность/многопоточность). Имеет странный синтаксис, используется на работах. +- Ruby Динамически-типизируемый язык с заимствованиями из Lisp и + Smalltalk. Самый хороший из мейнстримовых языков хотя качество + библиотек и количество работ на этом языке оставляют желать лучшего. + +Одна или считай-что-одна реализация: +- [[id:cf9a0dd5-561b-4330-bdfd-07689db2dc44][Java]] (openjdk, gcc is dead) +- [[id:7f86ced4-b418-4cd4-a14e-d7e4f1f343de][Haskell]] (ghc) +- [[id:2f0a8624-cbf4-4b9a-a8dc-5ed64c8edc69][Idris]] +- [[id:ab68624c-e88f-4fe4-94e9-d5de53f97358][Ocaml]] +- [[id:99d098f3-1277-4752-837a-5987324385c4][C#]] +- [[id:196cd766-023a-40e6-9fa1-3d0c0036a290][Go]] +- [[id:a80f5c9e-2dc7-4c91-b692-a9be3176dc1e][Ada]] +- [[id:3d11fde0-4c69-40e2-b3f5-6b1d3063b1f9][Perl]] +- [[id:00243b7a-2841-4021-a1be-597a50f6074e][Clojure]] / [[id:21a9de98-8fb1-42b0-b495-750ec33320e0][Scala]] +- [[id:2f0a8624-cbf4-4b9a-a8dc-5ed64c8edc69][Idris]] +- [[id:be4c0663-065f-4564-a72d-cfd4fbd274a4][Erlang]] +- [[id:46bd6e4d-43ea-4f31-aa2d-155b4499b6fb][Zig]] + +Много реализаций, но по факту культура использования одной: +- [[id:6e29e344-2375-49a7-8ca5-234d24a57bc5][PHP]] +- [[id:e3725676-12e5-4e8d-a3cc-cc2c29fdee7a][Python]] +- [[id:ca2c77bb-1921-4e86-9fa3-cc5db9ba03a1][Ruby]] +- [[id:cde2b545-498f-4a38-bd07-4c8d9f81c94c][Dlang]] + +Языки с множеством реализаций +- [[id:40c44577-6cd7-4eac-aac7-288a0537b7e9][C]] / [[id:c3590de1-c364-46c9-a840-7fbc93d1d8e0][C++]] / [[id:fcaa663b-dd38-4d07-a787-947edb13f6e3][ObjC]] +- [[id:eaa22630-cc22-4682-8cbf-e20ee4d5c54d][Javascript]] +- [[id:f9734fab-a506-4993-a2a4-7e5eef057706][Scheme]] +- [[id:eba2c232-f2b2-44b1-840d-bf0fcfb36db5][Common Lisp]] +- [[id:195e9936-de22-40a6-9a60-09a6fee6ae19][SML]] +- [[id:60d78ebc-22a7-4c73-bd79-15e6c476e2e3][Oberon]] +- [[id:5d5b35cb-a220-4812-8cb4-a0c92f7108f6][Modula]] +- [[id:5446e80e-b93c-46aa-b774-d1f36e6b2e46][Pascal]] +- [[id:92d82cbc-29e7-41b0-8ced-e504811255d3][tcl]] + +Подробнее про количество реализаций: +https://en.wikipedia.org/wiki/List_of_compilers +** *Тир-лист*: +*** /Ультрамегасупердуперхарош/ +ATS, Agda, Coq +*** /Ахуителен/ +Scheme, Idris, Forth +*** /Мегахарош/ +Common Lisp, Zig +*** /Харош/ +Prolog, Scala, Rust, Haskell +*** /Чел харош/ +Standard ML, Ocaml, Erlang +*** /Норм/ +Modula-2, Pascal, Ada, Clojure, Oberon, Smalltalk, TCL, Dlang +*** /Неплох/ +Ruby, D, Nim, C#, Javascript +*** /Плох/ +Java, Python +*** /Мегаплох/ +PHP, Simula, Algol +*** /Словил кринж/ +C +*** /Кринжанул/ +Go, Logo +*** /Супермегаультранасрал/ +C++, Fortran, Язык ассемблера +*** /Че ты высрал/ +Lua, APL, Unlambda, Brainfuck +*** /Пошел нахуй/ +Perl, Shell +*** /Атсасииииии/ +1C, Visual Basic + +*Документация:* +- Оффлайн: + -- Python: [[https://en.wikipedia.org/wiki/Pydoc][Pydoc]] + -- Ruby: Ri + -- Java: Javadoc + -- Perl: Perldoc + +*Сравнение языков*: +- Python и PHP не собираются под JVM, когда у Ruby есть поддерживаемый JRuby. +- Scala, Ocaml, Common Lisp сохраняют ООП элементы при этом являясь функциональными языками +- PHP быстрее всего из "интерпретируемых" языков +- C#/Java быстрее интерпретируемых языков, но медленнее чем компилируемые (C, C++, Rust) +- Компилируемые языки со сборкой мусора могут быть медленнее "интерпретируемых" Java/C# +** Языки программирования по типу +*** Моделирование, тестирование +- ADA Spark +- [[https://dezyne.org/dezyne/manual/dezyne/html_node/Introduction.html][Dezyne]] + +[[https://en.wikipedia.org/wiki/List_of_programming_languages_by_type][Список языков программирования по типу]] +** Родословная языков +- [[http://rigaux.org/language-study/diagram-light.png][Простая]] +- [[http://rigaux.org/language-study/diagram.png][Сложная]] + +- [[http://rigaux.org/language-study/syntax-across-languages/][Синтаксис многих языков]]
\ No newline at end of file |