LINUX.ORG.RU

Как стать первоклассным GNU программистом


0

0

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

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

И вот теперь я пришёл к выводу, что просто утонул в этом море информации и не знаю в каком направлении продолжать изучение.

Вот тут люди уже раздают свои программы народу (например: http://gtkballs.antex.ru/). А у меня пролёживают труды и не получают развитие только из-за того, что я не могу их организовать согласно GNU coding standard.

Может кто-то знает в Сети ресурсы (желательно на русском, хотя и английский перевариваю), содержащие нечто вроде учебника или сборника советов GNU программисту?

PS:

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

PS/2:

Ещё я люблю ковырять чужие (иногда заброшенные) труды, так что сведения о том как делать хороший "derived works" тоже приветствуются.


Ya polzovalsya GNU Coding Style kotoriy lezhit na www.gnu.org Posmotri kak oformleny drugie proekty. Na samom dele tam ne tak uzh i mnogo trebovaniy mnogie iz kotoryh realizuyutsya esli ispolzovat automake/autoconf/libtool.

master
()

Огр, ты неимоверно писуч, но когда ты, наконец, перестанешь писать "приемлИмый"? По-русски - "приемлЕмый", посмотри в словарь, что ли. ГЛАЗА РЕЖЕТ!!!

anonymous
()

В GNU есть проектик, специально для того предназначенный: GNU Hello. Просто смотришь на него, почитывая параллельно инфо на automake и autoconf, и делаешь то же самое.

Antichrist
()

2 Ogr:

Попробую переубедить тебя, как и Irsi, который просил меня после этого не выпускать программы под GNU лицензией, а под BSD (тусовали мы тогда на #lrn).

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

- мне легко их развернуть на любой платформе (не только на Linux или Windows)

- я не прошу от начальства закупать для меня программы, экономя тем самым ресурсы своего предприятия и своё время

- я в состоянии взять исходники и довести их, если требуется до нужного мне состояния.

- я осаюсь в поле закона и совесть моя чиста и нервы в покое (в отличие от тех кто воруют проприетарный софт)

- ...

Таким образом моя прибыль от работы растёт при использовании GNU программ, несмотря на то, что формально я и не состою в должности программиста, но тем не менее программированием занимаюсь.

А вот этот проект живёт благодаря тому что люди с разных уголков планеты думают и работают также как и я, и решили объединить свои труды в один, а не делать каждый раз один и тот же велосипед под названием парситель_логов_и_составитель_отчётов:

http://www.kneschke.de/projekte/modlogan

Полагаю что материально эти ребята оказываются только в плюсе.

А вот мне для того, чтобы приспособить эту программу требуется написать лишь плагин, который будет преобразовывать входной лог в набор записей - задача гораздо проще, чем делать самому всю программу с нуля. А ещё следует отдать должное и тем ребятам, которые написали библиотеки общего назначения: libz, libpng, gd, ... которые в свою очередь используются проектом modlogan. Вот она сила opensource - и чтобы ты Ogr здесь не говорил, - люди писали, пишут и будут продолжать писать непроприетарные программы с исходным кодом!

2 master, BaT, Antichrist:

Ребята, спасибо за информацию - но этим путём я уже шёл - места эти общеизвестны для GNU сообщества, а программу hello я уже скачивал и смотрел, потому как на неё многие из авторов программ с сайта gnu.org ссылаются. Программа очень стара (1993г), несмотря на то, что RMS переписывает http://gnu.chg.ru/prep/standards_toc.html чуть ли не 2 раза в год. Программа не содержит информации как была написана с подробными комментариями по шагам (сравните её хотя бы с Qt Tutorial) и хороша лишь тем, что в ней представлен минимальный код GNU стандарта.

Я конечно понимаю, что можно просматривая её прочитать всю документацию по пакетам программ gcc, gmake, info, autoconf, automake, libtool, gdb, emacs, ... - но будет ли этот путь быстрым и простым, а, главное рациональным?

Ведь должны же где то в сети лежать нечто, вроде учебных курсов по GNU программированию?

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

Android
() автор топика

Блин, а чем технически отличны GNU программисты и GNU программирование?

Havoc ★★★★
()

2 Havoc:

GNU программисты от своих собратьев неGNU программистов отличаются тем что:

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

- делают из своих творений пакеты, выполненные в GNU стандарте, в которых используют специальные имена файлов (вроде README, INSTALL, configure) и для составления которых используют специальную методологию, учитывающую ряд соглашений описанных в вышеозначенном GNU Coding Standard.

Android
() автор топика

1-е мимо, имхо

2-е встречается не только в гну пакетах. Это просто некоторое соглашение, следование которому не делает тебя первоклассным [гну] программистом, хотя и способствует некоторому порядку, как и любое другое соглашение.

Havoc ★★★★
()

2Android: "Я получаю свои деньги не за факт продажи программ, а за факт того что эти программы делают. По должности я не программист (за разработку программ мне никто не платит), а тех. специалист: в круг моих обязанностей входит составление статистических отчётов по логам с электронного телефонного коммутатора."
Теперь это расскажи своему боссу и добавь, что его конкуренты могут эти программы также использовать не платя ему деньги. И расскажи о его реакции тут.

Ogr
()

Я убежден что труд должен оплачиваться. Оплачиваться не обязательно деньгами. Кого-то устроит известность, вес в сообществе и т.п. Мне же хочется кушать, поэтому я пишу программы за деньги и зарабатываю этим себе на жизнь. Если я начну использовать GPL для своих программ то мне придется стать бомжом.

Есть ли польза сообществу от моего труда? Да, безусловно. Я плачу налоги. Когда работы много, я нанимаю на работу программистов и администраторов и плачу им зарплату. Из их зарплаты так же платятся налоги.

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

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

anonymous
()

2 Ogr (*) (2001-11-26 01:12:00.0)

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

В мире opensource авторы, как это не покажется странным быстрее реагируют на BugReport'ы, чем программисты проприетарного софта. Они даже закон придумали (DMCA), чтобы все кто нашли - молчали о багах.

2 anonymous (*) (2001-11-26 05:33:08.0) Ну не голодаю я когда раздаю софт другим - я же им не хлеб свой даю, который, если я кому то отдам - то не смогу утолить уже свой аппетит. Хлеб в отличие от кода программы имеет неприятное свойство - его нельзя скопировать в миллиардных экземплярах, за считанные секунды и распространить по Земному Шару.

И ещё: хочу тебе напонить поговорку "деньги нельзя есть".

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

2 All - Всё таки жаль, что мы ушли от основной темы, и я так и не получил ссылок-ответов на свой вопрос, а вместо этого веду дискуссию слюдьми, которым, на мой взгляд, лучше бы тусовать где-нибудь в другом месте: например, http://winfaq.com.ru

Android
() автор топика

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

Ontopic: я не знаю иного пути кроме чтения info по autoconf, automake, libtool и прочим. У меня это не заняло слишком много времени, и я склонен считать этот путь вполне рациональным.

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

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

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

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

Ну, в общем, я, кажется, таки понял твой вопрос. Попробую помочь, хотя ты вроде как уже и сам всё понял. OpenSource программирование от корпоративных разработок отличается в первую очередь не используемым инструментарием (наоборот, тут наблюдается полное согласие), а именно подходом. OpenSource - это наука. Базар. Ты что-то предлагаешь, другие это радостно критикуют, и, как бы это банально не звучало, в споре рождается истина. Как правило вовсе не та, которую автор концепции изначально ожидал. То есть, тут необходимо не умение работать в коллективе, со всеми этими дэдлайнами, заказчиками, ТЗ, и связанной со всем этим горячкой и нервотрёпкой, а лишь строгость мышления, способность вести дискуссию с РАВНЫМИ, способность свои мысли ясно излагать и уметь всегда их защитить, при этом не зацикливаясь и реагируя на разумную критику. Тут, кстати, и к технике собственно программирования добавляется требование: пишешь уже не для себя, и не для ограниченного коллектива. Пишешь как бы статью, которую будут читать специалисты, не знакомые с твоей работой изначально. Так что советую поинтересоваться такой методой, как литературное программирование (literate programming).

Antichrist
()

Да, вы ещё забыли мне посоветовать изучить макроязык M4 и его GNU особенности :)

Сейчас я занимаюсь его изучением - без этого autoconf и automake не освоиш.

А как вы отнеслись бы к тому, чтобы я сам проходя все шаги по изучению программирования приложения в стандарте "GNU Coding Standard" - написал черновик-шпаргалку, и, затем, систематизировав эту инфу, выложил на каком-нибудь сайте некий пошаговый учебник, состоящий из последовательных уроков с исходным кодом и сопутствующими диаграммами (чего зачастую не хватает в GNU приложениях)?

Android
() автор топика

Вреда от этого точно не будет :)

Havoc ★★★★
()

всеми руками за!

anonymous
()

2 Android & All

Вот тут http://sources.redhat.com/autobook/ прекрасная книга о autotool (autoconf, automake, libtool) от одного из разработчиков. В качестве начала - самое оно, а подробности (потом) в мануалах.

Как раз сейчас эту книгу и читаю. Вспомнил о теме в форуме и решил поделиться ;)

ignite
()

2 ignite:

Ура! Ну наконец то! Это именно то чего я так долго ждал. Тебе огромное человеческое спасибо (надеюсь в долгу не останусь:). Книга действительно очень полезна для новичка, надеюсь пригодится мне при создании русского аналога, хотя от чтения документации в дальнейшем оно конечно не избавит.

Кстати загляните на www.gnu.org.ru - там лежит достаточно много хороших переводов + Алекс Отт лобает перевод документации к autoconf и automake

Жаль про макропроцессор M4 я там не нашёл (может плохо искал) да и в Сети материалов на русском по этому чуду не много.

2 Havoc, anonymous (*) (2001-12-02 17:18:40.0)

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

А вот я сам в основном врубался в Linux именно по таким любительским учебным материалам, которых почему-то по Линуксу навалом в Сети, а вот по другим Юниксам (и даже по FreeBSD) - почему то вообще почти нет.

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