Не представляю, что можно написать в 400 строк кода… В этом смысле я с Мартином и Фаулером согласен — если нужно прокомментировать какой-то кусок кода (а 400 строк без комментариев — это жесть), то лучше вынести этот код в отдельный метод и его именем дать понять, что именно в нем происходит. Так сразу двух зайцев отстреливаем — получаем большую модульность — больше более коротких методов, и меньше неактуальных комментариев — имя метода почти всегда соответствует его внутренностям, комментарий же — наоборот, чаще врёт, чем говорит правду.
Если же вопрос в производительности, то это задача компилятора инлайнить методы. Если метод огромный, то затраты на его вызов — пшик, если маленький, то он почти гарантированно будет заинлайнен любым даже глупым JIT-компилятором, не говоря уже о супер-gcc.
Афайк на данный момент только 2011-3 процессоры не имеют встроенной графики, поэтому выбирай-не выбирай с большим числом ядер, а если ты не готов выложить 30к за проц (типичная цена сегодня на 5820к), то интеграшка так или иначе будет.
Мне в своё время понравилась аналогия, что монолитное ядро — это когда корабль не может поднять перископ из-за того, что шкипер не спустил в гальюне. Почему всё никак не воспользуются результатами Singularity — столько же профита от этого могло бы быть…
Терраформировал даже радиоактивные планеты еще в 1994 до того, как это стало мейнстримом. Atmospheric terraforming + complete terraforming 120 + advanced soil == GG
Замечательные новости. Однако один момент не понятный — почему майкрософт так цепляется за бейсик? Язык наверное всё же имеет право на жизнь, но вот в качестве языка для промышленной разработки он уже давно за бортом, всякие шарпы, джавы, да даже функциональные схемы и хаскели впереди… Ведь разработкой этого языка занимался наверняка не один десяток достаточно талантливых разработчиков, почему бы не направить их усилия на внедрение еще пары фич тот же шарп? Или помочь команде F#? Не понимаю…
Большинство клав, что я видел, вообще подсвечивают клавиши только по контуру, изредка — сама буква. Да. я покупал механику давно. И вот только сейчас решил обновиться, так что может чего упустил из мира новинок. Я вообще хотел бы купить Cherry MX 6.0, но её пока нет, хз когда будет, и нет ни одного обзора даже инженерника какого-нибудь, не говоря уже о поставленной на поток клавиатуре
Ну а я остановился на Ducky Zero Cherry MX Brown, для меня плюсы
1. Brown переключатели — я и пишу, и играю прилично, это идеальные клавиши для этого имо
2. Отсутствие цифрового блока (есть версия и с ним)
3. Синяя подсветка, причем русский тоже подсвечивается (!)
4. Отсутствие всевозможного софта (ненавижу все эти оптимайзеры и улучшайзеры всего, чего можно). Макросы вещь не самая нужна, а отсутствие программных конфликтов — это торт.
5. Легко снимаемые клавиши.
Изначально хотел CODE 87-Key Mechanical Keyboard — Cherry MX Clear, но 150 баксов (+ еще 100 — доставка) не оставили ей шансов.
Пока только заказал, на руках не держал, по ожидание большое, надеюсь не разочаруюсь
Значит 360 градусов обзора ящерице нужнее. А насчет телевизора скажу просто — адаптация. Вспомните эксперимент того ученого, который сделал очки, которые переворачивали изображение — вы же помните, что мы видим мир «перевернутым».
Опять же, не строгое доказательство, но заставляет слегка задуматься на тему того, почему такой важный элемент восприятия, как вы утверждаете, так легко выключается?
Пример с котенком это и есть это утверждение, так что остается только одно — что они находятся по разные стороны. Но это тоже не аргумент. Возможно, что два глаза просто упрощают восприятие — известно же, что ящерицы видят в 2д, а третье измерение «достраивают» у себя в мозгу. То есть для них 3д — это умозрительная вещь (как для нас — 4д пространство). А у нас два глаза позволяют разгрузить мозг.
Я естественно не биолог, просто логически рассуждаю. И как раз пример с котом хорошо вписывается в мою концепцию.
Если вы тоже так думаете, у меня для вас небольшой сюрприз — это неправда. Доказательство прекрасно в своей простоте — достаточно закрыть один глаз и пройтись по комнате, чтобы убедиться, что мир внезапно не утратил глубины и не стал походить на плоский аналог анимационного мультфильма.
Мне кажется, вы немного путаете. В том смысле, что если человек 20+лет накапливал опыт и собирал библиотеку 3д-образов двумя глазами, то на момент, когда он глаза закроет, большинство паттернов уже будет у него в мозгу, и тут закрывай глаз или не закрывай — с уже проанализированными картинками можно работать и одним глазом.
Поэтому это не может считаться доказательством. Вот если бы был пример человека, который с детства имел только один глаз, и он видел всё плоско — это уже было бы ближе (хотя и в этом случае мозг мог адаптироваться именно с помощью алгоритмов, основанных на параллаксе. Но возможно, это именно вспомогательный алгоритм, когда основной — бинокулярный — дает сбой). 100% проверить можно было бы с помощью приборов, которые возвращают зрение слепым. То есть если человек никогда ничего не видел, а потом ему дать возможность видеть (через одну камеру) — то будет возможность точно узнать, достаточно ли этого для восприятия объема.
Не-не-не, вы говорили про идеальный сферический мир.
В этом мире одна часть людей ничего не делают и потребляют бесплатно, а вторая часть людей поддерживает роботов бесплатно.
В чем интерес какого-то одного конкретного инженера работать на работе по разработке и поддержанию роботов, когда он может присоединиться к «отдыхающей» части.
Это вопрос в стиле «кто готов работать бесплатно»?
Я говорил про сферический мир, где люди только потребляют, могу процитировать. А о роботах заботятся другие роботы. Это логично.
Конечно, плавно и постепенно можно прийти к технологическому процессу, где людей или вообще нет, или работают несколько людей исключительно for fun.
Но до такого состояния человечеству ещё пилить и пилить.
До идеального сферического состояния человечеству ещё пилить и пилить. Не вижу противоречий.
Но не за 1-2 года.
Что поделать. Нельзя всем нравится, все люди разбиты на какие-то группы, интересы у которых как правило противоположены, и помогая одной группе, находите ненависть со стороны остальных. В данном случае наоборот — получают преимущества все группы, кроме какой-то одной. Но и те могут переквалифицироваться на другую работу, т.к. оптимизируется в первую очередь низкоквалифицированная работа, люди в которой «универсальны» — он может и полы подметать, и кофе разносить, поэтому при автоматизации уборки он всегда может пойти в официанты.
Ну а в самом крайнем случае есть возможность просто часть ресурсов, высвобожденных в результате автоматизации потратить просто на пособия этой группы людей (хотя это, конечно, маловероятно, учитывая наш капиталистический мир).
Просто люди забывают, что идеальный мир — это не капиталистический мир, потому что в идеальном мире благ хватает на всех и нет нужды что-то оплачивать — ты просто берешь то, что тебе нужно. Это не коммунизм или социализм в мире Маркса и Энгельса, а просто результат того, что благ достаточно на всех.
Если ближе к бренной земле, то такой режим очевидно уничтожает власть людей над другими людьми (все равноправны), что будет воспринято в штыки людьми власть имеющими (КЭП), но пока они работают на перспективу человечеству (и как следствие, против себя), но не замечают этого, потому что следуют принципу «меньше издержек — больше денег в кармане».
Да, но в чем интерес для людей, которые создают роботов?
Интерес в снижении издержек. И да, всю историю автоматизация не лишала людей работы (вспомним забастовки по поводу автоматизации фабрик, они тоже думали, что их «оставляют без работы»), а перераспределяет людей в другие профессии. Центральное отопление и холодильники лишили целый пласт людей работы, вроде тех, которые кололи лёд/дрова, логистику всего этого дела, и т.д. и т.п.
Исчезают профессии, подвергнувшиеся автоматизации (всякие сборщики, колольщики, и т.п.), но появляются новые профессии (нейрохирурги, программисты, сисадмины, СЕОшники...) связанные как раз с появившейся автоматизацией. Процент занятых людей не падает при любой автоматизации. Перераспределяются ресурсы, но их сумма всегда равна единице.
В идеальном сферическом мире все блага производят роботы, а люди — просто потребляют. А зависимость «заплатил — получи» навязана вашим мировоззрением точно также, как в былые времена «только золото есть деньги». Попробуйте объяснить принцип кредитования средневековому купцу — он только пальцем у виска покрутит. Давать полновесные деньги в обмен на непонятные обещания — фи, никакая система так не работает.
Если все рабочие места автоматизированны, и издержки на их содержание уменьшились — поздравляю, на шарике с названием «Земля» количество благ на душу населения увеличилось. А что великие экономисты не могут помыслить себе человека без цикла «вджобывает -> тратит деньги», ну, это инертность вашего мышления, не более того.
Есть хорошая поговорка: «Когда у тебя в руках молоток, все кажется гвоздями», или в оригинале:
Поэтому задача хорошего программиста — уметь пользоваться несколькими инструментами (или хотя бы хорошо знать об их существовании), чтобы выбрать нужный. И знать не в смысле «окей, я знаю, на С это выглядело бы примерно так», а знать в смысле понимать идеологию языка.
В моем случае изучение лиспа и F# позволило намного шире и эффективнее использовать лямбды в шарпе, а знание работы ассемблера и устройство памяти позволило писать cache-obvious алгоритмы, которые выполняются в разы быстрее просто от организации блочного прохода по массиву.
По сути получается, что в шарпе с помощью библиотеки, реализующий основные пролог функции, программа, написанная на прологе, использующая основные функции, выглядит так же, как и в прологе? Ну допустим, но что из этого следует? На шарпе можно добиться того же результата? Да, конечно, это же тьюринг-полный язык, а как мы помним тезис тьюринга-черча, это значит что на нем мы можем посчитать что душе угодно. С тем же успехом можно взять ассемблер и брейнфак, можно даже с помощью макросов получить что-то похожее. Значит ли это, что этот язык подходит для реализации задачи? Не думаю.
Шарп замечательный язык, но тогда уж предоставляйте честное решение с имплементацией всех методов, без сторонних библиотек. Потому что если мы у языков заберем стандартные библиотеки, то останется только синтаксис, который в данном примере тоже проигрывает прологовскому, а по числу скобочек приближается к лиспу.
Но в любом случае, спасибо за статью. Я не согласен лишь в выводом, что если примотать кирпич к отвертке — то получится сносный молоток. Каждой задаче — свой инструмент. There is no silver bullet, Neo.
Если же вопрос в производительности, то это задача компилятора инлайнить методы. Если метод огромный, то затраты на его вызов — пшик, если маленький, то он почти гарантированно будет заинлайнен любым даже глупым JIT-компилятором, не говоря уже о супер-gcc.
1. Brown переключатели — я и пишу, и играю прилично, это идеальные клавиши для этого имо
2. Отсутствие цифрового блока (есть версия и с ним)
3. Синяя подсветка, причем русский тоже подсвечивается (!)
4. Отсутствие всевозможного софта (ненавижу все эти оптимайзеры и улучшайзеры всего, чего можно). Макросы вещь не самая нужна, а отсутствие программных конфликтов — это торт.
5. Легко снимаемые клавиши.
Изначально хотел CODE 87-Key Mechanical Keyboard — Cherry MX Clear, но 150 баксов (+ еще 100 — доставка) не оставили ей шансов.
Пока только заказал, на руках не держал, по ожидание большое, надеюсь не разочаруюсь
Пример с котенком это и есть это утверждение, так что остается только одно — что они находятся по разные стороны. Но это тоже не аргумент. Возможно, что два глаза просто упрощают восприятие — известно же, что ящерицы видят в 2д, а третье измерение «достраивают» у себя в мозгу. То есть для них 3д — это умозрительная вещь (как для нас — 4д пространство). А у нас два глаза позволяют разгрузить мозг.
Я естественно не биолог, просто логически рассуждаю. И как раз пример с котом хорошо вписывается в мою концепцию.
Мне кажется, вы немного путаете. В том смысле, что если человек 20+лет накапливал опыт и собирал библиотеку 3д-образов двумя глазами, то на момент, когда он глаза закроет, большинство паттернов уже будет у него в мозгу, и тут закрывай глаз или не закрывай — с уже проанализированными картинками можно работать и одним глазом.
Поэтому это не может считаться доказательством. Вот если бы был пример человека, который с детства имел только один глаз, и он видел всё плоско — это уже было бы ближе (хотя и в этом случае мозг мог адаптироваться именно с помощью алгоритмов, основанных на параллаксе. Но возможно, это именно вспомогательный алгоритм, когда основной — бинокулярный — дает сбой). 100% проверить можно было бы с помощью приборов, которые возвращают зрение слепым. То есть если человек никогда ничего не видел, а потом ему дать возможность видеть (через одну камеру) — то будет возможность точно узнать, достаточно ли этого для восприятия объема.
В этом мире одна часть людей ничего не делают и потребляют бесплатно, а вторая часть людей поддерживает роботов бесплатно.
В чем интерес какого-то одного конкретного инженера работать на работе по разработке и поддержанию роботов, когда он может присоединиться к «отдыхающей» части.
Это вопрос в стиле «кто готов работать бесплатно»?
Я говорил про сферический мир, где люди только потребляют, могу процитировать. А о роботах заботятся другие роботы. Это логично.
Конечно, плавно и постепенно можно прийти к технологическому процессу, где людей или вообще нет, или работают несколько людей исключительно for fun.
Но до такого состояния человечеству ещё пилить и пилить.
До идеального сферического состояния человечеству ещё пилить и пилить. Не вижу противоречий.
Но не за 1-2 года.
Что поделать. Нельзя всем нравится, все люди разбиты на какие-то группы, интересы у которых как правило противоположены, и помогая одной группе, находите ненависть со стороны остальных. В данном случае наоборот — получают преимущества все группы, кроме какой-то одной. Но и те могут переквалифицироваться на другую работу, т.к. оптимизируется в первую очередь низкоквалифицированная работа, люди в которой «универсальны» — он может и полы подметать, и кофе разносить, поэтому при автоматизации уборки он всегда может пойти в официанты.
Ну а в самом крайнем случае есть возможность просто часть ресурсов, высвобожденных в результате автоматизации потратить просто на пособия этой группы людей (хотя это, конечно, маловероятно, учитывая наш капиталистический мир).
Просто люди забывают, что идеальный мир — это не капиталистический мир, потому что в идеальном мире благ хватает на всех и нет нужды что-то оплачивать — ты просто берешь то, что тебе нужно. Это не коммунизм или социализм в мире Маркса и Энгельса, а просто результат того, что благ достаточно на всех.
Если ближе к бренной земле, то такой режим очевидно уничтожает власть людей над другими людьми (все равноправны), что будет воспринято в штыки людьми власть имеющими (КЭП), но пока они работают на перспективу человечеству (и как следствие, против себя), но не замечают этого, потому что следуют принципу «меньше издержек — больше денег в кармане».
Интерес в снижении издержек. И да, всю историю автоматизация не лишала людей работы (вспомним забастовки по поводу автоматизации фабрик, они тоже думали, что их «оставляют без работы»), а перераспределяет людей в другие профессии. Центральное отопление и холодильники лишили целый пласт людей работы, вроде тех, которые кололи лёд/дрова, логистику всего этого дела, и т.д. и т.п.
Исчезают профессии, подвергнувшиеся автоматизации (всякие сборщики, колольщики, и т.п.), но появляются новые профессии (нейрохирурги, программисты, сисадмины, СЕОшники...) связанные как раз с появившейся автоматизацией. Процент занятых людей не падает при любой автоматизации. Перераспределяются ресурсы, но их сумма всегда равна единице.
Если все рабочие места автоматизированны, и издержки на их содержание уменьшились — поздравляю, на шарике с названием «Земля» количество благ на душу населения увеличилось. А что великие экономисты не могут помыслить себе человека без цикла «вджобывает -> тратит деньги», ну, это инертность вашего мышления, не более того.
i.imgur.com/8al9tN9.png
А вообще очень красиво
Есть есть фатальный недостаток тут — не стесняйтесь показать.
Поэтому задача хорошего программиста — уметь пользоваться несколькими инструментами (или хотя бы хорошо знать об их существовании), чтобы выбрать нужный. И знать не в смысле «окей, я знаю, на С это выглядело бы примерно так», а знать в смысле понимать идеологию языка.
В моем случае изучение лиспа и F# позволило намного шире и эффективнее использовать лямбды в шарпе, а знание работы ассемблера и устройство памяти позволило писать cache-obvious алгоритмы, которые выполняются в разы быстрее просто от организации блочного прохода по массиву.
Шарп замечательный язык, но тогда уж предоставляйте честное решение с имплементацией всех методов, без сторонних библиотек. Потому что если мы у языков заберем стандартные библиотеки, то останется только синтаксис, который в данном примере тоже проигрывает прологовскому, а по числу скобочек приближается к лиспу.
Но в любом случае, спасибо за статью. Я не согласен лишь в выводом, что если примотать кирпич к отвертке — то получится сносный молоток. Каждой задаче — свой инструмент. There is no silver bullet, Neo.