Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Почему так нужны разработчики под Linux?


Автор: EvilsInterrupt 5.5.2013, 12:24
Считаю себя разработчиком под Windows. За прошедший апрель ко мне позвонило 3 HR-рекрутера с вопросом могу ли я разрабатывать под Linux на C++? За год таких вопросов было не мало.

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

Причина непонимания кроется в том, что считаю и думаю что хорошим разработчиком среднего уровня под Linux стать сложнее, чем под Windows! 

Прежде чем человек станет уверенным пользователем Linux проходит не менее 1-1.5 года, а под windows этот срок значительно ниже!

Прежде чем человек начинает программировать под Linux скажем на уровне "среднячка" пройдет 2-2.5 года, а под Windows это время тоже меньше 1-2 года.

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

Автор: Qu1nt 5.5.2013, 13:09
Цифры взяты с потолка, а Qt/boost и вовсе делают разработку платформонезависимой.

Автор: EvilsInterrupt 5.5.2013, 13:18
Qu1nt
Не следует начинать разговор с грубости! Не с потолка, а из головы.

Года 4 назад я визжал от восторга когда начал осваивать FreeBSD и произошел у меня диалог с одним из программистов, которому не важно что за система. За его плечами область разработки модулей ядра Linux, FreeBSD и OS X. Спустя время начал ему задавать вопрос: "А чего не запилишь проект под FreeBSD?". На что услышал : "Ты когда реально на практике касаешься организации, а не на обсуждениях на форуме, тогда и понимаешь что все это оооочень не просто".
В тот момент я не поверил его словам и подумал, что он не достаточно хорошо искал. Но недавно задумался, а почему одна из компаний из которой мне звонили до сих пор в течении 5 месяцев не закрыли вакансию Linux разработчика? Вакансия только для одного специалиста. Условия вкусные и зарплату от 120 и по результатам испыт. срока.

Вот и вспомнился разговор с этим моим знакомым, да и все эти звонки с вопросами.

Автор: Amp 5.5.2013, 15:18
Цитата(EvilsInterrupt @  5.5.2013,  13:18 Найти цитируемый пост)
Не с потолка, а из головы.

Мне тоже непонятны цифры. Возникает вопросы. Кто такой уверенный пользователь и средний программист, что они умеют? Почему под Linux начинающий программист потратит больше времени на освоение C++? Из-за дополнительного объема специфических знаний (тут без уточнения области разработки не ответить)? Из-за отсутствия инструментария уровня Visual Studio? Из-за ограниченного красноглазого комьюнити? Плохой документации? Отсутствия нужных библиотек, всяких прочих плюшек?

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

Цитата(EvilsInterrupt @  5.5.2013,  12:24 Найти цитируемый пост)
 Найти же хорошего программера среднего уровня под Linux значительно сложнее чем под Windows , вот и возникает мое непонимание : зачем же начинаеть проект писать под Linux? 

Шутливая аналогия - а зачем начинать писать проекты на C++, если найти хорошего C++ программиста среднего уровня значительно сложнее, чем на C# или Java? smile 

Автор: NoviceF 5.5.2013, 16:02
есть мнение, что линукс можно вполне успешно использовать в качестве embedded системы для определённого круга устройств и он способен в определённых условиях быть привлекательнее QNX и windows embedded ("и самое главное - он бесплатный"). Так что линукс это не только ценный мех smile)

Автор: Farmazon 5.5.2013, 16:27
Цитата

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

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

Цитата

Причина непонимания кроется в том, что считаю и думаю что хорошим разработчиком среднего уровня под Linux стать сложнее, чем под Windows! 

Я писал ПО как для Linux, так и для Windows и не разделяю вашу точку зрения. Я считаю что для Linux разработка ПО не сложнее, а даже в какой-то мере проще... попробуйте сами, слишком долго объяснять.)

Цитата

Прежде чем человек станет уверенным пользователем Linux проходит не менее 1-1.5 года, а под windows этот срок значительно ниже!

Метанация. Сроки соспоставимы. Но распространение windows на десктопах больше, кто с этим поспорит... Потому и некоторого ПО на Linux не хватает(гори в аду Adobe). И это зачастую вынуждает его использовать (приходится как минимум виртуалку с ней у себя держать для тестирования).

Цитата

Прежде чем человек начинает программировать под Linux скажем на уровне "среднячка" пройдет 2-2.5 года, а под Windows это время тоже меньше 1-2 года.

Метанация. Всё зависит от квалификации программиста и окружения. Опытный спец может освоить язык и/или технологию потратив несколько недель/месяцев. 

Цитата

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

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

Автор: EvilsInterrupt 5.5.2013, 17:29
Цитата

Мне тоже непонятны цифры. Возникает вопросы. Кто такой уверенный пользователь и средний программист, что они умеют?

Хорошо. Возьмем и напишем три символа в поиске мойкруг.ру "C++" во вкладке работа. Найдем http://moikrug.ru/vacancies/260581064/ и http://moikrug.ru/vacancies/089467899/. Одному платят больше, а другому меньше. Почему? Потому что уровни знаний и опыта разные. Так определяются "серьезный" и "средний". Любой программист, прежде всего пользователь компьютера. Только набор используемых программ у него значительно шире чем у любого "бухгалтера". Это я обобщено, исключений типа "всякие бухи бывают" я не учитываю smile

Цитата

Метанация. Сроки соспоставимы. Но распространение windows на десктопах больше, кто с этим поспорит...

Отнюдь не сей процесс, что Вы упомянули. smile Я о том и говорю, в виду распространенности многие предпочитают не заморачиваться и продолжают используя Windows изучать еще и дебри C++. Вот сейчас если встанет выбор между двумя одинаковыми зарплатами по разработке под Linux или Windows, я предпочту второй выбор. По одной простой причине Время! Не видно никаких причин осваивать новую систему, если за текущую платят и достаточно много вакансий.


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

Добавлено через 2 минуты и 57 секунд
Цитата(Farmazon @  5.5.2013,  17:27 Найти цитируемый пост)
Не все задачи возможно легко решить на Windows... некоторые проще на linux решать, это открытая unix-подобная система, дорогого стоит.

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

Автор: Фантом 5.5.2013, 17:39
Цитата(EvilsInterrupt @  5.5.2013,  13:24 Найти цитируемый пост)

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

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


Цитата(EvilsInterrupt @  5.5.2013,  13:24 Найти цитируемый пост)

Причина непонимания кроется в том, что считаю и думаю что хорошим разработчиком среднего уровня под Linux стать сложнее, чем под Windows! 

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

При этом разработчиком среднего уровня стать проще под Windows. Хорошим разработчиком - под Linux. Первое объясняется тем, что в массовой разработке под Windows зайдействовано весьма много весьма слабых программистов, поэтому достичь соответствующего уровня относительно легко. Второе - тем, что Linux (вернее, вообще все *nix) существенно удобнее для разработки, и писать качественный код под Linux технически проще.

Цитата(EvilsInterrupt @  5.5.2013,  13:24 Найти цитируемый пост)

Прежде чем человек станет уверенным пользователем Linux проходит не менее 1-1.5 года, а под windows этот срок значительно ниже!

Это опять смесь теплого с мягким. Под "уверенным пользователем Windows" обычно принято понимать человека, который, скажем так, умеет пользоваться "Проводником" и создавать ярлыки для запуска программ. Для того, чтобы достичь такого же уровня в обращении с каким-нибудь DE под Linux, требуется ровно такое же время и усилия. Под "уверенным пользователем Linux" принято понимать человека, который может существенно больше, это действительно посложнее, но и освоение работы в Windows на том же уровне (умение писать CMD- и PowerShell-скрипты, способность настроить несложный сервер и т.п.) также мгновенным не будет (и, пожалуй, займет даже больше времени, чем в случае с Linux).

Цитата(EvilsInterrupt @  5.5.2013,  13:24 Найти цитируемый пост)

Прежде чем человек начинает программировать под Linux скажем на уровне "среднячка" пройдет 2-2.5 года, а под Windows это время тоже меньше 1-2 года.

О "середнячках" я уже писал, а если брать для сравнения примерно одинаковый (и достаточно высокий) уровень возможностей, то под Linux достичь его получится, наоборот, быстрее, чем под Windows. 

Цитата(EvilsInterrupt @  5.5.2013,  13:24 Найти цитируемый пост)
Если любой программный проект требует поддержки, то с точки зрения бизнеса время поиска программиста иногда идет на дни, иначе конкуренты задавят. Найти же хорошего программера среднего уровня под Linux значительно сложнее чем под Windows , вот и возникает мое непонимание : зачем же начинаеть проект писать под Linux?

А тут возникает вопрос, что критичнее - взаимозаменяемость кодеров и "счет на дни" или что-то другое. Отсюда и результат: для массовой разработки сравнительно несложного софта Windows действительно предпочтительнее, поскольку и покупателей больше, и организовать работу проще. Однако далеко не весь разрабатываемый софт является массовым и несложным.

Автор: Farmazon 5.5.2013, 18:54
Вот те пример: разработка системы контроля доступа к сети, распределения и учёта траффика для 2к пользователей, с обеспечением равномерной загрузки внешних каналов траффика и приближённо "справедивым" распределением траффика между активными пользователями. Плюс добавьте группу привилегированных пользователей с приоритетным траффиком.

Linux: разработка заняла 2 недели(2 человека) плюс 2 недели доводки(1 человек)... ну где-то 1.5 человекомесяца. Разработку вели 2 студента третьекурсника. В качестве железки используется сервер на базе Xeon 5xxx (SCSI винт и память DDR400 6 га) с 2мя гигабитными интелловскими интерфейсами, нагрузка создаваемая системой на железо менее 20%.

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

Автор: fish9370 6.5.2013, 10:09
какой провакационный вопрос

а я задаю себе часто вопрос - а зачем нужны программисты под виндоуз? - они же такие бездари-недоучки

вот и выходит дилемма, кому они нужны?

P.S. не холливора ради, исключительно чтобы понять..

Автор: borisbn 6.5.2013, 10:43
Цитата(Фантом @  5.5.2013,  17:39 Найти цитируемый пост)
Второе - тем, что Linux (вернее, вообще все *nix) существенно удобнее для разработки, и писать качественный код под Linux технически проще


Цитата(Фантом @  5.5.2013,  17:39 Найти цитируемый пост)
если брать для сравнения примерно одинаковый (и достаточно высокий) уровень возможностей, то под Linux достичь его получится, наоборот, быстрее, чем под Windows.


Вот много раз видел такого рода утверждения, и никак не могу понять - почему ??? Откуда такая безапелляционность ?
У Linux лучше комьюнити ? Ни разу. Максимум сравнимо.
В Linux удобнее среды разработки ? Если бы не Creator, то тут и сравнивать нечего (желающих объяснить, что отладка из командной строки gdb удобнее, чем встроенный в IDE отладчик, прошу не беспокоить).

...

Мне приходится программировать как в Windows (бОльшая часть проектов), так и в Linux. Лично мне существенно удобнее первое. Да... скорее всего, из-за привычки. Но и в тех, кто говорят, что Linux удобнее, срабатывает привычка. Разве нет ?

Автор: Amp 6.5.2013, 12:09
Цитата(borisbn @  6.5.2013,  10:43 Найти цитируемый пост)
Но и в тех, кто говорят, что Linux удобнее, срабатывает привычка. Разве нет ?

В определенных мелких аспектах. Development environment (git/ssh/gcc/системы сборки) настраивается в пару кликов. Например понадобилась мне определенная libraryname для моей программы. Что я сделаю в Windows? Скачаю исходники, качну cmake (если он у меня до этого не стоял), пропишу пути к cmake в %PATH%, запущу все это хозяйство на сборку и будет здорово, если оно сразу соберется. В Linux я запущу пакетный менеджер и просто поставлю libraryname-devel. Не говоря уже о работе тех же встроенных cmake скриптов (FindXXX.cmake) под Windows и под Linux - в первом случае их приходится чуть ли не носом, через переменные окружения, тыкать в пути к библиотеке.

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

Автор: Фантом 6.5.2013, 12:13
Цитата(borisbn @  6.5.2013,  11:43 Найти цитируемый пост)

Вот много раз видел такого рода утверждения, и никак не могу понять - почему ??? 


Хм... ну, само собой, это все тоже личное мнение, но тем не менее.

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

Цитата(borisbn @  6.5.2013,  11:43 Найти цитируемый пост)
В Linux удобнее среды разработки ? Если бы не Creator, то тут и сравнивать нечего (желающих объяснить, что отладка из командной строки gdb удобнее, чем встроенный в IDE отладчик, прошу не беспокоить).

Да, удобнее. Вернее, сама консоль *sh с утилитами - эффективнейшая среда разработки. И, да, gdb таки удобнее. smile

Цитата(borisbn @  6.5.2013,  11:43 Найти цитируемый пост)

Мне приходится программировать как в Windows (бОльшая часть проектов), так и в Linux. Лично мне существенно удобнее первое. Да... скорее всего, из-за привычки. Но и в тех, кто говорят, что Linux удобнее, срабатывает привычка. Разве нет ?

Возможно. Но, судя по тому, что Вы писали выше, под Linux Вы работаете тоже в стиле Windows, а использование "чужеродных" методов работы всегда менее эффективно.

Автор: borisbn 6.5.2013, 12:51
Цитата(Amp @  6.5.2013,  12:09 Найти цитируемый пост)
Например понадобилась мне определенная libraryname для моей программы.

Цитата(Amp @  6.5.2013,  12:09 Найти цитируемый пост)
В Linux я запущу пакетный менеджер и просто поставлю libraryname-devel.

Лично для меня это было адом в линуксе без интернета (ну... вот такая специфика).

Цитата(Amp @  6.5.2013,  12:09 Найти цитируемый пост)
Что я сделаю в Windows? Скачаю исходники, качну cmake (если он у меня до этого не стоял), пропишу пути к cmake в %PATH%, запущу все это хозяйство на сборку и будет здорово, если оно сразу соберется.

Вот всегда вы пытаетесь сделать сложнее то, что можно сделать проще. Что я сделаю по Windows ? Скачаю этот пакет (заметьте - со всеми зависимостями внутри), установлю в полтора клика студию (опять же, если её раньше не было), открою *.sln и нажму F7.


Цитата(Фантом @  6.5.2013,  12:13 Найти цитируемый пост)
Почти нет проблем, связанных с обратной совместимостью (вернее, ее отсутствием). 

ну как же... "такой-то пакет требует libc версии 6.1.14.55, а у вас установлен 6.1.13.42"...

Цитата(Фантом @  6.5.2013,  12:13 Найти цитируемый пост)
 под Linux Вы работаете тоже в стиле Windows, а использование "чужеродных" методов работы всегда менее эффективно

ну... да... не без того. x11vnc дико тормозит, а просто vnc вообще работает так, что впечатление, что его вообще не проверяли.

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

P.S. Поверьте, я не холиварю. Я, также как и ТС, хотел понять, чем линукс привлекательнее для программиста и пользователя. То, что он удобнее для сисадмина, я уже понял.

Автор: fish9370 6.5.2013, 13:23
Цитата(Фантом @  6.5.2013,  12:13 Найти цитируемый пост)
Да, удобнее. Вернее, сама консоль *sh с утилитами - эффективнейшая среда разработки. И, да, gdb таки удобнее.


а ты пользуешься gdb-шником в чистом виде? не через cgdb?

Автор: kamre 6.5.2013, 14:00
Цитата(Фантом @  6.5.2013,  12:13 Найти цитируемый пост)
Вернее, сама консоль *sh с утилитами - эффективнейшая среда разработки. И, да, gdb таки удобнее.

Как в этой "эффективнейшей среде разработке" осуществляется навигация по коду? Через утилиты find-grep, которые ничего не знают про семантику языка и ищут тупо текст? Как в консольном gdb удобно и быстро просматривать сложные вложенные структуры данных при отладке?

Автор: Фантом 6.5.2013, 15:37
Цитата(fish9370 @  6.5.2013,  14:23 Найти цитируемый пост)

а ты пользуешься gdb-шником в чистом виде? не через cgdb? 

Чаще да. cgdb имеет смысл в ситуации, когда есть только одна консоль (и нет screen/tmux).

Добавлено через 2 минуты и 28 секунд
Цитата(kamre @  6.5.2013,  15:00 Найти цитируемый пост)

Как в этой "эффективнейшей среде разработке" осуществляется навигация по коду? Через утилиты find-grep, которые ничего не знают про семантику языка и ищут тупо текст?

А нормальные редакторы уже запретили? 

Цитата(kamre @  6.5.2013,  15:00 Найти цитируемый пост)
Как в консольном gdb удобно и быстро просматривать сложные вложенные структуры данных при отладке? 

Хм... а в чем проблема?

Автор: krundetz 6.5.2013, 15:46
Демографический кризис в стране, а программирование область, где не получиться чтобы думали за тебя, а таких в низко конкурентной среде ещё меньше, вот так и живем

Автор: EvilsInterrupt 6.5.2013, 16:33
Цитата(krundetz @  6.5.2013,  16:46 Найти цитируемый пост)
где не получиться чтобы думали за тебя, а таких в низко конкурентной среде ещё меньше, вот так и живем

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

Возьму пример из моего небольшого опыта использования FreeBSD: Поставил себе где-то 1.5 года назад FreeBSD Release 9.1 amd64 . Поставил ничего лично ни мир ни ядро не пересобирал и программы ставил из пакетов. Вдруг захотел посмотреть фильм, оказалось VLC не содержит нужного кодека. Посмотрел на последнюю версию прекомпилированного пакета.  Но мне все-таки пришлось сконфигурировать порт с нужным кодеком, чтобы потом скомпилировать из исходников. Процесс просмотра фильма был отложен на 40 мин. Тот же самый windows на который многие Linux-оиды ругаются решает проблему просто: 1) скачать инсталятор кодека 2) установка  и все это не больше 10 мин.

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

Пока увидел только один серьезный аргумент в пользу Linux: десятилетиями отшлифованный API.

А слова "там в *Nix-система ком. строка рулит", так сейчас PowerShell в Windows столько может что просто загляденье!

Автор: Фантом 6.5.2013, 17:02
Цитата(EvilsInterrupt @  6.5.2013,  17:33 Найти цитируемый пост)

Возьму пример из моего небольшого опыта использования FreeBSD:


Цитата(EvilsInterrupt @  6.5.2013,  17:33 Найти цитируемый пост)
Тот же самый windows на который многие Linux-оиды ругаются решает проблему просто: 1) скачать инсталятор кодека 2) установка  и все это не больше 10 мин.


Ну так FreeBSD в этом отношении - другая крайность. Причем, кстати, это и не Linux. 

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

Цитата(EvilsInterrupt @  6.5.2013,  17:33 Найти цитируемый пост)

А слова "там в *Nix-система ком. строка рулит", так сейчас PowerShell в Windows столько может что просто загляденье!

Да, но есть пара неприятных моментов. Во-первых, возможности PowerShell даже сейчас не дотягивают до того, что можно получить из bash и пачки скриптовых языков. Во-вторых, он штатно появился в 2006 году, это уже третий язык такого рода в семействе DOS/Windows, и нет никакой гарантии того, что потом не появится четвертый.

Автор: EvilsInterrupt 6.5.2013, 17:19
Цитата(Фантом @  6.5.2013,  18:02 Найти цитируемый пост)
Ну так FreeBSD в этом отношении - другая крайность.

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

Цитата(Фантом @  6.5.2013,  18:02 Найти цитируемый пост)
Во-вторых, он штатно появился в 2006 году, это уже третий язык такого рода в семействе DOS/Windows, и нет никакой гарантии того, что потом не появится четвертый

Ну .Net уже достаточно давно существует, более-того шагнула в Linux-мир. Так что говорить о том что Power-shell загнется не имеет смысла. Задачи надо решать сейчас, значит надо решать так чтобы решение было сопровождаемым и решало задачу полностью. Этот Power-Shell позволяет оочень многое сделать, в отличии от bat-аники )


Автор: Amp 6.5.2013, 17:38
Цитата(borisbn @  6.5.2013,  12:51 Найти цитируемый пост)
Вот всегда вы пытаетесь сделать сложнее то, что можно сделать проще. Что я сделаю по Windows ? Скачаю этот пакет (заметьте - со всеми зависимостями внутри), установлю в полтора клика студию (опять же, если её раньше не было), открою *.sln и нажму F7.

Согласись, что в линупсах оно в любом случае делается быстрее - все уже собрано и аккуратно разложено по каталогам, тот же boost. Естественно в будущем наверняка потребуется пересобрать это с другими флагами/опциями/версиями, поэтому и писал, что в рамках крупного проекта это все сомнительное преимущество, но для тренировки на кошках на пути к вышеупомянутому "среднеуровневому" C++ программисту - самое то.

А студия ставится явно не в полтора клика и не одну перезагрузку (если в системе не стоит нужной версии windows installer-а и .net framework-а). Ставил в прошлом году RC 12-ой - два раза минимум перезагружался.

Автор: Фантом 6.5.2013, 17:54
Цитата(EvilsInterrupt @  6.5.2013,  18:19 Найти цитируемый пост)
Так что говорить о том что Power-shell загнется не имеет смысла. Задачи надо решать сейчас, значит надо решать так чтобы решение было сопровождаемым и решало задачу полностью. Этот Power-Shell позволяет оочень многое сделать, в отличии от bat-аники )

Ну как сказать... у меня есть пример: комплект TeX'овских стилевиков вместе со скриптами, занимающимися и автоматизированной сборкой документов и их раскладкой/печатью/рассылкой. Сейчас еще раз проверил - все это делалось в 1998 году и работает до сих пор без каких-либо правок (кроме вносившихся расширений функционала). В том, что лет через 10-15 это все по-прежнему будет работать, я практически уверен. В том, что аналог на PowerShell через те же 10-15 лет будет где запускать... пожалуй, все же нет. Возможно, в дальнейшем все будет лучше, но пока у MS репутация по этой части скорее отрицательная.

Автор: EvilsInterrupt 6.5.2013, 18:05
Фантом, Итого: Формулируем второй плюс средство решения задачи написанное сейчас вероятно будет работать и через десять лет.

Автор: fish9370 6.5.2013, 18:10
Цитата(EvilsInterrupt @  6.5.2013,  16:33 Найти цитируемый пост)
Возьму пример из моего небольшого опыта использования FreeBSD: Поставил себе где-то 1.5 года назад FreeBSD Release 9.1 amd64 


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

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

большинство софта, которым пользуется, не побоюсь этого слова, миллиарды человек, такого как СУБД, веб-сервера, файловые сервера, почтовые сервера, программное обеспечение мобильных устройств, коммутаторы, маршрутизаторы, не говоря о самом линуксе - все это было изначально написано юникс-программистами.. ну а программы из под виндоуз их срок жизни 5 лет не больше, они не портируются никуда.. под виндоуз, только игры писать красивые, да и то серверная часть все равно будет на линуксе, если это плейстейшн нетвок, или другая приличная сеть.. (я слышал, в майкрософте используют линукс на серверах  smile )

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

cgdb - легко заменяет любой графический отладчик


Автор: borisbn 6.5.2013, 20:12
Фантом, а ведь ни тебе, ни мне http://ru.m.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BD%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D0%BE%D0%B5_%D1%83%D1%81%D1%82%D0%B0%D1%80%D0%B5%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5, чтобы оно работало через 15 лет ))

Добавлено через 2 минуты и 38 секунд
Или ты из этих пресловутых рыцарей без страха и упрёка?

Автор: Фантом 6.5.2013, 20:26
Цитата(borisbn @  6.5.2013,  21:12 Найти цитируемый пост)
Фантом, а ведь ни тебе, ни мне не надо, чтобы оно работало через 15 лет ))

Мне - надо. Да и 15 лет - не так много, самый старый код, с которым я сейчас имею дело, написан в 70-х годах прошлого века.  smile 


Цитата(borisbn @  6.5.2013,  21:12 Найти цитируемый пост)

Или ты из этих пресловутых рыцарей без страха и упрёка? 

В смысле?

Автор: Farmazon 6.5.2013, 20:42
TeX - это круто... топорно, предсказуемо, управляемо, легко смотреть историю правок...

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

Кнут молодчик вообще...

Добавлено @ 20:47
и кто так легко поверил, что WYSIWYG необходим (MS поспособствовала?)... Я готов сознательно жертвовать наглядностью в пользу других более важных мне фич.

...

Когда ворд сломал диплом одного из одногруппников, тот в истерику впал... хотя вроде один заголовок поправил, разъехался весь документ... ворд могёт (фигли, один из самых продвинутых продуктов копрорации).

Автор: kamre 6.5.2013, 22:11
Цитата(Фантом @ 6.5.2013,  15:37)
А нормальные редакторы уже запретили? 

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

Цитата(Фантом @ 6.5.2013,  15:37)
Хм... а в чем проблема?

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

Автор: Фантом 6.5.2013, 23:46
Цитата(kamre @  6.5.2013,  23:11 Найти цитируемый пост)

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

Они не обязательно должны быть консольными.  Можно же использовать всякие Code::Blocks, KDevelop, Eclipse... вплоть до банальной Geany.

Цитата(kamre @  6.5.2013,  23:11 Найти цитируемый пост)

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

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

Автор: kamre 7.5.2013, 00:29
Цитата(Фантом @ 6.5.2013,  23:46)
Они не обязательно должны быть консольными.  Можно же использовать всякие Code::Blocks, KDevelop, Eclipse... вплоть до банальной Geany.

Как раз Eclipse+CDT использую, правда больше в MSVC стиле и это никакого отношения к "сама консоль *sh с утилитами - эффективнейшая среда разработки" не имеет по сути. Самая эффективная работа с кодом происходит в IDE, консоль использую только для прогона тестов и некоторых нетривиальных операций с VCS.

Цитата(Фантом @ 6.5.2013,  23:46)
gdb умеет работать со скриптами. Поэтому вытащить что угодно, превратив это в любой удобный для обработки вид очень легко.

Скрипты это хорошо, когда уже известно что именно в конкретном месте отладки нужно посмотреть, и то проще в окошко Watches добавить нужные выражения. А когда еще мало понятно в чем проблема и нужно по-быстрому посмотреть что же сейчас находится в структурах данных, то предлагается вместо удобных datatips в MSVC по шевелению мышки писать кучу скриптов для gdb?

Автор: Фантом 7.5.2013, 00:32
Цитата(kamre @  7.5.2013,  01:29 Найти цитируемый пост)

Как раз Eclipse+CDT использую, правда больше в MSVC стиле и это никакого отношения к "сама консоль *sh с утилитами - эффективнейшая среда разработки" не имеет по сути.

Ну так это же не религия. Если нужно что-то, что проще делать в среде - можно воспользоваться средой.

Цитата(kamre @  7.5.2013,  01:29 Найти цитируемый пост)
Самая эффективная работа с кодом происходит в IDE, консоль использую только для прогона тестов и некоторых нетривиальных операций с VCS.

А я наоборот. Но мне, как правило, и навигация по коду не нужна.

Цитата(kamre @  7.5.2013,  01:29 Найти цитируемый пост)

Скрипты это хорошо, когда уже известно что именно в конкретном месте отладки нужно посмотреть, и то проще в окошко Watches добавить нужные выражения. А когда еще мало понятно в чем проблема и нужно по-быстрому посмотреть что же сейчас находится в структурах данных, то предлагается вместо удобных datatips в MSVC по шевелению мышки писать кучу скриптов для gdb? 

Откуда куча-то возьмется? Это одна-две строки.

Автор: kamre 7.5.2013, 00:43
Цитата(Фантом @ 7.5.2013,  00:32)
Ну так это же не религия. Если нужно что-то, что проще делать в среде - можно воспользоваться средой.

Просто я наверняка что-то делаю не так, раз у меня большая часть получается проще в IDE, а не в "самой консоли *sh с утилитами - эффективнейшей среде разработки". В чем проявляется эффективность? Почти любые операции с кодом удобнее делать в среде, которая понимает семантику языка и помогает не сломать код своими изменениями.

Цитата(Фантом @ 7.5.2013,  00:32)
А я наоборот. Но мне, как правило, и навигация по коду не нужна.

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

Цитата(Фантом @ 7.5.2013,  00:32)
Откуда куча-то возьмется? Это одна-две строки.

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

Автор: Фантом 7.5.2013, 00:57
Цитата(kamre @  7.5.2013,  01:43 Найти цитируемый пост)

Просто я наверняка что-то делаю не так, раз у меня большая часть получается проще в IDE, а не в "самой консоли *sh с утилитами - эффективнейшей среде разработки".

Думаю, что причин тому может быть две. Это активное использование ООП или большой размер отдельных функций/методов. Есть такое?

Цитата(kamre @  7.5.2013,  01:43 Найти цитируемый пост)

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

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

Цитата(kamre @  7.5.2013,  01:43 Найти цитируемый пост)

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

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

Автор: kamre 7.5.2013, 01:32
Цитата(Фантом @  7.5.2013,  00:57 Найти цитируемый пост)
Думаю, что причин тому может быть две. Это активное использование ООП или большой размер отдельных функций/методов. Есть такое?

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

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

Цитата(Фантом @  7.5.2013,  00:57 Найти цитируемый пост)
Связи отрабатываются на стадии проектирования и написания прототипов, их не обязательно извлекать средствами среды из уже готового кода.

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

Цитата(Фантом @  7.5.2013,  00:57 Найти цитируемый пост)
Текстовое описание того, что именно нужно посмотреть, занимает не больше времени, чем манипуляции мышью.

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

Автор: Фантом 7.5.2013, 01:38
Цитата(kamre @  7.5.2013,  02:32 Найти цитируемый пост)

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

Лучше всего такое не писать. smile А если уж написано, то заниматься рефакторингом.


Цитата(kamre @  7.5.2013,  02:32 Найти цитируемый пост)
Это все в каком-то идеальном случае. А обычно бывает как-то так: пришел в новый проект, там код уже несколько лет пишется примерно десятком разработчиков. Какое-то проектирование и документация имеются, но они далеки от идеального состояния, часто описывают что-то уже устаревшее. Как по-быстрее разобраться в том куске кода, с которым приходится работать?

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


Цитата(kamre @  7.5.2013,  02:32 Найти цитируемый пост)

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

Ну я не знаю, как это еще описать...

Автор: kamre 7.5.2013, 02:26
Цитата(Фантом @  7.5.2013,  01:38 Найти цитируемый пост)
Лучше всего такое не писать.  А если уж написано, то заниматься рефакторингом.

И я того же мнения, но никто на рефакторинг ресурсов выделять не будет. А вот интегрировать свои модули в этот продукт нужно и весьма тесно, поэтому нужно разбираться в коде и как это делать в "эффективнейшей среде разработки" без IDE я не представляю.


Цитата(Фантом @  7.5.2013,  01:38 Найти цитируемый пост)
Возможно. Тут я сравнивать не берусь, поскольку в такие ситуации практически ни разу не попадал.

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

Цитата(Фантом @  7.5.2013,  01:38 Найти цитируемый пост)
Ну я не знаю, как это еще описать...

Хорошо, тогда расскажите как можно быстро посмотреть значения в следующем простом случае:
user posted image
В MSVC это просто несколько движений мышкой, даже кликать не нужно.

Автор: chaos 7.5.2013, 09:48
Цитата(kamre @  6.5.2013,  23:26 Найти цитируемый пост)
В MSVC это просто несколько движений мышкой, даже кликать не нужно. 

да ладно?! + вы не кликали разве? smile 


ЗЫ в Вашем случае структура класса простая, по этому все так приятно смотрится 

Фантом, Вас читаешь и страшно становится: навигация не нужна, ide не надо, ...  smile 

Автор: bsa 7.5.2013, 11:19
Цитата(EvilsInterrupt @  5.5.2013,  18:29 Найти цитируемый пост)
Мне просто очень интересно стало, почему за прошедший год стало больше вопросов про Linux?! Может мне все-таки стоит его осваивать. Я к тому что не хочется потом оказаться в числе догоняющих, если прозевал какой-либо момент )
Как *nix-программист хочу порекомендовать тебе не осваивать - меньше конкуренции - больше денег. Как линуксоид рекомендую освоить - больше программистов, больше программ, больше пользователей. Не даром уже стим вышел на линукс. Я когда-то тоже начинал с Windows. Когда перешел на Linux то понял, на сколько Windows убог, если ты делаешь что-то нестандартное. А если у тебе необходима работа с оборудованием и задержки меньшие, чем 18 мс, то секса в винде будет на несколько порядков больше. Так как в *nix есть ожидание с точностью в наносекунды, а в винде это сделать можно только через цикл ожидания perfomance counters (другого решения я не нашел).

В целом у тебя очень слабое представление о мире *nix. Сравнивать FreeBSD (да и вообще любой "абстрактный" Linux) и Windows это тоже самое, что сравнивать рамный внедорожник и легковой автомобиль - едут оба, только во втором удобнее и девушку посадить не стыдно. В отличие от винды, у которой всего два основных варианта: desktop и server; никсы очень сильно дифференцированы по сферам применения: *bsd и debian - отличные серверные варианты, ubuntu и linuxmint - думаю, лучшие десктопные варианты, (Open)SUSE и Fedora/Red Hat - десктопы и серверы для корпоративных клиентов, Gentoo - любимый дистр растущих линуксоидов (на этапе между "чуть чуть знаю" и "использую везде"). Есть и другие: ArchLinux, Scientific и пр., но я их не пробовал. Я своего отца (более 60 лет) посадил на Linux Mint 13 Mate после винды. Показал как запустить наутилус и mc. С тех пор он пользуется и ни разу не звонил, чтобы узнать, как что-то сделать.

Если хочешь сравнивать, то поставь убунту или linuxmint (вариант mate рекомендую). Увидишь, что в сравнении с БСД это земля и небо - и видео играется, и документ пишется, и steam можно поставить, и пр. свистелки/перделки имеются. 

Автор: kamre 7.5.2013, 12:05
Цитата(chaos @  7.5.2013,  09:48 Найти цитируемый пост)
да ладно?! + вы не кликали разве?  

Давно не запускали отладчик в MSVC? Даже кликать не нужно, только подводить мышку!

Цитата(chaos @  7.5.2013,  09:48 Найти цитируемый пост)
в Вашем случае структура класса простая, по этому все так приятно смотрится

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

Автор: chaos 7.5.2013, 12:58
Цитата(kamre @  7.5.2013,  09:05 Найти цитируемый пост)
Давно не запускали отладчик в MSVC? Даже кликать не нужно, только подводить мышку!

действительно!


Цитата(kamre @  7.5.2013,  09:05 Найти цитируемый пост)
Ну так мне хотя бы для таких простых случаев научиться эффективно пользоваться консольным gdb, который круче всех и все умеет...

ох уж этот юношеский максимализм  smile 

Автор: kamre 7.5.2013, 16:07
Цитата(chaos @  7.5.2013,  12:58 Найти цитируемый пост)
ох уж этот юношеский максимализм

Частенько линуксоиды gdb нахваливают, что мол все фичи есть и гораздо удобнее чем во всяких тормозных IDE. А вдруг правду говорят? smile

Автор: krundetz 7.5.2013, 17:22
Цитата(EvilsInterrupt @  6.5.2013,  16:33 Найти цитируемый пост)
Думать надо там, где это действительно необходимо!

а необходимо везде и всегда!
Цитата(EvilsInterrupt @  6.5.2013,  16:33 Найти цитируемый пост)
Зачем создавать проблемы самому, когда можно один раз решить и больше не возвращаться к ним или просто тупо жать кнопки, а сэкономленное время потратить с пользой к примеру на решение других важных задач.

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

Автор: Фантом 7.5.2013, 17:32
Цитата(kamre @  7.5.2013,  03:26 Найти цитируемый пост)

И я того же мнения, но никто на рефакторинг ресурсов выделять не будет.

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

Цитата(kamre @  7.5.2013,  03:26 Найти цитируемый пост)

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

Если это не так, то начинать надо с приведения документации в актуальное состояние и т.п. А не латать дыры на скорую руку.

Цитата(kamre @  7.5.2013,  03:26 Найти цитируемый пост)

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

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

Цитата(chaos @  7.5.2013,  10:48 Найти цитируемый пост)

Фантом, Вас читаешь и страшно становится: навигация не нужна, ide не надо, ...

А Вы не пугайтесь. Это только первые лет двадцать страшно, а потом все проще.  smile 

Автор: kamre 7.5.2013, 17:55
Цитата(Фантом @  7.5.2013,  17:32 Найти цитируемый пост)
Тогда это несколько другая задача: не как сделать все правильно, а как сделать все быстро и дешево. Которая и в самом деле может иметь другое решение.

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

Цитата(Фантом @  7.5.2013,  17:32 Найти цитируемый пост)
Если это не так, то начинать надо с приведения документации в актуальное состояние и т.п. А не латать дыры на скорую руку.

Проект развивается, продукт продается, и с более или менее нормальными IDE получается работать эффективнее с уже имеющимся кодом. На полное перепроектирование, переписывание и документирование с нуля всей системы никто не пойдет просто так из стремления к идеализму, чтобы в консоли и базовой поставке vim/emacs можно было также эффективно работать как в IDE.


Цитата(Фантом @  7.5.2013,  17:32 Найти цитируемый пост)
Вы можете написать то, что хотите посмотреть? Ну, например, для вывода соответствующего значения в файл? А что мешает в дебаггере написать то же самое и букву "p" спереди?

Т.е. все ваши заявления про удобство отладки в консольном gdb были голословными и ничего продемонстрировать вы не в состоянии?

Автор: Фантом 7.5.2013, 18:14
Цитата(kamre @  7.5.2013,  18:55 Найти цитируемый пост)

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

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

Цитата(kamre @  7.5.2013,  18:55 Найти цитируемый пост)

Проект развивается, продукт продается, и с более или менее нормальными IDE получается работать эффективнее с уже имеющимся кодом. На полное перепроектирование, переписывание и документирование с нуля всей системы никто не пойдет просто так из стремления к идеализму, чтобы в консоли и базовой поставке vim/emacs можно было также эффективно работать как в IDE.

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

Цитата(kamre @  7.5.2013,  18:55 Найти цитируемый пост)

Т.е. все ваши заявления про удобство отладки в консольном gdb были голословными и ничего продемонстрировать вы не в состоянии?

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

P.S. И, пожалуйста, если Вы хотите продолжать общаться, смените тон.

Автор: kamre 7.5.2013, 18:38
Цитата(Фантом @  7.5.2013,  18:14 Найти цитируемый пост)
Я не имею желания восстанавливать нужную Вам строчку по скриншоту, поэтому предполагаю, что Вы в состоянии набрать ее сами. Рецепт уже подсказан: представьте себе, что Вам хочется напечатать желаемый структурный элемент или явно получить указатель на него.

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

Автор: Farmazon 7.5.2013, 19:03
с каких это пор логгирование стало неэффективным способом отладки программ? лол

Автор: kamre 7.5.2013, 19:10
Цитата(Farmazon @  7.5.2013,  19:03 Найти цитируемый пост)
с каких это пор логгирование стало неэффективным способом отладки программ? лол

Это где вы такое утверждение про логирование увидели? Продуманная и настраиваемая система логирования очень помогает, но когда нужно залезть в отладчик и увидеть еще больше информации, то терять время на добавление в конкретные места отладочного вывода или вбивание вручную команд в gdb не эффективно по сравнению с удобным отладчиком в IDE.

Автор: bilbobagginz 7.5.2013, 23:09
Цитата(EvilsInterrupt @  5.5.2013,  11:24 Найти цитируемый пост)
Поэтому и возник: Что толкает работодателей искать разработчиков под Linux? Мне кажется это коммерчески не выгодно.

это заносчиво предполагать, что работодатель не думает о финансовой стороне найма.

Автор: Dem_max 8.5.2013, 06:48
ТС Мне кажется потому что всяких там Linux и Unix и им подобных систем много, и под каждую систему нужно подстраиваться, так как все эти nix системы не совместимы между собой. Вот отсюда и гимморой, тут нужен мегаспециалист который под все может и будет получать много. А с Виндой проще. 

Автор: EvilsInterrupt 8.5.2013, 07:54
Цитата(bilbobagginz @  8.5.2013,  00:09 Найти цитируемый пост)
это заносчиво предполагать, что работодатель не думает о финансовой стороне найма.

Так я затем и спросил, чтобы понять "где зарыта собака". А пока мне кажется весьма не выгодно )

Автор: fish9370 8.5.2013, 09:40
Цитата(EvilsInterrupt @  8.5.2013,  07:54 Найти цитируемый пост)
Так я затем и спросил, чтобы понять "где зарыта собака". А пока мне кажется весьма не выгодно


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

хватить флейм разводить, закрывай тему, твоя позиция ясна, тебя не переубедить, да и кому это нужно?

Автор: borisbn 8.5.2013, 09:58
Цитата(fish9370 @  8.5.2013,  09:40 Найти цитируемый пост)
оглянись вокруг, кругом линукс

оглянулся:
дома - 2 компьютера. оба с Windows.
в кармане - Android (и это только в глубине он линукс. а в подавляющем числе случаев - Java).
у брата дома - 3 устройства с iOS и MacOS (см. замечание про Android) и один ноут с Windows.
на работе - >50 компьютеров с Windows (включая сервера с Wiki, JIRA, Git, Jabber и пр.) и один, на котором Linux.
я поспрашивал своих друзей и коллег. у всех (!) дома - Windows.

fish9370, почему ты считаешь, что то, что ты достаточно хорошо знаешь, лучше остального ?

P.S. Немного преувеличил. На самом деле дома есть одно устройство с Linux - телевизор. Но, думаю, там его не столько из-за его качеств пославили, сколько из-за цены.

Автор: fish9370 8.5.2013, 10:33
Цитата(borisbn @  8.5.2013,  09:58 Найти цитируемый пост)
fish9370, почему ты считаешь, что то, что ты достаточно хорошо знаешь, лучше остального ?


на самом деле я не говорил, что линукс лучше, хотя я так действительно думаю, 

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

спор бессмысленный, 


Автор: borisbn 8.5.2013, 10:40
Цитата(fish9370 @  8.5.2013,  10:33 Найти цитируемый пост)
спор бессмысленный

handshake, тем более, что удобство в 99% определяется привычкой, а документация и там и там есть как замечательная, так и отвратительная.

Автор: volatile 8.5.2013, 11:13
 smile 
У нас как-то закупили забугорную аппаратуру для научных исследований (за немерянные бабки кстати)
Все драйвера, и софт под Win к этой аппаратуре шли в комплекте, 
А когда поинтересовались драйверами под линукс, сказали что это надо будет заказывать за отдельную плату, причем цена такая, что дешевле с десяток лицензионных виндузятин купить. 

Линус - это конечно прекрасно. Но мы не настолько богаты, чтобы ставить бесплатные операционки.
Увы...

Автор: rsm 8.5.2013, 11:21
2EvilsInterrupt: попробую ответить "с той стороны", с позиции "чистого" GNU/Linux-программера, который разрабатывает софт исключительно под GNU/Linux и не пытается "усидеть на двух стульях" даже в случае использования кроссплатформенных средств (Qt, Python и т.п.). Итак.

Почему GNU/Linux?

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

О сроках подготовки разработчиков

Расхожее мнение о том, что GNU/Linux-программеру требуется больше времени на достижение квалификации высокого уровня, это не более чем миф. Здесь я подразумеваю подготовку специалиста по разработке системного ПО. Во-первых, это моя стезя и её я знаю лучше, поэтому могу выскать более достоверное мнение. Во-вторых, ИМХО, "кидать на форму" (т.е. создавать прикладное ПО) можно в любой ОС с равным успехом, достаточно лишь взять соответствующие средства. Основой же мифа являются, на мой взгляд, две вещи.

Первая: полное отсутствие понимания общей концепции и приёмов работы с GNU/Linux. Любые попытки поработать "в стиле window$" или "в стиле Apple" сопровождаются непреходящей головной болью и страданиями. Старые привычки и методы мешают, а не помогают. Это, кстати, уже подметили выше, покуда тема не скатилась в трололо про IDE. Первым шагом GNU/Linux-программера должен быть полный отказ от приобретённых ранее навыков работы с другими ОС. Именно этот этап занимает львиную долю времени в подготовке квалифицированного специалиста. Отсюда вывод: чем раньше начнёшь, тем легче будет пройти эту ломку.

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

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

О поиске разработчиков на рынке труда

Действительно, если соотнести количество GNU/Linux-программеров и всех остальных, результат будет совсем не в пользу первых. Не вызывает сомнений и б́ольшая продолжительность поисков подходящих специалистов. Что с этим делать я не знаю. Видимо, просто ждать пока GNU/Linux набирает обороты, становясь всё более привлекательным решением широкого спектра задач бизнеса.

Вместо выводов

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

Автор: Dem_max 8.5.2013, 11:28
Хотя бы взять Rohde & Schwarz они даже в свои приборы ставят винду и пишут софт под винду.

Добавлено через 2 минуты и 11 секунд
Цитата

Отмечу, что я не призываю радикально отказываться от GUI

А под Linux вообще есть среда разработки с GUI ????

Автор: rsm 8.5.2013, 11:32
Цитата(Dem_max @  8.5.2013,  13:28 Найти цитируемый пост)
А под Linux вообще есть среда разработки с GUI

ВНЕЗАПНО есть smile И даже не одна.

Автор: fish9370 8.5.2013, 12:17
Цитата(Dem_max @  8.5.2013,  11:28 Найти цитируемый пост)
Rohde & Schwarz


простите, кто?

Автор: bsa 8.5.2013, 13:13
fish9370, контора которая осциллографы делает.
Цитата(Dem_max @  8.5.2013,  12:28 Найти цитируемый пост)
Хотя бы взять Rohde & Schwarz они даже в свои приборы ставят винду и пишут софт под винду.
В итоге стоят они дороже, чем могли бы.
А потом, конторы зарабатывают основную массу денег не дорогими устройствами, которые продаются в штучных количествах, а дешевыми, которые продаются тысячами. А в дешевых вряд ли винда стоит. Например, у многих дома есть роутер. И только у единиц он работает на чем-то отличном от Linux. smile 

Автор: kamre 8.5.2013, 14:46
Цитата(rsm @  8.5.2013,  11:21 Найти цитируемый пост)
Первым шагом GNU/Linux-программера должен быть полный отказ от приобретённых ранее навыков работы с другими ОС. Именно этот этап занимает львиную долю времени в подготовке квалифицированного специалиста. Отсюда вывод: чем раньше начнёшь, тем легче будет пройти эту ломку.

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

Цитата(rsm @  8.5.2013,  11:21 Найти цитируемый пост)
В основном это выражается в предпочтении средств разработки с GUI средствам с CLI и в отсутствии навыка и привычки подвергать свою работу автоматизации с помощью скриптов.

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

Работая большую часть времени под windows постоянно использую far manager, в %path% у меня есть многие утилиты из gnu core вроде grep/sed/awk/less/... для однострочников, на меню в far весит множество самых разных команд и скриптов на python для всякой разной автоматизации, постоянно использую макросы в far, когда нужно какие-то однотипные операции над файлами/директориями проводить. Если нужна более сложная автоматизация, то предпочитаю писать скрипты на python в PyCharm, т.к. большие портянки на sh не люблю писать, а всякие power-shell пока не осиливал.

От IDE мне по большей части нужна хорошая навигация по коду, хотя бы простые работающие рефакторинги вроде переименования поля/функции в классе, удобная интеграция с отладчиком и с VCS. Когда предлагают "эффективнейшую IDE из sh и утилит вместе с простым текстовым редактором", то появляется много вопросов по тому как же это эффективно использовать, а на них уже обычно не отвечают или говорят что все это из IDE вообще не нужно, а нужно сразу все идеально проектировать/реализовывать/документировать.

Автор: borisbn 8.5.2013, 15:05
Цитата(bsa @  8.5.2013,  13:13 Найти цитируемый пост)
Хотя бы взять Rohde & Schwarz они даже в свои приборы ставят винду и пишут софт под винду.

кину камень в свой же огород - http://habrahabr.ru/post/179057/

Автор: EvilsInterrupt 8.5.2013, 15:06
kamre, Спасибо что описали мой рабочий процесс! ;)

Автор: Dem_max 8.5.2013, 17:52
Цитата(fish9370 @ 8.5.2013,  12:17)
Цитата(Dem_max @  8.5.2013,  11:28 Найти цитируемый пост)
Rohde & Schwarz


простите, кто?

Цитата
контора которая осциллографы делает.

Там кроме осциллографов много еще чего, хотя осциллографы это не главное.

Конторка такая не маленькая и много денежек зарабатывающая.




Автор: bsa 11.5.2013, 16:46
Цитата(Dem_max @ 8.5.2013,  18:52)
Конторка такая не маленькая и много денежек зарабатывающая.

По сравнению с ibm и Apple она нищая.

Автор: krundetz 13.5.2013, 09:39
Цитата(bsa @  11.5.2013,  16:46 Найти цитируемый пост)
По сравнению с ibm и Apple она нищая. 

занятное утверждение, а мы тогда все кто, бомжи?

Автор: bsa 13.5.2013, 13:23
Это я вообще к тому написал, что благосостояние слабо зависит выбора ОС.

Автор: gormih 13.5.2013, 16:17
Самое интересное, что тема все же холивар. 
Участник ведущий пытающийся понять чем же linux так привлекателен упорно игнорирует тот факт, что например в случае серийного / крупносерийного  производства встраиваемой системы значительное удешевление изделия даст использование именно linux, и этим все сказано - больше ничего говорить не нужно. Это раз.
Windows - система с закрытым исходным кодом. Ни один оборонный заказчик не разрешит вам использовать windows для разработки устройств управления систем вооружения. Это два.
При большем желании могу продолжить, но я думаю не стоит - все равно автору темы не интересно.

Автор: EvilsInterrupt 13.5.2013, 16:46
>>так привлекателен упорно игнорирует тот факт
Не игнорирую, а жду аргументации. Ответы типа "значительно дешевле" без каких-либо пояснений это не ответ, это просто мнение!

>>Windows - система с закрытым исходным кодом.
Вы действительно готовы сотрудничать с человеком не умеющих пользоваться отладчиком? Это первое! Даже такой ленивый как я и то WinDbg изучил, а IDA Pro изучается максимум за 2-3 недели, ну + язык скриптов 1-2 недели. За 2-3 месяца овладеть можно! Второе уже предостаточно в интернет архивов с исходниками Windows, разве что что очень ленивый не найдет. Да их не скомпилируешь, но в качестве учебного пособия вполне подходят!

Ответ это тогда утверждение после которого больше спросить нечего!

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

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

Автор: bsa 14.5.2013, 08:10
EvilsInterrupt, аргументация по цене. Разработка ПО для устройства стоит 12 человекомесяцев. Устройство планируется выпускать в количестве не менее 100000 шт. по $100. Себестоимость железки - $80. Цена лицензии на windows, допустим, $10. Цена переквалификации одного программиста $1000. Поставить винду минимум $1 млн, переобучить сотрудников (допустим их 4) - максимум $4000 (можно переобучить только двух, например, а остальных они дотянут). Заработная плата сотрудников $2000 для win и $3000 для линукса. Итого. 10 млн - 8 млн - 1 млн - 8000 =  992000; 10 млн - 8 млн - 4000 - 12000 = 1 984 000.
Разницу видишь?

То что некоторые конторы делают устройства на win, можно объяснить следующими причинами:
1. Главный технический специалист очень консервативен, но имеет большое влияние на менеджмент.
2. Очень много наработок, жестко привязанных к ОС.
3. Используются сторонние компоненты ПО, для которых нет аналогов под другие ОС.
4. Мелкомягкие подарили $1 млрд. взамен на лояльность (Nokia).
Это же отнрсится и к серверам.
На десктопах все несколько иначе.

Автор: gormih 14.5.2013, 08:28
>> Ответы типа "значительно дешевле" без каких-либо пояснений это не ответ, это просто мнение!

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

>>Вы действительно готовы сотрудничать с человеком не умеющих пользоваться отладчиком? Это первое! Даже такой ленивый как я и то WinDbg изучил, а IDA Pro изучается максимум за 2-3 недели, ну + язык скриптов 1-2 недели. За 2-3 месяца овладеть можно! Второе уже предостаточно в интернет архивов с исходниками Windows, разве что что очень ленивый не найдет. Да их не скомпилируешь, но в качестве учебного пособия вполне подходят!


А теперь внимательно читаем лицензионное соглашение Microsoft. Я не готов сотрудничать с человеком, дефакто совершающего уголовно наказуемое преступление. 
Да и по большему счету даже не понятно - зачем мне заниматься отладкой и декомпиляцией того, что в нескольких версиях linux уже отлажено, прозрачно и например имеет разрешение к использованию на стратегически важных объектах связанных с жизнеобеспечением?

Автор: EvilsInterrupt 14.5.2013, 08:39
>>А теперь внимательно читаем лицензионное соглашение Microsoft
Чистейший воды реверс не запрещен! Существуют wine(не надо объяснять что это), антивирусные продукты(kaspersky lab, dr.web, esset, etc), программы восстанавливающие пароли(access data, elcomsoft, passware, etc). Как вы думаете эти продукты создаются?

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

Добавлено через 1 минуту и 57 секунд
bsa, Спасибо!

Автор: gormih 14.5.2013, 09:01
bsa, Спасибо![/QUOTE]
>>Чистейший воды реверс не запрещен! Существуют wine(не надо объяснять что это), антивирусные продукты(kaspersky lab, dr.web, esset, etc), программы восстанавливающие пароли(access data, elcomsoft, passware, etc). Как вы думаете эти продукты создаются?

Пункт 8 лицензионного соглашения Win 7 Home Premium.
 Вы не имеете права:
· пытаться обойти технические ограничения в программном обеспечении;
· реконструировать, декомпилировать или дизассемблировать программное обеспечение...

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

Автор: borisbn 14.5.2013, 09:32
Цитата(bsa @  14.5.2013,  08:10 Найти цитируемый пост)
Итого. 10 млн - 8 млн - 1 млн - 8000 =  992000; 10 млн - 8 млн - 4000 - 12000 = 1 984 000.

Я, кажется, ещё не проснулся... откуда 8000, 4000 и 12000 ? Что из них на переобучение (кстати, с чего на что?) а что на з/п ?

Цитата(bsa @  14.5.2013,  08:10 Найти цитируемый пост)
12 человекомесяцев

Цитата(bsa @  14.5.2013,  08:10 Найти цитируемый пост)
сотрудников (допустим их 4)

т.е. 3 месяца работы.
Цитата(bsa @  14.5.2013,  08:10 Найти цитируемый пост)
$2000 для win и $3000 для линукса

где тогда 6000 и 9000 ?

Автор: bsa 14.5.2013, 09:34
Гы. Тоже туплю с утра. Умножил не на 3 а на 4  smile 

Автор: fish9370 14.5.2013, 09:48
Цитата(EvilsInterrupt @  13.5.2013,  16:46 Найти цитируемый пост)
Вы действительно готовы сотрудничать с человеком не умеющих пользоваться отладчиком? Это первое! Даже такой ленивый как я и то WinDbg изучил, а IDA Pro изучается максимум за 2-3 недели, ну + язык скриптов 1-2 недели. За 2-3 месяца овладеть можно! Второе уже предостаточно в интернет архивов с исходниками Windows, разве что что очень ленивый не найдет. Да их не скомпилируешь, но в качестве учебного пособия вполне подходят!


и много ты надизассемблировал?

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

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

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

Автор: EvilsInterrupt 14.5.2013, 11:28
Цитата(fish9370 @  14.5.2013,  10:48 Найти цитируемый пост)
и много ты надизассемблировал?

Ну целые операционные системы не реверсил, а вот их части драйвера(руткиты) да. Более того мне очень влом трудно читать чужой исходный код и мне достаточно часто проще посмотреть не результат того что сгенерировал компиллер с помощью дизассемблера. А когда применяешь hexreys decompiler то еще и в более-менее универсальном виде на псевдо-си.

Автор: gormih 14.5.2013, 15:12
Цитата(EvilsInterrupt @ 14.5.2013,  11:28)
Цитата(fish9370 @  14.5.2013,  10:48 Найти цитируемый пост)
и много ты надизассемблировал?

Ну целые операционные системы не реверсил, а вот их части драйвера(руткиты) да. Более того мне очень влом трудно читать чужой исходный код и мне достаточно часто проще посмотреть не результат того что сгенерировал компиллер с помощью дизассемблера. А когда применяешь hexreys decompiler то еще и в более-менее универсальном виде на псевдо-си.

То есть, код вида 
Код

b = a++;

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

Автор: rsm 14.5.2013, 18:59
Цитата(EvilsInterrupt @  13.5.2013,  18:46 Найти цитируемый пост)
IDA Pro изучается максимум за 2-3 недели

Всё бы хорошо, если б не один нюанс. Купить IDA не так-то просто даже от лица компании, не говоря уж об отдельных разработчиках. Гильфанов хорошо известен как товарищ очень принципиальный, упёртый и непредсказуемый (Тёма-2, ага). Может продать, а может и не продать - как настроение будет. Но даже если решит продать, непременно провентилирует, кому продаёт. Ибо такой мощный инструментарий нельзя давать в руки кому ни попадя.

Цитата(EvilsInterrupt @  14.5.2013,  10:39 Найти цитируемый пост)
Чистейший воды реверс не запрещен! Существуют wine(не надо объяснять что это)

Предлагаю провести чёткую грань чтобы не путать тёплое с мягким. В разработке wine используется реверсинг методом чёрного ящика: смотрим в MSDN, скармливаем функции некоторое число Х, получаем результат Y, много думаем, пишем код, возвращающий Y в ответ на X. Пруфы:

@http://wiki.winehq.org/DeveloperFaq
Q: Who can't contribute to Wine?
A: Some people cannot contribute to Wine because of potential copyright violation. This would be anyone who has seen Microsoft Windows source code (stolen, under an NDA, disassembled, or otherwise). There are some exceptions for the source code of add-on components (ATL, MFC, msvcrt); see the next question.
Q: Can I contribute if I've only seen the source to ATL, MFC, and/or msvcrt?
A: Yes, but not on those components. Also please state on the mailing list that you have seen the source to these and that you will not contribute to them. You are free to contribute to other areas of the Wine source code.
 

@http://wiki.winehq.org/SummerOfCode
Beware of Legal Requirements:
- You are not allowed to read or reuse Windows source code (leaked source / Windows Research Kernel* / ...);
- You are not allowed to reverse engineer Windows files by disassembling or decompiling them;
- You are not allowed to analyze Windows files with the trace functions of Wine;
- People who work or have worked for Microsoft should probably not participate;


@http://forum.winehq.org/viewtopic.php?p=37364#37364
We feed in certain values to the black box and see what comes out. We test all values and even include 'corner tests' which are where functions are supposed to change values but sometimes do not. Clean room means that we delve into the actual code and find out what it does and then attempt to do a better job than the original.
<...>
So, the Wine project, from the start, has not allowed reverse engineered code. Black boxed code is allowed if you can prove that the results are what are obtained by running test scenarios through a 'black box' or some Windows code. If you cannot, then your code is disallowed. That is why the project requires, for the most part, conformance tests and the more stringent the better. This allow code developers and testers to compare results, not line-for-line code.

В двух словах: если разработчики wine сомневаются, насколько легальным путём получен присланный им код, они предпочтут вообще его не брать. Аналогично поступают и в проекте ReactOS - как только появились подозрения что в код попали дизассемблированные куски, разработка была мигом заморожена и проведён полный аудит всего кода. Пруфы: http://www.reactos.org/reactos-auditing-progress-status-032006, http://www.reactos.com/wiki/Audit.

Цитата(EvilsInterrupt @  14.5.2013,  10:39 Найти цитируемый пост)
антивирусные продукты(kaspersky lab, dr.web, esset, etc)

У любой из этих компаний есть лицензия на соответствующую деятельность. Пруфы: http://www.kaspersky.ru/license, http://company.drweb.com/licenses_and_certificates/?lng=ru, http://www.esetnod32.ru/company/about/. Применительно к исследованию вирусов реверсинг (который настоящий реверсинг, с дизассемблированием и восстановлением алгоритмов работы программы) это один из способов, разрешение на использование которого вполне вписывается в рамки лицензии в сфере защиты информации.

Цитата(EvilsInterrupt @  14.5.2013,  10:39 Найти цитируемый пост)
программы восстанавливающие пароли(access data, elcomsoft, passware, etc)

Аналогично предыдущему: http://www.accessdata.com/about/company, http://www.elcomsoft.ru/company.html, http://www.lostpassword.com/company/customers.htm - у всех есть лицензии. К счастью, есть ещё в мире страны, где за порядком следят и хотя бы пытаются ловить и карать ворьё (любителей ZverCD, попошопа с торрентов, "честно украденного" IDA Pro и прочего софта на многие килобаксы). Поэтому любую компанию или отдельного разработчика, которые пытаются встать на зыбкую почву незаконного исследования кода, закроют (или "закроют") очень быстро.

Цитата(EvilsInterrupt @  14.5.2013,  10:39 Найти цитируемый пост)
Есть некоторые железки драйвера для которых есть только под Windows и Open-Source проектам ничего не остается как реверсить

Опять же, это реверсинг по методу чёрного ящика. Есть трогательная и поучительная история разработки драйвера forcedeth, обеспечивающего поддержку интегрированных сетевых карт из чипсетов серии nForce. По началу nVidia распространяла прекомпилированный драйвер nvnet. Народу это не понравилось и некто Carl-Daniel Hailfinger начал пилить свободную реализацию (forcedeth). Через некоторое время он с огромным удивлением увидел в репозитории множество патчей от разработчиков из nVidia. Кончилось всё это тем, что nVidia официально признала драйвер forcedeth и убрала все упоминания об nvnet. Пруфы: http://liquidat.wordpress.com/2007/03/04/the-forcedeth-story/. Кроме того, если посмотреть примечания к релизам на http://www.nvidia.ca/object/linux_nforce_archive.html, можно заметить что начиная с версии 1.11 упоминания о nvnet http://www.nvidia.ca/object/linux_nforce_1.11, а в FAQ к одной из версий имеется любопытный абзац:

@http://http.download.nvidia.com/XFree86_40/nforce/1.0-0236/readme_nforce-1.0-0236.txt
Q: Are there open source networking drivers for nForce ethernet hardware?
A: Yes, forcedeth is an open-source network driver for nForce ethernet hardware. Most distributions include forcedeth, but some distributions may require you to manually install it once installation is complete. The version of forcedeth included in older distributions may not support the latest nForce hardware. To remedy this, obtain the most recent version of the forcedeth from the www.kernel.org kernel source tree, and build it as a loadable module for your kernel.


Таким образом, видно, что nVidia не только не возражает против драйвера forcedeth, но даже поясняет где его взять (хотя по сути не обязана).

Цитата(EvilsInterrupt @  14.5.2013,  13:28 Найти цитируемый пост)
проще посмотреть не результат того что сгенерировал компиллер с помощью дизассемблера

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

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

Во-вторых, даже с реверсингом методом чёрного ящика разработка аналога проприетарной программы занимает неприемлемо большое количество времени. Упомянутые выше wine и ReactOS показывают это как нельзя лучше. Над первым работают вот уже 20 лет, над вторым - немногим меньше. Результаты определённо впечатляют, но финальной стабилизации ещё очень далеко. И даже такой маленький проект как forcedeth примерно три года был в активной разработке (причём при участии разработчиков из nVidia) прежде чем сама компания сочла его достаточно стабильным чтобы выбросить старые наработки и полностью на него переключиться.

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

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

Автор: xvr 16.5.2013, 17:52
Цитата(rsm @  14.5.2013,  18:59 Найти цитируемый пост)
Например, несмотря на то, что LibreOffice в целом работает хорошо, он порой напрочь сносит всю разметку с документов в формате *.doc. И этого никак не избежать доколе данный формат будет оставаться закрытым.

Сугубо точности ради - *.doc формат открыт (равно как и все бинарные форматы Оффиса). Правда, не так давно, но сам факт остается фактом - MS уже начала что то открывать, видимо что бы последствия 'реверс инженеринга по методу черного ящика' (с багами) не отразились на репутации исходного продукта  smile 

Автор: rsm 17.5.2013, 01:52
Цитата(xvr @  16.5.2013,  19:52 Найти цитируемый пост)
*.doc формат открыт

Серьёзно? smile А можно прямую ссылку на полные спецификации? Очень интересно, что же там такого понаписано, из-за чего документ выглядит по-разному в разных версиях собственного же офисного пакета?

Автор: borisbn 17.5.2013, 06:37
> Очень интересно, что же там такого понаписано, из-за чего документ выглядит по-разному в разных версиях собственного же офисного пакета?
HTML уж точно открытый формат, но как выглядит одна и та же страничка в разных версиях браузера... (причём, не только от M$) Думаю, можно не продолжать. 

Автор: xvr 17.5.2013, 13:50
Цитата(rsm @  17.5.2013,  01:52 Найти цитируемый пост)
Серьёзно? smile А можно прямую ссылку на полные спецификации?

http://msdn.microsoft.com/en-us/library/cc313105%28v=office.12%29.aspx
http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/%5BMS-DOC%5D.pdf

Автор: kriegerod 6.6.2013, 18:49
Цитата(kamre @ 6.5.2013,  14:00)
Как в консольном gdb удобно и быстро просматривать сложные вложенные структуры данных при отладке?

set print pretty on

Автор: xvr 6.8.2013, 13:54
Кстати, по поводу преимуществ Linux в мире embedded систем вспоминается история (увы не могу сейчас найти линки с пруфами) об одном HP осцилографе (тогда еще не Agilent), с WinXP (кажется) на борту, который умудрились заразить компьютерным вирусом  smile 

Автор: akizelokro 6.8.2013, 16:48
А не один вам разница на чем писать?
Я вот ещё походу холивар между виндой и полуосью застал.
Так я взял на винт в 100 мегов чтоли воткнул и винду, и полуось, и слаквару. Везде что-то написал и тем для меня холивар закончился.
А самое трудное там было на этих 100 мегах (вряд ли 300, но сейчас особо не помню), все три операционки в довольно работоспособных комплектациях разместить

Хотя, у меня большое подозрение, что я одинаково плохо написал проги сразу под все три операционки  smile 

Автор: yoweb 28.8.2013, 14:37
потому что почти все сервера в интернете на linux.

Автор: Bulat 31.10.2013, 12:28
Ну и холивар вы тут развели...

Вы под виндовс можете проделать что-то похожее??

Код

netstat -n|grep ESTABLISHED|awk {'print $4“ “$5“ “$6'}|grep .80|sort -n|uniq -c|awk {'print $3'}|replace '.' ' '|awk {'print $1“.“$2“.“$3“.“$4'}|uniq -c|sort -n|awk '{if($1 > 15) print $2}'


 smile 

Автор: volatile 31.10.2013, 16:43
Цитата(Bulat @  31.10.2013,  12:28 Найти цитируемый пост)
Вы под виндовс можете проделать что-то похожее??
netstat -n|grep ESTABLISHED|awk {'print $4“ “$5“ “$6'}|grep .80|sort -n|uniq -c|awk {'print $3'}|replace '.' ' '|awk {'print $1“.“$2“.“$3“.“$4'}|uniq -c|sort -n|awk '{if($1 > 15) print $2}'

слава богу нет. smile 

Автор: Bulat 31.10.2013, 18:06
Цитата(volatile @  31.10.2013,  16:43 Найти цитируемый пост)
слава богу нет


Во-во, слава Богу! Линукс - детям не виндовс игрушка smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)