Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Хочу научиться программировать в Linux :)  (Прочитано 30596 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alex2000

  • Активист
  • *
  • Сообщений: 317
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #75 : 29 Июля 2008, 11:41:45 »
Тут где-то на форуме аборигены приводили кусочек кода, который понимается Сишным компилятором и не понимается С++ным. Но это было ИМХО извращение, это надо было умудриться написать.
Но тем не менее не везде они так уж совместимы. Опять же стандарты развиваются. так что тут много вариантов.
Есть некоторые нюансы, например с типами данных, но большинство программ будут работать.

Оффлайн Bers

  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
    • Домашняя страничка
Re: Хочу научиться программировать в Linux :)
« Ответ #76 : 29 Июля 2008, 16:23:48 »
А вот если имеется консольная программка и очень хочется сделать под неё GUI- чем тогда пользоваться? По идее, не должно быть слишком сложно?  :-[
Программа написана на С, исходники доступны. А нужны будут эти исходники, или нет?

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

Я писал GUI к консольной программке на python, так что С не обазятально

LK4D4

  • Гость
Re: Хочу научиться программировать в Linux :)
« Ответ #77 : 29 Июля 2008, 16:28:25 »
Такой вопрос:
"Есть приложение, написанное на C++ под Linux, производительность которого необходимо серьезно улучшить. Расскажите, как можно найти его «узкие места» и какие инструменты вы станете для этого использовать."
Отвечать на него не надо, а лучше посоветовать, что почитать по этой теме) Приветствуются как ссылки, так и названия бумажных книг.
man gprof
Не спеши браться за ассемблер. Вполне может статься что в критической функции, какой-то мудрый человек применил пузырьковую сортировку ;) достаточно будет выкинуть тормозной кусок и вписать туда qsort
Так что сначала разобраться надо.
Ну это понятно. Вопрос-то я не сам придумал, а прочитал в инете в анкете приема на работу. Я думаю неспроста написано, что именно под линукс. Где-то должны быть свои хитрости в линуксовом коде.

Оффлайн digiwhite

  • Активист
  • *
  • Сообщений: 732
  • http://www.welinux.ru
    • Просмотр профиля
    • http://www.welinux.ru
Re: Хочу научиться программировать в Linux :)
« Ответ #78 : 29 Июля 2008, 17:24:52 »
Тоже хотите податься в разработку под *NIX системы :) ;)
Социальная сеть не фанатично настроенных линуксойдов - http://www.welinux.ru

burgua

  • Гость
Re: Хочу научиться программировать в Linux :)
« Ответ #79 : 29 Июля 2008, 19:19:21 »
Перефразируя древних :
Хочешь программировать на unix - программируй!

Оффлайн igel

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #80 : 30 Июля 2008, 14:44:51 »
Не вводите людей в заблуждение=)
Поменьше читайте Википедию, там кто угодно может писать что угодно. С++ вообще не включает в себя C. Только синтаксис похож, философия совершенно иная.
Да причём тут википедия. Я 20 лет работаю, вначале на C, потом на C++. Философия - это вообще непонятно что, применительно к языку программирования. Можно говорить об объектно-ориентированном подходе. Да, C++ допускает (и делает удобным и естественным) использование ООП, но не требует этого. Ещё раз: за исключением несколько большей строгости в отношении определения функций и явного преобразования типов C является подмножеством C++.

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #81 : 30 Июля 2008, 21:46:17 »
Согласен с igel.

Оффлайн Alex2000

  • Активист
  • *
  • Сообщений: 317
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #82 : 31 Июля 2008, 00:16:29 »
Да причём тут википедия. Я 20 лет работаю, вначале на C, потом на C++. Философия - это вообще непонятно что, применительно к языку программирования. Можно говорить об объектно-ориентированном подходе. Да, C++ допускает (и делает удобным и естественным) использование ООП, но не требует этого. Ещё раз: за исключением несколько большей строгости в отношении определения функций и явного преобразования типов C является подмножеством C++.
Не является, стандарт С++ не описывает С, там есть лишь ссылка на старый стандарт С, который уже пару раз менялся. На С++ можно писать в стиле С, но без ООП это уже не С++. В программе на С++ можно и ассемблерные вставки делать, но это не означает, что С++ являются является надмножеством ассемблера. Если вы не понимаете термина «философия программирования», то купите книжку, почитайте ;).
« Последнее редактирование: 31 Июля 2008, 00:34:12 от Alex2000 »

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #83 : 31 Июля 2008, 10:19:51 »
Сегодня можно купить книжку и по философии похмелья. Написать можно всё.
Для того чтобы являться надмножеством не обязательно описывать базу или носом тыкать читателя в эту базу. Но для таковых в стандарте C++ чётко указано, что С++ базируется на С (версия такая-то).
« Последнее редактирование: 31 Июля 2008, 10:21:28 от S.Tokarev »

Оффлайн igel

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #84 : 31 Июля 2008, 11:46:41 »
Не является, стандарт С++ не описывает С, там есть лишь ссылка на старый стандарт С, который уже пару раз менялся. На С++ можно писать в стиле С, но без ООП это уже не С++. В программе на С++ можно и ассемблерные вставки делать, но это не означает, что С++ являются является надмножеством ассемблера. Если вы не понимаете термина «философия программирования», то купите книжку, почитайте ;).
Я не "не понимаю", а не принимаю термина "философия" программирования, равно как и термина "философия науки". Последнюю мне приходилось и изучать и сдавать, как в марксистско-ленинском, так и в "де-идеологизированном" варианте. Существует наука и существует программирование, в их рамках могут существовать различные подходы, более или менее принятые и всегда со временем меняющиеся. Можно долго спорить о смысле термина философия, в том числе - аппелируя к древним грекам. На практике же, в подавляющем большинстве случаев, выведение вперёд "философии" означает навязывание определённого стиля мышления, которое на корню губит творчество и свежесть мысли. В частности, использование ООП в задачах математического программирования (а в некоторых (хороших) вузах сейчас изучение программирования начинают (!) с C#) очень часто только мешает, поскольку прячет детали реализации - основу эффективности алгоритма.

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

Спорю не ради установления истины (это невозможно, во всяком случае в споре), а поскольку Вы и в самом деле вводите в заблуждение людей, которые спрашивают: надо ли изучать C и C++ отдельно. Правильный ответ: не надо. Изучая C++, Вы изучите C, только помните, что не надо использовать сложные механизмы (ООП) там, где эффективны простые. Если у Вас есть время и возможности, я бы рекомендовал начинать с C - вы лучше усвоите детали реализации алгоритмов, а C++ пойдёт значительно проще.
« Последнее редактирование: 31 Июля 2008, 11:49:09 от igel »

Оффлайн Alex2000

  • Активист
  • *
  • Сообщений: 317
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #85 : 02 Августа 2008, 07:14:08 »
Вы и в самом деле вводите в заблуждение людей, которые спрашивают: надо ли изучать C и C++ отдельно. Правильный ответ: не надо. Изучая C++, Вы изучите C, только помните, что не надо использовать сложные механизмы (ООП) там, где эффективны простые. Если у Вас есть время и возможности, я бы рекомендовал начинать с C - вы лучше усвоите детали реализации алгоритмов, а C++ пойдёт значительно проще.
Логика у вас страдает. Как же вы программы пишите?

Оффлайн S.Tokarev

  • Активист
  • *
  • Сообщений: 415
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #86 : 02 Августа 2008, 18:05:52 »
Вы и в самом деле вводите в заблуждение людей, которые спрашивают: надо ли изучать C и C++ отдельно. Правильный ответ: не надо. Изучая C++, Вы изучите C, только помните, что не надо использовать сложные механизмы (ООП) там, где эффективны простые. Если у Вас есть время и возможности, я бы рекомендовал начинать с C - вы лучше усвоите детали реализации алгоритмов, а C++ пойдёт значительно проще.
Логика у вас страдает. Как же вы программы пишите?
Чем это она страдает ? "Надо" и "рекоммендуется при наличии времени" - две большие разницы.
Другое дело, что с третий абзац автора меня всё-равно удручил.
« Последнее редактирование: 02 Августа 2008, 18:07:34 от S.Tokarev »

Оффлайн igel

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #87 : 05 Августа 2008, 11:29:26 »
Другое дело, что с третий абзац автора меня всё-равно удручил.

To S.Tokarev: Чем именно? Вопрос не праздный: мне интересно Ваше мнение, поскольку задача обучения программированию студентов и новых сотрудников стоит передо мной постоянно.

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

Приходят же выпускники, которых при неплохом физико-математическом образовании, научили программировать "Hello world!" на C#. Программисты-профессионалы нас не устраивают: им невозможно за мыслимое время объяснить специфику решаемых задач, а запросы у них очень велики, мы пробовали.

Как бы Вы действовали?
« Последнее редактирование: 05 Августа 2008, 12:34:29 от igel »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Хочу научиться программировать в Linux :)
« Ответ #88 : 06 Августа 2008, 05:41:04 »
...
При этом круг решаемых задач широк: от математики, где важны параллельные вычисления на неоднородном кластере, до интеграции всего этого в терминальные станции с эргономичным интерфейсом. Поэтому надо дать людям некие основы с тем, чтобы они могли затем самообучаться далее по конкретным направлениям.
...
Таким людям надо рассказывать не языки, не ООП, не функциональное программирование, не то как правильно попилить программу на модули.
Этим людям в первую очередь стоит знать архитектуры под которые они будут писать, их возможности и ограничения, надо знать какие технологии (библиотеки) можно для этого использовать (уже существующие готовые решения И как это можно повторить самому), этим людям надо знать все тонкости IPC и еще до хрена и больше...
Извините но если вы собираетесь рассказывать им про кластера, распределнные системы и встраиваемые системы, то вам новички противопоказаны :) Не та аудитория, совсем не та... Новичков можно заставить клепать интерфейсы на дельфе к БД и раскладывать синус в ряд Тейлора на сишнике. Все.

burgua

  • Гость
Re: Хочу научиться программировать в Linux :)
« Ответ #89 : 06 Августа 2008, 10:26:27 »
Пардон, что я вмешиваюсь в вашу беседу.
Писал ли кто-нибудь на ruby? И желательно подскажите
как писать на нем GUI (gtk). Есть ли толковые доки?

 

Страница сгенерирована за 0.02 секунд. Запросов: 21.