Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Server languages for mobile devs
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sobolev Nikita
October 22, 2019
Programming
0
290
Server languages for mobile devs
https://sobolevn.me/talks/saint-apps-conf-2019
Sobolev Nikita
October 22, 2019
Tweet
Share
More Decks by Sobolev Nikita
See All by Sobolev Nikita
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
200
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
180
Внутреннее устройство сборки мусора в CPython 3.14+ – Сергей Мирянов, PythoNN
sobolevn
0
73
Генератор байткода и байткод генератора, Михаил Ефимов, PythoNN
sobolevn
0
68
Дотянуться до кремния. HighLoad Python: SIMD, GPU – Пётр Андреев, PythoNN
sobolevn
0
75
Проектирование — это когда чувствуешь, а не какие-то там циферки, Николай Хитров, PythoNN
sobolevn
0
110
Continuous profiling, Давид Джалаев, PythoNN
sobolevn
0
120
Михаил Гурбанов – Are you NATS? @ PythoNN
sobolevn
0
150
Дмитрий Бровкин – Почему исправление опечаток сложнее, чем кажется, и как мы с этим српавляемся @ PythoNN
sobolevn
0
55
Other Decks in Programming
See All in Programming
CSC307 Lecture 08
javiergs
PRO
0
670
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
260
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
100
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
AI時代の認知負荷との向き合い方
optfit
0
160
高速開発のためのコード整理術
sutetotanuki
1
400
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
AgentCoreとHuman in the Loop
har1101
5
230
CSC307 Lecture 09
javiergs
PRO
1
830
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
640
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
120
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Speed Design
sergeychernyshev
33
1.5k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
My Coaching Mixtape
mlcsv
0
48
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
140
Transcript
X Никита Соболев github.com/sobolevn 1
Я люблю программирование 2
>_ X Много языков на сервере... 3
>_ X А писать не на чем! 4
!5
Цель: просветить 6
Цель: вдохновить 7
Цель: повеселиться 8
Сколько всего языков программирования? 9
~3595 codelani.com/lists/languages.html 10
Чего не будет? 11
Чего не будет? > Java, Kotlin, Scala 11
Чего не будет? > Java, Kotlin, Scala > TypeScript, JavaScript,
Dart 11
Чего не будет? > Java, Kotlin, Scala > TypeScript, JavaScript,
Dart > C#, F# 11
Чего не будет? > Java, Kotlin, Scala > TypeScript, JavaScript,
Dart > C#, F# > Swift 11
Я извиняюсь 12
>_ X Топчик 13
14
15
Top 1* ❤ 16
Красота 17
Красота > Синтаксис и читаемость 17
Красота > Синтаксис и читаемость > Инфраструктура 17
Красота > Синтаксис и читаемость > Инфраструктура > Сообщество 17
Красота > Синтаксис и читаемость > Инфраструктура > Сообщество >
Опциональная статическая типизация 17
Фу 18
Фу > Производительность 18
Фу > Производительность > Модель асинхронности 18
Фу > Производительность > Модель асинхронности > Странные новые фичи
(!?) 18
Фу > Производительность > Модель асинхронности > Странные новые фичи
(!?) > Управляющий совет 18
Фу > Производительность > Модель асинхронности > Странные новые фичи
(!?) > Управляющий совет > Изменяющаяся область применения 18
Фу > Производительность > Модель асинхронности > Странные новые фичи
(!?) > Управляющий совет > Изменяющаяся область применения > Pythonic / Unpythonic 18
f'Hello, {name}!' 'Hello, {name}'.format(name) 'Hello, %s' % name 'Hello, '
+ name 19
f'Hello, {name}!' 'Hello, {name}'.format(name) 'Hello, %s' % name 'Hello, '
+ name 20
f'Hello, {name}!' 'Hello, {name}'.format(name) 'Hello, %s' % name 'Hello, '
+ name 21
f'Hello, {name}!' 'Hello, {name}'.format(name) 'Hello, %s' % name 'Hello, '
+ name 22
23
array_len = len(some_array) if array_len > 5: print(array_len) if array_len
:= len(some_array) > 5: print(array_len) 24
array_len = len(some_array) if array_len > 5: print(array_len) if array_len
:= len(some_array) > 5: print(array_len) 25
for angl in range(360): print( f'{angle=} {(th:=rads(angl))=:.3f} {sin(th)}' ) 26
Хватит! Дайте нам: 27
Хватит! Дайте нам: > Паттерн матчинг 27
Хватит! Дайте нам: > Паттерн матчинг > Нормальные лямбды 27
Хватит! Дайте нам: > Паттерн матчинг > Нормальные лямбды >
|> (aka pipe operator) 27
Хватит! Дайте нам: > Паттерн матчинг > Нормальные лямбды >
|> (aka pipe operator) > Больше типов 27
Хватит! Дайте нам: > Паттерн матчинг > Нормальные лямбды >
|> (aka pipe operator) > Больше типов > Перформанса 27
Спасение рядом github.com/wemake-services/wemake-python-styleguide 28
29
github.com/dry-python 30
31
32
33
Показания к применению 34
Показания к применению > Питон лучший второй язык для любой
задачи 34
35
36
37
Ruby is Dead: youtube.com/watch? v=x0JlOxdXA_g 38
Красота 39
Красота > DSL 39
Красота > DSL > Новая волна архитектуры 39
Красота > DSL > Новая волна архитектуры > Пробуждение сообщества
39
Фу 40
Фу > Производительность 40
Фу > Производительность > Ruby on Rails 40
Фу > Производительность > Ruby on Rails > Магия 40
41
42
43
44
Показания к применению 45
Показания к применению > У вас есть рубисты 45
46
47
48
49
Красота 50
Красота > Самый быстрый язык из скриптов 50
Красота > Самый быстрый язык из скриптов > Опциональная статическая
типизация 50
Фу 51
Фу > Стандартная библиотека 51
Фу > Стандартная библиотека > php-программисты 51
52
53
54
Показания к применению 55
Показания к применению > У вас мало денег 55
Показания к применению > У вас мало денег > Вы
в регионе 55
Показания к применению > У вас мало денег > Вы
в регионе > У вас уже есть пыхеры 55
56
57
58
Красота 59
Красота > gofmt 59
Красота > gofmt > Перформанс 59
Красота > gofmt > Перформанс > Потоки – как идея
59
Красота > gofmt > Перформанс > Потоки – как идея
> Минимализм – как идея 59
Фу 60
Фу > Все остальное 60
Показания к применению 61
Показания к применению > Нужно перекладывать json из одного API
в другой 61
Показания к применению > Нужно перекладывать json из одного API
в другой > Вы не хотите учить нормальные языки 61
Показания к применению > Нужно перекладывать json из одного API
в другой > Вы не хотите учить нормальные языки > Вы считаете людей тупыми 61
The key point here is our programmers are Googlers, they’re
not researchers. 62
They’re typically, fairly young, fresh out of school, probably learned
Java, maybe learned C or C++, probably learned Python. 63
They’re not capable of understanding a brilliant language but we
want to use them to build good software. 64
So, the language that we give them has to be
easy for them to understand and easy to adopt. 65
66
>_ X Серединка 67
68
69
70
71
72
Красота 73
Красота > Простота и глубина 73
Красота > Простота и глубина > Модель асинхронности 73
Красота > Простота и глубина > Модель асинхронности > Неубиваемость
73
Красота > Простота и глубина > Модель асинхронности > Неубиваемость
> Масштабируемость 73
Красота > Простота и глубина > Модель асинхронности > Неубиваемость
> Масштабируемость > Коробка 73
Красота > Простота и глубина > Модель асинхронности > Неубиваемость
> Масштабируемость > Коробка > Feature-complete 73
Фу 74
Фу > Найм 74
Фу > Найм > Применимость в бизнес задачах 74
Фу > Найм > Применимость в бизнес задачах > Инфраструктура
74
75
76
Показания к применению 77
Показания к применению > Очень много IO 77
Показания к применению > Очень много IO > Очень высокие
требования к доступности 77
Показания к применению > Очень много IO > Очень высокие
требования к доступности > Особенные требования к масштабированию 77
Показания к применению > Очень много IO > Очень высокие
требования к доступности > Особенные требования к масштабированию > Сильная команда 77
78
79
Are we web yet? 80
arewewebyet.org You can build stuff! 81
82
Красота 83
Красота > Модель работы с памятью 83
Красота > Модель работы с памятью > Типы данных 83
Красота > Модель работы с памятью > Типы данных >
Компилятор 83
Красота > Модель работы с памятью > Типы данных >
Компилятор > Абстракции 83
Фу 84
Фу > Чрезмерная сложность для веба 84
Фу > Чрезмерная сложность для веба > Очень сырые библиотеки
84
85
86
Показания к применению 87
Показания к применению > У вас не веб 87
Показания к применению > У вас не веб > Вам
нужно супер быстро 87
Показания к применению > У вас не веб > Вам
нужно супер быстро > Жесткие ограничения на память 87
88
89
И тут я сделаю исключение... 90
Хотя в Haskell'е нет исключений! * 91
Красота 92
Красота > Чистота 92
Красота > Чистота > Система типов 92
Красота > Чистота > Система типов > Компилятор 92
Красота > Чистота > Система типов > Компилятор > Сообщество
92
Фу 93
Фу > Синтаксис 93
Фу > Синтаксис > Чрезмерная сложность для веба 93
Фу > Синтаксис > Чрезмерная сложность для веба > Вообще
ничего нет! 93
Показания к применению 94
Показания к применению > Для само-развития 94
>_ X Днище 95
96
97
# A very basic HTTP server require "http/server" server =
HTTP::Server.new do |context| context.response.content_type = "text/plain" context.response.print "Hello world!" end puts "Listening on http://127.0.0.1:8080" server.listen(8080) 98
Красота 99
Красота > Типизация и вывод типов 99
Красота > Типизация и вывод типов > Скорость работы 99
Красота > Типизация и вывод типов > Скорость работы >
Знакомый синтаксис 99
Красота > Типизация и вывод типов > Скорость работы >
Знакомый синтаксис > Приятные макросы 99
Красота > Типизация и вывод типов > Скорость работы >
Знакомый синтаксис > Приятные макросы > Каналы (как в Go) 99
Поживем – увидим crystal-lang.org 100
Показания к применению 101
Показания к применению > В будущем: безопасный и быстрый ruby
101
102
103
Красота 104
Красота > Акторы 104
Красота > Акторы > Типизация 104
Красота > Акторы > Типизация > Память (AOT) 104
Красота > Акторы > Типизация > Память (AOT) > Исключения
104
Красота > Акторы > Типизация > Память (AOT) > Исключения
> Скорость работы 104
105
Поживем – увидим ponylang.io 106
Показания к применению 107
Показания к применению > Для само-развития 107
Показания к применению > Для само-развития > Сможете говорить: я
еще в 2019 на нем писал! 107
Показания к применению > Для само-развития > Сможете говорить: я
еще в 2019 на нем писал! > В будущем: безопасный и быстрый веб 107
>_ X Разное 108
Заслуживают упоминания 109
Заслуживают упоминания > Clojure / Nim 109
Заслуживают упоминания > Clojure / Nim > Coq / Agda
/ Idris 109
Заслуживают упоминания > Clojure / Nim > Coq / Agda
/ Idris > Elm 109
Заслуживают упоминания > Clojure / Nim > Coq / Agda
/ Idris > Elm > ReasonML / OCalm 109
Заслуживают упоминания > Clojure / Nim > Coq / Agda
/ Idris > Elm > ReasonML / OCalm > Dark 109
>_ X Выводы 110
Учите языки 111
Учите концепции 112
Обсуждайте идеи 113
t.me/ opensource_findings !114
sobolevn.me Вопросы? github.com/sobolevn 115