Существует ли философия программирования Windows? [закрыто]

Я программировал как в Unix, так и в Windows. В основном я работал в Unix, где я узнал Unix Philosophy , который можно обобщить как

  • Записывайте программы, которые делают одно и делают это хорошо.
  • Напишите программы для совместной работы.
  • Записывать программы для обработки текстовых потоков, поскольку это универсальный интерфейс.

Кажется, что существует явная разница в программировании культур между мирами Unix и Windows, например:

  • GUI vs CLI
  • Реестр и файлы конфигурации
  • Множество инструментов, специализирующихся на любой конкретной потребности, против группы общих ортогональных инструментов, которые могут комбинироваться

Есть ли эквивалент «философии Unix» в мире Windows? Какой Unix-программист может учиться у Windows или должен знать о переходе к программированию в Windows?

Я бы хотел, чтобы ответы были сосредоточены на лучших практиках программирования Windows (а не на борьбе между Windows и Unix).

31 голос | спросил Maglob 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 10:52:20 +0300000000amMon, 07 Feb 2011 10:52:20 +030011 2011, 10:52:20

7 ответов


28

На самом деле есть что-то вроде «философии Windows». В основном речь идет о концепции композиции и пользовательских интерфейсах - разработка программ для пользователей не для других программистов.

Это означает:

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

Вот хороший текст:

Biculturalism

С распространением Windows хакерский подход к кодированию начал ухудшаться. Сначала он писал программы на C /C ++ самым сложным и запутанным образом, так что только самые сложные мозги могли их понимать, как своего рода обряд посвящения. Под Windows вещи начали меняться, и что «стиль кода» теперь сильно неблагоприятен. Не уверен, что его прямая Windows влияет или, скорее, на новый уровень понимания качества кода, но по крайней мере своевременно они совпадают.

ответил 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 11:47:06 +0300000000amMon, 07 Feb 2011 11:47:06 +030011 2011, 11:47:06
8

Я думаю, что различия, с которыми вы сталкиваетесь в своем вопросе, больше касаются пользователей этих систем, чем стилей программирования их разработчиков. В течение долгого времени * nix был полем программиста или энтузиаста компьютеров. Было очень мало на пути «случайного» использования. Где, когда Windows имеет [домашние] номера пользовательских порядков больше.

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

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

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

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

Возможно, имеет такую ​​же важность: написать документацию пользователя.

ответил TZHX 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 11:47:24 +0300000000amMon, 07 Feb 2011 11:47:24 +030011 2011, 11:47:24
8

Блог Раймонда Чена, The Old New Thing и его книга с таким же именем - это отличное понимание философии, истории и лучших практик собственного программирования Windows.

ответил Andreas Rejbrand 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 23:16:50 +0300000000pmMon, 07 Feb 2011 23:16:50 +030011 2011, 23:16:50
4

Компромисс & Настройка

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

Достаточно хорошо, чтобы пользователь начал

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

Ожидать хвост поддержки журнала

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

Пользователи имеют широкий диапазон уровней умения

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

ответил Bill 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 20:28:32 +0300000000pmMon, 07 Feb 2011 20:28:32 +030011 2011, 20:28:32
3

Windows была построена с явной поддержкой стандарта общего доступа пользователей (CUA) IBM для руководства приложениями развитие.

Что, конечно же, было попыткой создать для пользователя опыт работы с Mac.

ответил Steven A. Lowe 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 20:44:19 +0300000000pmMon, 07 Feb 2011 20:44:19 +030011 2011, 20:44:19
2

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

ответил Dainius 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 11:34:08 +0300000000amMon, 07 Feb 2011 11:34:08 +030011 2011, 11:34:08
1

Я не уверен, что это философия, но IMHO есть своего рода плотность мысли, которая идет с Windows программирования. Также есть ощущение удивления в том, как что-то работает иногда.

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

ответил John Bickers 7 FebruaryEurope/MoscowbMon, 07 Feb 2011 16:04:20 +0300000000pmMon, 07 Feb 2011 16:04:20 +030011 2011, 16:04:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132