Что ж Вы так резко реагируете то? Статья ведь вообще не об этом… Я, честно говоря, статью про увядающие языки вообще только после комментария прочитал )))
И хоть я бы лично не назвал C# увядающим, но с аргументами из той статьи тоже можно согласиться… Рынок веб- и mobile-приложений MS, мягко говоря, упустила из-за своей же близорукости. Никто им не мешал поддержать Mono ещё во времена .NET 2.0. И то, что они этого не сделали, по масштабности просчёта аналогично отказу от продолжения разработки браузера после победы над Netscape. Теперь приходится в спешке догонять конкурентов в упущенных нишах.
Так же, я считаю, что в этом случае должна быть какая-то опция, чтобы можно было контролировать уровень ошибки для такого кода: игнорить, ворнинг, эррор, со значением «ворнинг» по-умолчанию.
Я согласен, что позиции C# прочны. Впрочем, MS не зря зашевелилась в сторону кроссплатформенности. Разработка приложений чисто под Windows сейчас уже далеко не так популярна, как лет 10 назад.
Но как видим, только небольшая прослойка ценителей ФП осторожно работают с ним или со Scala.
Мне кажется, что тут дело в том, что большинство ценителей ФП на дух не переносят Java, включая JVM.
Это на самом деле странная была затея создать функциональный язык поверх императивной виртуальной машины, которая даже оптимизацию хвостовой рекурсии не поддерживает. Мало нам что-ли императивной процессорной архитектуры?
Но, как мне показалось, это то как на пхп писали еще лет 10 назад.
Нет, я 10 лет назад активно писал на PHP, и могу точно сказать, что ничего общего. Возможно, Вы не до конца поняли суть идеи…
Во-первых эти библиотеки не являются фреймворками, наоборот фреймворки (именно во множественном числе, т.е. это своеобразная спецификация, которую уважающий себя фреймворк обязан поддерживать) строятся поверх них.
Во-вторых, благодаря унификации обработчиков из их можно составлять цепочки произвольной длины, начиная с middlewares и заканчивая внутренними механизмами фреймворков. Кроме того, однажды написанную middleware можно опубликовать и люди смогут использовать её практически с любым веб-фреймворком в рамках данного ЯП, потому что никто из создателей фреймворков не стремится изобрести велосипед.
https://laravel.com/docs/5.3/routing
Прочитал… И какое-то смешанное ощущение, то ли документашка очень куцая, то ли роутинг в Laravel находится пока ещё в зачаточном состоянии. Во всяком случае описано мало возможностей и самое главное непонятно в чём профит от возможности возвращать разнородные данные из routing callbacks и как эти данные преобразуются в HTTP-ответ?
И? Вы не считаете такую архитектуру извращением?
Пока весь остальной мир идёт по пути унификации обработки веб-запросов (см. WSGI, Rack, Clack, Plug, WAI, etc.), Вы предлагаете из роутера передавать управление к разнородным функциям, которые хз что возвращают?
Ну, ok… ¯\_(ツ)_/¯
Просто у меня дух противоречия бурлит, и не нравится идея таскания большого рантайма вслед за крохотным приложением.
Так в том то и дело, что ни .NET, ни JVM не таскают большой рантайм за крохотных приложением. Рантайм ставится системно, а не в рамках приложения. Сравните, например, с Electron-based приложениями, вот там действительно рантайм засунут в приложения. И если Вам нужно 5 приложений на Electron, то Вы 5 раз вынуждены будете скачать рантайм и иметь в системе 5 его копий.
А как же Вы, простите, собираетесь Windows Update без интернета организовать?
А причём тут это? .NET можно и напрямую поставить…
P.S. Вас кто-то из программистов, использующих .NET, обидел что-ли?
Разъёмы залиты, ethernet-доступа нет, интернета нет… Ну достаньте HDD из этого несчастного компа, подключите его к нормальному и скопируйте туда эти 67 Mb (именно столько занимает инсталлятор .NET 4.5.2) xD
Ещё из условия очевидно, что a = 1, так что решается в уме очень быстро.
А комменты мне напомнили «Записки невесты программиста», эпизод подготовки приглашений
Зачем записывать в переменную значение возвращаемое функцией, если оно всегда было NULL? А если оно не всегда возвращало NULL, а теперь возвращает void, то логика поменялась, а вызывающий код получил мину замедленного действия в виде отсутствия явной ошибки.
Видимо, в Мухосранске до сих пор сидят на Windows XP, но при заказе разработки забыли об этом упомянуть… CD/DVD-приводов и USB-разъёмов на местных компах тоже сроду не водилось, поэтому доставка ПО возможна только через интернет и только с оплатой за трафик 2 руб/Мб или сколько там оно было 10 лет тому назад…
Из коробки 3.5, остальные должны были приехать с обновлениями, если Windows Update не отключён.
В моём субъективном понимании — C# любят те, кто не понял С++.
Вы знаете о существовании только двух языков программирования? По-моему у C# и C++ из общего только буква C в названии. В остальном, языки из разных групп, с разной областью применения и т.п.
первый выкаченный билд не запускался у некоторых потому, что требовал MSVCR какой-то там версии, которая стояла не у всех.
С MSVCR я тоже не понимаю смысла отдельно его устанавливать, особенно для игр, которые сами по себе порядка Гб занимают… Подозреваю, что там какие-то лицензионные заморочки от MS.
KIS17. Перед тем как поставиться на Win7 он попросил Дотнет45. И пойдет качать много мегабайт. А потом его ставить. А зачем там нужен дотнет?
Ну и в чём проблема? 1 раз установится Дотнет45 и всё на этом, остальные программы уже не будут его качать.
Что ж Вы так резко реагируете то? Статья ведь вообще не об этом… Я, честно говоря, статью про увядающие языки вообще только после комментария прочитал )))
И хоть я бы лично не назвал C# увядающим, но с аргументами из той статьи тоже можно согласиться… Рынок веб- и mobile-приложений MS, мягко говоря, упустила из-за своей же близорукости. Никто им не мешал поддержать Mono ещё во времена .NET 2.0. И то, что они этого не сделали, по масштабности просчёта аналогично отказу от продолжения разработки браузера после победы над Netscape. Теперь приходится в спешке догонять конкурентов в упущенных нишах.
Это на самом деле странная была затея создать функциональный язык поверх императивной виртуальной машины, которая даже оптимизацию хвостовой рекурсии не поддерживает. Мало нам что-ли императивной процессорной архитектуры?
Нет, я 10 лет назад активно писал на PHP, и могу точно сказать, что ничего общего. Возможно, Вы не до конца поняли суть идеи…
Во-первых эти библиотеки не являются фреймворками, наоборот фреймворки (именно во множественном числе, т.е. это своеобразная спецификация, которую уважающий себя фреймворк обязан поддерживать) строятся поверх них.
Во-вторых, благодаря унификации обработчиков из их можно составлять цепочки произвольной длины, начиная с middlewares и заканчивая внутренними механизмами фреймворков. Кроме того, однажды написанную middleware можно опубликовать и люди смогут использовать её практически с любым веб-фреймворком в рамках данного ЯП, потому что никто из создателей фреймворков не стремится изобрести велосипед.
Прочитал… И какое-то смешанное ощущение, то ли документашка очень куцая, то ли роутинг в Laravel находится пока ещё в зачаточном состоянии. Во всяком случае описано мало возможностей и самое главное непонятно в чём профит от возможности возвращать разнородные данные из routing callbacks и как эти данные преобразуются в HTTP-ответ?
Пока весь остальной мир идёт по пути унификации обработки веб-запросов (см. WSGI, Rack, Clack, Plug, WAI, etc.), Вы предлагаете из роутера передавать управление к разнородным функциям, которые хз что возвращают?
Ну, ok… ¯\_(ツ)_/¯
P.S. Вас кто-то из программистов, использующих .NET, обидел что-ли?
Разъёмы залиты, ethernet-доступа нет, интернета нет… Ну достаньте HDD из этого несчастного компа, подключите его к нормальному и скопируйте туда эти 67 Mb (именно столько занимает инсталлятор .NET 4.5.2) xD
А комменты мне напомнили «Записки невесты программиста», эпизод подготовки приглашений
Это C хорош, а не С++, не путайте )))
Вы знаете о существовании только двух языков программирования? По-моему у C# и C++ из общего только буква C в названии. В остальном, языки из разных групп, с разной областью применения и т.п.
Ну и в чём проблема? 1 раз установится Дотнет45 и всё на этом, остальные программы уже не будут его качать.
P.S. Вы ещё про JRE забыли ;-)