Фу
> Производительность
> Модель асинхронности
> Странные новые фичи (!?)
18
Slide 30
Slide 30 text
Фу
> Производительность
> Модель асинхронности
> Странные новые фичи (!?)
> Управляющий совет
18
Slide 31
Slide 31 text
Фу
> Производительность
> Модель асинхронности
> Странные новые фичи (!?)
> Управляющий совет
> Изменяющаяся область применения
18
Slide 32
Slide 32 text
Фу
> Производительность
> Модель асинхронности
> Странные новые фичи (!?)
> Управляющий совет
> Изменяющаяся область применения
> Pythonic / Unpythonic
18
Slide 33
Slide 33 text
f'Hello, {name}!'
'Hello, {name}'.format(name)
'Hello, %s' % name
'Hello, ' + name
19
Slide 34
Slide 34 text
f'Hello, {name}!'
'Hello, {name}'.format(name)
'Hello, %s' % name
'Hello, ' + name
20
Slide 35
Slide 35 text
f'Hello, {name}!'
'Hello, {name}'.format(name)
'Hello, %s' % name
'Hello, ' + name
21
Slide 36
Slide 36 text
f'Hello, {name}!'
'Hello, {name}'.format(name)
'Hello, %s' % name
'Hello, ' + name
22
Slide 37
Slide 37 text
23
Slide 38
Slide 38 text
array_len = len(some_array)
if array_len > 5:
print(array_len)
if array_len := len(some_array) > 5:
print(array_len)
24
Slide 39
Slide 39 text
array_len = len(some_array)
if array_len > 5:
print(array_len)
if array_len := len(some_array) > 5:
print(array_len)
25
Slide 40
Slide 40 text
for angl in range(360):
print(
f'{angle=} {(th:=rads(angl))=:.3f} {sin(th)}'
)
26
Показания к применению
> Очень много IO
> Очень высокие требования к
доступности
77
Slide 131
Slide 131 text
Показания к применению
> Очень много IO
> Очень высокие требования к
доступности
> Особенные требования к
масштабированию
77
Slide 132
Slide 132 text
Показания к применению
> Очень много IO
> Очень высокие требования к
доступности
> Особенные требования к
масштабированию
> Сильная команда
77
Slide 133
Slide 133 text
78
Slide 134
Slide 134 text
79
Slide 135
Slide 135 text
Are we web yet?
80
Slide 136
Slide 136 text
arewewebyet.org
You can build stuff!
81
Slide 137
Slide 137 text
82
Slide 138
Slide 138 text
Красота
83
Slide 139
Slide 139 text
Красота
> Модель работы с памятью
83
Slide 140
Slide 140 text
Красота
> Модель работы с памятью
> Типы данных
83
Slide 141
Slide 141 text
Красота
> Модель работы с памятью
> Типы данных
> Компилятор
83
Slide 142
Slide 142 text
Красота
> Модель работы с памятью
> Типы данных
> Компилятор
> Абстракции
83
Slide 143
Slide 143 text
Фу
84
Slide 144
Slide 144 text
Фу
> Чрезмерная сложность для веба
84
Slide 145
Slide 145 text
Фу
> Чрезмерная сложность для веба
> Очень сырые библиотеки
84
Slide 146
Slide 146 text
85
Slide 147
Slide 147 text
86
Slide 148
Slide 148 text
Показания к применению
87
Slide 149
Slide 149 text
Показания к применению
> У вас не веб
87
Slide 150
Slide 150 text
Показания к применению
> У вас не веб
> Вам нужно супер быстро
87
Slide 151
Slide 151 text
Показания к применению
> У вас не веб
> Вам нужно супер быстро
> Жесткие ограничения на память
87
Slide 152
Slide 152 text
88
Slide 153
Slide 153 text
89
Slide 154
Slide 154 text
И тут я сделаю
исключение...
90
Slide 155
Slide 155 text
Хотя в Haskell'е
нет исключений! *
91
Slide 156
Slide 156 text
Красота
92
Slide 157
Slide 157 text
Красота
> Чистота
92
Slide 158
Slide 158 text
Красота
> Чистота
> Система типов
92
Slide 159
Slide 159 text
Красота
> Чистота
> Система типов
> Компилятор
92
Slide 160
Slide 160 text
Красота
> Чистота
> Система типов
> Компилятор
> Сообщество
92
Slide 161
Slide 161 text
Фу
93
Slide 162
Slide 162 text
Фу
> Синтаксис
93
Slide 163
Slide 163 text
Фу
> Синтаксис
> Чрезмерная сложность для веба
93
Slide 164
Slide 164 text
Фу
> Синтаксис
> Чрезмерная сложность для веба
> Вообще ничего нет!
93
Slide 165
Slide 165 text
Показания к применению
94
Slide 166
Slide 166 text
Показания к применению
> Для само-развития
94
Slide 167
Slide 167 text
>_
X
Днище
95
Slide 168
Slide 168 text
96
Slide 169
Slide 169 text
97
Slide 170
Slide 170 text
# 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
Slide 171
Slide 171 text
Красота
99
Slide 172
Slide 172 text
Красота
> Типизация и вывод типов
99
Slide 173
Slide 173 text
Красота
> Типизация и вывод типов
> Скорость работы
99
Slide 174
Slide 174 text
Красота
> Типизация и вывод типов
> Скорость работы
> Знакомый синтаксис
99
Slide 175
Slide 175 text
Красота
> Типизация и вывод типов
> Скорость работы
> Знакомый синтаксис
> Приятные макросы
99
Slide 176
Slide 176 text
Красота
> Типизация и вывод типов
> Скорость работы
> Знакомый синтаксис
> Приятные макросы
> Каналы (как в Go)
99
Slide 177
Slide 177 text
Поживем – увидим
crystal-lang.org
100
Slide 178
Slide 178 text
Показания к применению
101
Slide 179
Slide 179 text
Показания к применению
> В будущем: безопасный и быстрый
ruby
101