Модераторы: xvr

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему так нужны разработчики под Linux? попытка понять, а не холивара ради 
:(
    Опции темы
kamre
Дата 7.5.2013, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



Цитата(Фантом @ 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?
PM MAIL   Вверх
Фантом
Дата 7.5.2013, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 1
Всего: 49



Цитата(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? 

Откуда куча-то возьмется? Это одна-две строки.
PM   Вверх
kamre
Дата 7.5.2013, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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

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

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

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

Ну так пересмотреть нужно много всего при отладке и раскрыть кучу вложенных структур данных. Там где в MSVC это будет просто подведение мышки к плюсику - в gdb отдельная команда (скрипт?), разве не так?
PM MAIL   Вверх
Фантом
Дата 7.5.2013, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 1
Всего: 49



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

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

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

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

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

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

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

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

Текстовое описание того, что именно нужно посмотреть, занимает не больше времени, чем манипуляции мышью. Ведь "адрес" или его основные компоненты в подавляющем большинстве случаев уже есть в программе, его можно просто скопировать.
PM   Вверх
kamre
Дата 7.5.2013, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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

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

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

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

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

У меня все это "текстовое описание" занимает куда больше времени, чем просто подведение курсора мыши к переменной в редакторе и раскрытию структур данных. Расскажите как вы это делаете быстро в консольном gdb.
PM MAIL   Вверх
Фантом
Дата 7.5.2013, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 1
Всего: 49



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

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

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


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

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


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

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

Ну я не знаю, как это еще описать...
PM   Вверх
kamre
Дата 7.5.2013, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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


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

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

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

Хорошо, тогда расскажите как можно быстро посмотреть значения в следующем простом случае:
user posted image
В MSVC это просто несколько движений мышкой, даже кликать не нужно.
PM MAIL   Вверх
chaos
Дата 7.5.2013, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



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

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


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

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

Это сообщение отредактировал(а) chaos - 7.5.2013, 10:00
PM WWW   Вверх
bsa
Дата 7.5.2013, 11:19 (ссылка) |  (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Цитата(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 можно поставить, и пр. свистелки/перделки имеются. 
PM   Вверх
kamre
Дата 7.5.2013, 12:05 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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

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

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

Это сообщение отредактировал(а) kamre - 7.5.2013, 12:11
PM MAIL   Вверх
chaos
Дата 7.5.2013, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 3
Всего: 44



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

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


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

ох уж этот юношеский максимализм  smile 
PM WWW   Вверх
kamre
Дата 7.5.2013, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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

Это сообщение отредактировал(а) kamre - 7.5.2013, 16:08
PM MAIL   Вверх
krundetz
Дата 7.5.2013, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: нет
Всего: 69



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

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

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


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Фантом
Дата 7.5.2013, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 1
Всего: 49



Цитата(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 

PM   Вверх
kamre
Дата 7.5.2013, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



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

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

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

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


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

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

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1023 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.