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
Sobolev Nikita
October 22, 2019
Programming
0
270
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
Михаил Гурбанов – Are you NATS? @ PythoNN
sobolevn
0
57
Дмитрий Бровкин – Почему исправление опечаток сложнее, чем кажется, и как мы с этим српавляемся @ PythoNN
sobolevn
0
36
Алексей Гончарук – Современный веб с темлейтами @ PythoNN
sobolevn
0
110
Алексей Голобурдин – Демистификация PostgreSQL-индексов @ PythoNN
sobolevn
0
160
PythoNN – Александр Гончаров
sobolevn
0
66
PythoNN – Андрей Пронин
sobolevn
0
130
PythoNN: Василий Рябов – "Парсинг бинарных данных с помощью ctypes, или пишем на питоне как на Си"
sobolevn
0
250
GitHub Planet - OpenSource
sobolevn
0
280
Polymorphism and Typeclasses
sobolevn
2
170
Other Decks in Programming
See All in Programming
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
680
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
580
Langfuseと歩む生成AI活用推進
licux
3
290
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
440
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
150
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
380
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
22
8.7k
レガシープロジェクトで最大限AIの恩恵を受けられるようClaude Codeを利用する
tk1351
2
510
AWS Serverless Application Model入門_20250708
smatsuzaki
0
120
バイブコーディング × 設計思考
nogu66
0
120
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
300
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
250
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Why Our Code Smells
bkeepers
PRO
338
57k
Designing for Performance
lara
610
69k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Typedesign – Prime Four
hannesfritz
42
2.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
The Invisible Side of Design
smashingmag
301
51k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.6k
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