Сейчас много языков программирования, соперничающих за ваше внимание, особенно «горячие» (или «модные!») новые языки, такие как 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 сегодня так мало уделяют внимания? У него есть все нужное…
- Smalltalk – один из самых маленьких, простых и элегантных языков программирования, когда-либо созданных. Весь его синтаксис может поместиться на обратной стороне открытки! Это делает Smalltalk очень, очень лёгким в изучении. У Smalltalk крайне низкое, если не несущественное когнитивное трение при кодировании. Вам не нужно задумываться над языком, вы просто решаете вашу проблему.
- Smalltalk имеет великолепные «живое кодирование и отладку» в IDE, которые делают программирование чрезвычайно быстрым и продуктивным. Вы можете внести изменения в текущую программу и сразу увидеть результаты. Это почти полностью исключает цикл edit-compile-test-debug, который затрудняет работу почти со всеми иными языками программирования. И это удивительно просто в использовании. В современном мире программирования нет ничего подобного.
- Smalltalk – один из самых продуктивных языков программирования. Более чем в два раза производительнее, чем Python и Ruby. Более чем в 3 раза эффективнее JavaScript!
- Несмотря на свою относительную безвестность, Smalltalk – очень практичный промышленный язык! Он коммерчески использовался более трёх десятилетий. Его известные пользователи включают JPMorgan, Desjardins, UBS, Florida Power & Light, Texas Instruments, Telecom Argentina, Orient Overseas Container Lines, Siemens AG и прочие. Проверьте ALLSTOCKER и банкоматы на улицах Москвы.
- Smalltalk прекрасно масштабируем. В начале 2000-х годов объединённые военные силы США использовали Smalltalk для написания программы в миллион строк по моделированию боевых действий под названием JWARS. Фактически он превзошел аналогичное моделирование под названием STORM, написанное на C++ в ВВС США.
- Smalltalk имеет богатое наследие. Это был первый язык программирования для популяризации ООП, и он остается прекрасным примером языка ООП (именно поэтому он породил целое поколение языков ООП, таких как Java, Python, PHP, Ruby, Perl, Objective-C, CLOS, Dart, Scala, Groovy и прочие). Smalltalk – это правильное ООП
- Smalltalk продолжает активно развиваться, особенно в рамках проекта Pharo и Inria. И Amber для сети, и Redline для JVM. Smalltalk был модернизирован для двадцать первого века.
- Кстати, у Smalltalk также есть функции первого класса и замыкания, поэтому он хорош и для функционального программирования!
Smalltalk чрезвычайно универсален (является языком программирования общего назначения):
- Smalltalk хорош для науки о данных и численных вычислений, благодаря PolyMath и Roassal (также см. Численные методы с Pharo)
- Smalltalk хорош для Интернета Вещей и робототехники (например, Pharo Pi и ESUG on robotics)
- Smalltalk хорош для ERP (планирование ресурсов предприятия)
- Smalltalk хорош для машинного обучения и нейронных сетей
- Smalltalk хорош для обработки естественного языка
- Smalltalk хорош для виртуальной реальности (например, 3D Immersive Collaboration)
- Smalltalk можно даже использовать для программирования игрового движка Unreal
- Smalltalk используется для борьбы с Эболой!
- Smalltalk используется в широкомасштабной визуализации данных для лекарств в 16 странах
- Smalltalk можно использовать для написания кросс-платформенных мобильных приложений (2% в JS, 98% в Smalltalk!)
- Smalltalk хорош для серверной веб-разработки, благодаря веб-инфраструктуре Seaside
И я лишь начал!
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