Всем известно о старой поговорке, что лучшие программисты могут быть на порядок лучше, чем в среднем. Я лично видел хороший код и программистов, но никогда не был таким абсурдом. Итак, вопрос в том, какой самый впечатляющий подвиг программирования вы когда-либо видели или слышали?
Вы можете определить впечатляющие по:
Объем поставленной задачи, например, Джон в одиночку разработал основу для своей компании, работу, сопоставимую по масштабам с тем, что делали другие 200 занятых.
Скорость, например, Stu запрограммировал всю ОС для многозадачных приложений в режиме реального времени на неделю, включая собственный компилятор C и инструменты командной строки оболочки
Сложность, например, Джейн повторно разработала наше целое 10-миллионное LOC-приложение для работы в кластере серверов. И она сделала это днем.
Качество, например, в коде Чарльза, количество дефектов в LOC в 100 раз ниже, чем в среднем по компании. Кроме того, он был чистым и понятным для всех.
Очевидно, что чем больше этих характеристик объединено, и чем более экстремальна каждая из них, тем более впечатляющим является подвиг.
Итак, дайте мне это. Какой самый нелепый подвиг ты можешь рассказать? Пожалуйста, предоставьте как можно больше подробностей и постарайтесь избежать городских легенд или преувеличений. Размещайте только то, за что вы действительно можете поручиться.
Бонусные вопросы:
- Был ли геркулесовый задание одним из них, или человек регулярно поражал людей?
- Как вы объясните такие впечатляющие показатели?
- Как программист был признан за такую потрясающую работу?
источник
Ответы:
Хотя я не могу официально подтвердить это, меня всегда впечатлял Крис Сойер, который почти полностью разработал Rollercoaster Tycoon на ассемблере.
источник
Быстрый обратный квадратный корень . Как кто-то может придумать что-то подобное, совершенно вне меня.
источник
Ранние аркадные игры.
Полностью ограничен памятью, вычислительной мощностью, I / O ...
То, что эти программисты достигли в этой среде, было удивительно.
Например, Пакман - Отлично. По-прежнему можно играть после всех этих лет.
источник
Есть один программист, на котором я работаю, который делал следующее более одного раза.
Самым последним примером был проект в нашей группе, который был назначен на 3 человека. Это было сложное LOB-приложение с 6-месячным графиком (это был чрезвычайно агрессивный график).
Началось недельное кодирование: 1 из 3 человек ушел (по личным причинам), а другой ушел в медицинский отпуск. Одинокий оставшийся программист пошел домой, чтобы начать программирование, и вернулся через 3 месяца с заполненным заявлением.
РЕДАКТИРОВАТЬ
Просто чтобы добавить пояснения. Полученный код был почти идеальным, точно отвечающим требованиям, и наша группа по обеспечению качества смогла зафиксировать только 3 дефекта.
источник
Может быть, я просто показываю свой возраст, но я думаю, что некоторые из действительно впечатляющих подвигов программирования игнорируются.
Стив Возняк, Apple Disk II / RWTS
Стив спроектировал аппаратное и программное обеспечение вместе, используя действительно интересные приемы в программном обеспечении, чтобы устранить большую сложность (и стоимость) в аппаратном обеспечении. Обычные дисководы гибких дисков использовали светодиод и фотодатчик возле ступицы диска, чтобы просвечивать сквозь отверстие, пробитое в подложке диска. Выходной сигнал из фотодатчика был подключен к прерыванию процессора, чтобы процессор знал, когда начинать процедуру синхронизации, чтобы дождаться, когда правильный сектор на дорожке окажется под головкой чтения / записи (хотя некоторые использовали «жестко разделенные диски»). там было отверстие, чтобы сигнализировать о начале каждого сектора, а не один для начала дорожки).
Стив исключил это оборудование, разработав программное обеспечение для кодирования данных таким образом, чтобы вы могли начать чтение с произвольного места на диске и не только декодировать сами данные, но и выяснить, где (логически) на дорожке вы были. Дисковод Disk II не имел настройки светодиода / фотодатчика и полностью игнорировал отверстия в гибком диске.
Гордон Летвин, HPFS
Гордон Летвин был архитектором (и программистом) в команде OS / 2. По крайней мере, как я слышал, однажды он ушел в отпуск, чтобы уйти от вещей, и провел три недели (или около того), плавая на своей яхте (да, ранние сотрудники MS могли позволить себе такие вещи ... ) ... но чтобы не скучать, он решил взять с собой ноутбук.
Когда он вернулся, у него была написана, отлажена и работала HPFS - полностью на языке ассемблера Intel 386. Написанный им код в конечном итоге был продан как «HPFS386», который был эксклюзивным (по крайней мере, в то время) для LAN Manager Edition OS / 2. Затем другая команда потратила около шести месяцев на написание версии на C, которая стала «нормальной» HPFS, включенной в обычные выпуски OS / 2 (и после распада IBM и MS, IBM обновила и перекомпилировала код C, чтобы получить их "HPFS386"). Хотя он был изменен и обновлен с тех пор, если бы вы были честны в отношении вещей, NTFS, вероятно, назвали бы «HPFS 2.0» (или, возможно, 3.0) - нет сомнений, что лучшая текущая файловая система Microsoft по-прежнему тесно связана с тем, что он разработал.
Берроуз ленты B220
Они воплотили (по крайней мере IMO) реальные начала объектно-ориентированного программирования. В тех случаях, когда ленты IBM (для одного примера) имели «метки», указывающие на формат данных на ленте, ленты Берроуза разработали соглашение (я не думаю, что кто-то наверняка знает, кто его начал) о введении небольшого набора процедур лента, которая будет понимать данные и как они были отформатированы, чтобы вы могли правильно манипулировать данными, не зная деталей того, как они были отформатированы. Другими словами, первые несколько «блоков» на ленте были в основном vtable в сохраненном виде. Вы в основном читали vtable в память, а затем использовали методы, которые он определил, для манипулирования данными на остальной части ленты. Все очень аккуратно и просто (если только немного меньше, чем полностью портативный).
источник
Джон Кармак регулярно впечатляет меня своими подвигами эпического программирования. Согласно одной истории, ему было скучно в его гостиничном номере, поэтому он написал на своем ноутбуке движок освещения Doom 3 на выходных.
источник
Несмотря на сомнительную цель, я все еще в восторге от пользовательского скрипта с капч-решателем для MegaUpload . Это сценарий GreaseMonkey, написанный на JavaScript, с растровым декодером и нейронной сетью, которая распознает буквы на изображении капчи, и я повторяю, все это сделано с использованием JavaScript.
источник
Мигель де Иказа - проект Mono.
(Он также невероятно забавный, остроумный и интересный - по крайней мере, после краткого разговора, который я видел, что он дал, и в прослушивании некоторых интервью подкаста)
источник
Андерс Хейлсберг: язык Turbo Pascal и компилятор . Я все еще думаю, что после всех этих лет TPC является шедевром разработки программного обеспечения. Это самый компактный и самый быстрый компилятор с собственным кодом (начиная с определенных версий, также оптимизирующий), который я когда-либо видел. В Borland Pascal IDE по существу не было «компиляции». Вы изменили свой код, нажали F9 и сразу увидели, что ваша программа работает, и это было на 8 МГц или 12 МГц компьютере. Позднее TPC превратилась в Delphi, затем Хейлсберг присоединился к Microsoft и стал соавтором C #.
Я хотел бы взглянуть на источники более ранних версий TPC, но, к сожалению, несмотря на многочисленные запросы, Borland никогда не открывал их.
Компилятор Хейлсберга был вдохновлен этой книгой: Никлаус Вирт, Алгоритмы + Структуры данных = Программы
источник
Мой руководитель обучения в Gemplus (ныне Gemalto) написал первый интерпретатор JavaCard и операционную систему в течение его 3-месячного периода обучения студентов. Он в одиночку произвел код из спецификации. Для выпуска версии 2 Gemplus создал команду из 30 человек без парня, которая работала более года. Когда они закончили, но не смогли добиться достойного результата, они позвали его на помощь, и через несколько дней он и его коллега указали на десятки узких мест.
Java Card - это подмножество Java, предназначенное для работы на очень маленьких устройствах. Его реализация работала на смарт-картах с тактовой частотой несколько МГц и оперативной памятью 2 или 3 КБ.
Просто для забавы: еще один его личный ежедневный подвиг - погрузиться в рабочий транс, не отвечая ни на один из вопросов, которые мы, ученики, кричали в комнате, а затем, внезапно, спустя 2 часа, снова ожив, когда его работа была закончена, и отвечая на 5 или 10 вопросы подряд.
источник
Я помню это очень ясно; в старших классах одноклассник за пару уроков кодировал полноценную видеоигру по вождению с помощью QB45 (Quick Basic 4.5). Вертикальная прокрутка, секундомер, лайф, уровни; Я был полностью шокирован.
источник
Git и / или Linux
Линус Торвальдс с нуля написал ядро операционной системы и систему контроля версий. Я не знаю никого с подобной производительностью.
источник
Ричард М Столлман приходит мне на ум. Этот человек начал давать жизнь GNU Emacs, GCC, GDB и многим другим известным программам. Он даже стал автором оригинальной GPL. Я слышал, как он говорил, что он идет в пещеру на 18 месяцев и возвращается с более чем 150 000 строк кода, которые составляют компилятор Си из набора GCC. Эти 150 000 LOC позже дали скалу для g ++. По его собственным словам, Emacs начинал как текстовый редактор, затем он стал образом жизни, и теперь это религия для некоторых из нас. Даже сегодня принципы дизайна Emacs используются во многих успешных программах.
Система TeX Дональда Кнута - это еще одна программа, которая приходит в голову, думая о чудесах программирования.
источник
В моем классе обучения мой одноклассник создал ОС (хотя и очень простую, но загрузилась с дискеты и выполнила необходимые процедуры) как требование проекта менее чем за 30 дней. Продолжительность включает как необходимое чтение / исследование, так и фактическое кодирование.
Я помню, как парни из списков рассылки os.com обескураживали его, говоря, что он не будет делать это в эти несколько дней, и я также видел, как он шел по общежитию в 5 часов утра в полусознательном состоянии и говорил бессмысленно. :-)
Он отличный программист.
источник
Я не собирался ничего говорить, но кто-то сказал: «Руби - это подвиг», так что
Джон Маккарти с оригинальными рекурсивными функциями символьных выражений и их вычислений на машине , т. Е. В статье, в которой он определил Лисп еще в 1960 году, когда
if
эта концепция только начинала всерьез задумываться. Разговор о том, чтобы опередить свое время.источник
Компилятор Вальтера Брайта Symantec / Zortec C ++ идет в ногу с компиляторами, реализованными огромными командами программистов. Позже его дизайн и реализация Д.
источник
Терри Винограда ШРДЛУ .
Автоматизированный математик Дуга Лената .
источник
Линус Тровальдс пишет Linux
источник
8-битный программист видеоигр на компьютере из 80-х (например, Commodore 64), некоторые довольно хорошие игры были на машинном языке, и их размер часто был меньше растрового изображения для иконки Windows ;-) Оптимизация во всей красе
Geos (ОС WYSIWYG для Commdore 64) была очень впечатляющей для своего времени
источник
Я не уверен, что это действительно важно ... но парень, который разработал рубин. Я просто не могу пройти мимо элегантности языка. И я считаю, что это был первый язык, поддерживающий динамическую типизацию, хотя я не тот, кто начинал с перфокарт и написания ассемблера, поэтому я мог ошибиться.
источник
Дэвид Хайнмайер Ханссон создает Rails.
В первый раз, когда я установил Rails и настроил тестовый сайт для базы данных, и он автоматически выполнил все фреймворки и CRUD, настроил тестовый сайт, и я впервые увидел, что можно сделать перед вами. начать программирование. Это было действительно впечатляюще, и с тех пор я видел идеи, появляющиеся повсеместно на других языках / платформах.
источник