- PVSM.RU - https://www.pvsm.ru -

Что делает язык программирования «модным»?

Что делает язык программирования «модным»? - 1

Сейчас много языков программирования, соперничающих за ваше внимание, особенно «горячие» (или «модные!») новые языки, такие как Ceylon, Crystal, Dart, Elixir, Elm, Go, Haxe, Julia, Kotlin, Rust, Swift, TypeScript. И новые, кажется, появляются каждый месяц!

Даже некоторые из не совсем новых языков привлекают внимание, такие языки, как Clojure, Erlang, F#, Haskell, Lua, OCaml, Scala. Некоторым из них исполнилось несколько десятилетий!

Поэтому мне стало интересно: что делает язык программирования, независимо от возраста, модным и захватывающим? Почему 27-летний Haskell все еще вызывает разговоры? Как может 31-летний Erlang вызывать эмоции после стольких лет? Какова любовь к 24-летнему Lua? Об F# до сих пор говорят очень нежно, хотя за ним стоит 12-летняя история.

Конечно, одной из главных причин является растущий в последние годы интерес к функциональному программированию. Люди изучают все их функциональные возможности, в том числе языки, предшествующие Java (порой несправедливо называемые древними и устаревшими).

Erlang примечателен OTP (Open Telecom Platform) и его системой времени исполнения (BEAM), что делает Erlang замечательным для написания распределённых отказоустойчивых приложений.

Clojure использует силу и элегантность Lisp. Lua популярен в игровой индустрии как встраиваемый язык. Kotlin и Scala пытаются улучшить Java, самый популярный язык программирования на планете.

Dart и Elm предлагают альтернативы широко презираемому JavaScript. Rust обещает безопасность памяти. Julia – технологический tour de force.

Таким образом, казалось бы, эти языки популярны по разным причинам. За исключением функционального программирования, действительно нет общих признаков. Даже 7-летний Go поднялся на вершину языковых чартов благодаря простоте и минималистичности, без каких-либо инноваций в дизайне языка!

Тогда как мы объясним тот факт, что языку Smalltalk сегодня так мало уделяют внимания? У него есть все нужное…

  1. Smalltalk – один из самых маленьких, простых и элегантных языков программирования, когда-либо созданных. Весь его синтаксис может поместиться на обратной стороне открытки! Это делает Smalltalk очень, очень лёгким в изучении. У Smalltalk крайне низкое, если не несущественное когнитивное трение при кодировании. Вам не нужно задумываться над языком, вы просто решаете вашу проблему.
  2. Smalltalk имеет великолепные «живое кодирование и отладку» в IDE, которые делают программирование чрезвычайно быстрым и продуктивным. Вы можете внести изменения в текущую программу и сразу увидеть результаты. Это почти полностью исключает цикл edit-compile-test-debug, который затрудняет работу почти со всеми иными языками программирования. И это удивительно просто в использовании. В современном мире программирования нет ничего подобного.
  3. Smalltalk – один из самых продуктивных языков программирования [1]. Более чем в два раза производительнее, чем Python и Ruby. Более чем в 3 раза эффективнее JavaScript!
  4. Несмотря на свою относительную безвестность, Smalltalk – очень практичный промышленный язык! Он коммерчески использовался более трёх десятилетий. Его известные пользователи включают JPMorgan, Desjardins, UBS, Florida Power & Light, Texas Instruments, Telecom Argentina, Orient Overseas Container Lines [2], Siemens AG и прочие. Проверьте ALLSTOCKER [3] и банкоматы на улицах Москвы [4].
  5. Smalltalk прекрасно масштабируем. В начале 2000-х годов объединённые военные силы США использовали Smalltalk для написания программы в миллион строк по моделированию боевых действий под названием JWARS. Фактически он превзошел аналогичное моделирование под названием STORM, написанное на C++ в ВВС США.
  6. Smalltalk имеет богатое наследие [5]. Это был первый язык программирования для популяризации ООП, и он остается прекрасным примером языка ООП (именно поэтому он породил целое поколение языков ООП, таких как Java, Python, PHP, Ruby, Perl, Objective-C, CLOS, Dart, Scala, Groovy и прочие). Smalltalk – это правильное ООП
  7. Smalltalk продолжает активно развиваться, особенно в рамках проекта Pharo [6] и Inria [7]. И Amber [8] для сети, и Redline [9] для JVM. Smalltalk был модернизирован для двадцать первого века.
  8. Кстати, у Smalltalk также есть функции первого класса и замыкания, поэтому он хорош и для функционального программирования!

Smalltalk чрезвычайно универсален (является языком программирования общего назначения):

И я лишь начал!

Smalltalk заслуживает место среди «горячих» (или «модных!») новых языков, таких как Elixir, Elm, Go, Julia, Kotlin, Rust. В конце концов, Pharo всего 9 лет.

Об авторе

Ричард Энг – отставной разработчик программного обеспечения из Канады с более чем 30-летним опытом работы в ИТ-индустрии. Он работал в сфере видео графики, баз данных и финансов, программного обеспечения реального времени, мобильных приложений для iOS и Android, а также в веб-разработке. Он писал в основном на C, но также использовал FORTRAN, Tandem TAL, C++, C#, Objective-C, Java, Smalltalk, Python и Go. Сейчас он возглавляет кампанию Smalltalk Renaissance. Большую часть времени Ричард проводит за написанием статей и эссе.

Автор: Ariel VA Feinerman

Источник [26]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/259893

Ссылки в тексте:

[1] Smalltalk – один из самых продуктивных языков программирования: https://medium.com/smalltalk-talk/smalltalk-s-proven-productivity-fe7cbd99c061

[2] Orient Overseas Container Lines: http://smalltalk-lang.blogspot.ca/2017/04/a-smalltalk-success-story-orient.html

[3] ALLSTOCKER: http://pharo.org/success/AllStocker

[4] банкоматы на улицах Москвы: http://pharo.org/success/ATMsInMoscowStreets

[5] Smalltalk имеет богатое наследие: https://habrahabr.ru/post/328156

[6] Pharo: http://pharo.org

[7] Inria: https://en.wikipedia.org/wiki/French_Institute_for_Research_in_Computer_Science_and_Automation

[8] Amber: http://amber-lang.net

[9] Redline: http://www.redline.st

[10] PolyMath: https://github.com/PolyMathOrg/PolyMath

[11] Roassal: http://agilevisualization.com

[12] Численные методы с Pharo: http://files.pharo.org/books/numerical-methods

[13] Pharo Pi: https://medium.com/concerning-pharo/pharo-pi-9eef257b6a21

[14] ESUG on robotics: http://www.esug.org/wiki/pier/Robotics

[15] ERP (планирование ресурсов предприятия): https://smalltalk-bob.blogspot.ca/2016/09/a-year-goes-by.html

[16] машинного обучения: https://biosmalltalk.github.io/web

[17] нейронных сетей: https://medium.com/towards-data-science/single-layer-perceptron-in-pharo-5b13246a041d

[18] обработки естественного языка: https://github.com/mark-watson/nlp_smalltalk

[19] виртуальной реальности: http://www.opencobalt.net

[20] 3D Immersive Collaboration: http://www.3dicc.com

[21] программирования игрового движка Unreal: https://youtu.be/6fsUKW8-bBE

[22] борьбы с Эболой: http://ummisco.github.io/kendrick

[23] широкомасштабной визуализации данных для лекарств в 16 странах: http://mutabit.com/offray/blog/en/entry/sdv-infomed

[24] написания кросс-платформенных мобильных приложений: https://medium.com/smalltalk-talk/amber-alert-we-can-do-mobile-apps-34b2d4d32731

[25] Smalltalk хорош для серверной веб-разработки, благодаря веб-инфраструктуре Seaside: https://smalltalkrenaissance.wordpress.com/2015/01/24/the-heretic-web-framework

[26] Источник: https://habrahabr.ru/post/332650/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best