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 скрипте не приводить - не тот уровень проблем =)

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

Oceanborn
()

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

W98
()

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

DukE-M ★★
()
Ответ на: комментарий от Oceanborn

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

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

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

MikeDM ★★★★★
()

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

lester_dev ★★★★★
()

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

redbaron ★★
() автор топика

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

seiken ★★★★★
()
Ответ на: комментарий от seiken

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

redbaron ★★
() автор топика

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

lester_dev ★★★★★
()
Ответ на: комментарий от lester_dev

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

W98
()
Ответ на: комментарий от W98

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

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

krupskiy
()
Ответ на: комментарий от W98

>а можешь исходники нотепада выложить? %)
сюда не надо, а то еще m$ взбесится.

goodwin ★★
()
Ответ на: комментарий от stassats

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

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

goodwin ★★
()
Ответ на: комментарий от W98

Уже лучше. Но на VB оно бы занимало несколько КБ всего. :)

krupskiy
()

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

seiken ★★★★★
()
Ответ на: комментарий от krupskiy

>Можешь прикоснуться к тайне :)

а можно взглянуть на код чего-нибудь из ядра?
какой-нибудь большой C файл?

fghj ★★★★★
()
Ответ на: комментарий от seiken

>Хотя, в той статье ни слова про код ntfs.

Пофиг даже на код, важнее как он работает.

W98
()
Ответ на: комментарий от Ian

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

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

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

fghj ★★★★★
()
Ответ на: комментарий от seiken

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

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

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

Ekonomist
()
Ответ на: комментарий от Ekonomist

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

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

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

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

ManJak ★★★★★
()

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

ManJak ★★★★★
()
Ответ на: комментарий от fghj

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

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

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

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

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

stassats ★★★★
()
Ответ на: комментарий от anonymous

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

Балмер от анонимуса пишет.

stassats ★★★★
()
Ответ на: комментарий от anonymous

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

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

W98
()
Ответ на: комментарий от anonymous

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

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

W98
()

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

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

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

AngryElf ★★★★★
()
Ответ на: комментарий от W98

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

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

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

fghj ★★★★★
()

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

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

golodranez ★★★★
()

Да шут с ним, с 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.