LINUX.ORG.RU

Начало разработки C/C++


0

1

Привет!

Решил покопаться поизучать разработку приложений с GUI под *nix системы, подскажите пожалуйста с чего начать - какие IDE использовать, с чего лучше начать изучение GUI - пробовать писать под qt, gtk2+ или что-нибудь другое?

Наставьте на путь истинный пожалуйста :)

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

фи, рисовать гуй руками, рисовать формочки... нудно.. вот в BlackBox Component Pascal описал в модуле экспортированные переменные, функции, выбрал в меню Form/New Form... , ввёл имя модуля, а он сам формочку слепил.. мелочь, а приятно.

anonymous
()

geany \ glade

ну это то, с чем я экспериментирую

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

Nokia скоро будет переводить свои девайсы на андройд

не будет

jtootf ★★★★★
()

>Решил покопаться поизучать разработку приложений с GUI под *nix системы, подскажите пожалуйста с чего начать - какие IDE использовать, с чего лучше начать изучение GUI - пробовать писать под qt, gtk2+ или что-нибудь другое?


Qt + qtcreator/kdevelop.

P.S. Если не знаешь С++ - сначала отдельно выучи С, потом С++. Обязательно. И только потом смотри на либы типа Qt, иначе есть риск вырости быдлокодером.

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

>> P.S. Если не знаешь С++ - сначала отдельно выучи С

Бред, учи сразу С++.


Знаешь, иногда полезно знать разницу. А выучить С перед С++ - это минимальные затраты времени.

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

А выучить С перед С++ - это минимальные затраты времени.


Никогда не понимал, как можно ЯП выучить?! Это что стихотворение?!
отсюда следует, что время это занимает очень много.

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

И какие аргументы в пользу первоначального изучения C?

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

Chaser_Andrey ★★★★★
()

Холивар, так холивар...

А чё это все С и С++ советуют?
Чё не асм? Или ещё круче - прямо в кодах пиши.
Эти подходы ещё более устаревшие чем Си и Си++ всякие.

Есть же нормальные современные языки. Python, Tcl и тому подобное. bash в конце-концов.

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

>Молодец, хорошо вбросил. Напиши мне драйвера на баше.

Все молодцы. Один в теме про плюсы советует питон... Другой в теме про GUI заводит речь о драйверах. Ок. Запилил драйвера с гуем?

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

> Никогда не понимал, как можно ЯП выучить?! Это что стихотворение?!

Быдло-программерам на С++, зубрящих заклинания на темплейтах, не понять, ога.

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

> Молодец, хорошо вбросил. Напиши мне драйвера на баше.

И с мордой на куте. Эпик вин.

geekless ★★
()
Ответ на: Холивар, так холивар... от Suntechnic

> Есть же нормальные современные языки. Python, Tcl и тому подобное. bash в конце-концов.

Про Tcl «и тому подобное» не скажу, но python настолько ущербен как язык (GIL, убогий GC, ломают совместимость от версии в версии), что серьезно его можно рассматривать только в качестве языка для простецких скриптов. Фонатеги сейчас конечно возбудятся, некоторые из них даже красноглазят какие-то недобыдлогуиподелки, но факт остается фактом: деньги с пистоном не делают. Делают деньги с C/C++/Java/.NET(/PHP , но это отдельная песня).

С++ — современный эффективный высокоуровневый язык, который позволяет писать качественные продукты. В реальной жизни языки меряются не тем, сколькими способами можно отстрелить себе ногу, а тем, сколько денег требуется для создания решения определенного качества конкретной задачи. Класс задач, который решает python, настолько ничтожно мал, что его почти никогда и не рассматривают серьезно.

По поводу C++ vs Java: для высококачественного поддерживваемого и расширяемого решения, с качественным кодом, документацией и тестами, С++ это однозначный вин: ну не нужны при нормальном подходе GC и прослойка в виде виртуальной машины, хоть тресни. Лишние они. Их делали с целью увеличить скорость разработки и снизить требования к квалификации программистов. Что и получили: для решений низкого средненького качеств java - вин.

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

> С++ — современный эффективный высокоуровневый язык, который позволяет писать качественные продукты.

Качественно вбросил.

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

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

> Delphi как развивающаяся прогрессивная открытая и перспективная платформа это полный фейл

Давеча юзанул лазарус, взгрустнул о дельфийском отладчике

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

>А необходимость первоначальных знаний C - миф. Они могут быть полезными, но никак не необходимыми.

А я и не говорю про необходимость, я именно про полезность.

А затраты времени на изучение C будут неоправданны, если человек хочет изучать и писать на C++.


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

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

> Неа, потому что начало изучения С++ во многом пересекается с С.

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

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

>Очевидно, потому что часть C является подмножеством C++. Поэтому, изучая C++ - волей не волей изучатся эти пересекающиеся аспекты, а непересекающиеся не будут затрагиваться за ненадобностью.

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

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

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

Нездоровая фантазия - это считать python полноценным языком программирования.

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

> В реальной жизни языки меряются не тем, сколькими способами можно отстрелить себе ногу, а тем, сколько денег требуется для создания решения определенного качества конкретной задачи. Класс задач, который решает python, настолько ничтожно мал, что его почти никогда и не рассматривают серьезно.

А как ваше второе предложение соотносится с первым?

Если мы измеряем то сколько денег требуется для решения определённой конкретной задачи, то какая разница насколько велик класс который решает ЯП?

Класс задач которые решает R ещё меньше. Но это не значит что язык плох. Например если в вашей задаче много статистики или инженерных расчётов то R как раз то. Если ваша задача требует длительной и бесперебойной работы, а цена ошибки или крэша заоблочна, то лучше наверное Tcl или другой интерпретируемый язык, где вы будете знать, что если в решении есть ошибки, то они ваши а не компилятора, что не будет непредвиденных утечек и т.п. Дрова же лучше действительно написать на Си. А вот писать на нём программу которая создаст вам каталог, со всеми каталогами по пути, и одновременно сделает его текущим на С++ просто тупо.

В свете всего сказанного глупо спорить какой язык лучше или хуже или даже мощнее, так как если исходить из предположения о том, что всё определяется мощностью множества потенциально решаемых задач. то лучший ЯП - АК-47.

Что же до мысли, что будущее за интерпретируемыми языками, то мысль не моя, а Эрика Реймонда из его «Искусство программирования для UNIX»

Suntechnic ★★★★★
()

Тулкит — Qt, IDE — QtCreator. Можно еще KDevelop посмотреть. Остальное даже не трогай (разве что Eclipse еще более-менее).

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

> python настолько ущербен как язык

языки меряются не тем, сколькими способами можно отстрелить себе ногу

Класс задач, который решает python, настолько ничтожно мал



Настолько толсто, что даже не хочется комментировать.

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

У Nokia есть MeeGo и партнёр Intel. Так что Qt рулит.

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

Кинул компонеты на форму и пошёл в кассу за честно заработанными деньгами.

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

HiddenComplexity
()

IDE не обязателен, подойдет любой редактор (emacs, vim) попробуйте разные библиотеки, на опыте зацените преимущества и недостатки.

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

>Знаешь, иногда полезно знать разницу.

Учить Си разработчику на С++ - это так же бесполезно, как, к примеру, любому программисту учить ассемблер. Т.е. вроде бы все об этом говорят, и вроде как бы «надо», но на практике оказывается совершенно бесполезным (а иногда - и наоборот, вредным, умением)

А выучить С перед С++ - это минимальные затраты времени.

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

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

>Неа, потому что начало изучения С++ во многом пересекается с С.

Последствия такого изучения я вижу налицо: необоснованно частое использование указателей (вместо ссылок и boost::optional), ручное управление памятью при помощи free/delete (вместо RAII), рассматривание классов исключительно как способ группировки данных и процедур (вместо нормальной абстракции данных), и многое другое.

А я и не говорю про необходимость, я именно про полезность.

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

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

>Что и получили: для решений низкого средненького качеств java - вин.

Ага. Достаточно сравнить по качеству, функциональности и расширяемости Eclipse и любую поделку на плюсах вроде KDevelop.

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

Достаточно сравнить по качеству, функциональности и расширяемости Eclipse и любую поделку на плюсах

Бгг, а ничего, что в этом твоем эклипсе даже автодополнение не могут сделать так, чтобы оно не тормозило (раз в месяц тут на форумах выползает вопрос на эту тему)?
А между тем поделка на плюсах под названием Qt Creator просто работает, и это при том, что она полностью представляет из себя коллекцию плагинов. Это к вопросу о расширяемости.

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

Сравни количество плагинов к Qt Creator и к Eclipse - это раз.

Кроссплатформенность - это два.

Как следствие, легкость установки - это три.

Хотя да, Qt Creator - очень даже хороший вариант. Жаль, что под C++&Qt заточен.

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

>Последствия такого изучения я вижу налицо: необоснованно частое использование указателей (вместо ссылок и boost::optional), ручное управление памятью при помощи free/delete (вместо RAII), рассматривание классов исключительно как способ группировки данных и процедур (вместо нормальной абстракции данных), и многое другое.

Может просто лицо кривое?) Почему-то мне знание С не мешает, и я нормально пишу как на С, так и на С++ (без использования С-наследия без дела).

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

> Сравни количество плагинов к Qt Creator и к Eclipse - это раз.
И о чем мне это скажет? О том, что над эклипсом работает больше людей или что?

Кроссплатформенность - это два.

Последний раз, когда я проверял, Qt Creator вполне себе работал как минимум на двух платформах.

Как следствие, легкость установки - это три.

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

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

> Учить Си разработчику на С++ - это так же бесполезно, как, к примеру, любому программисту учить ассемблер. Т.е. вроде бы все об этом говорят, и вроде как бы «надо», но на практике оказывается совершенно бесполезным (а иногда - и наоборот, вредным, умением)

Ололо, толстячок!! )))

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

>> Учить Си разработчику на С++ - это так же бесполезно, как, к примеру, любому программисту учить ассемблер. Т.е. вроде бы все об этом говорят, и вроде как бы «надо», но на практике оказывается совершенно бесполезным (а иногда - и наоборот, вредным, умением)

Ололо, толстячок!! )))

А вы не могли бы уточнить, что именно из моих слов вы считаете троллингом?

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

>И о чем мне это скажет? О том, что над эклипсом работает больше людей или что?

О том, что Java лучше подходит для кроссплатформенной plugin-based IDE, чем плюсы - sad, but true. Прежде всего - из-за переносимого байт-кода, ну и присутствие мелочей вроде reflection тоже даёт о себе знать.

Последний раз, когда я проверял, Qt Creator вполне себе работал как минимум на двух платформах.

А _сторонние_ плагины там тоже кроссплатформенные? И их не надо пересобирать вручную при смене ОС?) И разработчиком тоже не приходится проверять работу кода на всех платформах?

Надеюсь, речь про установку плагинов

Разумеется

Хотя у Qt Creator есть неоспоримое преимущество - он заметно шустрее, чем Eclipse-CDT.

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

Ознакомтесь с мнением авторитетного человека:

Какой отстойный аргумент.

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

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

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

Всю последовательность.

Всегда ваш, кэп.

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