В том же Python давно уже есть ленивые последовательности и они прекрасно подходят, в т.ч. для таких задач (потому что для таких абстракций как файл и пр. это реализовано)
Например этот же код будет выглядеть вот так:
from typing import List, Generator, TextIO
def count_lines_in_files(fnames: List[str]) -> int:
files: Generator[TextIO] = (open(fname) for fname in fnames) # c'est ne pas un loop
lines: Generator[str] = (line for file in files for line in file)
return sum(1 for _ in lines)
def count_lines_in_files_alt(fnames: List[str]) -> int:
return sum(
map(
lambda f: sum(1 for _ in f),
map(open, fnames)))
В обоих вариантах ни о каком считывании полного файла в память не идёт и речи!
Думаю, что люди, которые сталкивались с 10Гбит Ethernet, 40Гбит Ethernet и пр. смотрят на эти вещи совсем по-другому. Когда приходится использовать механизмы zero-copy (PACKET_MMAP), то мечтаешь именно о чём-то типа этой Unikernel.
Linux ведь много где используется, в т.ч. для скоростного ввода-вывода со специального оборудования, никакого выхода в Сеть там нет, и на уязвимости, по большому счёту, наплевать, а самое главное — throughput и latency любой ценой.
P.S. Подскажите, кто знает — PonyORM продолжает развиваться? Потому что уже больше года как назад видел шикарную презентацию его создателей, где они грозились выпустить версию 0.8 с поддержкой миграций, но пока нет её.
Каждый из трёх достоин заменить C/C++ в своей сфере. Go был бы хорош для всяких сетевых вещей и простых утилит (типа GNU); D, кажется, больше всего подходит для замены C++; Rust уже создал себе репутацию языка, подходящего для критичных к корректности и информационной безопасности задач.
Но!
Если все 3 языка будут делить пирог уходящего C, то мы потеряем одно очень важное преимущество C, о котором почему-то в статье не упомянуто:
C — это lingua franca. Его знают очень очень много людей, компиляторы есть по все мыслимые и немыслимые платформы, и т.д.
Мы живём среди растерянных людей, которые сами не знают чего хотят, ими манипулирают все, кому не лень (даже эта ваша священная корова — «бизнес»), в итоге покупают вещи, которые им не нужны, на деньги, которые им не принадлежат.
Что должно быть с головой, чтобы в пример ставить современные банки и Грефа, я даже не знаю.
Бизнесу нужно то, бизнесу нужно это… важно что нужно людям на самом деле. Сходите на природу, погуляйте, подышите, попейте хорошего чая за хорошей книгой (лучше не при электрической лампе) и как-то желание проповедовать этот вот корпоративный bullshit само собой отпадёт.
P.S. Наверное, лучше всего мою позицию выражают слова Роберта Мартина: «the only way to go fast is to go well»
Видел таких любителей порассуждать об эффективности, которые уже через час написания говнокода в таком духе начинают бить себя по лбу каждые пять минут, восклицая «вот я дебил!» и отлаживая баги неделями.
Тише едешь — дальше будешь.
По умолчанию все числа в Lua — это double. Но можно скомпилировать его так, чтобы это были int (хотя версии после 5.3 поддерживают его нативно). Как у вас в проекте с этим?
Дети не потянут. Тут нужно хорошо программирование знать, разбираться в основах электроники, уметь держать паяльник в руках и пр. и пр. — не каждый студент осилит.
А тех, кто потянет,
1) мало
2) они и сами разобраться могут с интернетом
3) их родители не всегда платёжеспособны
Вот как раз со стилизацией нативных компонентов иногда всё плохо. Попробуйте, например, стилизовать select, округлые края, другая стрелочка, цвет фона… С другой стороны зачем трогать стандартный паттерн UI, который к тому же будет удобно выглядеть на всяких Android/iOS браузерах?
Например этот же код будет выглядеть вот так:
В обоих вариантах ни о каком считывании полного файла в память не идёт и речи!
Linux ведь много где используется, в т.ч. для скоростного ввода-вывода со специального оборудования, никакого выхода в Сеть там нет, и на уязвимости, по большому счёту, наплевать, а самое главное — throughput и latency любой ценой.
Но!
Если все 3 языка будут делить пирог уходящего C, то мы потеряем одно очень важное преимущество C, о котором почему-то в статье не упомянуто:
C — это lingua franca. Его знают очень очень много людей, компиляторы есть по все мыслимые и немыслимые платформы, и т.д.
Нет, это не круто, стремиться к этому не стоит.
Мы живём среди растерянных людей, которые сами не знают чего хотят, ими манипулирают все, кому не лень (даже эта ваша священная корова — «бизнес»), в итоге покупают вещи, которые им не нужны, на деньги, которые им не принадлежат.
Что должно быть с головой, чтобы в пример ставить современные банки и Грефа, я даже не знаю.
Бизнесу нужно то, бизнесу нужно это… важно что нужно людям на самом деле. Сходите на природу, погуляйте, подышите, попейте хорошего чая за хорошей книгой (лучше не при электрической лампе) и как-то желание проповедовать этот вот корпоративный bullshit само собой отпадёт.
P.S. Наверное, лучше всего мою позицию выражают слова Роберта Мартина: «the only way to go fast is to go well»
Тише едешь — дальше будешь.
twitter.com/nntaleb/status/1146018897214234625
twitter.com/nntaleb/status/1139474411050979331
www.radon.ru/about/press_services/news/971.html
А тех, кто потянет,
1) мало
2) они и сами разобраться могут с интернетом
3) их родители не всегда платёжеспособны