Pull to refresh
-1
0

программист на Go/Python

Send message
Думаю, что Джон МакКарти (отец LISP, 50-е годы) и многие другие великие и умные люди сказали бы вам много причин, по которым статический контроль типов не нужен.
в комментариях ад — многоветочные дискуссии о том сколько ангелов можно инкапсулировать, куда и как

посмотрите это видео:
youtu.be/Tb823aqgX_0
Ну, его крестовый поход против goto увенчался успехом…

А с учётом того, что он внёс значительный вклад в разработку Алгола, который является предком подавляющего большинства современных ЯП…
Причем ИМХО самый огромный разрыв в программировании идет не между теми, кто умеет язык Х или фреймворк К, а между теми, кто умеет искать информацию сам и теми кто не умеет

Подписываюсь под каждым словом.
Мне когда-то давно (я учился в школе ещё) подарили Linux на 6 CD (это была Fedora 6). Интернета не было, английский знал плохо. Т.к. не понял как установить сразу 2 ОС, сносил свой Windows 2000, устанавливал Fedora, игрался, потом обратно. Читал книги по Borland C++ Builder 6, натыкивал в редакторе форм калькуляторы и текстовые редакторы и думал, что что-то умею в программировании.

Потом уже студентом работая инженером-прочнистом (мои несколько месяцев работы по специальности) в одной известной авиастроительной компании я ждал пока освободится лицензия из пула на препроцессор для расчётной программы. Другие навострились вручную править текстовые файлы с описанием задания на расчёт. Мы заходили из Windows по удалёнке на сервер с Solaris. Там был старый Python (2.4, кажется). Марка Лутца я к тому времени уже некоторое время почитывал. Но как-то не шло. А в этот день попёрло (и с тех пор не перестаёт) — используя только встроенную справку (английский я знал уже очень хорошо) я написал свой консольный препроцессор для этих текстовых расчётных файлов, который облегчал пару типичных операций.

Сейчас занимаюсь FPGA, но всё тесно связано с программированием. Приходится и сервера на Linux тюнить и курить Майкла Керриска с недрами Linux (то чувство, когда лучшим справочным материалом по нужному механизму оказывается статья Google Project Zero про уязвимость в нём).

Было трудно, очень трудно, но это так интересно, что ты отдаёшь совершенно неразумное количество времени своей жизни на это, потому что действительно любишь.

На работе видел людей, которых пытались научить программировать, сам менторствую иногда. Есть 2 типа людей — те, которым это интересно, у них склад ума и характера соответствующий и те, кто способен преодолевать трудности, и все остальные. Типа тех 7-классников, которых я заставляю (2 часа учу в школе) искать максимум в массиве/списке и они в первый раз в своей жизни, скрипя мозгами придумывают этот алгоритм, а я не подсказываю им, на это может уйти час… а через год, в 8-м классе некоторым рассказываешь про функции высшего порядка и они ПОНИМАЮТ, рассказываешь про недостатки наследования, а они говорят, что уже на них напоролись в своих pet-проектах…
Главное чтобы работало. Но ООП очень большая тема, чтобы её можно было раскрыть в рамках мануала, это одна из трёх главных парадигм программирования на данный момент и было написано уже штук 10 книг, которые можно назвать классическими, притом развитие не стоит на месте, те же принципы SOLID были предложены в начале 2000-х. Да, это просто формальное проговаривание лучших практик уже сложившихся к тому времени, но до этого проговаривания большинство им не следовало (боюсь, сейчас ситуация не сильно поменялась) и в большинстве материалов они не были изложены.
Я отвечал с чисто теоретической точки зрения на вашу реплику про «инкапсуляцию, наследование, полиморфизм». Я не знаю кто это придумал, но в большинстве российских (и, кажется, не только российских) вузов с этих слов начинается разговор про ООП и я не уверен, что это правильное начало разговора. По сути большинство вузов обучает не ООП и не программированию, а C++, Java или C#.
Ярко показывает степень разрыва в мышлении тот факт, что Алан Кей считает LISP «главной идеей в Computer Science», тогда как большинство преподавателей в вузах если и слышали это название, то ничего не понимают в функциональном программировании. И уж совершенно точно в вузах студенты не слышат ни слова про SOLID, про то, что наследование — очень опасная штука и её нужно использовать очень осторожно (о чём написано даже в «банде четырёх»). Там, блин, задают домашние задания на придумывание идиотских иерархий классов. Даже полиморфизм они зачастую неспособны объяснить без наследования.

Когда-то я жалел, что не закончил вуз по программистской специальности. Сейчас — не жалею. Я закончил лингвистический класс гимназии и (спасибо Наталье Михайловне) знаю английский достаточно хорошо, чтобы слушать и читать Роберта Мартина, Мартина Фаулера и пр. в оригинале, а не преподавателей российских вузов, многие из которых вообще ни разу в жизни не занимались профессиональным программированием и переписывают друг у друга из учебников и методичек одну и ту же ересь десятилетиями.
Создатель ООП Алан Кей с вами бы не согласился:
«Я считал объекты чем-то вроде биологических клеток, и/или отдельных компьютеров в сети, которые могут общаться только через сообщения.»
«Мой опыт в математике заставил меня понять, что каждый объект может иметь несколько алгебр, они могут объединяться в семейства, и это может быть очень полезным.»
«Одна из ключевых идей: система должна продолжать работу во время тестирования о особенно во время произведения изменений. Даже крупные изменения должны быть поэтапными и занимать не больше доли секунды.»
«Позднее связывание позволяет с меньшими усилиями встраивать в проект идеи, которые возникли позже в процессе разработки (по сравнению с системами с более ранним связыванием вроде C, C++, Java, и пр.)»
«Я не против типов, но мне не знакома ни одна система типов, которая не вызывала бы боли. Так что мне все еще нравится динамическая типизация.» — Алан Кей за динамическую типизацию.
«ООП для меня это сообщения, локальное удержание и защита, скрытие состояния и позднее связывание всего. Это можно сделать в Smalltalk и в LISP.» — а наследования в Smalltalk не было вовсе.
Мы говорим про массовое образование, которое всеобщее. Средний IQ составляет около 100 (они специально так шкалу проградуировали) — о каком проектном мышлении и создании новых реальностей идёт речь, ау!!! В массовом образовании речь идёт о том, чтобы научить читать, писать, не совать пальцы в розетку и хоть чуть-чуть понять как много же ещё всего есть неизвестного.
Проектная деятельность в ФГОС… как там было в одной умной старой книжке? «не бросайте жемчуга вашего перед свиньями»
Т.е. сами себя вы не поддерживаете?
А она сейчас прямо такая хорошая? Старое железо (особенно всякие хитрые enterprize/embedded штуки) под новыми Windows пробовали заводить? А наоборот?
Кстати, Роберт Мартин постоянно говорит, что ООП не противоречит ФП:
youtu.be/7Zlp9rKHGD4?t=2984
Мне почему-то кажется, что специалист не стал бы «лечить по фотографии» и отказался бы участвовать в этой «ролевой игре»
Интересно, скоро ли привязки для F# появятся…
Но достаточно ли точны, чтобы поставить на это жизнь человека? Я считаю, что нет и натурные испытания необходимы (хотя их требуется гораздо меньше, чем раньше — эти программные пакеты избавили нас от всяких макетов в аэродинамических трубах и пр., но это этап поиска решения, а не финальной проверки)
Бартош Милевски давно всё объяснил: «либо у вас динамическая типизация, либо generics, а если у вас их ещё нет, то скоро будут»
По-моему евангелисты Rust уже везде.
Посмотрите видео с форумов «Учёные против мифов» (канал antropogenez.ru). Они смеются над альтернативщиками, которых называют «немогликами» (потому что они всё время заявляют, что древние люди не могли что-то) и доказывают свою правоту экспериментами. В т.ч. они сами бронзовыми инструментами вручную делали те операции с гранитом, которые вызывают вопросы у скептиков. И на тему больших каменных блоков у них есть несколько материалов.
в крайней аварии

в последней аварии.
Каких верифицированных расчётных пакетов? ANSYS и MARC? Не смешите, пожалуйста. Я даже не буду говорить про недостатки метода конечных элементов и пр., я просто упомяну, что в физике пока нет универсального уравнения состояния вещества, а поэтому пока его нет, все эти расчёты (хотя часто приятно точны), фундаментально не соответствуют действительности (особенно в критичных процессах типа разрушения, частых смен агрегатного состояния, предельных скоростей и напряжений)

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity