MetaProg

Описание: Разработка и отладка приложений. Упор на 3D-графику.

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#73 dyvniy » Вт, 22 октября 2019, 15:31:19

Ответы Алана Кея
https://news.ycombinator.com/item?id=11939851
Спойлер
Хакер Новости новый | прошлое | комментарии | спросить | показать | рабочие места | представить авторизоваться
Алан Кей согласился сделать сегодня АМА
1401 очко от alankay1 20 июня 2016 г. | скрыть | прошлое | веб | любимый | 893 комментария
Этот запрос возник в результате недавних обсуждений HN и формирования HARC! в YC Research. Я буду вокруг большую часть дня сегодня (хотя рано вечером).



черт 22 июня 2016 [-]

Это одна из лучших тем, которые когда-либо видел HN, и мы не могли бы быть более взволнованы, проведя такую ​​интересную и широкую дискуссию. Я знаю, что я не единственный, кто будет возвращаться к богатству идей, идей и указателей здесь в ближайшие недели.
Алан, огромное и сердечное спасибо всем нам. Качество и количество (более 250 сообщений!) Того, чем вы поделились с сообществом, с самого начала превзошли все ожидания и продолжали. Какой удивительный подарок! Спасибо, что дали нам такую ​​богатую возможность учиться.

(Приглашаем всех продолжить обсуждение по мере необходимости, но часть AMA официально завершена.)



Крмбоя 23 июня 2016 года [-]

Спасибо всем, кто сделал это возможным. Это было действительно умопомрачительным, пытаясь разобрать и понять и вопросы, и ответы, подобно одновременному путешествию как в прошлое, так и в будущее вычислительной техники.
С тех пор все остальные нити HN стали такими легкими, и только сейчас это чувство начинает стираться.



черт 23 июня 2016 [-]

Мы должны найти способ развить некоторые из богатых вен обсуждения - возможно, выбрав одну вещь и вдаваясь в подробности. Каждый раз, когда я читаю или слышу Алана, я получаю список ссылок на новые вещи, о которых я никогда не слышал раньше.


дедушка 22 июня 2016 года [-]

@ Dang спасибо YC за это! Я прочитал HN для комментариев, и этот AMA показал, почему у HN самые лучшие комментарии в Интернете.


nickpsecurity 23 июня 2016 г. [-]

Я согласен. Уже прочитал несколько сотен из них. Похоже, я должен вернуться за 200 или около того. Здесь так много интересных подтем с тем, кто знает, какое воздействие ждет своего будущего. Спасибо вам и HN за организацию.


GeertVL 23 июня 2016 г. [-]

Тут то же самое. Я перечитал это уже два раза. Сделал тонну заметок.


jonoCodes 28 июня 2016 г. [-]

Хотите поделиться заметками?


гуэло 20 июня 2016 года [-]

Когда вы представляли себе современные компьютеры в 70-х годах, вы, казалось, были сосредоточены в основном на образовательных преимуществах, но оказалось, что эти устройства даже лучше для развлечений в том смысле, что они опасно затягивают и отвлекают время от образования. Есть ли у вас какие-либо мысли об интерфейсах, которые уводят мозг от его худших импульсов и к более продуктивному использованию?


alankay1 20 июня 2016 г. [-]

Мы в основном думали о «человеческом прогрессе» или, как группа Энгельбарта называла это «Человеческое увеличение» - это включает в себя образование наряду со многими другими вещами. Я помню, как заметил, что если бы закон Мура продлился десятилетие после 1995 года (первоначальная экстраполяция Мура), то такие вещи, как телевидение и другие «легальные наркотики» были бы возможны. У нас уже было очень хорошее чувство этого, прежде чем телевизионные вещи стали возможными, если заметить, насколько привлекательными были ранние видеоигры, такие как SpaceWar. Это часть индустриальной цивилизации, способной производить излишки («индустриальная» часть), причем «цивилизационная» часть заключается в том, насколько хорошо можно помочь детям научиться не поддаваться жажде генетики в мире избытка. ,


stcredzero 20 июня 2016 г. [-]

Тогда что вы думаете о понятии «геймификация»? Считаете ли вы, что высокая плотность вознаграждения и различные графики вознаграждения могут быть использованы для продуктивной концентрации человеческого внимания и интеллекта на проблемах? Сама музыка может рассматриваться здесь как аналогия. Поскольку музыка структурирована таким образом, что делает ее приятной на вкус (то есть обладает высокой плотностью вознаграждения), большое внимание людей было сосредоточено на физике звука и биомеханике людей, использующих объекты для создания звука. Игры (особенно такие, как Minecraft), похоже, предполагают, что существуют структуры, в которых энергия и внимание могут быть сосредоточены на абстрактных системах правил практически одинаково.


alankay1 20 июня 2016 г. [-]

Я, конечно, не думаю о музыке по этим направлениям. Или даже театр. Мне нравятся развитые искусства всех видов, и они требуют обучения со стороны зрителя, а не только костей, брошенных в щенков.


stcredzero 20 июня 2016 г. [-]

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

Также, возможно, гораздо проще использовать такие механизмы, чтобы просто увлекать людей, что сокрушает любую ценность, которую нужно получить.



Edejong 20 июня 2016 г. [-]

Я просто попытался, хотя и немного безуспешно, описать кому-то философию системы Монтессори. Ваш ответ, усвоенный со стороны наблюдателя, прекрасно его подытоживает. Спасибо тебе за это.


ВандерЗван 21 июня 2016 г. [-]

То, как вы описываете музыку здесь, очень похоже на то, как Стив Пинкер описывал музыку: как ментальный эквивалент чизкейка; что-то, что просто вызывает все правильные системы вознаграждений (основанные на нашей любви к шаблонам и структуре и использующие те же биологические системы, которые мы используем для языка), но не обязательно само по себе питательное.
Тем не менее, все свидетельства указывают на то, что он ошибался по этому поводу, допустив ошибку, начав с языка в качестве центрального элемента и объяснив все вокруг. Человеческая музыка, вероятно, предшествует человеческой речи на сотни тысяч лет и тесно связана с социальными связями, эмоциями и двигательными системами таким образом, что не имеет ничего общего с символическими аспектами языка.



stcredzero 21 июня 2016 г. [-]

То, как вы описываете музыку здесь, очень похоже на то, как Стив Пинкер описывал музыку: как ментальный эквивалент чизкейка; ... не обязательно сам по себе питательный.
Обратите внимание, что я не имел в виду это негативно. Кроме того, если вы хотите потреблять макроэлементы, чизкейк - довольно эффективный способ получить простые углеводы и молочный жир.

тесно связана с социальными связями, эмоциями и двигательными системами таким образом, что не имеет ничего общего с символическими аспектами языка.

Я думаю, что есть что-то похожее на это, что можно найти в играх, и что есть что-то особенно позитивное, что можно найти в хорошо сконструированных играх.



ВандерЗван 21 июня 2016 г. [-]

Да, извините: я мог бы быть более ясным, что то, что я описал, было суждением Стива Пинкера, а не вашим.
И я старался быть нейтральным к играм специально - я сам учил игровому дизайну;). Сказав это, многие реальные попытки геймификации являются довольно банальными схемами кнута / пряника.



InquilineKea 22 июня 2016 г. [-]

Каковы некоторые примеры таких хорошо построенных игр?


паника 23 июня 2016 года [-]

Я думаю, что игры больше похожи на инструменты, чем на музыку. Сама игра не так интересна, как геймплей, который вы можете выполнять в ней. Спидраннинг, в частности, имеет много общего с музыкальным исполнением.


гкя 20 июня 2016 г. [-]

Я предполагаю, что при использовании технологии каждый сталкивается с процессом, довольно похожим на естественный отбор, в котором чем лучше способность пользователя ограничить свое использование тем, что он должен делать, тем больше вероятность выживания, то есть пользователь не будет медлить и отвлекаться , Использование компьютеров для развлечений невозможно остановить, почти невозможно запретить детям находить и играть в эти игры, общаться с друзьями в WhatsApp и эксплуатироваться другими компаниями, которые зарабатывают деньги на такого рода эксплуатации, хотя это и платно их психологического здоровья и будущих успехов. Люди проводят каждую секунду дня, связанные и отвлеченные, и это кажется необратимым. Интересно, есть ли у вас практическая мысль о том, как это можно исправить.


alankay1 20 июня 2016 г. [-]

Мой друг Нил Почтман (наш лучший критик в СМИ за многие годы) выступал за то, чтобы учить детей быть «партизанскими воинами» в войне тысяч людей, пытающихся захватить их мозги для еды. Большинство детей - и большинство родителей, большинство людей - даже не осознают, насколько это не просто агрессивно, а регрессивно ...


A_C 21 июня 2016 [-]

Можете ли вы подробнее рассказать об этом?


alankay1 21 июня 2016 г. [-]

Идея Нейла заключалась в том, что все мы должны осознавать окружение, в котором мы живем, и то, как генетически настроены наши мозги / умы, чтобы приспособиться к ним, не будучи очень осведомленными о процессе, и, что самое важное, практически полностью не осознавая, что мы приспособились к тому, чтобы попасть в «новый нормальный».
Начало лучшего пути похоже на точку отсчёта науки «Мир не такой, как кажется». Здесь это «Как человек, я - совокупность черт и поведения, многие из которых атавистичны и даже вредны для моего прогресса». Осознание того, насколько полезна тяга к соли, жиру, сахару, кофеину и т. Д., Превращается в проблему, когда их много, и компании-потребители могут загружать продукты вместе с ними ...

И Нил указывает - в книгах, таких как «Развлекаемся до смерти» и «Конец детства» - у нас есть тяга к «новостям», «новизне», «удивлению» и даже «морганию» и т. Д., Которые потребитель компании загрузили каналы связи с ...

Многие из этих идей восходят к Маклюэну, Иннису, Онгу и т. Д.

Итог: дети должны научиться пользоваться 21-м веком, или есть большая вероятность, что они потеряют 21-й век.



гкя 21 июня 2016 г. [-]

> Итог: дети должны научиться пользоваться 21-м веком, или есть большая вероятность, что они потеряют 21-й век.
Однако большинство детей знакомятся с технологиями развлечений еще до первого дня рождения. Многие подростки, которых я вижу, обладают смартфонами и / или планшетами. Большинство ранних подростков обладают несколькими устройствами. Ни один из них не сможет судить о том, что выгодно для их будущего и благополучия, и выбрать его, а не то, что сразу весело и приятно. Точно так же, как большинство из них будут жить на шоколадных плитах и ​​чипсах, если позволят это сделать. Бремя ложится на родителей, бремя, которое они не принимают.

Я сам не могу думать о будущем, кроме одного, полного наркоманов устройств, и небольшой группы, которой удалось освободиться от многолетних проволочек и псевдосоциализации только в возрасте двадцати лет. И хотя моя страна может запретить ввоз и производство определенных продуктов (продуктов питания и т. Д.) В пределах своих границ (например, генетически модифицированных, химически созданных для жадного потребления), это невозможно сделать с помощью веб-сайтов, поскольку (а) это технически невозможно и (б) это «противоречит свободе слова». Я попрошу читателя философствовать по поводу (б), потому что ни у отцов-основателей США, ни у пионеров французской революции, ни у большинства либертарианских революционеров, которые несут свободу, не было Facebook, чтобы пометить лица своих друзей.

(редактировать: я не хочу вступать в дискуссию о свободе слова и не поддерживаю какую-либо форму ее ограничения, хотя я не хочу свободы слова ценой эксплуатации поколений и поколений некоторыми компании, которые используют его в качестве укрытия для себя.)



alankay1 21 июня 2016 г. [-]

Я однажды сказал, что «Телевидение - это последняя технология, которую нам нужно изобрести без предупреждения об этом хирурга»


Стажер 21 июня 2016 года [-]

> Кей: дети должны научиться пользоваться 21-м веком, или есть большая вероятность, что они потеряют 21-й век.
> Гкья: Я сам не могу думать о будущем, кроме одного, полного наркоманов устройств, и небольшой группы, которой удалось освободиться от многолетних проволочек и псевдосоциализации только в свои двадцать лет.

Как infovore это беспокоит меня. Если мы не можем контролировать себя и придумать лучшие решения для самоконтроля, то авторитарные единомышленники, вероятно, сделают это за нас.

Сеть вызывает привыкание, и все те люди, которые притворяются, что это не так, шутят.

Легко представить участников анти-сети точно так же, как мы видим сегодня активистов антиглобалистов.

Я сам видел, как хорошее питание, физические упражнения и медитация влияют на группу людей, и поразительно, насколько изменились люди. Так что есть надежда!

Я считаю, что социальные перемены, например: фаббинг, который широко считается табу, недостаточно быстр, чтобы соответствовать эволюции Сети. К тому времени, когда моральная позиция против фаббинга установится, мобильных телефонов, вероятно, уже не будет. Для этого я думаю, что нам нужно технологическое решение, которое является адаптивным, как иммунная система, но также и тем, к которому люди могут присоединиться. Иначе в конечном итоге люди будут требовать от правительств таких вещей, как отключение интернета в определенное время в течение дня или запрет электронной почты после 18:00 и так далее.



гкя 21 июня 2016 г. [-]

Знакомство с технологиями, ну, по сути, я говорю об интернете, так рано начинается с детской жизни, что мы не можем просто сказать «мы должны контролировать себя». Вы не можете поместить ваш ребенок в комнате, полной чипсов, сладостей, алкоголя, наркотиков, порнографии, и ожидать, что она выйдет десять, пятнадцать лет спустя, как у здорового человека, который не является наркоманом ни к одному из них. Это то, что мы по существу делаем с интернетом.
> Я сам видел, как хорошее питание, физические упражнения и медитация влияют на группу людей, и это удивительно, насколько изменились люди. Так что есть надежда!

Ты взрослый, я тоже. Мы можем понять: это крадет мою жизнь. Но ребенок не может. И украденные дни не возвращаются. Вот почему я комментирую: мы бы лучше вырастили лучших людей, чем позволили бы им делать то, что они хотят, и надеясь, что они исправятся позже.



Тремон 22 июня 2016 года [-]

Вы не можете поместить ваш ребенок в комнате, полной чипсов, сладостей, алкоголя, наркотиков, порнографии, и ожидать, что она выйдет десять, пятнадцать лет спустя, как у здорового человека, который не является наркоманом, чтобы ни один из них
Я знаю, что это часто обсуждается, но действительно ли это доказано? За исключением наркотиков, все те, кого вы упомянули, были для меня легко доступны (на самом деле, как голландец, даже софт-наркотики были всего в одном шаге, если бы я захотел). И все же я не считаю себя зависимым ни от одного из них.



Гкья 22 июня 2016 г. [-]

Я не являюсь носителем английского языка, поэтому я задаюсь вопросом: ребенок не означает человека, еще не подростка? Я имею в виду детей в возрасте от 0 до 14 лет, когда говорю «ребенок». Если мы согласны с этим, и вы по-прежнему говорите, что это не доказано, мы можем попробовать, ну, тогда я не могу ничего сделать, кроме как надеяться, что у вас либо нет детей, либо ответственность за ребенка лежит на вас в противном случае.


нкассис 22 июня 2016 года [-]

Читая его пост, я полагаю, что он имел в виду, что вышеупомянутые вещи были доступны ему как ребенку (я не верю, что он имел в виду, как взрослый).
«Я ничего не могу сделать, кроме как надеяться, что у вас либо нет детей, либо ответственность за ребенка лежит на вас иначе».

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



Гкья 22 июня 2016 г. [-]

Я истолковал его сообщение, так как он хотел не только доказательства для интернета, но и другие вещи, которые я упомянул, и их влияние на детей. Извините, если это не так.


Тремон 23 июня 2016 года [-]

Нет, я не имел в виду, что мне нужны доказательства их влияния на детей. Мне нужны доказательства того, что «помещение вашего ребенка в комнату, полную $ bad_stuff» всегда приводит к зависимости, так как мне кажется, что это всего лишь страшные истории.
Хорошие родители могут правильно воспитывать своих детей, даже если вокруг них присутствует $ bad_stuff, и это было то, что я пытался сделать.



гкя 23 июня 2016 г. [-]

> Хорошие родители могут правильно воспитывать своих детей, даже если рядом с ними присутствует $ bad_stuff, и именно это я и хотел сказать.
Я согласен. Но интернет-экспозиция детей в основном не регулируется родителями. Они либо наедине с подключенным устройством в своих комнатах, вдали от них, либо с мобильным устройством вне дома. Лучшее, что могут сделать родители, - это обучать детей, но обществу не хватает знаний, чтобы эффективно это делать. Им следует дать образование, чтобы они могли обучать своих детей, и, кроме того, школы должны обучать несовершеннолетних использованию технологий.

«помещение вашего ребенка в комнату, полную $ bad_stuff» , в основном, приведет к зависимости, если родитель не сможет научить ребенка: это вредно для вас; не думаешь?



Тремон 23 июня 2016 года [-]

В основном согласен, да. Но я бы перефразировал это как «знакомство детей с $ bad_stuff без руководства - плохая идея»: я не думаю, что постоянный надзор должен быть необходим. Как только новизна прекратит свое действие, и родитель будет уверен, что ребенок может вести себя даже в присутствии $ bad_stuff, даже "поместить вашего ребенка в комнату, полную $ bad_stuff", может быть хорошо.
И я не имею в виду, что «дети в порядке со своими шприцами с героином», но в смысле «я могу оставить банку с печеньем на стойке, и она все равно будет там, когда я выйду из комнаты».



Международный специалист 22 июня 2016 г. [-]

Я думаю, что существуют записи о путанице в больницах с младенцами, причем довольно глубокие различия меняют их в зависимости от того, в какой среде они оказались, но это может быть в основном эпизодическим. Один случай в Японии такой, но он иллюстрирует разницу в богатстве, в отличие от того, что мы ищем здесь.
Http: //www.telegraph.co.uk/news/worldnews/asia/japan/1048109 ...

Провокационные, но не доказательства. Я посмотрел некоторые исследования близнецов, но не могу найти одно с четким исследованием среды порока / добродетели. Гверн хороша в поиске такой информации, если вы спросите его.



Стажер 21 июня 2016 года [-]

Я согласен. это довольно отрезвляюще.
Буквально вчера, до того, как эта тема даже началась (я работаю уборщиком на полставки), я полировал окно. Через него я увидел детей в гостиной, один из которых буквально стоял в сантиметрах от гигантского телевизора с плоским экраном. Клеил на это.

Я подумал: «Черт, у них нет шансов». Их внимание будет разорвано на кусочки, как клубки шерсти, от крошечных котят. Теперь умножьте этот эффект на Net + VR, и вы получите необычайный психологический эффект, лучший по сравнению с наркотиком.

У меня не было телевизора в детстве. Я читал бесчисленные книги, и без них я бы не сидел здесь, я не сделал бы ничего из того, что я мог бы разумно назвать изобретательным или инновационным. Они не могли бы изменить мир, но они были моими, и моя жизнь стала лучше.

Я разговаривал с другом, у которого есть дети несколько месяцев назад. Он был в процессе загрузки фотографий своей семьи в Facebook. Я спросил его, считает ли он, что он делает, моральным актом, поскольку он для практических целей вводит биометрические данные своих детей в систему, которую они лично не имеют и не могут принять. Он был поражен этой мыслью. Он собирался сказать что-то вроде «хорошо, что все так делают», но я мог видеть, что мысль поразила его, что «вау, это действительно очень плохая аргументация, которую я собирался сделать». Вместо этого он согласился со мной, неловко, но он получил это.

Я не знаю, как вы заставляете миллионы людей иметь такую ​​реализацию. Я думаю, что родительская ответственность играет огромную роль. Мои родители избавились от телевидения в 80-х годах. Это было правильно.



Fr0styMatt88 21 июня 2016 г. [-]

Что меня беспокоит в этом аргументе, так это то, что ИМХО это скользкий уклон в сторону «когда-то у нас не было этого новомодного материала». Мы должны быть чрезвычайно осторожны, чтобы наши аргументы были более содержательными, чем это. Это требует большого самоанализа, чтобы быть честным.
Видите ли, мои бабушка и дедушка беспокоились о том, что новая технология, на которой выросли мои родители, каким-то образом заставит их тупить (растут с радио, родители получают телевизор); поколение моих родителей беспокоилось о том, что технология, с которой мы выросли, будет плохой для нас (слишком много компьютеров, слишком много игр, слишком много Интернета). Будущее поколение родителей будет расти, задаваясь вопросом, собирается ли VR и AR разрушить шансы их детей.

И все же дети ВСЕГДА приспосабливаются. Они не считают смартфоны или планшеты чем-то особенно необычным. Это просто их обычное. Я уверен, что их мозг будет строиться поверх этого фундамента. В том-то и дело - мозги чрезвычайно адаптируемы. Мы все адаптировались.

Есть термин для этого беспокойства - он называется «Ювенойя»:

https://www.youtube.com/watch?v=LD0x7ho_IYc

Я не говорю, что это обсуждение не должно проводиться - оно, безусловно, должно быть. Я просто думаю, что мы все должны помнить о том, откуда могут возникнуть наши проблемы.



Гкья 22 июня 2016 г. [-]

Я никогда не говорил себе, что технология сама по себе сделает детей глупее. То, что я говорю, должно быть меры, регулирующие их воздействие, как и для других вещей.
Точно так же, как алкоголик и алкоголик различны, пользователь интернета и интернет-наркоман тоже различны. Только потому, что некоторые или большинство не являются наркоманами, мы не можем полностью от них отказаться.



Кресполь 22 июня 2016 г. [-]

Просто кажется немного несправедливым осуждать (или налагать чрезмерное бремя) подавляющее большинство ответственных потребителей алкоголя, потому что мы нашли несколько людей, которые имеют нездоровые отношения с ним.
Признание потенциальных опасностей далеко не говорит о том, что существует риск «потерять столетие» из-за легкого доступа к технологиям и развлечениям, и это выглядит как принижение молодого поколения.

В конце концов, миллениалы и их дети все еще люди, и они так же умны, мотивированы и адаптируемы, как и каждое поколение до них.



гкя 23 июня 2016 г. [-]

Кто ответственный алкоголик? В моей стране минимальный возраст для употребления алкогольной продукции составляет 18 лет. Что бы вы подумали о ребенке 10-15 лет, который является ответственным пьющим ?
Я спорю против аналога в технологии. Существует определенный период, в течение которого подвергание несовершеннолетнего воздействию технических устройств должно регулироваться родителями.

Что вы думаете о подростках, которые записываются обнаженными в чатах? Некоторые из них совершают самоубийство. Что вы думаете о детях, которые становятся жертвами издевательств в Интернете? Что вы думаете о педофилах, обманывающих детей онлайн? Разве родитель не отвечает за защиту несовершеннолетнего от таких злоупотреблений?

Мой общий аргумент в этой теме заключается в том, что мы должны воспитывать детей настолько хорошо, насколько сможем. Защитите их от опасности, которую они не могут осознать. Мы, конечно, не можем обременять взрослых, но мы можем попытаться воспитать взрослых, которые не являются неумелыми наркоманами с социальными недостатками. И поскольку большая часть населения мира неграмотна в сфере технологий, правительства должны предоставлять образование и помощь родителям, точно так же, как они делают это в области здравоохранения и образования.

Большинство контраргументов здесь были сторновками, потому что, хотя я в основном нацеливаюсь на детей, мне противостояли споры о взрослых.



техномантии 23 июня 2016 года [-]

Итак, по этой логике, не могли бы вы сказать, что единственными причинами, по которым детям не разрешается покупать алкоголь, являются причины биологического развития?


Международный специалист 22 июня 2016 г. [-]

> Что меня беспокоит в этом аргументе, так это то, что ИМХО это скользкий уклон в сторону «когда-то у нас не было этого новомодного материала».
> Я просто думаю, что мы все должны помнить о том, откуда могут возникнуть наши проблемы.

В основном мы на одной странице.

Вот предложение. Я сделаю ставку на консервативную точку зрения, а ты скажешь мне, что ты думаешь. Я обещаю не утверждать, что видья вызывает насилие, или D & D является основной причиной сатанизма.

Мое предложение состоит в том, что телевизионные СМИ значительно ухудшили наше общество, сделав его еще тупее. Это артефакт самой среды, а не проблема с каким-либо конкретным содержанием на нем. Чтобы объяснить, что я имею в виду под тупой, я должен уточнить.

Телевидение - это однонаправленная среда. Он содержит консенсус по различным интеллектуальным проблемам дня и дает описание мира, который я бы назвал полученным мнением. Нет существенной разницы между рекламой, которая транслирует людей на покупку продуктов, и не рекламой, которая транслирует людей на покупку идей. Большинство идей, которые покупаются, не представлены как предметы для продажи, они изображены как «данность», что очевидно. Большая часть лжи сделана бездействием. Даже если бы вся информация была представлена ​​правдиво, у нас есть ложное чувство изощренности в отношении нашего осознания, которое является проблемой. Когда вы покупаете готовую еду в магазине, вы не становитесь поваром, и, таким образом, вы не пережевываете идеи, которые вам преподносят, у вас нет умственного познания. Ваше состояние лучше всего описывается как, и кажется,

Одна из проблем заключается в том, что телевидение создает ложное чувство нормальности, которое не имеет объективной основы. Он задает вопросы и дает ответы. Все дебаты - это риторические дебаты.

Это когнитивный эквивалент «формирования трафика», который механизмы качества обслуживания делают на маршрутизаторах. В некотором смысле это намного большая ложь. Эта концепция очень похожа на концепцию собора Молдбаг. Люди, которые работают в Соборе, не понимают, что они представляют очень узкий кругозор о спектре. Их мнения не могут быть правдоподобными, потому что одна произвольная идея является общей с другой произвольной идеей, и все они придерживаются их.

Ключ к пониманию этого является очень реальным и вовсе не абстрактным, потому что миллионы людей синхронизировали мнения по ряду вопросов без какой-либо другой видимой причины, кроме телевидения (или радио). Почему группы подростков становятся анорексиками после появления телевидения, когда они не страдали до этого? Синхронизированное мнение всегда подозрительно. Теория вероятности не поддается предположению, что моя бабушка и миллионы других вдруг пришли к выводу, например, что однополые браки были позитивной идеей? Почему миллионы консерваторов считают покупку золота хорошей идеей? Дело не в том, что с однополыми браками или покупкой золота что-то не так. Дело в том, что ни о чем из этого не происходит подлинного мышления. Есть много способов застраховаться от инфляции, которые не связаны с покупкой золота.

Почему некоторые вещи становятся «проблемами», а не множеством других? Насколько это направлено, подлежит обсуждению, но что не так, так это то, что избирательность и ограничения среды сузили наше восприятие мира, и это привело к тому, что заставило нас ошарашить: оно остановило нашу исконную креативность и любопытство.

> И все же дети ВСЕГДА адаптируются. Они не считают смартфоны или планшеты чем-то особенно необычным. Это просто их обычное. Я уверен, что их мозг будет строиться поверх этого фундамента. В том-то и дело - мозги чрезвычайно адаптируемы. Мы все адаптировались.

В Силиконовой долине существует ряд школ. Инженеры-программисты в Google, Facebook и других компаниях отправляют своих детей к ним, и они строго не содержат устройств, связанных с компьютерами. Вместо этого это школа старомодного типа, с начала 20-го века.

Вполне возможно, что это ювенойя, как вы и предлагали. Но, по крайней мере, учтите, что эти родители могут понять что-то еще об электронных средствах массовой информации и их влиянии на мозг. Ведь многие из них серьезно изучают человеческое внимание для жизни.

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

Возможно, что телевидение похоже на медленный яд, который влияет на некоторые классы больше, чем другие. Вы не можете просто сказать, что люди, которых вы знаете, не затронуты, и, следовательно, это не имеет значения, потому что вполне возможно, что вы можете быть частью группы, находящейся в выгодном положении, по каким причинам могут существовать причины, по которым они могут быть более иммунизированы, чем большинство, например, имеющие сложную или интересную работу делать. Стоит учесть, что все проблемы, о которых я говорил, все еще существуют в обществе без телевидения, но вы можете сказать, что «доза» определяет, является ли это лекарством или ядом. Многие люди, безусловно, чувствуют, что телевидение постепенно ухудшается, и, смотря старые новостные передачи и документальные фильмы, трудно не понять, что они имеют в виду. Я ценю, что это не объективное измерение, а сравнение, как, скажем, Джеймс Берк "

Доказательством моих утверждений может быть сокращение количества изобретений (исключая бумажные патенты) на душу населения, сокращение посещений библиотек в связи с изменениями в населении, увеличение числа молодых людей, не умеющих читать, свидетельство уменьшения авантюрности или увеличения пассивности среди населения, некоторая метрика для уменьшения любопытства / творчества с течением времени. Если те были в основном найдены неуместными, то я признаю свою ошибку.

Я был бы гораздо больше обеспокоен любопытством / креативностью, чем снижением IQ или школьных тестовых оценок, потому что креативность - это ключ ко многим преимуществам человеческой деятельности.

Я также хотел бы отметить, что вы, возможно, не сможете обнаружить «повреждение мозга» так легко, так как трудно найти объективные меры без хорошей контрольной группы. Если это случилось с большинством людей, то это новый нормальный, но это не значит, что он не имел никакого эффекта.



Fr0styMatt88 23 июня 2016 г. [-]

Спасибо, это был удивительно заставляющий задуматься ответ (также, первый сезон Connections, вероятно, мой любимый документальный фильм всех времен!).
Одна вещь, которую я предлагаю, состоит в том, что в моем домашнем хозяйстве телевидение было положительным, потому что это был опыт, которым мы поделились как семья. Мы вместе смотрели телепередачи, говорили о них вместе, смеялись над ними и т. Д. В этом смысле телевидение приносило в наш дом посторонние взгляды и стимулировало разговор. Я думаю, что это один из ключевых факторов, которые могут отличать телевизор, имеющий хорошие эффекты, и телевизор, который плохо влияет на разных людей.

В некотором смысле, я думаю, что, хотя само телевидение не является интерактивным, вы могли бы сказать, что наша семья была «интерактивной в отношении» телевидения. Таким образом, мы получили выгоду от возможности использовать телевидение в позитивном ключе.

Спасибо за напоминание о том, как это важно для меня :)

Кстати, об ограничении телевидения в качестве пассивной среды ... Это напоминает мне кое-что, что я прочитал в детстве, и это было очень глубоко для меня. Я не могу вспомнить точно сейчас, но я думаю, что это был в каталоге Sierra On-Line, где Роберта Уильямс сказала что-то о желании своих детей играть в приключенческие игры, а не смотреть телевизор, как в приключенческих играх, они должны были быть активными, а не пассивный. Это действительно резонировало со мной в то время, учитывая, что я действительно ввязался в Space Quest и другие игры Quest :)



стипендиат 27 июня 2016 года [-]

> Спасибо, это был удивительно заставляющий задуматься ответ (также, первый сезон Connections, вероятно, мой любимый документальный фильм всех времен!).
Спасибо. Я надеюсь встретиться или пообщаться с мистером Бёрком в ближайшее время, я знаю, что у Дэна Карлина был подкаст с ним некоторое время назад, если вы заинтересованы в его новом взгляде на мир. Связи остаются высшей точкой для документального создания, и это стоит читать книги. Если вы хотите посмотреть документальный фильм в похожем стиле, я предлагаю «Восхождение человека».

> В некотором смысле, я думаю, что, хотя само телевидение не является интерактивным, вы могли бы сказать, что наша семья была «интерактивной в отношении» телевидения. Таким образом, мы получили выгоду от возможности использовать телевидение в позитивном ключе.

Я верю вам, я в основном думаю о среднем 5 часов в день, которые средний американец (или европеец) проводит перед телевизором. Доза делает яд!

> Это действительно резонировало со мной в то время, учитывая, что я действительно увлекался Space Quest и другими играми Quest

Да, очевидно, что видеоигры могут обеспечить общее сообщество и культуру, особенно MMORPGS. Это не то, что телевидение достигает, или, если оно делает, это редко, как поклонники Mythbusters или Connections. В настоящее время мы занимаемся развитием основ Сети, таких как коммерция или право. Но в конечном итоге я думаю, что сетевая культура будет самой ценной функцией, которую мы приписываем Сети.



ycombinatorMan 22 июня 2016 г. [-]

Для кого это проблема? Почему это проблема?


ди 20 июня 2016 г. [-]

Привет алан,
В «Силе контекста» (2004) вы написали:

...In programming there is a wide-spread 1st order
theory that one shouldn’t build one’s own tools,
languages, and especially operating systems. This is
true—an incredible amount of time and energy has gone
down these ratholes. On the 2nd hand, if you can build
your own tools, languages and operating systems, then
you absolutely should because the leverage that can be
obtained (and often the time not wasted in trying to
fix other people’s not quite right tools) can be
incredible.
Мне нравится эта цитата, потому что она оправдывает экспериментальное и реверс-инжиниринг и т. Д., Который, как мне кажется, мы могли бы использовать больше.
Однако чаще всего я нахожу парализующее настроение. Там так много , что можно было бы , наверное , научиться строить себя, но , как вещи становятся все более и более сложными, один должен быть в состоянии сделать рациональный компромисс между тратить время и энергию в крысиной норе, или нет. Я не могу провести весь день, восстанавливая все, что могу, просто потому, что могу .

Мой вопрос: как решить, когда делать DIY, а когда использовать то, что уже построено?



alankay1 20 июня 2016 г. [-]

Это сложный вопрос. (И всегда было в некотором смысле, потому что в каждой эпохе были проекты, в которых инструментальное производство превратило проект в черную дыру.)
Это действительно помогло в Parc работать с настоящими гениями, такими как Чак Такер и Дэн Ингаллс (и еще немало). Существует очень тонкая граница между выполнением работы 2-го порядка и уничтожением усилием.

Еще одна точка зрения на это заключается в том, чтобы подумать о том, чтобы «не попасться под зависимости» - что если бы существовали действительно хорошие независимые модульные системы - возможно, с помощью аппаратного обеспечения - которые позволяли бы обоим мирам работать вместе (так что никто не захоронится «полезные патчи» и т. д.)

Одна из моих любимых вещей в Parc - это то, насколько хорошо Дэн Ингаллс смог загрузить новую систему из старой, реально используя то, для чего хороши объекты, и особенно там, где новая система была намного лучше в облегчении следующей начальной загрузки. ,

Я не большой поклонник Unix - на сцене было слишком поздно для того уровня идей, который у него был - но если взять культурную историю, из которой она возникла, было несколько вещей, которые они пытались сделать, и это было замечательно - - включая действительно крошечное ядро ​​и использование процессов Unix для построения всех систем (это была очень полезная версия «ООП» - вы просто не могли иметь маленькие объекты из-за способа реализации процессов). Было довольно грустно видеть, как этот довольно хороший подход смешивания и сопоставления постепенно распадается на огромные нагрузки и зависимости.



pault 20 июня 2016 [-]

> Я не большой поклонник Unix
Какой ваш предпочтительный стек технологий?



Астродыль 20 июня 2016 года [-]

Какая хорошая не-UNIX операционная система с открытым исходным кодом полезна для повседневной работы или, по крайней мере, достаточно академически значима, чтобы в нее стоит углубиться?


безопасность на 20 июня 2016 года [-]

Вот список альтернатив, которые я собрал, чтобы увидеть некоторые возможности или особенности, которых не хватало UNIX:
news.ycombinator.com/item?id=10957020

Я думаю, что из повседневного использования я бы сказал, что вы работаете с Haiku, MorphOS, Genode, MINIX 3 и / или A2 Bluebottle. Haiku - это клон BeOS. MorphOS - одна из последних Amiga, которая выглядит довольно круто. Genode OS - это ориентированная на безопасность микроядерная архитектура, которая использует UNIX для начальной загрузки, но по сути не нуждается в этом. MINIX 3 аналогичным образом загружается в NetBSD, но добавляет микроядра, драйверы пользовательского режима и функции самовосстановления. A2 Bluebottle является наиболее популярной версией ОС Oberon на безопасном языке GC. Работает быстро.

Удобство использования этого и стороннего программного обеспечения значительно различается. Одна рекомендация, которую я имею по всем направлениям, заключается в резервном копировании ваших данных с загрузочного диска на внешний носитель. Делай это часто. Причина в том, что у любого проекта с несколькими разработчиками + несколькими пользователями + голым металлом будут проблемы, чтобы решить, что долгосрочные проекты уже будут выбиты.



Горчичный тигр 21 июня 2016 года [-]

Minix не загружается на netbsd, вся цель системы - быть Unix на основе микроядра. Он использует пользовательскую область netbsd, потому что вам не нужно переписывать всю пользовательскую область unix без причины просто менять ядра.


Nickpsecurity 21 июня 2016 г. [-]

Ментальное скольжение с моей стороны. Спасибо за исправление. Я поддерживаю пример, по крайней мере, для частей под NetBSD, таких как драйверы и сервер реинкарнации. Их стиль больше похож на неядерные, микроядерные системы прошлого. Что ж, есть некоторый прецедент в операционной системе HeliOS, но это все еще отклоняется от традиционной UNIX.
https://en.wikipedia.org/wiki/Helios_os


wslh 20 июня 2016 [-]

Разница в том, что в PharoNOS работает Linux, а идея SqueakNOS заключается в создании полноценной операционной системы через Squeak. Таким образом, вы можете быстро взломать его. Здесь есть отличная страница об этих инициативах: wiki.squeak.org/squeak/5727
Кстати, до SqueakNOS мы реализовали это:swain.webframe.org/squeak/floppy/ (используя Linux и изменив Squeak для работы с SVGALib вместо X) всего за 900 Мб, созданных на QNX Demo Disk: http: // toastytech.com/guis/qnxdemo.html



Nickpsecurity 21 июня 2016 г. [-]

Я собирался упомянуть демонстрационный диск QNX в своем комментарии об альтернативах UNIX. Я думаю, что я отредактировал это для слабой подгонки к почте. Тем не менее, это была удивительная демонстрация, демонстрирующая, что альтернативная архитектура RTOS в чистом виде может сделать для настольных компьютеров. Отсутствие задержки во многих пользовательских операциях само по себе было значительным опытом. Показано, что все зависания и огромные замедления, которые «ожидались» на обычных ОС, вовсе не были необходимы. Просто плохой дизайн.
Это здорово, что это было то, что вдохновило один из ваших проектов Squeak. Можно ли использовать SqueakNOS изо дня в день в контексте любого настольного или серверного устройства консоли? Ключевые вещи надежны еще?



wslh 21 июня 2016 [-]

Мы внедрили SqueakOS, в то время как некоторые друзья внедрили SqueakNOS. Я не думаю, что они используются где-либо, но в образовательных целях удивительно, что драйверы и стек TCP / IP могут быть реализованы (и отлажены!) В виде простой разговорной речи. Здесь было еще немного информации: http: //lists.squeakfoundation.org/pipermail/squeaknos/2009-M ...


cyphar 22 июня 2016 г. [-]

Есть GNU, который по определению не UNIX. ;)


Edejong 20 июня 2016 г. [-]

Я бы предположил, что это зависит от вашей меры стоит, я бы сказал. Многие операционные системы не имели большого академического значения, когда было наиболее академически или коммерчески плодотворно тратить время на них. Интересны микроядерные и зависимые от операционной системы операционные системы. Или аппаратные операционные системы на основе возможностей.


MichaelMoser123 от 22 июня 2016 г. [-]

ну, в этом выступлении звучит так, будто вы выступаете за создание инструментов - разве инструмент не создает способ пробовать эллиптические орбиты вместо круговых?
https://www.youtube.com/watch?v=NdSD07U5uBs «Сила простоты»



alankay1 22 июня 2016 г. [-]

Да, я сторонник создания инструментов - в основном, «если вы можете сделать это, не будучи похороненным, вы должны».


калибраксис 21 июня 2016 г. [-]

Может ли кто-нибудь дать подсказки / указатели, которые помогут мне понять следующее? "анализ сообщений без команд в каждом процессе ... не сильная попытка сплести реальный язык вокруг структур сообщений (то же самое произошло с http")
Означает ли это, что сообщения должны были быть частью согласованного протокола или спецификации? Что должна быть некоторая мысль позади того, как сообщения объединяются в новые сообщения?



alankay1 21 июня 2016 г. [-]

Smalltalk был ранней попыткой не-командных сообщений к объектам с осознанием того, что вы получаете «язык программирования», если позаботитесь о соглашениях, используемых для составления сообщений.


Infinite8s 21 июня 2016 г. [-]

Под сообщениями, не являющимися командами, вы подразумеваете, что получатель мог свободно игнорировать сообщение?


alankay1 21 июня 2016 г. [-]

да


bcjordan 21 июня 2016 г. [-]

Сродни "сигналам" / "источникам событий"?


alankay1 21 июня 2016 г. [-]

Если вы думаете о «целой системе», даже если это просто канал Шеннона, что вам на самом деле нужно?


jjnoakes 20 июня 2016 г. [-]

Я стараюсь делать как параллельно, так и первый, сделанный выигрывает.
То есть, если у меня есть проблема, которая требует библиотеки или программы, и я не знаю ее, я полу-одновременно пытаюсь найти библиотеку / программу, которая существует там (сканирование форумов, поиск в Google, чтение переполнения стека, поиск в github, посещение языковых репозиториев для языков, которые мне нужны, и т. д.), а также параллельно пытаюсь сформулировать в уме, как будет выглядеть идеальное решение для моей конкретной проблемы.

Со временем я становлюсь ближе к поиску достаточно хорошей библиотеки / программы и ближе к возможности представить, как будет выглядеть решение, если я его напишу.

В какой-то момент я либо нахожу то, что мне нужно (это достаточно хорошо или идеально), либо дохожу до того, что я достаточно понимаю о решении, которое, как я предполагаю, я пишу сам.



квантовый хоббит 20 июня 2016 года [-]

Да. Если мне понадобится больше времени, чтобы понять, как использовать вашу библиотеку или фреймворк, чем просто реализовать саму функциональность, нет смысла использовать библиотеку.
Некоторые люди утверждают, что вы все равно должны использовать стороннее решение из-за стоимости поддержки написанного вами дополнительного кода. Но ошибки могут существовать как в моем коде, так и в стороннем коде, и я понимаю, как гораздо легче исправить ошибки в моем коде.



MaulingMonkey 21 июня 2016 г. [-]

Другие соображения: мои сотрудники, возможно, еще не знают какую-то библиотеку, но они точно не будут знать мою библиотеку. Код моего коллеги примерно такой же «сторонний», как и любая библиотека - как и код, который я написал всего 6 месяцев назад. Кроме того, моей работе принадлежит этот код, так что сворачивание собственных средств означает, что мне нужно писать другого клона каждый раз, когда я меняю работодателя - при условии, что нет никаких патентов или чрезмерно спорных юристов, о которых нужно беспокоиться.
Но вы, конечно, правы, что, в конце концов, есть момент, когда использование библиотеки больше не имеет смысла.

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

Проблема в том, что я так устал от исправления ошибок в коде сотрудника / бывшего сотрудника, что я в конечном итоге заменил их на готовые библиотеки, просто чтобы ошибки исчезли. И на практике они ушли. И он обнаружил несколько ошибок использования, потому что в библиотеке были более точные проверки работоспособности. И по сей день те бывшие коллеги использовали бы те же самые оправдания, с полной серьезностью.

Я никогда не говорил: «Ну и дела, я бы хотел, чтобы мы использовали для этого какую-то индивидуальную реализацию». Я хотел бы, чтобы хорошая реализация была сделана общедоступной в виде библиотеки многократного использования, возможно. Но заказ означает просто меньше глаз и меньше исправлений.



jjnoakes 21 июня 2016 г. [-]

Это все компромиссы.
Если есть хорошо протестированная сторонняя библиотека, которая делает то, что вам нужно, не увеличивает вашу поверхность атаки больше, чем необходимо, поддерживается сообществом, с ней легко работать и она имеет совместимую лицензию с то, что вы используете, то во что бы то ни стало пойти на это.

Что касается меня и моей работы, я склонен обнаруживать, что чего-то из приведенного выше списка не хватает, и поэтому имеет смысл написать это собственными силами. Не всегда и не как правило, но так получается совсем немного.

Я также утверждаю, что если коллеги не смогут написать библиотеку без чрезмерного количества ошибок, то они также не смогут написать приложение или склеить код. Поэтому, возможно, ваша проблема была не в собственных библиотеках, а в сторонних библиотеках, а в контроле качества и / или способности разработчика вокруг вас.



MaulingMonkey 21 июня 2016 г. [-]

Вы не ошиблись. Фундаментальная проблема заключалась не в собственных библиотеках против сторонних.
Разработчики вокруг меня, как правило, не умеют оценивать время. Им совершенно не хватает этой способности. Чтобы быть справедливым, я тоже. Я набрасываю 5-кратный множитель на свои худшие оценки для работы над характеристиками ... и я горжусь тем, что в итоге получаю хорошую среднюю оценку, потому что у меня все еще лучше, чем у многих моих коллег в таком случае. Слава Богу, что мы работаем на наши навыки программирования, а не на оценку времени, иначе мы все были бы безработными.

Они думают, что «это займет всего один день». Если мне повезет, они ошибаются, и они потратят на это неделю. Если мне не повезло, они правы, и они потратят на это целый день - не повезло, потому что это сопровождается, как минимум, недельным техническим долгом, ошибками и другими проблемами контроля качества, которые необходимо исправить в какой-то момент. В условиях высокой нагрузки - слишком много дел, слишком мало времени, чтобы делать все это, даже если вы настроены оптимистично - и понятно, что последнее часто выбирается. Это может быть даже правильный выбор в краткосрочной перспективе. Но это только усиливает плохие навыки оценки времени.

Конечный результат? Они значительно недооценивают стоимость поддержки дополнительного кода, который они напишут. Они делают «правильный» выбор, основываясь на своем понимании компромиссов, и используют собственную библиотеку вместо использования стороннего решения. Но, как мы только что установили, их понимание было совершенно не основано. Что-то должно дать в результате, какими бы хорошими ни были программисты: расписание или качество. Или оба.



igorgue 20 июня 2016 года [-]

Если у вас нет времени или энергии для таких проектов, то вы НЕ МОЖЕТЕ сделать их. Ответ есть.


stcredzero 20 июня 2016 г. [-]

Разве ответ не содержится в цитате? Проведите анализ затрат / выгод «количества времени и энергии», которое «пошло бы по этим путям», по сравнению с «тем временем, которое не было потрачено впустую, пытаясь исправить не совсем правильные инструменты других людей».


alankay1 20 июня 2016 г. [-]

Реальная причина сделать второй порядок - получить новые вещи, а не увеличивать старые, более бедные идеи.


Остин 20 июня 2016 г. [-]

Но как вы можете оценить это, пока не спуститесь в эти крысиные норы?


jonoCodes 22 июня 2016 г. [-]

Lean Startup выступает за пропорциональные инвестиции в решения. КОГДА проблема возникнет (опять же, после того, как вы решите это сделать), определите, сколько процентов времени вы потратили на это за неделю или месяц. Вложите эту сумму, чтобы исправить это, прямо сейчас. Моя интерпретация заключалась в том, чтобы потратить это время, пытаясь решить часть этого. Каждый раз, когда возникает такая проблема, продолжайте вкладывать средства в эту вещь. Таким образом, если вы сделали неправильный звонок, вы тратите лишь небольшую часть своего времени. Но вы также предпринимаете шаги, чтобы смягчить его, если в будущем это станет проблемой.


TheAdventMaster 21 июня 2016 г. [-]

Спустившись несколько раз, могу сказать, что это сложно. Вы теряете время. Вы должны признать, что вы потеряли время и научиться не делать этого в будущем.
Мой совет - сотрудничать с людьми, которые намного, намного умнее вас и ожидают, что что-то действительно будет сделано, потому что они знают, что могут это сделать. Сначала вы узнаете, как выглядит производительность, на самом сложном и сложном уровне, на который вы способны.

Это устанавливает планку.

Все должно быть равно или ниже этого, если ваш опыт не говорит вам, что вы сможете сделать что-то еще больше (возможно) с правильной помощью или вдохновением



дср_ на 20 июня 2016 г. [-]

Вы получаете опыт, спускаясь по похожим крысиным норам, пока не почувствуете, что не можете адекватно сравнить ситуацию, в которой вы находитесь сейчас, с опытом в прошлом.
Вы все равно ошибаетесь, но, возможно, не так часто.



stcredzero 20 июня 2016 г. [-]

Для многих конкретных примеров уже было достаточно спонтанных спойлеров, чтобы предоставить полезные данные. Может быть, начать искать в тех местах, где уже нет полезных данных?


DasIch 20 июня 2016 г. [-]

Любая область, в которой найдено достаточное количество таких спеллеров, вряд ли будет значительно улучшена, если приложить собственные усилия.


TheAdventMaster 21 июня 2016 г. [-]

Согласовано. Часто гораздо труднее сформулировать, почему идея плохая или крысиная нора. Вы просто идете дальше.
Я придумал объяснение по аналогии. Вы можете довольно легко продемонстрировать в математике, как вы можете создать систему обозначений или функцию, которую быстро становится невозможно вычислить. Число, которое слишком велико, или алгоритм, который требует бесконечного количества времени и ресурсов для решения ...

Кажется, в природе плохие идеи легки. Хорошие идеи сложнее, потому что они, как правило, являются уточнением того, что уже существует, а что уже хорошо.

Так что добивайтесь хороших идей. Преследуйте то, о чем вы подумали и решили, что он имеет лучший баланс между ценностями и наибольшим шансом на успех. Иногда это просто сильное чувство кишки. Сделайте это, но установите ограничения, потому что вы не хотите становиться жертвой инстинктивного чувства, возникающего из-за сильной интуиции, но столь же сильного недостатка фундаментального понимания.



50CNT 21 июня 2016 г. [-]

Я думаю, что вы должны взвесить свои сомнения против сложности реализации. Они оба спектра: один от «полностью непригодного» до «идеального в своей возвышенной красоте», другой от «есть полное решение для этого» до «мне нужно изучить VHDL для этого».
Есть некоторые факторы, которые помогают сдвинуть эти спектры.

Конфигурирование помогает. Если я могу изменить конфигурацию, чтобы получить поведение, которое я хочу, это невероятно, спасибо.

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

Модульность помогает. Если я могу просто вставить свой модуль вместо того, чтобы делать операции на головном мозге на других модулях, это делает это намного проще.

Хорошие компоненты помогают. Скажем, мне нужен веб-мастер и я знаю Python. Представьте, что там был только селен и даже не urllib, а какая-то библиотека TCP / IP низкого уровня. У меня есть выбор между тяжелым, но легким или тонким, но высоким уровнем обслуживания. Но есть библиотека сексуальных запросов, и есть красивая BeautifulSoup4. Я говорю запросы, что получить, сказать bs4, что я хочу от него, и все готово.

Еще один отличный пример для этого - Emacs. python-mode + elpy (почти полное решение), режим скрытия-шоу, режим электрических пар, и, если что-то все еще вызывает у меня проблемы, это можно исправить. Если бы это было ООП, я бы унаследовал множество мощных функций, но я всегда могу переопределить все, что не так.

Экспертиза помогает. Если я написал модуль ядра, это еще один путь решения моих проблем.

Экспертиза - это особый случай, заслуживающий большего внимания. Это главное, что меняется для любого программиста, и может очень сильно исказить это уравнение. Экспертиза растет, когда вы боретесь с новыми вещами. Желательно только за пределами того, что вы знаете и с которыми вам удобно.

Учитывая это, DIY, когда вы можете позволить себе DIY (например, оплатить первоначальную стоимость приобретения опыта), DIY, когда это только за пределами того, что вы можете сделать, или DIY, когда это имеет большой смысл (например, прямо в вашей области экспертиза, и есть преимущество, которое будет иметься).

В конкретных примерах это означает, что не делайте DIY, когда вы находитесь в сжатые сроки, не пытайтесь написать свое собственное ядро ​​после изучения переменных, не пишите свой собственный генератор парсеров, когда, скажем, YACC, просто решает вашу проблему хорошо.



Shostack 20 июня 2016 г. [-]

В частности, что касается языков и ОС, мне интересно, насколько сильно меняется это соотношение затрат и выгод, когда все становится намного более сложным, и когда мы продолжаем накапливать уровень абстракции после уровня абстракции.


astrobe_ 20 июня 2016 г. [-]

Я думаю, что проблема не в сложности, а в размере. Например, основная часть ядра Linux находится в драйверах. Что касается языков, большая часть веса находится в библиотеках.


сатисин 20 июня 2016 г. [-]

Привет алан,
У меня три вопроса -

1. Если бы вы разработали новую парадигму программирования сегодня, используя то, что мы узнали об ООП, что бы это было?

2. Когда VR и AR (Hololens) становятся реальностью (хех), как вы видите, как изменяются пользовательские интерфейсы, чтобы лучше работать с этими системами? Какие новые вещи нужно изобрести или переосмыслить?

3. Я также работал в Xerox в течение ряда лет, но не в PARC. Я всегда был разочарован их отношением к новым идеям и отсутствием интереса к новым технологиям, пока все остальные не сделали это. Очевидно, что с течением времени бизнес меняется, и с тех пор Xerox был технологическим лидером. Если бы вы могли выбрать свои лучшие и худшие воспоминания от Xerox, что бы они были?

Приветствует ваше время и всю вашу удивительную работу за эти годы :)



alankay1 20 июня 2016 г. [-]

Позвольте мне как подтвердить ваши вопросы, так и признать, что этот форум (средства авторинга СМИ) не в масштабе с необходимыми ответами ...


сатисин 20 июня 2016 г. [-]

Возможно, Reddit AMA будет лучше? У них гораздо более гибкая / мощная система комментариев.
Изменить: Не уверен, почему я получаю вниз проголосовали за внесение предложения. Ну что ж.



alankay1 20 июня 2016 г. [-]

Мне нравятся флюиды здесь


jensv 20 июня 2016 [-]

Или, может быть, сессия Кора.


alankay1 20 июня 2016 г. [-]

Гораздо более хорошая активность здесь, чем на Quora ...


ужас кодирования 20 июня 2016 года [-]

К сожалению, Quora имеет некоторые обременительные правила: twitter.com/waxpancake/status/453958676529696769
HN - отличное место, но обязательно ориентировано на текст, что, я думаю, является хорошим компромиссом.

Мой следующий проект после Stack Overflow, Discourse, представляет собой 100% открытую, гибкую, удобную для мультимедиа систему обсуждения. Это GPL V2 на стороне кода, но мы также пытались кодифицировать Creative Commons в качестве лицензии по умолчанию при каждой установке, поэтому ответы на обсуждения принадлежат большему сообществу: discourse.org

(Удивительно, но лицензии на контент по умолчанию для большинства программ для обсуждения, как правило, довольно ограничительны.)



рыба-дискорд 21 июня 2016 года [-]

Не могли бы вы впоследствии создать дискуссионную платформу, чтобы найти (частичное) согласие по различным политическим темам? Кажется, что это оказало бы огромное влияние и действительно отсутствует ... думал о том, чтобы начать что-то подобное, но никогда не достигал этого


Reitanqild 21 июня 2016 г. [-]

Все еще, кажется, только установка песочницы. Почему мы не можем говорить, как стековый поток, только с техническими обсуждениями, разрешенными вместо того, чтобы подвергаться нападкам со стороны как модов, так и правил.


Pxtl 20 июня 2016 г. [-]

Мне было бы любопытно, если он планирует вернуться в Крокет / OpenCobalt с революцией VR.


stcredzero 20 июня 2016 г. [-]

Если подумать, AltSpaceVR на HTC Vive очень похож на Croquet.
Я думаю, что Google Glass нужно было сдерживать до тех пор, пока не будет установлена ​​VR / Дополненная реальность. Многие передвижные «видовые окна» в стиле Крокета, спроектированные из каналов Google Glass в абстрактной 3D-модели реального места, были бы отличным способом создания отчетов о событиях.



Январь 20 июня 2016 года [-]

1. После распада группы Энгельбарта казалось, что он долгое время находился в пустыне и сосредоточил свое внимание на управлении. Я спроецирую на него и предположу, что он чувствовал себя более стесненным своим социальным или экономическим контекстом, чем технологией, что он представлял возможности, которые были бы недостижимы по причинам, которые не были техническими. Мне любопытно, если вы делаете или чувствовали то же самое, и если у вас есть интуиция о том, как подойти к этим проблемам.
2. Каково ваше мнение о том, что хуже - лучше ( www.dreamsongs.com/RiseOfWorseIsBetter.html )? Мне кажется, что вы преследуете алмазоподобную жемчужину, но, может быть, вы ее не видите. (Только что заметил, что вы ответили на это: news.ycombinator.com/item?id=11940276 )

3. Мне показалась интересной перспектива ситуативного обучения ( en.wikipedia.org/wiki/Situated_learning ). По крайней мере, я думаю об этом, когда чувствую раздражительность по отношению ко всем маленьким детям и Node.js, и мне искренне нравится, что они в восторге от того, что они делают, но кажется, что они собираются заново открыть для себя ВСЕ, одну технологию и одно длинное обсуждение за раз. Но они - сообщество обучения, и, возможно, каждый (или каждое сообщество) должен сделать это, если они хотят применить творческий подход и взять на себя ответственность за следующий шаг. Есть ли способ лучше?



alankay1 20 июня 2016 г. [-]

Раньше было так, что люди были предупреждены «не изобретать велосипед». Сейчас мы живем в эпоху, которая тратит много времени на «повторное создание спущенной шины»!
Спущенные шины получены от изобретателей, часто не относящихся к той же лиге, что и оригинальные изобретатели. Это признак «поп-культуры», где идентичность и участие намного важнее прогресса ...



9erdelta 21 июня 2016 г. [-]

Это невероятно тяжелое попадание, и я рад, что прочитал это, но я также боюсь, что это «вызовет» немало людей сегодня.
Какие шаги может предпринять человек, чтобы выйти из поп-культуры и попытаться попасть в ту же лигу, что и изобретатели? Невероятно глупый вопрос, который нужно задавать, но я иногда чувствую себя действительно потерянным.



alankay1 21 июня 2016 г. [-]

Я думаю, что это в первую очередь проблема признания - в США мы сейчас внедрились в поп-культуру, которая достаточно далеко продвинулась, чтобы серьезно повредить местам, которые содержат «развитые культуры». Эта повсеместность мешает видеть что-либо еще и, конечно, затрудняет тем, кому небезразлично, что думают другие, ценить что-либо, кроме норм поп-культуры.
Второе, это осознать, что самые большие проблемы - это дисбаланс. Развитые искусства всегда нуждались в поп-артах для грубых «ид» и слепых толчков восстания. Это хороший ингредиент - как соль - но вы не можете сделать пирог только из соли.

Я многое понял по этому поводу, прочитав Маклюэна по совершенно разным причинам - из-за средств массовой информации и того, как они формируют среду - и из-за того, что углубился в антропологию в 60-х годах (до того, как она стала действительно политизированной). В настоящее время книги «Поведенческих экономистов», таких как Канеман, Талер, Арили и т. Д., Могут быть очень полезными, потому что они изучают то, что люди на самом деле делают в своей среде.

Еще один способ взглянуть на это состоит в том, что поиск способов получить «подлинно образованное» превратит местный в глобальный, племенной в вид, догматический в различные перспективы, а импровизацию в ремесленное и т. Д. Каждое из стартовых мест остается полезным, но это не так. дольше доминирует.



дата данных на 21 июня 2016 года [-]

Какие шаги должна предпринять группа людей (цивилизация?), Чтобы добиться прогресса здесь? Когда выбор изобилует, массы были включены, и все же знания все еще стоят на первом месте?


alankay1 21 июня 2016 г. [-]

Во всех культурах есть много знаний - большее влияние имеет контекст и эпистемология (то есть «точки зрения» и «позиция», «то, что ценится» и т. Д.)
Самосознание того, кем мы являемся («с Марса»), является важным шагом, и это то, чем должно быть настоящее образование.



Вилланелла 21 июня 2016 года [-]

Что значит "с Марса" здесь?


alankay1 21 июня 2016 г. [-]

Это означает «вне наших человеческих предубеждений о себе». Как будто мы на самом деле были действительным объектом настоящей науки ....


sebastianconcpt 20 июня 2016 г. [-]

Привет алан,
1. Что вы думаете об оборудовании, которое мы используем сегодня в качестве основы для вычислений? Я помню, как вы упомянули о том, как круто была архитектура Burroughs B5000 [1], готовая работать на металле на языках программирования более высокого уровня. Что должны сделать производители оборудования, чтобы сделать оборудование более удобным для программирования более высокого уровня? Поможет ли это нам быть менее зависимым от виртуальных машин, в то же время наслаждаясь производительностью кремния?

2. Какие программные технологии, по вашему мнению, нам не хватает?

[1] https://en.wikipedia.org/wiki/Burroughs_large_systems



alankay1 20 июня 2016 г. [-]

Если вы начнете с «желаемого процесса», вы можете в конечном итоге вернуться к розетке в стене. Если вы начнете с того, что уже подключено, вы можете пропустить множество действительно желательных процессов.
Частично возвращаясь к реальности, часто требуется создание нового оборудования или - в случае микрокодов - для его формирования.

Продавцы могут многое сделать. Например: Intel может сделать свои кэши первого уровня достаточно большими, чтобы создавать настоящие эмуляторы HLL (и они могли бы посмотреть, что еще поможет). Прямо сейчас плагин или доступная FPGA могут быть очень полезны во многих областях. С другой стороны, можно было бы придумать гораздо лучшие способы организации архитектуры памяти, особенно для многоядерных чипов, где они сильно голодали.

И так далее. Мы очень далеко пошли по пути «не очень хороших» сопоставлений, и поставщиков заставили программистов сделать свои ЦП полезными, а не с прямо противоположным подходом. Это слишком большая тема для сегодняшнего АМА.



adwn 21 июня 2016 [-]

> Intel может сделать кэши первого уровня достаточно большими, чтобы создавать настоящие эмуляторы HLL
Если вы увеличите кэш L1, он станет медленнее и будет переименован в «Кэш L2». Существуют физические причины, по которым кэш L1 не больше, даже если программы, написанные на неуровневых языках, выиграют от больших кешей (возможно, даже больше, чем программы HLL).

> Прямо сейчас плагин или доступная ПЛИС могут быть очень полезны во многих областях.

ПЛИС очень, очень недоброжелательны, несмотря на огромные усилия промышленности и научных кругов.



sebastianconcpt 20 июня 2016 г. [-]

Спасибо за внимание, Алан! Я люблю реверс-инжиниринг, основанный на желании: D
Нам нужно найти способы освободиться от клетки «производители заставляют программистов делать свои процессоры полезными, а не прямо противоположным подходом» <- размышляя над этим, мы все должны



Elcritch 21 июня 2016 г. [-]

Вы смотрели различные переводчики Haskell / OCaml на аппаратные средства, с которыми люди сталкивались в последние несколько лет?
Кажется, что он растет, и несколько ПЛИС приближаются к этому статусу PnP. В частности, идея разработки времени компиляции доказала, что RTS с использованием продолжения продолжения будет приятным.

Даже с более новым оборудованием кажется, что мы все еще застряли либо в динамически изменяемых языках, либо в функционально-статических. Любые мысли о том, как мы могли бы проектировать системы, объединяющие лучшее из обоих, используя современные аппаратные возможности? Как ... Скажем, реконфигурируемая иерархическая система элементов, где каждый узел был объектом / субъектом? Выходя на передний план с этим последним!



alankay1 21 июня 2016 г. [-]

Не комментируя Haskell и др., Я думаю, что важно начать с «хороших моделей процессов» и позволить им взаимодействовать с лучшими, что мы можем сделать в отношении языков и аппаратного обеспечения в свете этих хороших моделей.
Я не думаю, что «застревание» в языках отличается от других видов «застревания» человека, которые возникают из-за того, что они настолько близки, что трудно думать о каких-либо других вещах.



Elcritch 21 июня 2016 г. [-]

Спасибо! Это помогает подтвердить мое мнение о том, что «хорошие модели процессов» важны, хотя реализации всегда будут иметь ограничения. Приятно знать, что я не совсем вне базы ...
Хорошим примером для меня является шаблон виртуальной памяти, где с точки зрения процессов вы моделируете память как идеальное неограниченное виртуальное пространство. Затем вы позволите реализации ядра (и аппаратному обеспечению) разобраться с практическими (и сложными деталями). В реализации актерской модели Microsoft в Орлеане используется аналогичный подход, который они также называют «виртуальными актерами», что также интересно.

Моя собственная проблема - идея реализации процессов с использованием иерархических конечных автоматов, особенно для систем программирования устройств типа IoT. Но я не смог понять, как включить в него теоремы проверки типа.



Лосведир 20 июня 2016 года [-]

В моем офисе многие непрограммисты (маркетологи, финансисты, служба поддержки и т. Д.) Пишут немало SQL. Я часто задавался вопросом, что именно в SQL позволяет им преодолеть страх перед программированием, поскольку они никогда не перейдут на ruby ​​или «настоящий» язык программирования. Вещи, которые я рассмотрел:
* Graphical programming environment (they run the queries
from pgadmin, or Postico, or some app like that)
* Instant feedback - run the query get useful results
* Compilation step with some type safety - will complain
if their query is malformed
* Are tables a "natural" way to think about data for humans?
* Job relevance
Есть идеи? Можем ли мы извлечь уроки из этого примера, чтобы сделать реальные среды программирования более «кросс-функциональными», чтобы больше людей в компании хотели их использовать?


numlocked 20 июня 2016 [-]

SQL декларативный. Для сравнения:
for user in table_users:
if user.is_active:
return user.first_name;
против:
SELECT first_name FROM users_table
WHERE is_active
К сожалению, порядок предложений в SQL «неправильный» (например, вы должны сказать FROM, WHERE, SELECT: определить совокупность релевантных данных, отфильтровать их, выбрать то, что вам нужно), но все еще довольно легко обернуть твой разум вокруг. Вы спрашиваете компьютер о чем-то, и если вы спрашиваете хорошо, он говорит вам, что вы хотите знать. Сравните это с процедурным программированием, когда вы говорите компьютеру, что делать, и даже если он делает то, что вы говорите, это, возможно, не то, что вы на самом деле хотели в конце концов.


Дкерстен 23 июня 2016 года [-]

К сожалению, порядок предложений в SQL «неправильный»
SQL написан целенаправленно.

Вы начинаете с того, что хотите (цель). Затем вы указываете откуда (что также может быть прочитано как «что», поскольку каждая таблица обычно описывает какую-то вещь) и, наконец, вы ограничиваете ее конкретными экземплярами, которые вас интересуют.

ВЫБЕРИТЕ информацию, которую я хочу, от того, что меня волнует, ГДЕ условие ограничивает результаты до тех немногих, которые мне нужны

Сказав это, я лично предпочел бы все наоборот, как вы говорите. Однако я вижу ценность того, как SQL это делает, особенно для непрограммистов, которые меньше думают о процессе получения результатов и больше о желаемых результатах (потому что они не были обучены думать о процессе, например программисты есть).

Для кого-то, кто не является техническим специалистом, имеет смысл начать с «ну, я хочу, чтобы имя и зарплата сотрудника, а не только менеджеров»: ВЫБРАТЬ имя, зарплату ОТ сотрудника, ГДЕ должность = «менеджер»

По общему признанию, даже это не идеально, и я предполагаю, что кому-то не понадобится много, чтобы выучить обратное.



Танек 21 июня 2016 года [-]

> Сравните это с процедурным программированием, когда вы говорите компьютеру, что делать, и даже если он делает то, что вы говорите, это, возможно, не то, что вы на самом деле хотели в конце концов.
Процедурные и функциональные фразы никоим образом не изменяют основной факт: если вы зададите неправильный вопрос компьютеру, это даст вам неправильный результат.

"просмотреть список всех пользователей и добавить активных в новый список"

против

«нужный мне список содержит всех активных пользователей из списка всех пользователей»



qb45 21 июня 2016 г. [-]

В обязательном порядке вы не задаете вопросы, а даете инструкции.
Пока инструкции длиннее вопроса (а они часто бывают, даже в вашем примере;)), вы неизбежно допустите здесь больше ошибок.

Плюс, это требует некоторого понимания того, как эта чертова машина работает в первую очередь.

Когда вопрос превращается в инструкцию, это решаемо, но стоит автоматизировать ее.



Нифтич 20 июня 2016 года [-]

Помимо этого, в C # и VB.NET есть SQL-подобные выражения, которые можно использовать для обработки, которые называются LINQ [1]. Они даже получают правильный порядок пунктов!
Подобная функция может помочь вашим программистам, привыкшим мыслить в терминах фильтра -> выбрать -> порядок.

[1]

msdn.microsoft.com/en-us/library/bb397927.aspx



numlocked 20 июня 2016 [-]

Да! Абсолютно то, о чем я думал, когда писал это :) Правильный подход - одна из моих любимых частей LINQ.


moosingin3space 22 июня 2016 г. [-]

Ecto (Elixir) также выполняет синтаксис from-in-where.


macca321 20 июня 2016 г. [-]

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


Данголдин 21 июня 2016 г. [-]

Играть в адвокат дьявола Пролог считается гораздо более похожим на SQL, чем любой другой язык, и я подозреваю, что это будет иметь чрезвычайно высокую стоимость обучения. Это может быть меня предвзятым из-за изучения процедурных языков в первую очередь. В то же время я считаю себя хорошо разбирающимся в SQL.


Deong 21 июня 2016 г. [-]

Я думаю, что Пролог страдает в этом сравнении в основном из-за его гораздо более амбициозного масштаба. Большинство людей, не являющихся разработчиками / администраторами баз данных, не имеют понятия о том, что на самом деле делает SQL-запрос, в то время как большинство нетривиальных программ на Прологе требуют концептуального поиска в глубину, который вы просите, чтобы язык выполнялся, чтобы сделать его правильным. Если вы ограничите свой мир Прологом тем, что «сделаете некоторый вывод из простой базы данных фактов генеалогического дерева», которую люди впервые узнают, Пролог тоже будет довольно легким.


топ 21 июня 2016 года [-]

Я не вижу значимой разницы между этими двумя подходами, особенно если мы преобразуем первый в понимание списка:
[user.first_name for user in table_users if user.is_active]


iajrz 21 июня 2016 г. [-]

Но понимание списка - это декларативная конструкция, которая может быть лучше оценена при переносе некоторых обработок списка в циклы. Особенно вложенные понимания.


numlocked 23 июня 2016 [-]

Совершенно значимая разница! Имея понимание списка, вы все еще рассказываете машине, как получать данные; есть явная конструкция цикла. С помощью SQL я просто объявляю, какие результаты мне нужны, и реализация оставляется на усмотрение механизма исполнения.
Например, SQL-запрос может быть распараллелен, но это не так с пониманием списка Python. Если вы хотите создать версию, которая может работать параллельно в Python, вам придется сделать это с помощью конструкции map () / filter (). Игнорируя удобочитаемость в течение секунды (представьте, что это красиво и элегантно, как, например, в Clojure), вы все еще указываете, как машина должна достигать цели, а не сама цель.

filter(lambda x: x is not None, map(lambda u: u.first_name if u.is_active else None, table_users))


Дансо 20 июня 2016 года [-]

Я преподаю SQL своим студентам-журналистам. Пример упражнения:
Http: //2015.padjo.org/tutorials/sql-walks/exploring-wsj-medi ...

Моей главной причиной для преподавания было то, что это был навык, который очень помог мне как журналисту с точки зрения возможности анализа данных. Поскольку я узнал это относительно поздно в моей карьере, я думал, что это будет трудно для студентов, но большинство из них в состоянии получить это.

Несмотря на то, что в повседневной работе я использую относительно немного SQL, это моя любимая вещь для обучения новичков. Во-первых, он имеет модель данных, сходную с электронными таблицами, поэтому он выглядит как естественный прогресс. Во-вторых, для многих студентов это первый раз, когда они занимаются «настоящим» программированием, и впервые они узнают, как заставить компьютер что-то делать, а не научиться пользоваться компьютером. Например, в Excel вы дважды щелкаете файл, и все открывается. С SQL вы должны не только указать базу данных и таблицу, но также каждый столбец ... сначала это раздражает, но потом вы понимаете, что есть явная сила.

Основное преимущество обучения SQL, скажем, R, как первого языка, состоит в том, что декларативный синтаксис SQL прост в использовании, и вы можете делать большую часть того, что вам нужно, с ограниченным подмножеством языка ... например, я не надо учить переменные, циклы и функции ... что хорошо, потому что я даже не знаю, как на самом деле делать это в SQL (просто не было необходимости, когда я мог работать с R или Pandas).

Когда начинающий студент облажается с базовым скриптом Python, существует множество причин неудачи, выходящих за рамки ожидаемых знаний студента. Когда начинающий студент облажается запросом SQL ... легче обвинить студента в ошибке (например, неправильное написание имен / синтаксиса)



Налмдатаорг 21 июня 2016 года [-]

Каковы основные факторы, которые побуждают (и помогают) непрограммистов использовать SQL?
Мы предоставляем платформу с низким кодом (SQL) для организации данных и создания пользовательских приложений в соответствии с конкретными требованиями рабочего процесса. Мы предполагаем, что преподавание / обучение / тренировка в сочетании с большим количеством примеров кода SQL с примерами из реального мира полезны для непрограммистов для использования SQL.

Пример SQL доступен по адресу https: //mydataorganizer.com/MyDataOrganizer/QuarterDatesCalc ...

Спасибо Нил



мчавер 21 июня 2016 г. [-]

Я думаю, что есть много интересных общедоступных данных, доступных в форматах SQL / CSV / Excel. Если журналист сможет эффективно просматривать эти данные, он, возможно, найдет интересные истории и сведения.


mtrn 20 июня 2016 года [-]

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


Камал 20 июня 2016 года [-]

>> Я часто задавался вопросом, что такое SQL, который позволяет им преодолеть страх перед программированием
Это едва программирование. Даже по самому мягкому определению они не программируют.

Во-первых, SQL немного похожи на макросы Excel, они снижают барьер для входа в базовый твиддинг. Есть клиент SQL (жаба и т.д.?) Вы можете бросить фрагмент или два быстро. Все, что за этим стоит, становится сложным. Сложные объединения, подзапросы, устранение проблем с большими запросами, проблемы с оптимизацией и т. Д. Помимо написания кода повторно используемый код, дисциплина тестирования и ряд других задач, которые делают код работающим годами, - это ваша ежедневная работа программиста.

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



edc117 20 июня 2016 г. [-]

Почему бы не спросить их? Это интересный вопрос, и я заметил похожие вещи с бизнес-аналитиками, с которыми я работал в прошлом.


ретроафина 20 июня 2016 года [-]

Как кто-то довольно близко к этому лагерю, все сводится к вашему последнему пункту - по моему мнению, это нужно сделать. Меньшая часть этих людей также изучит VBA по той же причине - это помогает им выполнить свою работу. Преимущество этих двух заключается в том, что они либо уже встроены в инструменты (VBA), либо DBA выполняет большую часть настройки, а используемые в основном просто выполняют запросы к ним и не должны слишком беспокоиться об индексации, производительность, схемы и т. д. (SQL). Если бы я попытался превратить их в python, это было бы попыткой установить его, а затем заставить их использовать командную строку.


aklemm 21 июня 2016 [-]

С SQL вы сразу получаете полное решение вашей проблемы (возвращаются нужные вам данные). Таким образом, высокая отдача от усилий мотивирует людей учиться этому.


Исаакия 20 июня 2016 года [-]

Что вы думаете о работе Брета Виктора? (worrydream.com/ ) Или Рич Хики?
Как вы думаете, кто из людей делает самую интересную работу в области дизайна пользовательского интерфейса сегодня?



alankay1 20 июня 2016 г. [-]

Я люблю работу Брета Виктора!
Он, безусловно, один из самых интересных и лучших мыслителей современности.



tluyben2 20 июня 2016 г. [-]

Разве Алан Кей и Брет Виктор не работают вместе в SAP?


скадамать 20 июня 2016 года [-]

Технически, в HARC - blog.ycombinator.com/harc


скадамать 20 июня 2016 года [-]

Они сотрудничают вместе в YCR / HARC!


alankay1 20 июня 2016 г. [-]

YCR не «моя группа» - я очень рад, что помог установить HARC! с его очень впечатляющей группой главных исследователей (включая Брета).


ЛестерСити 20 июня 2016 года [-]

Привет алан,
Ранее вы упомянули «подход Оксбриджа» к чтению, согласно которому, если мои воспоминания верны, вы берете четыре темы и углубляетесь в них как можно больше. Не могли бы вы уточнить этот подход (я искал в интернете, ничего не нашел)? И считаете ли вы, что этот структурированный подход имеет больше преимуществ, чем, скажем, неструктурированный подход к чтению любого интересного?

Спасибо за ваше время и щедрость, Алан!



alankay1 20 июня 2016 г. [-]

В Библиотеке Конгресса хранится более 23 000 000 книг, и хороший читатель может прочитать 23 000 книг за всю жизнь (я знаю всего несколько человек, которые читали больше). Таким образом, мы рассматриваем целую жизнь чтения, в которой мы могли бы коснуться 1/10 от 1% книг по экстентам. Мы надеемся, что большинство из тех, к которым мы не можем прикоснуться, бесполезны, не годятся и т. Д.
Так что я думаю, что мы должны поставить что-то большее, чем случайность и следующие ссылки, чтобы использовать здесь. (Вы можете потратить много времени на изучение большой системы, такой как Linux, не затрагивая многие из самых важных идей в области вычислительной техники - поэтому мы должны прислушаться к идее «Искусство длинно, а жизнь коротка».

Частью процесса «Оксбридж» является наличие «читателя» (человека, который помогает вам выбрать, на что смотреть), и эти люди на вес золота ...



gdubs 21 июня 2016 г. [-]

У покойного Карла Сагана была замечательная последовательность в первоначальном «Космосе», где он высказал сходное мнение о том, сколько книг можно прочитать за всю жизнь:
If I finish a book a week, I will read only a few thousand
books in my lifetime, about a tenth of a percent of the
contents of the greatest libraries of our time. The trick
is to know which books to read.


случайный поиск 21 июня 2016 года [-]

Общий вопрос об этой фигуре, который я видел раньше:
> прочитать 23 000 книг за всю жизнь

Как очень консервативный нижний предел, человек, который доживает до 80 лет, должен будет читать 0,79 книги в день, с момента своего рождения, чтобы достичь этой цифры.

Или, другими словами, кто прочитал более 288 книг за последний год?

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



alankay1 21 июня 2016 г. [-]

Да, это возможно. Это частично развивает своего рода беглость, которая очень похожа на музыку, читающую взгляды (об этом неплохо подумать, потому что вам действительно нужно ухватиться за то, что нужно сделать, и вы должны делать это в режиме реального времени » Прима Виста ").
Многое из этого - один из ключей! Выполнение таким образом, чтобы были задействованы различные краткосрочные и долгосрочные воспоминания, является еще одним ключом (быстрое чтение с пониманием текста и музыки частично является своего рода запоминанием и буферизацией и т. Д.)

Я не думаю, что я прочитал 23 000 книг за 76 лет, но очень вероятно где-то между 16 000 и 20 000 (я не считал). Бертран Рассел легко прочитал 23 000 книг при жизни и т. Д.



случайный поиск 21 июня 2016 года [-]

Я опоздал на это и не ожидал ответа, так что спасибо, что нашли время вернуться и ответить!
Я согласен с практикой, так как в течение некоторых периодов я заметил увеличение скорости, когда я постоянно читал каждый день.

Что касается второго пункта - краткая и долговременная память - у вас есть ссылка или другое предложение, где можно узнать больше, пожалуйста?



alankay1 21 июня 2016 г. [-]

На концерте HN было немало дискуссий по поводу моего давнего «списка чтения».


случайный поиск 22 июня 2016 года [-]

Благодарю.
news.ycombinator.com/item?id=11803165



di4na 21 июня 2016 г. [-]

Как кто-то, кто читает по крайней мере одну книгу в день, если не больше с 6 лет, да, это возможно. Я могу читать от 100 до 200 страниц в час, в зависимости от книги.
Вы быстро достигаете проблемы с хранилищем и деньгами (электронная книга - спаситель в наши дни). И вы, как правило, открываете несколько книг одновременно.

Как это работает? Есть несколько стратегий. Сначала я читаю быстро. Опыт и обучение заставляют вас читать очень быстро. Во-вторых, вы понимаете, как все работает, и что должен сказать виртер. В художественной книге я нередко не читаю одну-две главы, потому что знаю, что будет внутри.

Наконец-то ... Хорошие писатели помогают. Хорошие писатели легко читают и быстрее читают. Они представляют идеи в сжатой и эффективной форме, которые следуют за потоком мышления.

Я с удовольствием отвечу на вопрос, если у вас есть :)



3minus1 21 июня 2016 г. [-]

> В художественной книге я нередко не читаю одну-две главы, потому что знаю, что будет внутри.
Это нелепо. Это не считается чтением, если вы пропустите целые главы.



Хлор 21 июня 2016 года [-]

Черт, я «читаю» целые книги, просто читая заднюю обложку! Таким образом, я получаю сотни книг каждый раз, когда посещаю библиотеку!


di4na 24 июня 2016 г. [-]

Ну, если честно, если он плохо написан и не содержит ничего интересного ...


топ 21 июня 2016 года [-]

Что мотивирует тебя? Применяете ли вы когда-либо полученные таким образом знания (вас это вообще волнует)?


di4na 24 июня 2016 г. [-]

Несколько вещей. Сначала это то, что мне нравится.
Во-вторых, это единственный способ, которым я могу воспринимать информацию так, как она работает. Разговоры, видео, подкаст и т. Д. Слишком медленные для меня. Ему не хватает хорошей пропускной способности информации и смысла. Это означает, что я склонен просто пропустить или завершить то, что говорит говорящий.

О применении знаний: да, каждый день, в моей жизни. Как только вы наберете достаточное количество знаний и получите хороший способ отфильтровать их, подумать об этом и разобраться с ними, все станет хорошо. Понимание проблемы приходит быстрее. Вы можете нарисовать связь между различными ситуациями или использовать идеи из другой области в свою.

Знания редко теряются.



случайный поиск 21 июня 2016 года [-]

Благодарю. Какой вид обучения ты делал?
Я не увлекаюсь пропуском глав! Вы делаете то же самое с научной фантастикой?

Другой вопрос - как вы отслеживаете прочитанное? (был бы рад услышать от других, особенно Алан на ту же тему)



di4na 24 июня 2016 г. [-]

как тренировка ... я читаю. Вот и все. Я начал, когда мне было 5 лет. Никогда не останавливался. Так что я почти всегда был таким. Чем больше вы читаете, тем больше вы тренируете свой мозг для чтения. И ваш разум, чтобы понять, как бороться со знаниями и информацией. Отфильтруйте, классифицируйте, впитайте, примените.
Для не художественной литературы, да, это происходит. Многие книги просто повторяют одно и то же снова и снова. Когда вы начинаете читать главу и можете закончить то, что будет сказано на следующих 20 страницах, исходя из вашего понимания всей ситуации, чтение ее - это потеря времени. И это заставило бы меня скучать и спускаться из "Зоны".

Я отслеживаю в своем мозгу. У меня есть преимущество в том, что я всегда могу вспомнить, прочитал ли я что-то, просто взглянув на обложку и первые строки. Я все еще должен забыть книгу, которую я прочитал. Конечно, я не могу вспомнить все технические подробности, но достаточно далеко, чтобы понять, читал ли я это раньше или нет.

Я перечитываю книги, которые мне действительно нравятся или которые мне нужны, в любом случае. В основном во время каникул.



spjpgrd 22 июня 2016 г. [-]

Это зависит от вашего определения «чтение книги».
Чего ждать?

Я читал книгу под названием, я не шучу, "Как читать книгу: Классическое руководство по интеллектуальному чтению".

Адлер и Дорен выделяют четыре уровня чтения:

1. Элементарно: «Что говорит предложение?» Здесь можно получить скорость

2. Инспекционный: «О чем книга?» Лучшее и наиболее полное чтение с ограниченным временем. Не обязательно читать книгу спереди назад. По сути систематическое скимминг.

3. Аналитическое: лучшее и наиболее полное чтение без ограничения времени. Ради понимания.

4. Синоптические: чтение сразу нескольких книг одного и того же предмета, сопоставление их друг с другом и анализ, которого нет ни в одной из книг.

Ссылка Amazon для интересующихся: https: //www.amazon.com/How-Read-Book-Intelligent-Touchstone / ...



Фрейир 21 июня 2016 года [-]

Недавние исследования (наряду с прошлыми исследованиями) поставили под сомнение правдоподобие экстремальной скорости чтения [1].
Я не хочу противоречить Алану; без сомнения, он быстрый читатель. Но если вы на самом деле читаете целую книгу каждый день или два, вы тратите много времени на чтение.

[1] psi.sagepub.com/content/17/1/4



Эдвард Гроб 21 июня 2016 г. [-]

Было ли это в будущем чтения [1] возможно? Со страницы 6:
При совершенно ином подходе, большинство занятий по музыке и спорту имеют контакт с одним экспертом один или два раза в неделю, много индивидуальной практики, групповой опыт, в котором «играется», и много лет усилий. Это работает, потому что большинству учеников действительно трудно поглощать часы обучения экспертов каждую неделю, которые могут соответствовать или не соответствовать их способностям, стилям или ритмам. Как правило, им гораздо лучше проводить несколько часов каждый день, обучаясь самостоятельно и посещая эксперта для оценки и совета и играя несколько раз в неделю.

Несколько университетов используют подобный процесс для академиков, иногда называемый «системой обучения», в их число входят Оксфордский и Кембриджский университеты в Великобритании.

[1] www.vpri.org/pdf/future_of_reading.pdf



Эдвинторок 20 июня 2016 года [-]

Привет, у меня есть несколько вопросов о вашем проекте STEPS:
- Есть ли проект, который является продолжением проекта STEPS?

- Как вы относитесь к языку вязов?

- Как, по вашему мнению, все хорошие исследования модели STEPS могут быть использованы для построения практических систем?

- ШАГИ, сосредоточенные на персональных компьютерах, есть ли у вас видение того, как нечто подобное можно сделать для программирования на стороне сервера?

- Где я могу найти весь исходный код для системы Frank и DSL, описанных в отчете STEPS?



e12e 20 июня 2016 г. [-]

Прошу прощения за то, что немного болтал - но у меня также есть несколько вопросов по поводу VPRI. Насколько я могу судить, никогда не было намерения публиковать всю систему (весь стек, необходимый для запуска "Фрэнка")? Если так, я хотел бы знать, почему нет? Где вы боитесь, что прототипы будут восприняты «слишком серьезно» и отвлекутся от идей, которые вы хотели исследовать?
Отчеты VPRI, а до этого некоторые статьи о Крокете (особенно идея «чаепития», которую можно охарактеризовать как событийно-ориентированное, основанное на журналах, относительное время с возможными данными / согласованностью мира), являются захватывающими, и я ' Я благодарен за их публикацию. Кроме того, материал Ometa [o] увлекателен (во всяком случае, я думаю, что у него слишком мало ума).

Мне кажется, что мы немного развились, в том смысле, что некоторые вещи, которые раньше считались программированием (отображать текстовую строку на экране), больше не являются (введите его в notepad.exe) - это считается " использование компьютера". В то же время некоторые вещи, которые считались несколько эзотерическими, становятся мейнстримом: возможно, наиболее важно - растущая (возрождающаяся?) Тенденция, что программирование действительно является метапрограммированием и созданием языка.

ReactJS - это основная модель программирования, которая объединяет html, css, javascript и, по крайней мере, один язык шаблонов - и в аналогичном ключе мы наблюдаем широкое применение в «транспирированных» языках, таких как сценарии кофе, машинописный текст, clojurescript и другие. HN работает на вершине Арка, который является излишним изгибом в направлении http / html. Я вижу это как эволюцию, когда наиболее распространенные DSL, которые люди писали для себя, были ORM - отображение некоторого основного языка на SQL.

За время работы с VPRI вы нашли другие новые шаблоны или принципы метапрограммирования и (микро) языкового проектирования, которые, по вашему мнению, можно / нужно использовать прямо сейчас?

Помимо стремления веб-разработчиков заново изобретать m4 на каждом шагу, чтобы программировать html, css и js на «более высоком» уровне, и вышеупомянутые ORM-тренды - единственной общепринятой системой, о которой я знаю, Имеет хороший инструментарий для создания «настоящих» DSL, это Racket Scheme (которая показывает, если кто-то сравнивает что-то вроде Sphinx, которая является хорошей системой, с наброском Racket [2]).

Как вы думаете, мы продолжим наблюдать рост метапрограммирования и языкового дизайна по мере того, как будет становиться все больше и больше инструментов, и становится все более естественным проводить «настоящий» анализ, а не произвольный анализ простого текста?

[o] https://github.com/alexwarth/ometa-js

[s]docs.racket-lang.org/cribble/getting-started.html

lambda-the-ultimate.org/node/4017



coldtea 20 июня 2016 г. [-]

Привет алан,
В разделении «хуже - лучше» я всегда считал вас человеком, стоящим рядом с подходом «лучше» (MIT), но с пониманием прагматики, присущей подходу «хуже - лучше» (Нью-Джерси).

Какова ваша реальная позиция в отношении дихотомии "хуже - лучше"?

Верите ли вы, что это реально, и если да, может ли существовать третья альтернатива, объединяющая элементы с обеих сторон?

И если нет, то всегда ли мы обречены (из-за рыночных сил, программирования как «популярной культуры» и т. Д.) Иметь инструменты, не соответствующие теоретическим возможностям?



alankay1 20 июня 2016 г. [-]

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

Цитата, которую я сделал несколько лет назад: «Лучше и совершеннее враги того, что на самом деле нужно». Большой грех, который так много людей совершают в области вычислительной техники, - это не обращать внимания на то, что на самом деле нужно! И не пойду ниже этого.



крачка 20 июня 2016 года [-]

Я боюсь, что это потому, что «что на самом деле нужно» нетривиально понять. Связано: «поцарапайте свой собственный зуд», «езда на велосипеде», «бритья яка».


alankay1 20 июня 2016 г. [-]

Именно - именно поэтому люди испытывают желание выбрать приращение и скажут «по крайней мере, это немного лучше» - но если порог на самом деле не достигнут, то это противоположность немного лучше, это иллюзия ,


Ярмитаж 20 июня 2016 года [-]

Привет алан,
Какой совет вы бы дали тем, у кого нет HARC, чтобы звонить самостоятельно? Что бы вы сделали, чтобы настроить / сообщество / финансирование для вашего приключения, если бы вы начали сегодня? Какой совет вы бы дали тем, кто в настоящее время работает в промышленном / академическом учреждении и ищет истинную интеллектуальную свободу, которую вы нашли? Это просто удача ?!



alankay1 20 июня 2016 г. [-]

У меня нет хороших советов (я считаю, что получение достойного финансирования на полпути с 1980 года было довольно тяжелой работой). Мне невероятно повезло, что я попал совершенно случайно в проект ARPA в Юте 50 лет назад в этом году.
Часть сделки заключается в том, чтобы быть действительно упрямым в том, что вы хотите сделать - например, я никогда не пытался заработать на своих идеях (потому что тогда вы находитесь в совершенно ином типе процесса - и этот процесс не в все хорошо для тех вещей, которые я пытаюсь сделать).

Время от времени сталкиваются с "крупными единомышленниками", такими как Сэм Альтман и Вишал Сикка, которые имеют доступ к финансированию, которое достаточно свободно, чтобы привести к действительно новым идеям.



Ярмитаж 20 июня 2016 года [-]

Благодарю.
Есть ли у вас какие-либо советы по созданию сообщества, особенно в отношении поощрения новых и больших идей?



герминальная фраза 20 июня 2016 года [-]

Привет алан,
Как учитель старших классов, я часто нахожу, что дискуссии о технологиях в образовании превращают «образование» в учебную программу, документацию по оценке и планирование; однако эти артефакты являются лишь небольшим элементом того, что, по сути, является социальным процессом обсуждения и прогрессивного накопления знаний.

Если реальная работа и успехи моих учеников связаны с нашими интеллектуальными умениями и навыками (а не со статической документацией о предварительных выставках знаний), есть ли инструменты, которые я могу использовать, чтобы создать и обогатить этот вид? взаимодействия на месте?



alankay1 20 июня 2016 г. [-]

Это очень непросто, чтобы попытаться создать «сквозь замочную скважину» этого очень не WYSIWYG плохо продуманного артефакта людей из WWW, не понимающих, что такое Интернет или компьютерные медиа.
Позвольте мне просто сказать, что стоит попытаться понять, что может быть «действительно хорошим» балансом между традиционным устным обучением и мышлением, что грамотность приносит партии, особенно через средства массовой информации, и что компьютер и повсеместная сеть должны принести как реальный положительные дополнения.

Один из способов оценить то, что происходит сейчас, - это отчасти возврат от реальной грамотности к устным способам общения и устным способам мышления (то есть «текстовые сообщения» - это на самом деле транслитерация устного высказывания, а не литературной формы).

Это катастрофа.

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

Вопрос в балансе. Свободные читатели могут читать во много раз быстрее, чем устные передачи, и есть еще много ресурсов под рукой. Это означает, что в 21 веке большинство людей должны много читать, особенно студенты (гораздо больше чтения, чем разговора). Ответственные взрослые, особенно учителя и родители, должны приложить все усилия, чтобы это произошло.

В заключение я бы рекомендовал прочитать «Думать: быстро и медленно» Даниэля Канемана, и это станет хорошей основой для размышлений о компромиссах между реальными взаимодействиями (с людьми или компьютерами) и «размышлениями».

Я думаю, что большинство людей растут, теряя свой реальный потенциал как мыслители, потому что среда, в которой они растут, не понимает эти проблемы и их компромиссы ....



Джбреннан 20 июня 2016 года [-]

> Я думаю, что большинство людей растут, теряя свой реальный потенциал как мыслители, потому что среда, в которой они растут, не понимает этих проблем и их компромиссов ....
Это мета вещь, которая меня беспокоит: как мы можем помочь людям понять, что они «упускают свой реальный потенциал мыслителей»?

Мир кажется настолько довольным, что снова становится устной культурой. Как мы убедим / изменим / вооружим людей скептически относиться к этим СМИ?

Центр жизненных медиа Джо Эдельмана ( livable.media ) кажется шагом в правильном направлении. Как еще мы можем убедить людей?



эврист 21 июня 2016 года [-]

Марихуана помогла мне понять, что во мне много чего я не поняла, и начала свое исследование более эффективных процессов мышления. Я стал гораздо более энергичным и вдумчивым с тех пор, как стал взрослым курить.


топ 21 июня 2016 года [-]

Какие изменения в ваших мыслительных процессах вы сделали?


эврист 21 июня 2016 года [-]

Прежде всего, теперь я люблю говорить о себе :)
Я перестал предполагать, что знаю все, и детское чувство удивления вернулось в мою жизнь. Я начал смотреть за пределы того, что было прямо передо мной, и искал более полные обобщения. Что общего у атомов с людьми? Что значит общаться? Мы общаемся с экосистемами? Общаются ли люди с обществом? Что такое сознание и разум? Является ли мой разум совокупностью множества сознательных процессов? Как разрозненные части моего мозга объединяются в одну сознательную сущность, как они формируют мою субъективную реальность?

Я обнаружил, что информация, люди и сети имеют фундаментальное значение для моего понимания мира. Я всегда интересовался ими раньше, но не настолько, чтобы искать их или применять в творческих работах. Я открыл для себя язык систем. Я нашел глубокое понимание математики и пути роста, чтобы начать свою жизнь.

Я смог сделать это исследование в то время, когда моя работа была медленной и устойчивой. Это произошло пару лет назад, когда мне было 25 лет, и я слышал, что когда уровень развития мозга снижается. Мне повезло, что я это пережил, потому что до этого был совершенно недоволен своей жизнью.

С тех пор я нашла работу, которую я люблю, на начальном этапе, когда я смогла применить свои идеи различными способами. Я стал намного более активным как создатель, включая изучение скрытых художественных чувств посредством написания стихов и посещение уроков масляной живописи с очень талантливым учителем. Я обнаружил, что становлюсь художником в своей работе - я стал директором и ведущим инженером в стартапе и изучаю способы определения и распространения правды в продуктах, которые мы продаем, и далее, чтобы сделать заявление о том, что такое искусство капиталистическое общество (даже если я единственный, кто когда-либо признает это). Я также стал более эмпатичным и нашел замечательную женщину и двух щенков, чтобы поделиться с ними своей жизнью, несмотря на то, что раньше я был очень одиноким. Между работой и семьей у меня сейчас меньше времени на самоанализ, но я ожидаю, что

В конечном счете, я научился доверять своему подсознанию. Я всегда беспокоился и нервничал из-за того, что был неправ в любой ситуации, но теперь я верю, что даже если я ошибаюсь в тот момент, мой мозг может найти хорошие ответы в течение более длительных периодов времени.

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



bpchaps 23 июня 2016 г. [-]

Это почти точно мой опыт! Я не думаю, что HN много говорит об этом, но конопля - отличный способ приблизиться к интуитивной глубине по предметам. Для меня это были концепции эго, математики, музыки, гражданского общества и теории информации.
Когда я начинал, это была работа, которую я совершенно ненавидел (переписывал богомол в систему поддержки), и это помогло мне выйти из нее, открыв лучшее понимание систем низкого уровня. Это в конечном итоге привело к настройке высокочастотных торговых систем и некоторой довольно глубокой гражданской активности с использованием Foia.

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



socrates666 от 24 июня 2016 г. [-]

ИДЕНТИЧНО для меня. Даже до теории информации немного. Очень странно, но обнадеживает.


топ 21 июня 2016 года [-]

Спасибо, это очень интересно!


герминальная фраза 20 июня 2016 года [-]

Пытаясь понять, какую форму может принять этот «действительно хороший баланс», можете ли вы порекомендовать какие-либо предпочтительные ресурсы / реализации, чтобы проиллюстрировать, что «реальные положительные дополнения» могут принести компьютеры и сети? Я знаком с влиянием Piaget / Papert - но я бы хотел получить дополнительную глубину в медиа / сетевой части разговора.
Спасибо за ваши мысли. Точно так же я чувствую культурный регресс грамотности.



alankay1 20 июня 2016 г. [-]

С хорошим языком программирования и интерфейсом, один - даже дети - могут создавать с нуля важные моделирования сложных нелинейных систем, которые могут помочь думать о них.


герминальная фраза 21 июня 2016 года [-]

Хотелось бы, чтобы это была лучшая платформа для плавного обсуждения, но я буду копаться в ваших работах и ​​выступлениях (Viewpoint / Youtube / TED / в других местах?), Чтобы лучше понять ваши мысли по этим темам.
Спасибо.



alankay1 20 июня 2016 г. [-]

- Я был удивлен, что страница списка HN не обновилась автоматически в моем браузере (кажется, что она должна быть активной и не должна запрашиваться ...)


крачка 20 июня 2016 года [-]

Напротив, я счастлив, что последнее увиденное состояние сохраняется, и мне предоставляется возможность обновить, чтобы увидеть текущее состояние, если я выбрал.


нообермин 20 июня 2016 года [-]

Это конечно помогает при чтении длинных ответов, это точно. Я думаю, что мини-обновление с надписью «нажмите здесь, чтобы загрузить», как в stackoverflow для ответов или изменений, было бы интересной идеей.
Конечно, стиль 90-х тоже довольно хакерский ... не могу этого отрицать.



stcredzero 20 июня 2016 г. [-]

HN чувствует старую школу. Вот почему мне это нравится. (Все мои 20-30-летние коллеги считают меня ископаемым.)


alankay1 21 июня 2016 г. [-]

Сколько тебе лет? «Старая школа» для меня - это то, что можно сделать в Парке и т. Д. (Подсказка: немного больше, чем на этом сайте ...)


Projectramo 20 июня 2016 г. [-]

Представьте себе: 1. пытаться читать что-то длинное или 2. перейти по ссылке и вернуться и ответить, только чтобы обнаружить, что страница обновлялась, пока вы отводили взгляд. Теперь вам нужно прокрутить список, чтобы найти место, где вы были, чтобы ответить или продолжить чтение комментариев.


alankay1 20 июня 2016 г. [-]

Как насчет маленькой модели времени в графическом интерфейсе?


diiq 20 июня 2016 [-]

Это, пожалуй, самый похожий ответ Алана-Кея. Короткий, простой, но чуть-чуть похожий на сообщение из альтернативного измерения. «Нет, нет, я не прошу вас строить неправильное решение, которое попробовал кто-то другой. Я говорю: решите проблему.


крачка 20 июня 2016 года [-]

Также кажется, что хуже-лучше против правильной вещи. Сколько инженерных усилий и дополнительного обслуживания потребуется для разработки и поддержки такой модели времени? Много. Увы, давайте заново создадим программные системы, чтобы они были значительно проще, чтобы мы могли делать правильные вещи! Все еще в ожидании 10-линейной операционной системы Urbit и VPRI ... но это то, что Алан поддерживает в нашей отрасли: «стремиться делать правильные вещи» или, как вы выразились, «решать проблемы».


Джастинпомбрио 20 июня 2016 года [-]

Это звучит как особенность. HN не имеет функций, только потребности.


ммллер 21 июня 2016 года [-]

Теперь Facebook такой ... Не улучшение. Он не предназначен для следующих тем, и, похоже, им все равно.


jsprogrammer 20 июня 2016 г. [-]

Легенда в том, что этот форум работает на заброшенной реализации LISP.
Большинство вещей здесь не так, как они должны казаться.



Сайко-Крискун 22 июня 2016 года [-]

Да- arclanguage.org.


testmonkey 20 июня 2016 г. [-]

Джарон Ланье упомянул вас как часть "гуманистической нити в вычислительной технике". Я понял, что он имел в виду людей, которые имеют гораздо более широкую оценку человеческого опыта, чем средний технолог.
Кем из "гуманистических технологов" вы восхищаетесь? Критики, художники, экспериментаторы, даже тролли ... Какие особенно креативные технологи вдохновляют вас?

Я представляю таких людей, как Джонатан Харрис, Зе Фрэнк, Джарон Ланье, Бен Хух, Дана Бойд, Шерри Теркл, Дуглас Энгельбарт, Дуглас Рушкофф и т. Д.



nnq 21 июня 2016 г. [-]

Привет Алан, вопрос, который меня беспокоит сейчас, и я хочу задать тебе:
Как вы думаете, почему всегда есть разница между:

А. люди, которые лучше всех знают, как что-то сделать , и

B. Люди, которые в конечном итоге делают это практичным, экономически успешным или популярным способом?

И должны ли мы обучать наших детей или развивать наш бизнес таким образом, чтобы это стимулировало практичность и изобретательность? (ты думаешь это возможно?). Или эти две тенденции уничтожат друг друга, и в результате вы получите посредственных детей и неэффективные компании, поэтому правильнее всего выбрать одну сторону и развивать ее за счет другой?

(«Два лагеря» явно очевидны в области разработки языка программирования и дизайна пользовательского интерфейса (хотя это одно и то же: языки программирования - это просто «пользовательский интерфейс между программистами и машинами»), как вы хорошо знаете и сказали, с одной группой люди (и вы в том числе) имеют правильные представления о том, какими должны быть ООП и пользовательские интерфейсы, и один человек, изобретающий технологии с успехом в такой отрасли, как C ++ и Java, но такая схема происходит на всех уровнях, даже в бизнесе: люди с лучшие бизнес-идеи почти никогда не заканчиваются тем, что что-то делает, и поэтому в большинстве случаев все делается «частично неправильно», хотя у нас есть информация, чтобы «сделать это правильно».)



alankay1 21 июня 2016 г. [-]

Нам повезло, что в сообществах ARPA / PARC было и отличное финансирование, и время, чтобы все обдумать (и даже делать ошибки, которые не позволяли распространяться, чтобы создать плохие стандарты де-факто).
Вопрос, который вы задаете, действительно общественный - и о таких операциях, как добыча полезных ископаемых и захоронение отходов. «Охотники и собиратели» (наше генетическое наследие) находят плодородные долины, сушат их и идут дальше (это работает только в очень небольших масштабах). «Цивилизация» отчасти связана с изучением того, как преодолеть наши опасные атавистические тенденции посредством образования и планирования. Это то, чем мы должны быть в целом (и часть CS это просто симптом гораздо более серьезной ситуации, в которой мы находимся).



nnq 23 июня 2016 г. [-]

Таким образом, вы перефразируете вопрос, чтобы обозначить, что вы видите его как «режим охотника-собирателя» (делая это практическим и краткосрочным экономически успешным способом) против «цивилизованного режима строителя» (делая это так, как мы его знаем) должно быть сделано) и что они антагонистичны, и что из-за того, как наше общество структурировано, способ мышления "охотник-собиратель" ведет к лучшим экономическим результатам?
Это заканчивается как довольно сильная критика основной идеи капитализма о том, что рыночные силы стимулируют прогресс науки и техники.

Ваше мышление приведет к выводу, что нам нужно найти способ полностью изменить / реорганизовать нынешнюю мировую экономику, чтобы не дать ей быть предвзятым в пользу "охотников-собирателей, которые лишают плодородную долину" .. прямо ?

Я надеюсь, что такие люди, как вы, работают над этим :)



нострадемоны 20 июня 2016 года [-]

Какие поворотные моменты в истории вычислительной техники (продукты, которые победили на рынке, изобретения, которые были проигнорированы, технические решения, в которых человек / компания / комитет могли найти другую альтернативу и т. Д.), По вашему мнению, пошли другим путем?


alankay1 21 июня 2016 г. [-]

Просто выбрать три (и, возможно, даже не в верхней части моего списка, если бы я должен был написать и отсортировать),
(a) Intel, Motorola и т. д. действительно заинтересовались архитектурами Parc HW, позволяющими эффективно внедрять языки очень высокого уровня. Отсутствие этого в 80-х годах вернуло «не очень хорошие идеи 50-х и 60-х» в программирование и стало одним из главных факторов:

(б) огромная склонность к «мы умеем программировать» и т. д., что стало еще одним важным фактором, препятствующим тому, чтобы лучшие практики программного обеспечения 70-х годов стали началом гораздо лучшего программирования, операционных систем и т. д. возврат к слабым методам (от которых мы действительно не оправились).

(c) Использование «лучших идей о судьбе компьютеров», например, в сообществе ARPA, а не слабых жестов, например, действительно плохо продуманной WWW против действительно важных и нужных идей Энгельбарта.



Джонатанлок 22 июня 2016 г. [-]

Я получаю (а) и (б) полностью. Что касается (c), я испытывал такое же чувство к Мозаике NCSA в 1993 году, когда впервые увидел ее, и мне приятно слышать, как вы это говорите, потому что, хотя я определенно неправильно понял важный технологический сдвиг в течение нескольких лет, возможно, я не ошибся в моя первоначальная реакция, что это было глупо.


ммллер 22 июня 2016 года [-]

Я не начал получать его, пока индустрия не начала использовать браузеры для приложений в конце 90-х / начале 2000-х годов. Я взглянул на «архитектуру с состоянием», которую они пытались использовать, и сказал себе: «Это хак». Вскоре после этого я узнал о критике того, что он говорит то же самое: «Это попытка навязать государственность архитектуре без гражданства». Я продолжал задаваться вопросом, почему индустрия не использовала X11, который уже имел возможность удаленно выполнять полное взаимодействие с GUI. Зачем отказываться от интерактивной архитектуры в реальном времени, которая предназначена для использования в сети, для такой, которая требовала обновления страницы для обновления дисплея? Все это было похоже на шаг назад. Дело в том, что это привело меня в тупик, когда я попытался использовать каркас веб-приложения для работы сложного приложения веб-формы. Я заставил это работать, и клиент был очень доволен, но мне было стыдно за код, который я написал, потому что я чувствовал, что должен был написать это, как будто я был искажателем. Мне повезло, что у меня был предыдущий опыт работы с другими платформами, где архитектура была более разумной, так что я не думал, что это был «хороший дизайн». После этого опыта я покинул индустрию. С тех пор я пытаюсь найти другой, более разумный способ работы с компьютерами. Я не думаю, что какой-либо из моего прошлого опыта действительно подходит, за исключением некоторых небольших аспектов и опыта. Ключ не в том, чтобы расстраиваться после того, как вы стали свидетелями работ, которые ставят ваши собственные позоры,


ontouchstart 23 июня 2016 г. [-]

Как мы можем вернуть X11 и старую добрую интерактивную архитектуру поколению программистов, выросших на AngularJS и ReactJS?
Или мы перезагрузим хорошие идеи с IoT?



ммллер 23 июня 2016 года [-]

Моя ссылка на X11 была в основном риторической, чтобы рассказать историю. В какой-то момент я узнал, что причина X11 не была принята, по крайней мере, в сфере бизнес-приложений. Я был в том, что это считалось угрозой безопасности. У клиентов создалось впечатление, что http безопасен. С тех пор это оказалось ложным, поскольку было много подвигов веб-серверов, но я думаю, что к тому времени, когда эти уязвимости обнаружились, X11 уже считался устаревшим. Это похоже на то, как автономные ПК были размещены в интернете, а затем люди обнаружили, что их можно так легко взломать. Я думаю, что слабым местом было то, что у X11 не было протокола «запрос-ответ», который работал чисто по сети для начала сеанса. Можно было бы легко придумать, но, насколько я помню, этого не произошло. Чтобы запустить удаленный сеанс какого-либо инструмента, который я хотел использовать, мне всегда приходилось входить на сервер, используя rlogin или telnet, вводить имя исполняемого файла и указывать ему «отображать» на мой адрес терминала. Это можно было сделать даже без входа в систему. Я видел, как студенты демонстрировали это, когда я был в школе. Пока они вошли в систему, они могли запустить где-нибудь исполняемый файл и сказать ему «показать» на чужой терминал. Дело в том, что он мог сделать это без разрешения «получателя». Это было довольно открыто. (Это было бы другой вещью, которую нужно реализовать в протоколе: не «отображать» без разрешения или, по крайней мере, без запроса с того же адреса.) У Http такой проблемы не было, так как я так не думаю '
Насколько я понимаю, X11 был не самым лучшим дизайном для GUI. За эти годы я слышал некоторые жалобы на это, но, по крайней мере, он был разработан для работы в сети, чего не могла добиться ни одна другая структура GUI того времени, о которой я знал. Можно было бы улучшить создание более безопасного сетевого стандарта, если бы в него были приложены некоторые усилия.

Как сказал Алан Кей где-то еще в этой теме, трудно предсказать, что станет популярным в будущем, даже если что-то улучшится до такой степени, что его можно будет разумно использовать вместо чего-то более низкого качества. Итак, я не знаю, как «вернуть X11». По его словам, лучшими идеями, которые в конечном итоге стали популярными, были те, у которых еще не было конкурентов на рынке. Таким образом, по сути, концепция казалась новой и достаточно интересной для достаточного количества людей, поэтому единственный способ получить к ней доступ - принять лучшую идею. В случае X11, к тому времени, когда Интернет был приватизирован и стал популярным, уже существовали другие конкурирующие графические интерфейсы, и веб-браузеры стали фактическим способом, которым люди воспринимают Интернет таким образом, который, по их мнению, достаточно прост для них. использовать. Я помню одного технолога, описывающего браузер как потребительское «радио» для интернета. Это довольно хорошая аналогия.

Оставляя это в стороне, мне было интересно видеть, что толстые клиенты действительно вернулись, вырвав огромный кусок из сети. То, что было сделано с ними, это то, что я только что предложил сделать с X11: протокол был (частично) улучшен. Как правило, индустрия не совсем понимала, что должно произойти. Они преднамеренно нарушили аспекты ОС, которые когда-то давали больше контроля пользователям, и сделали использование программного обеспечения кураторской службой, чтобы сделать существующие технологии толстых клиентов более безопасными в использовании. Идея была, не без какого-либо логического обоснования, в том, что предоставление пользователю контроля привело к большому количеству обращений в службу поддержки, потому что люди любопытны и обычно не знают, что делают. Дело в том, что индустрия не пыталась помочь людям понять, что было возможно. Когда X11 был интересным и продуктивным способом использования Unix, индустрия не знала, как сделать компьютеры привлекательными для большинства потребителей, и поэтому, чтобы привлечь покупателей, они были вынуждены оказать некоторую помощь в понимании того, что они делают. может делать с операционной системой и / или языком программирования, который поставляется вместе с ней. Кривая обучения была немного круче, но это также имело эффект ограничения размера рынка. Как обнаружил рынок, путь наименьшего сопротивления состоит в том, чтобы сделать интерфейс простым, легким и беспомощным с вычислительной точки зрения, по сути превращая компьютер в устройство, подобное швейцарскому армейскому ножу. они были вынуждены оказать некоторую помощь в понимании того, что они могут делать с операционной системой и / или с языком программирования, который прилагается к ней. Кривая обучения была немного круче, но это также имело эффект ограничения размера рынка. Как обнаружил рынок, путь наименьшего сопротивления состоит в том, чтобы сделать интерфейс простым, легким и беспомощным с вычислительной точки зрения, по сути превращая компьютер в устройство, подобное швейцарскому армейскому ножу. они были вынуждены оказать некоторую помощь в понимании того, что они могут делать с операционной системой и / или с языком программирования, который прилагается к ней. Кривая обучения была немного круче, но это также имело эффект ограничения размера рынка. Как обнаружил рынок, путь наименьшего сопротивления состоит в том, чтобы сделать интерфейс простым, легким и беспомощным с вычислительной точки зрения, по сути превращая компьютер в устройство, подобное швейцарскому армейскому ножу.

Я думаю, что лучшим ответом, чем IoT, является образование, помогающее людям понять, что есть что-то, что можно получить с этой новой идеей. Это не просто обучение использованию технологии. Как сказал Алан Кей, в фразе, которая, на мой взгляд, заслуживает глубокого изучения, «музыка не на фортепиано».

Это нелегко, но это стоит того, и даже такие преподаватели, как Алан, продолжают изучать, как это сделать.

Это только мое мнение, так как оно вытекает из моего личного опыта, но я думаю, что это подтверждается опытом многих людей, которые участвовали в этом AMA: я думаю, что важным началом для всего этого является помощь люди даже слышат эту «музыку», и важно понимать, что вам даже не нужен компьютер, чтобы научить людей слышать его. Просто компьютер - это лучшее, что было изобретено для его выражения.



ontouchstart 23 июня 2016 г. [-]

У меня был такой же опыт, как и у вас, и мне было удобно кодировать веб-страницы через cgi-bin с помощью vi. :-)
Вот почему сейчас я очень заинтересован в контейнерах и микросервисах как в локальном, так и в сетевом смысле.

Как «потребитель», мне также очень удобно общаться с людьми с помощью приложений для сообщений, таких как WeChat и передачи ссылок на Википедию и GitHub. Некоторые из них - это «веб-приложения» JavaScript, написанные и опубликованные в GitHub с помощью ввода на моем iPhone. Вот пример:

Http: //bigdata-mindstorms.github.io/d3-playground/ontouchsta ...

Надеюсь, я смогу помочь большему количеству людей "услышать музыку" и _make_ и _share_ самостоятельно.



ммллер 24 июня 2016 года [-]

Это не «возвращение X11», а улучшение JS.
news.ycombinator.com/item?id=11965253



Джонатанлок 30 июня 2016 года [-]

Я не думаю, что сетевой X11 - это именно та сеть, которую мы хотели бы (она на самом деле устарела), но она выглядит лучше, чем браузеры, которые, как вы указываете, настолько плохи, что вам хочется высовываться. К сожалению, теперь, когда Интернет расширился до такого огромного размера, люди не могут его не видеть, и кажется, что это серьезно загрязняет наши представления о том, как Интернет должен взаимодействовать с конечными пользователями.
Может быть, уловка в чем-то близка к этому: нам нужен Интернет, где очень легко делать не только WYSIWYG-составление и публикацию документов (то, чем изначально была сеть, за исключением WYSIWYG), но и действительно предоставлять любой пользовательский опыт, который мы хотим (например, VR) Он должен основываться на сетевой ОС (абстрактном, расширяемом микроядре на стероидах), где пользовательский опыт сети - это программы с собственными системами микроядра (что-то вроде обновленного подхода к PostScript). Сетевая ОС может безопасно проверять интерпретаторы и квоту, а также распределять ресурсы, а микроядра, обеспечивающие взаимодействие с пользователем, например документы, могут обновляться по мере изменения того, что мы хотим сделать. Я думаю, что у нас было бы что-то еще в этом направлении (хотя я

На самом деле мы очень кратко начали двигаться в этом направлении с «Castanet» Маримбы в начале Java, и я был ДЕЙСТВИТЕЛЬНО взволнован, увидев, что мы пытаемся сделать что-то менее глупое, чем браузер. К сожалению, может показаться, что экономическое давление подтолкнуло Маримбу к тому, чтобы стать поставщиком развертывания программного обеспечения, что, на мой взгляд, не совсем то, что они изначально пытались сделать. Кастанет должен был стать ОС Интернета. Я думаю, что у Java все еще есть потенциал для создания чего-то намного лучшего, чем Интернет, потому что вездесущая и очень зрелая виртуальная машина - очень мощная вещь, но я не вижу, чтобы кто-то пытался пойти туда. Есть такой менталитет «никто не установит что-то лучше». И все же мы установили Netscape и даже IE ...

Кстати, я думаю, что проблемы безопасности при выполнении ненадежного кода потенциально разрешимы (по крайней мере, так же, как и любые проблемы сетевой безопасности), используя надлежащую архитектуру микроядра обмена сообщениями с кодом доступа к доверенным ресурсам, выполняющимся в одном процессе, и кодом недоверяемого, выполняющимся в еще один. Проблема с песочницей Java (насколько я понимаю) заключается в том, что она находится в процессе. Страшный код работает с доверенным кодом. Теоретически, Java управляется достаточно, чтобы защитить нас от страшного кода, но на практике люди действительно умны, и один крошечный сбой в JVM или JDK и плохой код получает разрешения, которых у него не должно быть. Многие из этих ошибок можно контролировать или устранять, отделяя доверенный код от ненадежного кода, как в Windows NT (даже если только делая протокол прав доступа к ресурсам действительно ясным).



дискретный 20 июня 2016 года [-]

Привет алан,
Большая часть работы VPRI заключалась в изобретении новых языков (DSL). Результаты были очень впечатляющими, но было несколько очень впечатляющих людей, изобретавших языки. Как вы думаете, это практический подход для повседневных программистов? Вы также рекомендовали, прежде чем должно быть четкое разделение между метамоделью и моделью. Должно ли быть что-то похожее на дисциплину кодовой базы, где люди изобретают свои языки? Или просто, например, авторы ОС изобретают языки, а все остальные используют лингва франка?



alankay1 20 июня 2016 г. [-]

Каверзный вопрос. Один из ответов - спросить, существует ли внутренняя разница между «информатикой» и (скажем) физикой? Или различия только в том, что вычислительная техника - это то, где наука была в средние века?


паника 20 июня 2016 года [-]

В физике вы можете сказать, что делаете успехи, потому что вы можете объяснить больше вещей, которые происходят в природе. Как вы можете сказать, когда вы делаете успехи в информатике?
Мне кажется, что «информатика» объединяет слишком много разных целей. Это как если бы у нас была область под названием «наука о словах», которая охватывала написание историй, лингвистику, научные публикации, набор текста и т. Д.



alankay1 20 июня 2016 г. [-]

Это потрясающий вопрос, и я постараюсь сделать это справедливо завтра утром.


alankay1 21 июня 2016 г. [-]

Теперь, когда наступило «утро», я не уверен, что смогу отдать должное этому вопросу здесь ...
Но, конечно, мы должны отбросить термин «информатика» и попытаться дать ему реальное значение относительно того, что может представлять собой настоящую науку здесь. Как отметил Херб Саймон, это «наука об искусственном», то есть это исследование того, что можно сделать и что было сделано.

Наука пытается понять явления, создавая модели и оценивая их возможности. Природа обеспечивает феномены, но и инженеры, например, строят мост всеми возможными способами. Как и большинство вещей в ранней технике, знания о мостах были включены в «кулинарные книги практики». После того, как наука была изобретена, ученые-инженеры могли использовать существующие мосты в качестве изучаемых явлений и теперь разрабатывать модели / теории мостов. Это стало очень мощным сравнительно недавно (мост Tacoma Narrows упал всего через несколько месяцев после моего рождения!).

Когда в 60-х годах первого лауреата премии Тьюринга - Аль Перлиса - спросили «Что такое информатика?», Он сказал: «Это наука о процессах!». Он имел в виду все процессы, в том числе и на компьютерах, а также в биологии, обществе и т. Д.

Его идея заключалась в том, что вычислительная техника представляет собой прекрасное средство для создания лучших моделей практически всего, особенно динамических вещей (которые на самом деле все есть), и что это также может быть гораздо лучше понять, если использовать их для создания моделей. о себе.

Сегодня мы все еще можем принять это как отправную точку для «возвращения« Информатики »туда, откуда она была изгнана».

В любом случае эта точка зрения сильно отличается от инженерной. Забавная вещь в любой «науке об искусстве» заключается в том, что вы должны создавать артефакты как для феноменов, так и для моделей.

(И просто чтобы запутать вещи здесь, обратите внимание, сколько инженерной практики действительно требуется, чтобы сделать хорошую теорию в науке!)



паника 21 июня 2016 года [-]

Спасибо за ответ! Кажется, что здесь есть различие между изучением того, как модели могут / должны быть построены (математическая / философская задача), помоганием людям создавать и понимать эти модели с помощью компьютеров (задача проектирования / разработки), и использованием этих моделей для формулирования и проверки гипотез. о себе и мире (научная задача). Может быть, недостаток науки объясняется тем, что мы еще не разобрались в математике / философии / дизайне / инженерных работах!


alankay1 21 июня 2016 г. [-]

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


дискретный 20 июня 2016 года [-]

Благодарю. Я думал о твоих вопросах. Возможно, я неправильно понимаю вас, но я думаю, что ответ, вероятно, да для обоих. Поэтому мы должны попытаться выбраться из средневековья, придумывая новые теории, критикуя и проверяя их, как физику. Но, может быть, это должны делать только физики. В то же время инженеры должны сосредоточиться на том, чтобы иметь возможность четко общаться с лучшими инструментами, которые в настоящее время доступны (часть которых ограничивает их желание изобретать)


alankay1 21 июня 2016 г. [-]

Инженерия - это замечательно, но подумайте о том, что произошло после того, как была изобретена настоящая наука
Сегодняшняя «информатика» гораздо больше похожа на «библиотечную науку», чем она должна быть с одной стороны, и слишком сильно совпадает с инженерной с другой (и обычно это не очень хорошая инженерия).

Прошло время для нашего не совсем поля, чтобы расти более важными способами.



дискретный 21 июня 2016 [-]

Согласовано. Это действительно мотивирует, чтобы кто-то, кто несколько раз показывал, что можно сделать, продолжал стремиться к лучшему. Также полезно, когда вы говорите об изобретении спущенной шины, называйте вещи своими именами. Если бы больше людей узнало оба из них, то, возможно, у нас могло бы быть лучшее будущее и более стабильное инженерное настоящее (а не фреймворк / язык недели!)


alankay1 21 июня 2016 г. [-]

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


Natanael_L 20 июня 2016 г. [-]

Информатика определяется теорией информации, и у нас уже есть математические доказательства, связывающие теорию информации с законами квантовой физики (например, пример минимальной энергии, необходимой для стирания одного бита энтропии из памяти, чего-то, что ограничено окружающим температура).


безопасность на 20 июня 2016 года [-]

Вроде, как бы, что-то вроде. Есть немало теорий, работающих на информатику, как мы ее знаем сегодня. Особенно в программном и аппаратном обеспечении. Примерами могут служить разработка на основе моделей, программирование на основе потоков, лямбда-исчисление, конечные автоматы, логические системы и т. Д. Математические модели, включающие в себя структурирование и проверку чего-либо, встроенного в них, могут быть совершенно разными, хотя часто с некоторыми накладывающимися методами или принципами. Также было проделано много работы в системах с высокой степенью надежности, от строгих, математических (даже механических) требований и требований к проектированию до внедрения в HW, SW или обоих. Никто из них не цитирует теорию информации. Черт возьми, аналоговые компьютеры могут быть вне его целиком, учитывая, что они реализуют определенные математические функции с непрерывной работой над реалами.
Поэтому, учитывая, что я не изучаю или не читаю, мне действительно любопытно, есть ли у вас или у кого-либо еще ссылки на то, как теория информации влияет на реальную разработку программного обеспечения на протяжении многих лет. Я изучаю множество формальных методов и обобщающих исследований, но даже не вижу упомянутой фразы. Я представлял, что в своей маленькой области он работает на строго теоретическом уровне, делая абстрактные или конкретные наблюдения за компьютерами. Просто не вижу их вне криптографических материалов, которые я читал.

РЕДАКТИРОВАТЬ, чтобы добавить пример ниже, где Бертран Мейер представляет Теорию программ, которая связывает все это с базовой теорией множеств.

https: //bertrandmeyer.com/2015/07/06/new-paper-theory-of-pro ...



alankay1 20 июня 2016 г. [-]

С уважением ... Я думаю, вы упустили смысл моего ответа.


Natanael_L 20 июня 2016 г. [-]

Намеревались ли вы сравнить прогресс и формализацию полей? Не подхватил это


alankay1 20 июня 2016 г. [-]

Да, это было то, что я ехал. Любой мог заниматься физикой в ​​средние века - им просто нужно было получить заостренную шляпу. Спустя несколько веков после Ньютона, внезапно пришлось выучить много сложных вещей, но это того стоило, потому что результаты более чем окупили новые уровни усилий.


wdanilo 20 июня 2016 г. [-]

Привет, Алан! У меня есть некоторые предположения относительно предстоящего большого изменения парадигмы (и я верю, что это произойдет раньше, чем позже):
1. сосредоточиться на обработке данных, а не на императивном мышлении (особенно функциональное программирование)

2. абстракция над параллелизмом и распределенными системами

3. интерактивное сотрудничество между разработчиками

4. разработка, доступная для гораздо более широкой аудитории, особенно для специалистов в предметной области, без ущерба для опытных пользователей

На самом деле стартап, в котором я работаю, нацелен именно на это. Мы создали чисто функциональный визуальный <-> текстовый язык Luna ( http://www.luna-lang.org ).

Под визуальным <-> текстовым я подразумеваю, что вы всегда можете переключаться между кодом, графиком и наоборот.

Что вы думаете об этих предположениях?



alankay1 21 июня 2016 г. [-]

Что если «данные» - действительно плохая идея?


ричички 21 июня 2016 года [-]

Данные как это предложение? Или все остальные предложения в этом чате? Мне трудно считать «данные» плохой идеей, то есть если данные == информация, записи вещей, известных / произнесенных в определенный момент времени. Не могли бы вы подробнее рассказать о данных как о плохой идее?


alankay1 21 июня 2016 г. [-]

Что такое «данные» без интерпретатора (и когда мы отправляем «данные» куда-либо, как мы можем отправить их, чтобы сохранить их значение?)


ричички 21 июня 2016 года [-]

Данные без переводчика, безусловно, подлежат (многократному) толкованию :) Например, последствия вашего предложения мне не были ясны, несмотря на то, что оно на английском языке (очевидно, не указано иное). Некоторые метаданные указали мне, что вы это сказали (стоит ли верить этому?) И когда. Но это, кажется, вопросы качества представления / передачи / происхождения (согласованные, важные), а не критика данных как идеи. Да, есть понятие достаточности («42» - это не данные).
Данные - это старая и фундаментальная идея. Машинная интерпретация неструктурированных или недостаточно структурированных данных подпитывает тонну полезности для общества. Ни один из входов в наши сенсорные системы не сопровождается объяснениями их значения. Данные - что-то дано, кажется исходным материалом для всего остального интересного, а интерпретаторы второстепенны и, возможно, существенно различаются.



alankay1 21 июня 2016 г. [-]

Есть много «старых и фундаментальных» идей, которые больше не годятся, если они когда-либо были.
Дело в том, что вы смогли найти переводчика предложения и задать вопрос, но оба они были разделены. Для важных переговоров мы не отправляем телеграммы, мы посылаем послов.

В этом вся суть объектов, и для меня по-прежнему удивительно, что реальные потребности и практические потребности до сих пор вообще не поняты. Объединение интерпретатора для сообщений не препятствует тому, чтобы сообщение было отправлено для других возможных интерпретаций, но просто должен быть процесс, который может извлечь сигнал из шума.

Это особенно актуально для вашего последнего абзаца. Пожалуйста, особенно хорошо подумайте о том, что вы принимаете как должное в своем последнем предложении.



ричички 21 июня 2016 года [-]

Без «идеи» данных мы не могли бы даже поговорить о том, что интерпретируют интерпретаторы. Как это может быть «действительно плохой» идеей? Данные не должны сопровождаться переводчиком. Я не говорю, что переводчики не важны / неинтересны, но они разные. Я также не говорил и не подразумевал, что данные по сути имеют смысл.
Возьмите поток данных с сейсмометра. Сейсмометр может просто записать поток данных. Это может положить их на диск. Совершенно отдельно от этого, какой-либо человек или процесс, учитывая только цифры и происхождение (эти цифры взяты из сейсмометра), может заявить, что "наступает землетрясение". Но ни один объект не послал «сообщение о землетрясении». Сейсмометр не «знает» о приближающемся землетрясении (равно как и земля, источник «сообщений», которые он записывает), поэтому он не может отправить «сообщение», включающее это «значение». Нет никаких переговоров или прямой связи между источником и интерпретацией.

Вскоре мы утонем в мире IoT-датчиков, отправляющих данные с тегами контекста или происхождения, но в остальном не содержащие семантических данных (обязательно из-за ограничений, без сопровождающих интерпретаторов), последствия которых будут определяться только последующей статистической обработкой, агрегированием и т. Д., не семантические сообщения.

Если вы хотели передать «одни данные - слабые сообщения / послы», хорошо, хорошо. Но более богатые сообщения просто снизятся в большем количестве данных (метаданные контекста, семантические теги, все больше данных). То же самое, как сказал кто-то другой, любой сопровождающий интерпретатор (например, байт-код? - больше данных, требующих интерпретации / исполнения). Данные остаются совершенно полезной и более фундаментальной идеей, чем «сообщение». В любом случае, я думал, что мы говорим о данных, а не об объектах. Я не думаю, что существует конфликт между этими идеями.



alankay1 21 июня 2016 г. [-]

2-й абзац: откуда они знают, что они даже кусочки? Откуда они знают, что биты должны быть числами? Что за цифры? Относительно чего?
И т.д



ричички 21 июня 2016 года [-]

Это противоречит общепринятому и историческому использованию слова «данные» для обозначения недифференцированных битов / каракулей. Это означает факты / наблюдения / измерения / информацию, и вы должны по крайней мере предоставить ему достаточное форматирование и метаданные, чтобы соответствовать этому определению. Тот факт, что большинство данных требует некоторого участия человека для интерпретации (например, указание правильной программы на правильные данные), никоим образом не отрицает ее полезности (мы узнали много нового о вселенной, записывая данные и анализируя их на протяжении веков), даже хотя это может быть недостаточно для какой-либо системы начальной загрузки, которую вы себе представляете.


ммллер 22 июня 2016 года [-]

Я думаю, что Алан понял, что то, что вы видите как «данные», на самом деле является лишь сигналом и сигналом; волновая модель, например, но даже называя ее «волновой моделью», предлагает интерпретацию. Я думаю, что он пытается объяснить, что существует нечто, порождаемое чем-то, но для этого нужно что-то другое - переводчик - чтобы вообще считать это «данными». Как вы сказали, существует множество способов интерпретировать это явление, но рассмотрение «данных» как неустранимых упускает этот момент, потому что концепция данных требует, чтобы интерпретатор даже называл это так. Само его существование в качестве концепции от сигнала предполагает интерпретацию. И я думаю, что он, возможно, понял: «Давайте сделаем эти отношения явными». Дон» • навязать единственную интерпретацию сигнала, сделав «данные» неприводимыми. Раскройте интерпретацию, сделав ее явной, наряду с сигналом, о том, как можно спроектировать систему, которая сохраняет, обрабатывает и передает данные.


ричички 23 июня 2016 года [-]

Если мы не можем договориться о том, что означают слова, мы не можем общаться. Это обсуждение подрывается различными значениями для «данных», без цели. Вы можете, конечно, вместо этого прислать мне программу, которая (лучше?) Объясняет себя, но я не доверяю вам настолько, чтобы запустить ее :)
Определяющим аспектом данных является то, что они отражают запись некоторых фактов / наблюдений вселенной в определенный момент времени (это то, что означает «данные», и имелось в виду задолго до того, как программисты существовали и начали применять их к любым случайным обновляемым битам, которые они помещают на диске). Вторым критическим аспектом данных является то, что они ничего не делают и не могут ничего сделать , т.е. Третий аспект заключается в том, что он не меняется. Эта статическая природа важна, и что делает данные «хорошей идеей», где «хорошая идея» - это абстракция, которая соотносится с реальностью - люди записывают наблюдения, а эти записи (из прошлого) являются данными. Если не считать этого разговора, если вы говорите, что у вас есть какие-то данные, я знаю, что вы имеете в виду (некоторые записанные наблюдения).

Ничто в идее «данных» не подразумевает отсутствие форматирования / маркировки / использования общего языка для передачи фактов / наблюдений, фактически это требуется. Данные - это не просто сигнал, и поэтому у нас есть две разные идеи / слова. «42» само по себе не является фактом (датумом). Что представляет собой минимальную достаточность «данных» - это полезный и интересный вопрос. Например, данные должны всегда включать время, каковы компромиссы между маркировкой, являющейся внутриполосной или внеполосной, для каждого типа данных или набора данных, как обрабатывать происхождение и т. Д. Это не имеет ничего общего с данными как идеей и всем, что связано с представлением данные хорошо.

Но приравнивать любую такую ​​маркировку к более общей интерпретации - ошибка. Например, положив факты в динамикуИнтерпретатор (тот, кто может ответить на один и тот же вопрос по-разному в разное время, смешать факты с мнениями / выводами или иметь последствия), безусловно, превосходит (и нарушает) идею данных. Именно поэтому нам нужна идея данных, чтобы мы могли различать и говорить о том, когда это происходит и не происходит - имею ли я дело с фактами, неизменным наблюдением прошлого («король мертв») или просто временным (производные) мнения («может быть бунт»). Рассмотрим разницу между расчетом, включающим (несколько раз) факт (дата рождения) по сравнению с обновлением в реальном времени (возраст). Последний может давать результаты, которые не суммируются. «дата рождения» - это данные, а «возраст» (если не определен во времени, «с момента») - нет.

Взаимодействуя с послом, можно узнать или не узнать факты, а также получить разные ответы в разное время. И всегда нужно бояться, что какой-то вопрос, который вы зададите, начнет войну. Наука не могла бы произойти, если бы потребление и рассуждение о данных имели такую ​​невоспроизводимость и риск.

«Данные» - это не универсальная идея, то есть единственная изначальная идея, которая охватывает все вещи. Но идея о том, что динамические объекты / послы (независимо от их другой полезности) могут заменить факты (данные), является плохой идеей (не соответствует действительности). Факты - это вещи, которые произошли, и вещи, которые произошли, произошли (не являются мнениями), не могут измениться и не могут привести к новым эффектам. Данные / факты никоим образом не являются динамическими (они нарастают, вот и все). Иногда нам нужны факты, а иногда мы хотим, чтобы кто-то их обсуждал. Вот почему есть несколько хороших идей.

Данные - такая же плохая идея, как цифры, факты и учет. Все это отличные идеи, которые могут быть реализованы более или менее хорошо. Я бы, конечно, согласился с тем, что данные (поддержание фактов) до сих пор плохо запутываются в программировании и несут немалую часть вины за объектно-ориентированное программирование.



pefimo 23 июня 2016 г. [-]

Почему вы ограничиваете значение «данными» фактами и / или наблюдениями?


ричички 23 июня 2016 года [-]

«датум» означает «данная вещь» - факт или предполагаемый факт.
www.dictionary.com/browse/datum



Джонатанлок 22 июня 2016 г. [-]

Я думаю, что в Науке Процесса, которая связана как желаемая цель, все обязательно должно быть динамическим объектом (или, возможно, чем-то похожим на это, но более размытым или более реляционным или отличным в некотором другом смысле, но определенно динамическим), потому что данные сами по себе статичен, а сам мир - нет.


jsprogrammer 23 июня 2016 г. [-]

Ваш выбор данных является произвольным.
Мало того, что ваше восприятие основано на переводчике, но как вы можете быть уверены, что вам даже дали все соответствующие биты? Или даже то, что биты действительно означали / являются?



madmax96 26 июня 2016 г. [-]

Конечно, выбор данных является произвольным - но Рич дает нам определение, которое он дает совершенно ясно и использует последовательно. Все определения можно считать произвольными. Он не утверждает, что у нас есть все соответствующие биты данных или что мы можем быть уверены, что эти данные действительно означают или представляют.
Но мы можем изложить эту проблему в целом. ВЛюбыеЭксперимент, где мы собираем данные, как мы можем быть уверены, что собрали достаточное количество для обоснования выводов (и даже если мы используем статистические методы, которые наши базовые предположения действительно соответствуют реальности) и что мы накопили все необходимые компоненты? То, к чему вы действительно стремитесь, является __epistemological__ проблемой.

Моя школа мысли заключается в том, что единственный способ продолжить - это приложить все усилия с имеющимися у нас данными. Мы будем делать ошибки, но это лучше, чем альтернатива (не экстраполируя данные).



jsprogrammer 27 июня 2016 г. [-]

Я надеюсь, что мы можем сделать все возможное, но я просто не уверен, что есть действительно удовлетворительный способ определить / измерить / судить, что мы на самом деле сделали это ....


паника 21 июня 2016 года [-]

Разве интерпретатор не сам кодирует данные в том смысле, что он не имеет смысла без чего-либо (машины) для его запуска? Как избежать необходимости присылать переводчика для переводчика и так далее?


alankay1 21 июня 2016 г. [-]

Да, так что подумайте, как сделать так, чтобы это "красиво" работало в Межгалактической сети ...


Джонатанлок 22 июня 2016 г. [-]

Это не может быть черепахами, так что, может быть, теория множеств?


alankay1 22 июня 2016 г. [-]

Хороший вопрос, не так ли?
Для параллельных идей и ситуаций, взгляните на Lincos
https://en.wikipedia.org/wiki/Lincos_(artificial_language)



Brutuscat 24 июня 2016 г. [-]

Спасибо! Я начал думать об этом тоже благодаря роману Карла Сагана «Контакт». Это было первое, что пришло в голову.
Теперь вопрос в том, что если есть «объекты» более продвинутые, чем другие, и что, если advanced-object отправляет сообщение, скрывающее троянского коня? Я думаю, что этот вопрос также был поднят в романе / фильме тоже ...

Я думаю, что это реальная и практическая пробка для развития этой концепции ...



ммллер 22 июня 2016 года [-]

Спасибо за ссылку. Я пытался думать в этом направлении.


Джонатанлок 30 июня 2016 года [-]

Ух ты. Благодарю.


ontouchstart 21 июня 2016 г. [-]

Я думаю, что объект - очень мощная идея, чтобы обернуть «локальный» контекст. Но в сетевой (коммуникационной) среде все еще сложно обрабатывать «удаленный» контекст с объектом. Вот почему у нас есть API и издержки сериализации / десериализации.
В идеальном однородном мире smalltalk это менее значимая проблема. Но если вы хотите, чтобы машина Windows общалась с Unix, удаленный контекст становится проблемой.

В принципе, мы можем отправить виртуальную машину Windows вместе с сообщением из Windows и виртуальную машину Unix (docker?) С сообщением из Unix, если это решение.



alankay1 21 июня 2016 г. [-]

Вот почему «объекты будущего» должны быть послами, которые могут вести переговоры с другими объектами, которые они никогда не видели.
Думайте об этом как об одном из последствий масштабного масштабирования ...



ontouchstart 21 июня 2016 г. [-]

В соответствии с этой логикой, возможно, будущее ИИ - не «машинное обучение из больших данных» (много модных слов), а компьютеры, которые генерируют интерпретаторы времени выполнения для нового контекста.


alankay1 21 июня 2016 г. [-]

Это не «большие данные», а «большое значение»


Яновт 21 июня 2016 года [-]

Когда связь с высокой пропускной способностью вездесуща, действительно ли «портативность» интерпретатора что-то для оптимизации?


alankay1 21 июня 2016 г. [-]

Как вы можете найти это?
Ассоциация между «образцами» и интерпретацией становится «объектом», когда это является частью более широкой схемы. Когда у вас есть только биты и вы отправляете их куда-то, у вас даже нет «данных».

Даже с чем-то вроде EDI или XML, подумайте о том, какие знания и процессы действительно необходимы для выполнения даже самых простых задач.



Джонатанлок 22 июня 2016 г. [-]

Похоже на проблему установления контакта с инопланетной цивилизацией. Определенно установим теорию, простые числа, арифметику и так далее ... Думаю, в какой-то момент объекты будут оснащены общим интеллектом для таких переговоров, если они будут настоящими цифровыми послами!


alankay1 22 июня 2016 г. [-]

Да, посмотрите на Lincos
https://en.wikipedia.org/wiki/Lincos_(artificial_language)


DigitalJack 22 июня 2016 г. [-]

Мне трудно понять, как будут выглядеть эти переговоры. Особенно с объектами, которые не сталкивались друг с другом. Это кажется огромной проблемой.
Я действительно ничего не знаю о микробиологии, но, возможно, я поднимаюсь по лестнице абстракции к маленьким насекомым, таким как муравьи. Там явно идут переговоры и общение, но я должен думать, что это довольно хорошо. Даже если один муравей столкнулся с другим муравьем и ему нужно было сообщить, где находится еда, он имеет фиксированный набор семантики, которая уже понятна обеим сторонам.

Или с пчелами, занимающимися танцами общения. Я понятия не имею, выходит ли сообщение за рамки «еды здесь» или «нам нужно решить, кого отправить».

Кажется, вам нужно научиться предмету, чтобы действительно договориться с чем-то, с чем он раньше не сталкивался. Может быть, я делаю вещи слишком сложно.

Может быть, «мы можем общаться» - это первые переговоры, а если нет, то сдавайся.



alankay1 22 июня 2016 г. [-]

Стоит подумать об аналогии с TCP / IP - какая самая маленькая вещь, которая может быть универсальной, позволит всему остальному случиться?


ммллер 23 июня 2016 года [-]

Я помню, как однажды после прослушивания одного из ваших выступлений о TCP / IP как об очень хорошей ОО-системе и размышления над вопросом о том, как сделать такое программное обеспечение, возникла идея: «Перевод как вычисление». Я комбинировал концепцию, согласно которой реализованный протокол TCP / IP предназначен для трансляции между системами с коммутацией пакетов, поэтому семантический протокол TCP / IP будет представлять собой систему, которая транслирует между различными моделями компьютеров, хотя, с точки зрения моего мастерства, лучше всего Я мог бы представить, что это «компиляторы как переводчики», которые, я думаю, не сокращают это, потому что компиляторы не воплощают модель машины. Они предполагают это. Однако, возможно, нет необходимости явно сообщать модели машин, так как такая система может переводить их между собой. что значит государство Это может включать моделирование состояния для удовлетворения требований локальной операции, когда происходит фактическое состояние, и в конечном итоге будет сообщено. Я слышал, вы ссылаетесь на ситуационное исчисление Маккарти. это.


Яварамин 23 июня 2016 г. [-]

Ну, есть старая модель компонентных объектов и кузины ... в рамках этой модели объект встречая новый объект б будет, по существу, спросить : "Мне нужна эта служба выполняется, вы можете выполнять это для меня? Если b может выполнить услугу, a использует его; если нет, то нет.
Другая техника, которая приходит мне в голову, - это теория типов ... здесь, вместо объектов, мы будем говорить в терминах значений и функций, которые имеют типы. Так, например, функция a, сталкивающаяся с новой функцией b , проверит тип b и, таким образом, выяснит, сможет ли он / должен вызывать ее или нет. Например, b может вызываться toJson и иметь тип (в нотации Haskell) ToJson a => a -> Text , поэтому функция a знает, что если она может дать toJson любое значение, имеющее экземпляр класса типов ToJson, она получит обратно Текстовое значение или другими словами toJson является функцией кодировщика JSON, и поэтому может захотеть вызвать ее.



ontouchstart 21 июня 2016 г. [-]

Алан, как ты относишься к Olive Executable Archive? https://olivearchive.org/


ммллер 23 июня 2016 года [-]

Интернет-архив ( http://archive.org ) делает то же самое. В них хранится старое программное обеспечение, которое вы можете запускать в онлайн-эмуляторах. Жаль только, что у них не было инструкций по использованию эмуляторов. Старые клавиатуры и контроллеры не такие, как сегодня.


ontouchstart 23 июня 2016 г. [-]

Вот еще один пример: https://news.ycombinator.com/item?id=11155203


alankay1 22 июня 2016 г. [-]

Их большие цели важны.


ontouchstart 22 июня 2016 г. [-]

Как вы думаете, они на правильном пути к своим более крупным целям?


alankay1 22 июня 2016 г. [-]

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

В другом месте этой AMA я упоминал пример этого: воскрешенный образ Smalltalk от 1978 года (с диска, который выбросил Xerox), который было довольно легко вернуть к жизни, поскольку он уже был виртуализирован «на вечность»).

Это еще один пример «попытки думать о масштабировании» - в данном случае временно - при построении систем ....

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



ontouchstart 22 июня 2016 г. [-]

Я согласен с тем, что идея «изображения» является более мощной, чем идея «данных».
Однако со времени революции ПК мейнстрим, похоже, пошел по пути «данных» по каким-либо техническим или нетехническим причинам.

Как вы представляете себе «возвращение» пути изображения путем обхода пути данных или слияния с ним в не столь отдаленном будущем?



alankay1 22 июня 2016 г. [-]

На протяжении всей истории нет никакого объяснения тому, что «мейнстрим» решает верить и делать. Многие (ошибочно) думают, что «дарвиновские процессы» оптимизируются, но любой биолог скажет, что они только «стремятся соответствовать окружающей среде». Так что если ваше окружение слабое или неинтересное ...
Это также приобретает «мышление», и людям потребовалось много времени, чтобы даже представить мыслительные процессы, которые могли бы быть сильнее культурных.

У нас они были всего несколько сотен лет (с несколькими интересными замечаниями в прошлом), и они определенно не являются «мейнстримом».

Хорошие идеи, как правило, требуют времени, чтобы их иметь и развивать - поэтому, когда у основного потока будет достаточно большое бедствие, чтобы заставить его задуматься об изменениях, а не о большем количестве циклов, он все равно не выделит достаточно времени для действительно хороших изменений.

В Parc изобретения, которые сделали его довольно невредимым, были теми, для которых действительно не было никакой альтернативы и / или никто уже не делал: Ethernet, GUI, части Интернета, лазерный принтер и т. Д.

С другой стороны, идеи программирования были - я буду утверждать - немного лучше, но (а) большинство людей думали, что они уже знают, как программировать, и (б) Intel, Motorola думали, что они уже знали, как проектировать процессоры, и не были заинтересованы в создании 16-битных микрокодированных процессоров, которые позволили бы языкам высокого уровня в Parc хорошо работать в 80-х годах.



ontouchstart 22 июня 2016 г. [-]

Похоже, что барьеры для входа в аппаратные инновации становятся все выше и выше из-за высокого промышленного риска. В то же время барьеры для входа в программное обеспечение становятся все ниже и ниже из-за улучшения инструментов как программного, так и аппаратного обеспечения.
С другой стороны, из-за экспоненциального роста зависимости от программного обеспечения «плохие идеи» в разработке программного обеспечения все труднее и труднее удалить, а социальная стоимость программных инноваций «зеленого поля» также становится все выше и выше.

Как мы решим эти проблемы в будущем?



alankay1 22 июня 2016 г. [-]

Я не знаю.
Но, например, возможности для «параметрических» параллельных вычислительных решений (с помощью FPGA и других настраиваемых HW) даже не были поцарапаны (слишком много людей пытаются сделать что-либо из обычных вещей).

Некоторые из модулей FPGA (например, BEE3) вставляются в слот Blades и т. Д.

Точно так же ничто не мешает созданию нового ПО независимыми способами (это означает, что исходные зависимости, которые можно подключить к текущему миру, могут быть организованы так, чтобы их можно было постепенно удалять, а новые вещи не обязательно должны иметь такие же вредные зависимости). ).

Например, многое можно сделать, особенно на кривой обучения, если, например, подмножество Javascript в браузере (и т. Д.) Действительно можно рассматривать как «достаточно быструю часть оборудования» (с не очень хорошим дизайном) - и просто "не трогай его руками". (Это в некотором смысле ужасно, но на самом деле это вопрос «на самом деле не писать« машинный код »»).

Часть этого заключается в том, чтобы признать коробку, но не принять, что коробка неизбежна.



ontouchstart 23 июня 2016 г. [-]

Спасибо Алан за твою глубокую мудрость и кристальное видение.
Это лучший онлайн разговор, который я когда-либо испытывал.

Это также напомнило мне вдохновляющие разговоры с Джеромом Брунером в его квартире в Нью-Йорке 15 лет назад. (В то время я работал над каким-то проектом с группой по социальной психологии NYU его жены.) студент, я никогда не думал, что смогу так заинтересоваться интернетом и образованием в духе Ликлайдера и Дуга Энгельбарта.

謝謝.



alankay1 23 июня 2016 г. [-]

Вы, наверное, знаете, что наш общий друг и наставник Джерри Брунер мирно скончался во сне несколько недель назад в возрасте 100 лет, и большая часть его радости была прекрасно с ним. Там никогда не будет другого Джерри.


ontouchstart 23 июня 2016 г. [-]

Действительно, никогда не будет другого Джерри.
ПОКОЙСЯ С МИРОМ

https://en.wikipedia.org/wiki/Jerome_Bruner

http://www.law.nyu.edu/news/in-memoriam-jerome-bruner



valarauca1 23 июня 2016 г. [-]

> Пожалуйста, особенно хорошо подумайте о том, что вы принимаете как должное в своем последнем предложении.
Какой-то смысл может быть только интерпретацией модели / сигнала?



ontouchstart 21 июня 2016 г. [-]

Информация в «энтропийном» смысле объективна и бессмысленна. Значение существует только в контексте. Если мы думаем, что «данные» представляют информацию, «интерпретаторы» приносят нам контекст и, следовательно, значение.


JSA-антенна 23 июня 2016 года [-]

Спасибо - я начал задаваться вопросом, понимал ли кто-нибудь в этом разговоре это. Это действительно ключ к осмысленному (!!) продвижению вперед в этом деле.


сандал 22 июня 2016 года [-]

Чем больше смысла вы упаковываете в сообщение, тем сложнее его распаковать.
Так что между этим «легко обрабатывать» и «выразительным» есть свой неотъемлемый компромисс - и я думаю, что решение, на какую сторону вы хотите опираться, зависит от контекста.

Проверьте это для практического примера: https://www.practicingruby.com/articles/information-anatomy

(не статья на Ruby, а о существенной структуре сообщений, слабо вдохновленной идеями Геделя, Эшера, Баха)



олантонан 23 июня 2016 года [-]

Итак, идея в том, чтобы всегда отправлять переводчика вместе с данными? Они должны всегда путешествовать вместе?
Интересно. Но на практике интерпретатор должен быть написан так, чтобы он работал на всех целевых системах. Мир не создан для этого, хотя так и должно быть.

Хм, теперь я понимаю вашу мысль о том, что HTML идиотский. Это должно быть описание вместе с инструкциями по его разбору и отображению (?)



alankay1 23 июня 2016 г. [-]

TCP / IP «написан таким образом, что он работает на всех целевых системах». Это отчасти сработало, потому что это было рано, отчасти потому, что оно маленькое и простое, отчасти потому, что оно не пытается определять структуры на реальных сообщениях, а только минимальные на «конвертах». И отчасти из-за "/", который не навязывает ни одной теории.
Это - и «Интернет» Parc PUP, который предшествовал ему и оказал на него влияние - примеры попыток организовать вещи так, чтобы модули могли взаимодействовать повсеместно с минимальными предположениями с обеих сторон.

Следующий шаг - организация минимальной основы для интер-смыслов - не только для межсетевого взаимодействия - в 70-х годах задумывался над тем, как работали над идеями систем связи, но был достаточно сторонним и недостаточно зрелым. быть частью аппарата, когда "День флага" произошел в 1983 году.

Каков минимальный «материал», который может быть частью «TCP / IP» устройства, который может позволять отправлять «значения», а не только биты, и какие предположения необходимо сделать на принимающей стороне, чтобы гарантировать безопасность передаваемый смысл?



solidsnack9000 от 24 июня 2016 г. [-]

Разве какой-то IDL будет недостаточно, чтобы позволить отправлять значения?


олантонан 23 июня 2016 года [-]

Сейчас уже поздно, чтобы исправить.


alankay1 23 июня 2016 г. [-]

Я не думаю, что уже слишком поздно, но это потребует довольно значительных изменений в общем компьютерном сообществе в отношении вычислений, масштабирования, видений и целей.


ммллер 21 июня 2016 года [-]

Посмотрите здесь:
https: //tekkie.wordpress.com/2010/07/05/sicp-what-is-meant-b ...



ричички 21 июня 2016 года [-]

Данные, а также все человеческое понимание и знания, полученные из записи, измерения и анализа данных, предшествуют вычислениям, поэтому я не вижу актуальности этих последних, ориентированных на программирование понятий, в обсуждении их ценности.


asolove 22 июня 2016 г. [-]

Не скажет ли мистер Кей, что именно образование строит преемственность человеческого понимания? Греческая философия и астрономия сохранились в мусульманском мире, а не в европейском, хотя оба обладали множеством текстов, потому что только у первого была система образования, которая могла бы заставить ум думать таким образом, чтобы понимать и дополнять данные. В конечном счете, каждый кусок данных зависит от каждого поколения людей, которые снабжают достаточное количество своих детей мышлением, способным использовать его разумно.
Ценность данных определяется интеллектом тех, кто их интерпретирует, а не теми, кто их записал.

Конечно, эта динамика иногда бывает положительной. Вавилоняне вели отличные астрономические записи, хотя, по-видимому, мало что понимали в теории. Греки с отличным пониманием геометрии очень быстро используют эти данные. Но если бы им пришлось ждать, чтобы собрать данные самостоятельно, можно представить, что они долго ждали.



ммллер 24 июня 2016 года [-]

Этот вид проникает в философию, но метафора, которую я придумал для размышления об этом (другая фраза для этого - «мысленный эксперимент»):
Если я говорю что-то со скалой, что это за скала? Это «сигнал» или «данные»?

Делая концепцию немного более интересной, что если я резонирую рок со звуковой частотой? Что это за скала? Это «сигнал» или «данные»?

До тех пор, пока не был найден Розеттский камень, египетские иероглифы были не поддающимися расшифровке. Могут ли данные все же быть получены от них? Конечно. Исследователи могли определить, какие пигменты использовались и / или какие инструменты использовались для их создания, но они не могли понять сообщения. До этого момента это не были «данные». Это был «шум».

Я надеюсь, что у меня нет впечатления, что я постмодернист, который говорит здесь: «Данные бессмысленны». Это не то, что я говорю. Я говорю, что значение не самоочевидно из сигнала. Концепция данных требует способности интерпретировать сигнал для значения, которое будет приобретено.



Мемпко 23 июня 2016 года [-]

Компьютерные вычисления существуют тысячи лет. Сейчас у нас есть машины, которые делают некоторые из них.


david927 от 23 июня 2016 г. [-]

Что, если «данные» - действительно отличная идея?


NotUsingLinux 23 июня 2016 г. [-]

Ваш блог выглядит очень интересно. Вы должны поделиться некоторыми ссылками здесь на hackernews!


ммллер 24 июня 2016 года [-]

Благодарю. Я делюсь этим везде, где я думаю, что это добавит к обсуждению.


Айоши 22 июня 2016 года [-]

Да, я думаю, что если бы мы могли избавиться от этого понятия, мы, вероятно, могли бы двигаться в интересных направлениях. Другой способ взглянуть на это: если мы возьмем какой-либо объект достаточной сложности во вселенной, как он может взаимодействовать с другим объектом достаточной сложности? Если мы посмотрим на людей как на устройства дополнения первого порядка для других людей, то заметим, что разница между уровнями сложности их внутреннего состояния намного выше, чем уровень сложности ввода на любом достаточно маленьком временном интервале (какими бы измерениями вы ни решили брать). По сути, все состояние кодируется внутренне, посредством последовательного недифференцированного ввода. В этом смысле, например, - нейронные сети не работают с данными как таковыми, данные предполагают внутреннюю структуру, которая отсутствует на входе с точки зрения самой сети. Это оно Работа по преобразованию этого в нечто, что мы можем разумно назвать «данными». Более того, это знание закодировано во внутреннем состоянии, по сути являясь связанным «интерпретатором». Еще один аспект, который мне нравится думать, заключается в следующем: у ТРИЗ есть концепция идеального устройства, которое выполняет свою функцию с минимальными затратами, лучше всего чтобы функция выполнялась сама собой, в отсутствие какого-либо устройства. Если мы представляем, что компьютер (в очень общем смысле) является таким устройством, само собой разумеется, что в идеале он потребует минимального или даже никакого ввода. Очевидно, это означает, что нам не нужно кодировать значение или интерпретацию в него посредством направленного формального ввода. Единственный способ, которым это может произойти, - это чтобы компьютер имел достаточно сложное внутреннее состояние, способное к преобразованию направленных, или даже самоприобретенный вклад в то, что мы можем в конечном итоге назвать «данными». Эта логика могла бы быть применена к некоторому минимальному объекту - мы могли бы искать модуль, способный выполнять определенную функцию на определенном диапазоне входов, создавая значение из его внутреннего состояния. Тогда вторая задача состоит в том, чтобы найти способ составления этих объектов при условии, что они не имеют общего внутреннего состояния, и создать системы, в которых комбинация этих состояний создаст более широкое возможное поле деятельности. Третий интересный вопрос: как мы можем построить внутреннее состояние другого объекта, при условии, что мы хотим передать ему входные данные, требующие интерпретации, дальше по линии, наращивая от того минимума, который у нас уже есть. Эта логика могла бы быть применена к некоторому минимальному объекту - мы могли бы искать модуль, способный выполнять определенную функцию на определенном диапазоне входов, создавая значение из его внутреннего состояния. Тогда вторая задача состоит в том, чтобы найти способ составления этих объектов при условии, что они не имеют общего внутреннего состояния, и создать системы, в которых комбинация этих состояний создаст более широкое возможное поле деятельности. Третий интересный вопрос: как мы можем построить внутреннее состояние другого объекта, при условии, что мы хотим передать ему входные данные, требующие интерпретации, дальше по линии, наращивая от того минимума, который у нас уже есть. Эта логика могла бы быть применена к некоторому минимальному объекту - мы могли бы искать модуль, способный выполнять определенную функцию на определенном диапазоне входов, создавая значение из его внутреннего состояния. Тогда вторая задача состоит в том, чтобы найти способ составления этих объектов при условии, что они не имеют общего внутреннего состояния, и создать системы, в которых комбинация этих состояний создаст более широкое возможное поле деятельности. Третий интересный вопрос: как мы можем построить внутреннее состояние другого объекта, при условии, что мы хотим передать ему входные данные, требующие интерпретации, дальше по линии, наращивая от того минимума, который у нас уже есть. было бы найти способ составить эти объекты, при условии, что они не имеют общего внутреннего состояния, и построить системы, в которых комбинация этих состояний создаст более широкое возможное поле деятельности. Третий интересный вопрос: как мы можем построить внутреннее состояние другого объекта, при условии, что мы хотим передать ему входные данные, требующие интерпретации, дальше по линии, наращивая от того минимума, который у нас уже есть. было бы найти способ составить эти объекты, при условии, что они не имеют общего внутреннего состояния, и построить системы, в которых комбинация этих состояний создаст более широкое возможное поле деятельности. Третий интересный вопрос: как мы можем построить внутреннее состояние другого объекта, при условии, что мы хотим передать ему входные данные, требующие интерпретации, дальше по линии, наращивая от того минимума, который у нас уже есть.


alankay1 22 июня 2016 г. [-]

Добро пожаловать в Клод Шеннон! Речь идет не о сообщении, а о получателе ...


JSA-антенна 23 июня 2016 года [-]

На самом деле речь идет об отправителе и сообщении так же, как и о получателе.


Джонатанлок 30 июня 2016 года [-]

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


JSA-антенна 23 июня 2016 года [-]

данные не носитель, это не сигнал (информация), и это, конечно, не смысл (интерпретация). Разумное первое приближение - данные _message_.


мбродерсен 27 июня 2016 г. [-]

Данные семантически определяются процессами, использующими / интерпретирующими их. Не по самим данным. Так что Рич Хики прав, а Алан Кей неправ.


рвикманис 21 июня 2016 года [-]

Извините за уход, но могу ли я получить приглашение?


wdanilo 26 июня 2016 г. [-]

Да, вы можете :) Напишите мне письмо, и я буду рад вам доступ. На данный момент очень ограниченная аудитория допускается.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#74 dyvniy » Вт, 22 октября 2019, 15:48:42

Абстракции
https://habr.com/ru/company/infopulse/blog/185144/
Спойлер
Умение видеть абстракции
Программирование,
C++


Моему сыну, как и многим мальчишкам, нравятся автомобили. Причём чем они больше и необычнее — тем больше нравятся. Когда мы идём по улице, а мимо проезжает эвакуатор или снегоуборочная машина, он неизменно дёргает меня за руку, указывает на заинтересовавший его объект и говорит: «Папа, б-р-р!». Говорит он так потому, что ему один год и вышеуказанные два слова составляют 40% его словарного запаса. Тем ни менее, в общем мысль понятна — обратить внимание на автомобиль. Давайте подумаем, каким образом ребёнок в возрасте 8-10 лет сказал бы своему сверстнику то же самое. Что-то вроде «Ух ты, смотри какая крутая тачка!», да? Мысль та же, но обратите внимание — уже шесть слов вместо двух. И, наконец, представьте, каким образом то же самое скажет человек лет в тридцать: «Эй, смотри, да это же Ferrari California 2008-го года выпуска с двигателем V8 мощностью в 454 лошадиных силы и 7-ми скоростной коробкой-автоматом! Она до сотни разгоняется за 3.9 секунды!». Да, здесь уже больше деталей, но, если вы не автомеханик или фанат Ferrari — они вам скорее всего не нужны и не важны. Основная же мысль — всё та же, что и в «Ух ты, смотри какая крутая тачка!» или «Папа, б-р-р!». Но выражена она уже в 30 слов.

Вы заметили, как абстракция «интересный автомобиль» обросла деталями и нюансами, стала занимать существенно больше места в тексте и времени на понимание, анализ и ответ? То же самое происходит и с программным кодом.

О чём вообще идёт речь

По моему мнению, основная характеристика хорошего программиста это не глубокие знания математики, не 100 лет опыта за плечами, не знания кучи языков и библиотек, не %куча_других_неважных_вещей%, а именно умение видеть абстракции. Не только видеть, конечно, а ещё и проектировать, использовать, исправлять и т.д. Но факт есть факт. Успех какого-нибудь популярного сегодня продукта (подставьте сюда свою любимую ОС, браузер, игру — да что угодно) определён именно тем, насколько хорошо спроектирована его архитектура, насколько хорошо высокоуровневые части отделены от низкоуровневых и друг от друга.

Посмотрите на «умершие» проекты. Очень редко они погибают от того, что программист не смог на 10% повысить скорость работы, или потому что не смогли прикрутить нужную библиотеку. Чаще всего причина закрытия формулируется в духе «существующая архитектура делает принципиально невозможным дальнейшее развитие». Вот она, ошибка в видении абстракций. Кто-то когда-то давно не увидел, что несколько сущностей на самом деле являются одной, или что одна может иметь несколько представлений, или что на самом деле не клиент должен дёргать сервер, а наоборот, или что в протокол неплохо бы заложить возможность расширения — и вот он, грянувший спустя годы гром последствий.

Паттерны

В современном мире программирования есть такая штука как «паттерны». Ну, знаете, книга банды четырёх, всякие там фабрики\синглтоны\обёртки\наблюдатели\фасады\мосты. Отношение программистов к паттернам неоднозначно. Есть лагерь любителей паттернов, которые справедливо утверждают, что это всё — квинтэссенция десятилетий лучшего программерского опыта, проверенные вещи и надо не тормозить, а использовать наработки по полной. И есть лагерь противников паттернов, которые пеняют им на излишнюю сложность (3-5 классов на реализацию одной идеи — вполне типично для средненького паттерна), говорят, что изучение паттернов подобно школьной зубрёжке — когда просто учишь что-то без понимания причин, следствий и вариантов именно целевого использования.

Мне кажется, что дело тут опять-таки в связи паттернов с абстракциями. Некоторые паттерны целостны и однозначно описывают какую-то одну концепцию. Её можно понять, увидеть, реализовать, инкапсулировать в себе. Не важно, один там будет класс, пять или десять — если они формируют некую сущность, которая не зависит от внешнего окружения, которая может быть помещена в отдельный модуль и дальше использована через простой интерфейс — это хороший паттерн.

Другие паттерны являются откровенным мусором. Просто потому, что вот эти два класса находятся в третьем, унаследованы от четвёртого и вызывают методы пятого — они не создают абстракцию. Возможно, они каким-то образом ускоряют код или обходят какое-то ограничение языка, но вот целостной идеи не формируют. Это трудно понять, невозможно запомнить и это вызывает праведный гнев в рациональном мозгу программиста. Примерно как случайный набор слов, не формирующий предложения — у читателя. Пижама сладкий прыгать Луна вопреки быстро люк?

Инструменты

К сожалению, современные средства разработки не дают хороших автоматических средств для того, чтобы видеть абстракции в проекте. Да, вы можете увидеть интерфейсы или абстрактные классы в коде — но не факт, что это то, что составляет настоящую абстракцию. Какой-то определённый слой логики может содержать в себе десятки интерфейсов, а другой — иметь всего один класс (и тот — просто пустая обёртка вокруг чего-то другого). Мы можем с помощью IDE увидеть классы, методы и переменные — но мы не видим реального разделения проекта на слои. Всё остаётся на совести программиста. К счастью, у нас сегодня есть возможность выносить код в отдельные модули, у нас есть пространства имён, интерфейсы, дельные советы по рефакторингу и инструменты для его осуществления. Написать хорошо разделённый на отдельные модули код — возможно. И это важнее, чем написать быстрый код. Конечно, «модульный код» не на 100% равно «идеальный код», но очень и очень к этому близко.

Пример плохого кода

Несколько лет назад был пик популярности текстового редактора Notepad++. Десятки миллионов загрузок, приятный минималистичный интерфейс, плагины. Начало было очень хорошее, ничто не предвещало беды. За последние пару лет данный текстовый редактор сдулся и фактически застопорился в своём развитии. Вот график его загрузок.


В чём же причины? Я не берусь называть их все, но вот одна. Давайте посмотрим на один файл из его исходников.
NppBigSwitch.cpp

Внимательнее разберём некоторые части этого кода.

Непонимание понятия 'имя переменной'.Имя переменной — это не имя регистра процессора. Главная задача имени переменной не адресовать ячейку в памяти, а объяснить, что за данные в ней находятся. Просто для адресации можно было бы один раз в начале выделить массив в памяти и бегать по нему указателями. Именно имя переменной является той абстракцией, которая упрощает понимание кода. Здесь, как видим, не упрощает.

Непонимание работы систем контроля версийСтарому ненужному коду нужно быть удалённым с комментарием в отдельном коммите о том почему он был удалён. Если это ещё не дописанная функциональность — её место в отдельной ветке. Просто так держать нагромождения закомментированого кода в файлах проекта — значит не понимать идеи систем контроля версий.

Непонимания того, где важнее скорость работы программы, а где - скорость работы программистаНичего так размерчик для одной функции, да? Автор, наверное, пытался сэкономить целый десяток наносекунд на вызов каждого отдельного кусочка кода через отдельную функцию. Молодец, сэкономил. И получил код, в котором противно копаться и нужно тратить кучу времени на понимание и исправление.

Непонимания абстракций 'флаг', 'константа', 'магическое число'.Что такое 0xFFFFFFFF, 1, 2 и 30? Ах да, 0xFFFFFFFF — означает что файл был закрыт. Какой чудесный комментарий, как всё наглядно! Было, видимо, очень быстро и удобно просто набросать цифры в код — компилируется ведь. Нет времени объяснять, поехали дальше, да?

Отсутствие абстракции над кодировкамиВ каждом месте, где имеет значение в юникоде скомпилирована программа или нет, мы видим конструкции, нагружающие мозг программиста ненужными в данный момент вещами. Даже в Win32 API, где многие функции имеют юникодную и неюникодную версии мы не думаем каждый раз что вызывать, просто пишем «MessageBox», а благодаря макросам это заменяется на MessageBoxA или MessageBoxW. Это позволяет подняться над данным уровнем, отключить мозг от необходимости помнить об этой детали. Авторам Notepad++ такой путь, видимо, кажется слишком лёгким.

Отсутствие слоя абстракции над UI-примитивами операционной системыКаждый раз, когда нам нужно передвинуть окно, спрятать его или выполнить какое-либо иное действие с элементом интерфейса — дёргаются напрямую функции Win32 API. Никаких библиотек интерфейса, никаких обёрток, классов — ничего. В итоге — куча лишнего и дублирующегося кода, абсолютная непортируемость на другие ОС, все недостатки Win32 API — прямо внутри нашего кода. Причём авторы выставляют такой подход как преимущество продукта, дескать, никаких лишних компонентов! Это просто ужас. Сотые доли процента прироста производительности (в лучшем случае) — и ад в исходниках.

Как результат всего вышеперечисленного, разработка Notepad++ является катастрофически сложным и медленным делом. Мой патч, исправляющий пару важных для меня багов висит в списке «на рассмотрении» уже полгода, вместе с почти 200 другими патчами. Автор, конечно, время от времени что-то из них принимает, но вы сами понимаете — делать это быстро с такой кодовой базой абсолютно невозможно. Мне очень жаль показавшийся мне когда-то хорошим редактор, но вы видите сами — смерть неизбежна.

Пример хорошего кода

Возможно, вам известна такая популярная библиотека как Qt — о ней в последнее время много пишут на Хабре. Я, опять-таки, не берусь утверждать, что знаю лучше всех все причины её успеха, но вот вам одна из них. Вся библиотека построена на прекрасном ядре абстракций: тут есть абстракции от платформы, от сети, от элементов интерфейса ОС, от кодировок, да практически от чего угодно. Взглянув на любой компонент Qt нам не нужно лезть сильно глубоко вниз или вверх, чтобы понять как он работает. Причём всё это не благодаря хорошей документации, а из-за кода самой библиотеки.

Давайте посмотрим на один из заголовочных файлов библиотеки Qt.

qpdfwriter.h
Не пугайтесь возможно незнакомых вам макросов — не о них речь. Я хочу обратить ваше внимание на другую вещь. Заметьте, в этом классе нет приватных свойств. И почти ни в одном другом классе Qt — тоже нет. Вернее, на самом деле в каждом из них есть ровно по одной приватной переменной — это неявно объявленный через макрос Q_DECLARE_PRIVATE указатель на подкласс, в котором уже и находятся все свойства и часть приватных методов. Сделано это по официальному объяснению для обеспечения бинарной совместимости — получается что данный класс в любой версии Qt имеет один и тот же размер (поскольку место для хранения одного указателя константно в пределах платформы) и его можно спокойно передавать туда-сюда между модулями, не боясь каких-нибудь там segmentation fault.

На самом деле для меня вся прелесть этого решения в другом. Смотрите — мы открываем заголовочный файл и что же мы видим? Только публичные методы. Вы впервые видите этот заголовочный файл (да и вообще библиотеку Qt, может быть) — но вы ведь уже поняли, что это за класс и как его использовать, правда? Все внутренности изящно скрыты в приватном подклассе. К сожалению, классический С++ заставляет программиста смешивать в заголовочном файле и то, что нужно внешнему пользователю класса и его внутренности. Но в Qt при чтении заголовочного файла — мы видим чёткое послание от разработчиков Qt: «Внутренности этого класса тебе не нужны. Не твоё дело что там и как, это абстракция — используй её через публичные методы». И это прекрасно, чёрт возьми! Я хочу видеть все библиотеки в подобном стиле. Покажите мне нужные мне вещи сразу и спрячьте ненужные так, чтобы их нужно было искать долго и трудно. За этим подходом будущее, я уверен.

Выводы

Большинство хороших советов для программистов типа «Используйте рефакторинг», «Применяйте хорошие паттерны», «Преждевременная оптимизация — зло», «Не пишите больших функций», «Не заводите глобальных переменных» на самом деле являются выводами из более общего совета «Умейте видеть абстракции».

Приятного программирования.
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#75 dyvniy » Ср, 23 октября 2019, 12:12:18

Пример хорошей команды
https://testitquickly.com/2008/05/30/черная-команда/
Спойлер
Черная команда
30.05.2008 Автор: Алексей Лупан

Цитата из книги Демарко и Листера «Человеческий фактор — успешные проекты и команды«.

Приводится пример понятия «Кристаллизация» — речь идет об эффекте увеличенной производительности, который присущ наиболее работоспособным командам разработчиков.

Причина эффекта — командная работа, всеобщее понимание, признание и осуществление общих целей группы. Результат — неимоверно волшебные, не нарадуешься.

Местные примеры: «IQ labs» в васильковскую эпоху. Или газета «Вечерний Кишинев» в исаевскую эпоху.

Команда, прошедшая кристаллизацию — это группа людей, столь сильно связанных (не веревками), что целое становится больше суммы составляющих его частей. Производительность этой команды выше, чем производительность тех же людей, не перешедших порог кристаллизации. И, что столь же важно, удовольствие от работы также выше, чем можно было бы ожидать, учитывая природу работы.

Как только начинается кристаллизация команды, вероятность успеха очень резко возрастает. Управлять этой стихией — одно удовольствие. Управление в традиционном смысле этого слова им не нужно, и уж точно не нужны дополнительные стимулы. Они уже обладают собственным импульсом.

Кристаллизацию команды обычно сопровождает сильное чувство индивидуальности.

Участники хорошей команды испытывают ощущение элитарности. Они чувствуют, что составляют нечто уникальное, что они выше всякой заурядности. Они проявляют смелость, достойную спецназа, что может отчасти раздражать людей, не входящих в группу.

Собственно, отрывок из книги. Также отмечу то, что в примере указана команда тестировщиков.
Черная команда
На заре времён (скажем так) в штате Нью-Йорк существовала компания, производившая большие синие компьютеры. Компания также выпускала программное обеспечение для этих компьютеров. Клиенты компании были весьма достойными людьми, но, говоря между нами, имели обыкновение препротивно придираться к программам с ошибками. Какое-то время компания прилагала усилия к обучению клиентов, чтобы сделать их более терпимыми к ошибкам. Но из этого ничего не получилось, поэтому пришлось проглотить пилюлю и начать избавляться от ошибок.

Простой и очевидный подход — заставить программистов удалять все ошибки перед сдачей программы. Этот подход по какой-то причине тоже работал не очень хорошо. Похоже, программисты (по крайней мере, в те времена) были в целом слишком хорошего мнения о своих программах. Как они ни старались, найти все ошибки до последней не могли, поэтому часто объявляли о готовности программ, полных изъянов.

Тяжело было обнаружить последнюю ошибку, но некоторые тестировщики справлялись лучше своих коллег. Компания сформировала группу из этих особо одарённых тестировщиков и предоставила ей право окончательного тестирования критических приложений перед отправкой их клиентам. Так родилась легендарная Чёрная Команда.

Изначально в Чёрную Команду входили люди, проявившие себя в тестировании и превосходившие в этом качестве своих коллег. У них было больше мотивации. Они тестировали также и чужой код, поэтому были свободны от когнитивного диссонанса, сковывающего разработчика при тестировании собственных программ. В конечном итоге руководители, сформировавшие команду, ожидали хотя бы скромных улучшений качества продуктов, но не более того. А вот получили они гораздо больше.

Удивительное заключалось не в том, насколько хороша была Чёрная Команда на заре своего существования, а в том, насколько она улучшилась за последующий год. Происходило что-то волшебное: в команде началось формирование индивидуальности. Эта индивидуальность находилась под влиянием оппозиционной философии тестирования, созданной участниками группы. Философия гласила, что они должны желать и ожидать недостатков в программах.

Они вовсе даже не болели за разработчиков, но напротив находили наслаждение в том, чтобы подвергнуть программу (и программиста) испытаниям, которые были бы не просто тестом. Когда программист приносил программу на тестирование в Чёрную Команду, он чувствовал себя, как на аудиенции у Мина Беспощадного (персонаж комиксов, воплощение чистого зла).

Поначалу просто ходили шутки, что тесты Чёрной Команды подлые и скверные и что участникам группы очень нравится, когда код работает неправильно. Затем шутки закончились. Члены команды начали культивировать образ разрушителей. Они разрушали не только ваш код, но и весь ваш день. Они делали нечеловечески несправедливые вещи, чтобы добиться сбоя: перегружали буферы, сравнивали пустые файлы, набирали возмутительные последовательности на клавиатуре. Взрослые мужчины и женщины начинали плакать, когда видели ужасное поведение своих программ в руках сумасшедших врагов. Чем хуже вам приходилось, тем большее удовольствие получала группа тестирования.

Чтобы усилить неприятный образ, участники команды начали носить чёрное (отсюда и название «Чёрная Команда»). Они взяли в привычку страшно фыркать, когда программа давала сбой. Некоторые отращивали длинные усы, которые крутили, подражая Саймону Легри (страшный работорговец из романа «Хижина дяди Тома»).

Они собирались, чтобы придумывать ещё более ужасные тестовые уловки. Программисты начали перешёптываться о душевнобольных из Чёрной Команды.

Что и говорить, компания была в восхищении. Каждый дефект, найденный командой, клиентам уже не суждено было увидеть. Команда стала настоящей удачей. Удачей в качестве подразделения тестирования, но, что более важно для нашего изложения, в качестве социальной ячейки. Люди в команде получали такое удовольствие от своей работы, что коллеги вне команды, несомненно, завидовали им. Чёрная одежда и по-детски глупое поведение были частью этого удовольствия, но происходило здесь и кое-что ещё. Химические процессы внутри группы стали самодостаточными.

С течением времени участники команды время от времени покидали её, чтобы заняться другими вещами. Поскольку функция команды была весьма важна для компании, уходивших людей заменяли немедленно. И так продолжалось, пока в какой-то момент не осталось ни одного из участников первого состава. Но Чёрная Команда продолжала жить. Она пережила потерю всех основателей, но полностью сохранила свою энергию и индивидуальность.
Изображение


Название раздела: Программирование (под Desktop и Android)
Описание: Разработка и отладка приложений. Упор на 3D-графику.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: Ещё смайлики…
   

Вернуться в «Программирование (под Desktop и Android)»

Кто сейчас на форуме (по активности за 15 минут)

Сейчас этот раздел просматривают: 5 гостей