The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Опубликован четвёртый том общедоступной книги Программирован..."
Отправлено Ordu, 29-Мрт-20 22:48 
>>>> Для начальных навыков сегодня лучше всего подходит, по-моему, javascript
>>> Это шутка такая?
>>Нет, я совершенно серьёзно. Более чем серьёзно. Особенно если речь идёт не о вузовском образовании, где мотивацию можно вколачивать в студентов угрозой отчисления, а о самообразовании или всяких там курсах программирования для школьников.
> Граждане, я разгадал план уважаемого Ordu. Ему явно не нравится, что в
> профессию проникло множество людей, поэтому он предлагает обучать их на JavaScript,
> чтобы они уж точно никогда не смогли стать программистами и не
> составили нам, старичкам, конкуренцию.

В профессию проникает с каждым годом всё больше людей на протяжении десятилетий. И каждый из них, рано или поздно будет осваивать js. Не всем понадобиться C, не всем понадобиться asm, и Java, Python, C#, Rust, Go, Swift, ruby, php, ... тоже понадобятся не всем. А вот js пригодится каждому.

> Я уже представляю
> себе как вы будете объяснять студентам почему "!!'false' ==  !!'true'"
> и "!!'false' === !!'true'" одновременно, почему "NaN !== NaN" ну и
> т.д., любой сам легко нагуглит полный список вещей, которые могут навсегда
> сломать мозг юных паданов.

Да это же очевидно, не? Или ты изучал программирование по Столярову, и тебе не очевидно? Почитай кого-нибудь другого. Хотя бы того же Ритчи, тогда у тебя вопросов не останется. Хотя Ритчи вряд ли писал о NaN, но ежели ты курс математики в вузе не проспал, то ты и без Ритчи будешь знать ответ.

Но если тебе интересно, то я озабочусь тем, чтобы студенты не столкнулись с примененим логических операторов к строкам хотя бы первых пару месяцев. Чтобы мы сначала разобрали бы понятие типа данных, и лишь затем начали бы разбирать всякие там corner cases. И "неочевидность" применения ! к 'false' не более неочевидна, чем неочевидность деления 1/2 в C. И главное объяснение всё то же: разуй глаза и смотри на типы данных, к которым ты применяешь операции.

А насчёт же NaN тут вообще объяснять нечего. NaN -- это не число, причём никто не знает уже, что это за "нечисло": информация об этом была потеряна, когда вы поделили на ноль, или что вы там сделали, чтобы получить этот NaN: никто не знает этого _после_ того, как вы совершили эту глупость, потому что информация потеряна. Может быть два NaN'а были получены одинаковым образом, и тогда логично было бы считать, что они равны. А может они были получены разными способами, и тогда было бы совершенно нелогично считать, что они равны. Может ли интерпретатор поступить правильно? Нет, потому что у него недостаточно информации. Поэтому он поступает методом "разрубить гордиев узел" и считать что все NaN'ы разные. Даже один и тот же NaN разный по отношению к самому себе. Ибо нефиг. Скажите спасибо, что вы пишите на js а не на pascal'е, а то ваша программа, при попытке сравнить наны, падала бы с runtime error #12345 и разбивала бы монитор, чтобы её плевок из-за экрана долетел бы до вашего лица.

> p.s. Сложно найти язык для обучения хуже, чем жабоскрипт.

Сколько раз ты пробовал учить людей программированию? Я пробовал, года три. Если не считать того периода в моей жизни, когда я с упоением делился знаниями на форумах. Помимо этого я сам вникал в очень многие языки программирования, и я скажу тебе: чем проще на языке начать писать, тем лучше язык для обучения. Всякие там UB -- плохо для продакшна, но обучению они не мешают. А может даже помогают, приучают студента смотреть под ноги, чтобы не наступить на грабли, показывают ему, что язык надо знать и любить, или постоянно получать по лбу ручкой от граблей.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру