И к индексу TIOBE, и к данному исследованию следует относиться с изрядной долей иронии. Падение Java на 0.72% при текущей методике составления индекса — это вообще ни о чем.
Не знаю, как в App Store, но в Play есть куча приложений, которые являются либо платными версиями, либо различными активаторами, фичапаками и HD-версиями самих себя.
Например, Aviary — 9 приложений, 8 из которых — дополнения к первому.
В книге Pragmatic Programmer (Kindle Edition которой, кстати, сейчас распродается на Амазоне за $4.99), это описано. И в таких случаях, когда есть угроза, что прототип станет основой системы, рекомендуется отказаться от прототипирования в пользу «трассирования» (Tracer Bullets), или, по-простому — построения скелета.
> Все операции, связанные с файловой системой, выполняются в отдельных потоках.
Поподробнее пожалуйста. Рассматривался ли асинхронный IO, используется ли пул потоков, и прочие радости жизни расписать бы. Вот это был бы годный пост, заодно и советов, может быть, надавали бы.
Для начала я бы попробовал посмотреть, как это будет работать на среднем клиентском железе.
Ну и чтобы два раза не вставать, если один из файлов будет открыт на запись, или удален в промежутке между 17 строкой и соответствующей итерацией, ваш код упадет с неотловленным исключением.
Очевидный ход — код в строке 7 md5 = MD5CryptoServiceProvider() лучше бы вынести в глобальную переменную, чтобы не создавать новый объект на каждой итерации.
Ну а причин популярности C масса: What makes C so popular in the age of OOP?
Например, Aviary — 9 приложений, 8 из которых — дополнения к первому.
You are seeing this page because website has reached CPU usage limit of the server, and it was temporarily disabled.
Github?
а) не делает при этом ничего, противоречащего законам о конфиденциальности данных;
б) не имеет отношения к облакам.
Поподробнее пожалуйста. Рассматривался ли асинхронный IO, используется ли пул потоков, и прочие радости жизни расписать бы. Вот это был бы годный пост, заодно и советов, может быть, надавали бы.
Ну и чтобы два раза не вставать, если один из файлов будет открыт на запись, или удален в промежутке между 17 строкой и соответствующей итерацией, ваш код упадет с неотловленным исключением.
output += fname.replace(rootpath, '', 1) + ':' + md5sum + '\n'
можно заменить на
output += Path.GetFileName(fname) + ':' + md5sum + '\n'
Если будут проблемы с окончаниями строк (в винде используется \r\n), вместо \n можно использовать
Environment.NewLine
md5 = MD5CryptoServiceProvider()
лучше бы вынести в глобальную переменную, чтобы не создавать новый объект на каждой итерации.