Обновить
102
0.2
Роман Смирнов@Source

Head of Elixir at Ecom.tech

Отправить сообщение
если честно, для меня приоритетней «ничего не ставить» чем «лишний мегабайт бинаря»
Подход «ничего не ставить» подходит для очень ограниченного круга простых задач… Для мало-мальски сложного клиентского приложения всё равно придётся делать инсталлятор/деинсталлятор, из которого уже не проблема установить всё что нужно, если это отсутствует.
В конечном итоге, использование виртуальных машин и разделяемых библиотек позволяет сократить место суммарно занимаемое всеми установленными программами. Обратный пример можно видеть на примере Electron, где каждое приложение встраивает в себя под 100 Mb браузерного движка, вместо того, чтобы устанавливать его отдельно и единоразово.
Если использовать библиотеку, которая обновится и функция станет возвращать void,
то это как раз тот случай, когда лучше показать даже не ворнинг, а ошибку. Ведь если вызывающий код использовал значение, которое возвращала функция, то он никак не ожидает настолько кардинальной смены логики работы этой самой функции. Прикинуться валенком и продолжать работать — это худшее что может сделать интерпретатор в такой ситуации.
Так, справедливости ради, дотнет стоит по умолчанию на свежей системе, начиная с Windows 7 SP1, емнип.
Как бы то ни было, но helloworld должен занимать несколько десятков байт, не более. На любой архитектуре, любой ОС и в любом году.
На правах человека, который для прикола реально писал программу, размером меньше 1 кб, замечу, что Вы несёте чушь…
Для примера возьмём Windows, как наиболее распространённую ОС… Даже если взять 32-битную версию, то есть определённый формат исполняемых файлов, есть импорт kernel32.dll, чтобы хоть что-то осмысленное сделать… есть длина строки и имени вызываемой функции в конце концов. Всё это занимает гораздо больше нескольких десятков байт. Даже если насиловать компилятор кастомными размерами секций, то меньше 512 байт у Вас небитый exe-файл сделать не получится. А helloworld будет занимать уже не меньше 768 байт. А если прибавить к этому размер самой kernel32.dll, то уже на мегабайты счёт пойдёт.
Вы про паттерны, как про фреймворки рассуждаете… Или Вы реально их используете, только когда в описании задачи написано «вот тут используй паттерн Proxy, а вот тут Decorator»?
Таких языков очень много, Smalltalk, Self, Io, etc. Однако, Ruby, как и C#, не является чистым ООЯП, т.к. поддерживает и другие парадигмы «из коробки».
Остальные картинки изображали Spuds Mackenzie, Morris the Cat, McGruff, судя по названиям файлов. Изображения этих персонажей найти совснм не сложно.
В оригинальной статье была такая картинка:


Ссылка на Web Archive: http://web.archive.org/web/20060208020139/http://msdn.microsoft.com/vcsharp/art/csharp_team.gif
С# является одним из двух чистых объектно-ориентированных языков программирования

Хм, даже интересно стало увидеть ваше определение чистого ООЯП и какой же ещё 1 язык под него подпадает?

чья идея просиживать штаны и цели тянуться никакой нету

ну, имхо, это 80% народа в любой профессии… куда ж без них?

Зачем мне работать в таком месте, когда я могу пойти туда, где коллеги будут тянуть не назад, а вперед.

Ну, это просто утрированный случай… На практике сложно найти работу, где все коллеги будут тянуть вперёд… Точнее, в начале карьеры несложно, но чем больше опыта, тем чаще приходится самому кого-то тянуть )))

Языки разные знать надо… Нельзя себя только одним типом языков ограничивать, даже джуниорам. Есть общие критерии, по которым можно представить себе язык даже если ты его никогда раньше не видел:


  • cлабая динамическая типизация, GC, OOP (prototype-based), HOF
  • сильная статическая типизация, GC, OOP (class-based)

Если эти критерии сами по себе понятны, то от языка понадобится только синтаксис и стандартная библиотека. Для ещё более хорошего описания список критериев можно слегка расширить простыми пунктами типа: мутабельность данных, мономорфность операторов и т.п.

Кулинарные рецепты — тоже алгоритмы.
Кулинарные рецепты все сплошь на нечёткой логике. А большинство шагов вообще пропущены. Так что называть их алгоритмами — это перебор.
Иногда проекту как бы не нужна эта польза. Трудно ее приносить, когда вокруг тебя одни просиживающие штаны дядьки, сидящие на этом рабочем месте по N-дцать лет.
Так это, на мой взгляд, идеальная ситуация для проверки той самой состоятельности… Тут либо конформистское поведение возмёт верх, либо профессиональная этика. Всегда есть выбор: делать как коллеги (как начальство сказало, как «быстрее») или исходя из своего представления как должно быть. Иногда эти варианты могут и совпадать, но далеко не всегда.

Так что я думаю, что человек состоялся, как программист тогда, когда он сам для себе это решил
О, это ощущение обычно бывает ещё в первый год… потом, правда, у адекватных людей проходит на значительное время )
Да, я же написал «в идеале»… А вообще спасибо, что напомнили про Forth, надо будет его тоже покрутить после Prolog :-)
Платформы разные. Но в принципе платформ ограниченное количество (и гораздо меньше, чем языков). Так что, при желании, хоть в какой-то мере можно с каждой ознакомиться… Но это конечно уже не про джуниоров, да и вообще холиварная тема вглубь vs вширь.
А какой критерий для «состоялся как программист»?
В данном контексте можно такой: «забыл про PHP, как про страшный сон» :-)
А если серьёзно, то на мой взгляд состоявшемуся программисту должно быть не суть важно какой язык или стек, он причинит проекту пользу в любом случае )))
Разница, конечно, есть. Но в идеале программист не должен сильно быть привязан к какому-то конкретному языку программирования. Опыт естественно набирается в основном на 2-3 языках, но это не блокирует возможность программировать на любом другом.

Информация

В рейтинге
3 009-й
Откуда
Россия
Работает в
Зарегистрирован
Активность