jakobz @jakobz
Пользователь
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Fullstack Developer, Software Architect
Lead
От 500 000 ₽
JavaScript
CSS
React
TypeScript
.NET Core
PostgreSQL
Entity Framework
Microsoft SQL Server
Выведет:
1
2
3
В C# никто не запрещает делать функции чистыми. Хотя C# и нельзя назвать функциональным языком, многое оттуда в нем есть.
Linq to Collections четко определяет порядок вычислений. И использует чисто функциональные примочки — функции высокого порядка, например. Linq To SQL же использует несколько другую фичу — expression trees, которые потом транслируются в SQL-запросы. Так что в C# есть элементы и декларативные, и функциональные.
Насчет кривой обучения — да, опыт дает очень много. Но не нужно преуменьшать роль инструмента. На прошлом проекте приходилось писать и на C#3.0, и на C#1.0 в разных местах. При чем пришлось в одном месте алгоритм переписывать с C#3.0 на 1.0. Разница очень заметна.
Я говорил по собственным ощущениям, очевидно что как-то измерить это проблематично.
Ощущения от того, что алгоритмы средней сложности, часто встречаемые в бизнес-приложениях, на LINQ пишутся раза в 2 быстрее, в 2-3 раза компактнее по коду, менее подвержены ошибкам и, особенно, ляпам, а также в разы проще модифицируются.
Плюс лямбды позволяют делать всякие интересные легковесные архитектурные решения без оверхеда.
Я не могу сказать сколько это приносит в итоге процентов, но недооценивать их я бы не стал.
А что аналитики угадали сроки — это, конечно, хорошо, но в сроках масштаб погрешности гораздо больше 5%.
Я писал и на C#1.0, и на 3.0. По количеству ошибок и скорости разработки разница очень приличная, явно больше пяти процентов. А это даже не разные языки.
di — disable interrupt, запрещает прерывание
halt — останавливает процессор до следующего прерывания
Таким образом последовательность di; halt намертво вешает спектрум. Многие демки заканчивали именно такой последовательностью.
Так что не мудрено что ник и название демопати совпали.
Под .net что-то подобное можно сделать на django templates. Реализации — dojo.dtl и nDjango соответственно. Оба — сыроваты.