ConEmu (Console Emulator) — это эмулятор консоли, который просто прячет окно консоли и подставляет вместо него своё собственноe, Windows Terminal — это настоящий терминал.
Мне из Алиэкспресса каждая вторая посылка приходит с надписью Phone number: +972undefined почему-то. Это, конечно, баг. С другой стороны, покупатель доволен. Продавец доволен. Джек Ма доволен. У этой истории нет морали.
Хм… я вот подумал, а что будет, если Вам придет письмо с текстом: «Уважаемый undefined, Вам отправлена посылка undefined по адресу undefined»?
Болтовня это всё. Обычно понимание ФП ограничивается заменой for на map/reduce. Кодер, думает, что ФП — это когда функции находятся в модуле, а ООП — это когда функции в виде статических методов. Кроме того, из JS хреновый ФП-язык, нет ни карринга ни пэттерен-мэтчинга, да вообщее ничего, кроме функций первого класса. В остальных ООП языках не лучше. Попрбуйте, например, найти Dependency Injection библиотеку для С#, которая бы внедряла делегаты вместо интерфейсов по соглашению (язык ни причем, но экосистема мыслит в ООП-стиле). Поэтому, в результате, все равно приходится откатываться обратно на ООП если язык изначально не для ФП.
Вангую, что кода webassembly притрётся, все будут говорить: «Вы знаете, на PHP/Python/Rust/Java/Kotlin/C#/Haskel/Go/ELM/Scala/C++/Ruby очень удобно писать glue code, высокоуровневую бизнес-логику» и никто не будет ничего доказывать, потому как ну и так же всем ясно.
Как показывает практика в системах, в которых работают квалифицированные рабочие зачастную нет защиты от дурака.
Её нет потому, что её просто невозможно ввести, либо ценность рабочей силы настолько низка, что вводить меры безпасности нерентабельно. В этом даже есть своеобразная философия.
Python не запрещает вызов private/protected методов потому, что любит тебя :-)
Для меня эта фраза звучит так: «Наша система защиты от дурака позволяет обойти её, потому, что любит тебя :-)»
Надеюсь, мне удалось улучшить объяснение философии питона и высмеять другие подходы )
Нет, просто Вы пытаетесь оправдать сомнительный дизайн языка образца 1990 года, выдав его за некую философию, а его создателя возвести в ранг пророков.
Вы же не станете возражать, что забыть проинициализировать, например, instance variable можно? И при этом она будет автоматичестки инициализирована default-значением?
«Детей, конечно, нельзя убивать. Но что-то с ними надо делать». Даниил Хармс.
Вы же понимаете, что «Ошибку на миллиард долларов» так просто не исправишь? Процесс будет долгим и сложным. Если включить nullable контекст во всем проекте, то программиста завалит предупреждениями, это уже обсуждалось неоднократно. К счастью, контекст можно включать для отдельных участков кода с помощью директив, это позволит постепенно перевести проект на новые рельсы, путем постепенного увеличения кода в non-nullable контексте. Всё учтено могучим ураганом.
Создаем ссылочную переменую и забываем проинициализировать. Что там будет храниться?
Есть языки в которых Вы не сможете забыть проинициализировать переменную ссылочного типа, если она явно не обявлена как nullable: Scala, Kotlin, TypeScript и C# 8 как пример, ваш код просто не скомпилируется.
1. В подавляющем большинстве случаев (> 90%) nullabe типы не нужны. Это означет, что все было бы утыкано воклицателными знаками, как будто программа кричит на программиста.
2. Это привело бы к тому, что программисы просто ленились бы писать (!) и делали бы все типы nullable, что способствовало бы плохим практикам
Текущее решение было тщательно продумано и обсуждено с общественностью.
Если не брать всякие Elm, то вот это, я понимаю, реактивное программирование:
let greeting = 'Hello';
let name = 'Alice';
$: phrase = greeting + ' ' + name;
name = 'Bob';
<h1>{phrase}</h1> <!-- Hello Bob -->
А не когда приходится диспатчить мессаджи в черный монолитный шмат данных типа Redux, MobX, Vuex, только ради того, чтобы всё работало и подводить под это философию. И это не реклама, а просто повод задуматься, так ли уж реактивен React?
Как говорил не помню кто: «Покажите мне 30 лайков человека, и я расскажу о нем больше, чем он знает о себе сам»
dotnet new --helpНо, вообще, да, для С# Visual Studio предпочтительней, а вот для TypeScript наоборот.
Хм… я вот подумал, а что будет, если Вам придет письмо с текстом: «Уважаемый undefined, Вам отправлена посылка undefined по адресу undefined»?
Её нет потому, что её просто невозможно ввести, либо ценность рабочей силы настолько низка, что вводить меры безпасности нерентабельно. В этом даже есть своеобразная философия.
Для меня эта фраза звучит так: «Наша система защиты от дурака позволяет обойти её, потому, что любит тебя :-)»
Нет, просто Вы пытаетесь оправдать сомнительный дизайн языка образца 1990 года, выдав его за некую философию, а его создателя возвести в ранг пророков.
Ну, не факт, это зависит от языка, скажем, в F# нельзя неявно привести Int32 к Double, а в С# можно.
А что рефлекшн говорит по поводу «string?»?
Пруфлинк
Вы же не станете возражать, что забыть проинициализировать, например, instance variable можно? И при этом она будет автоматичестки инициализирована default-значением?
Вы же понимаете, что «Ошибку на миллиард долларов» так просто не исправишь? Процесс будет долгим и сложным. Если включить nullable контекст во всем проекте, то программиста завалит предупреждениями, это уже обсуждалось неоднократно. К счастью, контекст можно включать для отдельных участков кода с помощью директив, это позволит постепенно перевести проект на новые рельсы, путем постепенного увеличения кода в non-nullable контексте. Всё учтено могучим ураганом.
Есть языки в которых Вы не сможете забыть проинициализировать переменную ссылочного типа, если она явно не обявлена как nullable: Scala, Kotlin, TypeScript и C# 8 как пример, ваш код просто не скомпилируется.
1. В подавляющем большинстве случаев (> 90%) nullabe типы не нужны. Это означет, что все было бы утыкано воклицателными знаками, как будто программа кричит на программиста.
2. Это привело бы к тому, что программисы просто ленились бы писать (!) и делали бы все типы nullable, что способствовало бы плохим практикам
Текущее решение было тщательно продумано и обсуждено с общественностью.
А не когда приходится диспатчить мессаджи в черный монолитный шмат данных типа Redux, MobX, Vuex, только ради того, чтобы всё работало и подводить под это философию. И это не реклама, а просто повод задуматься, так ли уж реактивен React?