LINUX.ORG.RU
ФорумTalks

Качество кода в windows и Linux (никаких holy war!)


0

0

В общем вот такой вопрос возник. У меня на новой работе рядом сидит программист - фанат Windows и Microsoft. Болеет за них всей душой. Естественно иногда затеваются спору насчет windows vs linux. Я сам не программист по-этому я не могу ни проверить, ни подтвердить его аргументы. В частности самые главные что качество кода в linux сильно отсатет от аналогичного в windows. Развивать спор на количестве уязвимостей думаю бесмысленно - и там и там они есть, причем серьезные (чего стоит только недавний завал линукса обычным пингом).

1. Прошу не развивать эту тему в холи вар, а просто привести некоторые примеры некачественного кода (с подтверждением) в windows (желательно от MS), то же самое я щаз жду от него - некачественный код в linux.

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

2. Еще хотелось бы чисто программиских примеров что легко делает на Linux и сложно (криво,некрасиво) на Windows. Пример в качестве команды "who" и заковыристом WMI скрипте не приводить - не тот уровень проблем =)

Re: Качество кода в windows и Linux (никаких holy war!)

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

Oceanborn ()

Re: Качество кода в windows и Linux (никаких holy war!)

Интересно, кто ж тебе сможет привести хоть какиой-нибудь пример кода из windows?? ;) Или тут у кого есть доступ в cvs (или что у них там) microsoft? ;)

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

Если всё будет строиться М$,то он наверно останеться без работы. :)

DukE-M ★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

M$ код мы не увидим а программ под Масдайку с открытыыми исходниками мало :) очень мало.

Так что тема неочем.

или у когото припрятаны сорцы масдайки ? Гг

MikeDM ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

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

lester_dev ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

а ведь были же утекшие исходники винды...

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

Про пример некачественного кода - я имею ввиду не сами исходники, а их работу. Т.е. пример того что что-то сильно криво работает в MS (сам я не в курсе, с этой системой расстался во времена WIn98, а приводить её в качестве примера неверно - с тех пор много воды утекло)

redbaron ★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

А стоит ли с ним вообще спорить, что-то доказывать? Зачем? Фанатизм - признак непрофессиональности.

seiken ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

дело в том, что я о глюках windows знаю только от подобныъ фанатов linux, есть желание и самому узнать правду, не буду же я щаз изучать разворачивание AD, центров сертификации, копаться в winAPI и пр.

redbaron ★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

Ты посмотри на WinAPI, насолько удобно там все. И товарисч видимо не кодил на MFC никогда...

lester_dev ★★★★★ ()
Ответ на: Re: Качество кода в windows и Linux (никаких holy war!) от lester_dev

Re: Качество кода в windows и Linux (никаких holy war!)

О! От MFC у меня много "приятных" воспоминаний осталось... Как-то довелось мне делать учебный проект на mfc, сильно глубоко даже и не закапывался - нарвался на 100% баг.

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

> а ведь были же утекшие исходники винды...

В емуле валяются два архива по 200 с чем-то метров, один NT4, второй кусок W2K. W2K не качал, а исходники NT4 я видел - там всё вполне правдоподобно... "Качество" кода просто убило наповал. Я если честно ожидал что там код будет как у школьников - топорные бейсиковские алгоритмы с синтаксисом на Цэ, а там ТАААКОЕ... Если видели как надо кодить под MFC, наверное задавались вопросом "куда уж хуже?". Там вот там наааааамного хуже. Один notepad чего стОит... Это просто шЫдевр, это надо видеть.... Писали имхо специально чтобы у читающего исходники извилины заплетались.

krupskiy ()

Re: Качество кода в windows и Linux (никаких holy war!)

#define DeepTrouble() MessageBox(hwndNP...
:)

>$ cat * |grep goto|wc -l
>31
"...большинство системных файлов windows содержат случайный
код, который вообще никак не используется. разве что туда
передается управление для генерации глюков..."
теперь мы знаем как туда передается управление ;)

goodwin ★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

Для сравнения, исходники нотепада из ReactOS :)

http://webfile.ru/900457

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

Ну это IMHO ни о чём не говорит. Они могли основные силы бросить на ОС, а всякие блокноты, системные утилиты, игры и т.п. написать в последний день абы как. Вот если у них код планировщика кривой или там ФС, то это другое дело. Но вы же не думаете, что блокноты и ядро писали одни и те же программисты...

seiken ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

>А что, в бейсике принято goto раскидываться?

В Qbasic это основная фича, нежжжжно обожжжжаемая народом.

Кстати, задай ему вопрос, как из командной строки скопировать файлик с одного компа на другой, а то адреса \\комп\диск не работают. Хотя в адресной строке проводника - работают.

Ekonomist ()

Re: Качество кода в windows и Linux (никаких holy war!)

>>А что, в бейсике принято goto раскидываться?

>В Qbasic это основная фича, нежжжжно обожжжжаемая народом.

Давно его не видел, но вроде там и функции и условия можно было юзать =) и без goto обойтись.

Хотя, ИМХО, если надо, то надо вставлять, а не плодить километры кода, чтоб только сабж не юзать =) Но это мое ИМХО.

ManJak ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

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

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

anonymous ()

Re: Качество кода в windows и Linux (никаких holy war!)

>... Просто по причине наличия формального процесса контроля качества. Дру...

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

ManJak ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

>> Использование goto - дурной тон.

> Вам это в детском саду рассказали?

> find /usr/src/linux/ -name "*.c" -exec grep goto {} \; -print

Я знал, что кто-нибудь вспомнит ;)

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

stassats ★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

>А что ты имеешь против goto?

Ууу! Сразу видно серьезные дяденьки собрались, не заметили иронии в том посте... ;)
Однако, использование goto даже в таких маленьких проектах - уже нехороший признак. Да и вообще понятие "качество кода" очень расплывчатое... (где критерии?)
Да и еще. Во-первых: присоединяюсь к просьбе показать что-нть тяжелое "из ядра" (насколько я помню в утекших исходниках был ms html engine).
Во-вторых: для сравнения можно прогуляться на http://autohotkey.com и слить там исходники (это мощный менеджер хоткеев со встроенным скриптовым языком под винду). Уж не знаю как там насчет goto и прочего, но, хоть и проект более объемный, нежели нотепад, я смог быстро и легко разобраться "где что лежит" просто открыв проект в visual studio.

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

>Да, качество кода в Windows выше, чем в Linux.

В любой фирме занимающейся коммерческим софтом на "качество кода" смотрят меньше всего. Главное чтобы работало и кастомеры были довольны. А ежели тестеры обнаружат баг, а девелопер решит переписать все "чтоб было логично и красиво" за его спиной тут же, ласково улыбаясь, появится project manager с баночкой вазелина в руке =)))

W98 ()

Re: Качество кода в windows и Linux (никаких holy war!)

Во, только ща столкнулся с приколом.

Спроси у своего программера, какого хера команда nslookup www в вин2к ищет домен "www" у текущего DNS'ника, а винХыРы ищет "www." (с точкой в конце).

На что это влияет и зачем это нужно - в качестве домашнего задания.

AngryElf ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

>Однако, использование goto даже в таких маленьких проектах - уже нехороший >признак.

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

а то что если goto то плохая программа это бред.

fghj ★★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

>фанат Windows и Microsoft. Болеет за них всей душой
                            ^^^^^^^^^^^^^^^^^^^^^^^^

Душевно больной

golodranez ★★★★ ()

Re: Качество кода в windows и Linux (никаких holy war!)

Да шут с ним, с goto.
Вы все еще сомневаетесь что в М$ сидят индусы?
смотрите сюда:

/*
 * lstrncmpi( str1, str2, len )
 * compares two strings, str1 and str2, up
 * to length 'len' ignoring case.  If they
 * are equal, we will return 0.  Otherwise not 0.
 */

static
INT lstrncmpi( PTCHAR sz1, PTCHAR sz2 )
{
    TCHAR ch1, ch2;
    while( *sz1 )
    {
        ch1= (TCHAR) CharUpper( (LPTSTR) *sz1++ );
        ch2= (TCHAR) CharUpper( (LPTSTR) *sz2++ );
        if( ch1 != ch2 )
            return 1;
    }
    return 0;                // they are equal
}

%)

lester_dev ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.