LINUX.ORG.RU

программирование


0

0

Я начинающий программист, пишу "для души", до этого времени писал на перле, но сейчас хочется что-нибудь посерьезнее, если можно так выразиться. Хочу писать на С или С++, что вы посоветуете? Какой язык оптимален для разработки софта под линухом (графического, с использованием GTK). Заранее спасибо.

★★★★★

Ну почти весб линукс написан на С. С GTK тоже можно программировать на С. Этоже просто библиотека. Пишешь на чем хочешь, используя ее функции, хотя чаще с GTK пишут на С, а на QT, на С++.

OxiD ★★★★
()

А какой из языков "лучше", современне что ли? Какой более востребован, или они равнозначны?

roy ★★★★★
() автор топика

Лучше так: какой язык для чего используется?

roy ★★★★★
() автор топика

Не советую связываться с такими уродцами, как C или С++ до тех пор, пока не начнёшь хорошо понимать, что, как, и зачем ты делаешь. Ознакомься лучше сначала с Питоном и Схемой.

Причём, начинай со Схемы: http://www.htdp.org/

Antichrist
()

2Antichrist: А если я уже понял, что и как я хочу сделать и только не знаю, на каком из реализаций языка С мне это сделать? Что вы можете посоветовать?

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

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

Antichrist
()

да не слушай ты никого
разницы между языками почти ноль
print он и у индуса print

Начни с просто С
потренируешся в процедуроном языке
перейдешь на С++

а потом хоть в питон хоть в яву

далеко не панацея языки 4-ого поколения и т д

хочешь изучай и никого не соушай
меня тоже ))

anonymous
()

2Antichrist : Тогда почему же б0ольшая часть линуха и программ для него написаны на С? 2anonymous (*) (2003-01-20 03:49:53.86) Спасибо, я так и поступил.

roy ★★★★★
() автор топика

Antichrist, а есть ли какая-нибудь литература (желательно в сети), которая позволяет, как бы это сказать, классифицировать задачу и под нее выбрать язык?

Kasper
()

2Roy: исторически так сложилось, что Юникс - это Си.

2Kasper: литература не поможет. Нужно знать пару десятков языков, и уметь выбирать из них.

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

пару десятков языков ? :)))) грандиозно !

NikZ
()

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

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

Не думаешь? А зря. Думать полезно. Со временем это перестаёт напрягать, а потом и вовсе становится привычкой.

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

Antichrist
()

roy

Антихрист тебе дело толкует. На си нужно смотреть в последную очередь. Си++ имет смысл учить ознокомившись с основами си. Я бы тебе посоветовал ruby (http://www.ruby-lang.org), тем более, что ты был жертвой перла :-)))) Но по нему есть (по крайней мере мне встречалась) на русском только одна дока, да и та такая, что лучше бы не было ;-)))) Так что скорее всего тебе подойдет питон.

LamerOk ★★★★★
()

IMXO вообще начинать надо с асма - это основа основ
если вы не знаете как работает машина
то никогда не будете писать нормальный код

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

Не надо забывать что языки плодились от поколения к поколению.
И каждый плодился на основах прошлого языка.

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

Низко нонсенс. Но вы почитайте последнии статьи об оптимизации
продвинутых языков. Хотяб простой поиск. А там о мать
там же все примеры ссылаются на Це и пишеться вот так делает машина
данный поиск на низком уровне, поэтому делать вот так не правильно
тоесть правильно но ресурсоемко. Делать надо вот так.
Таких статей сейчас масса.

Вопрос почему их пишут ? ах да не все изучали асм Це С++
вывод делайте сами.

anonymous
()

2Antichrist&LamerOk Я могу согласиться, что на С нужно смотреть в последнюю очередь, но тогда почему же все таки под линух б0льшую часть программ (у меня на компе - все программы) написаны либо ни С, либо на С++ (не считая системных скриптов, а рабочих приложений)? Только потому, что "исторически так сложилось, что Юникс - это Си", как сказал Antichrist? Мне не кажется, что люди пишут на С только для того, чтобы отдать дань истории, значит у этих языков (С и С++) действительно есть "изюминки". Может я где в тексте не точно высказался, но я еще не выбирал, что именно писать на С, я просто решил изучить этот язык получше (немного я его знаю), и стоял перед выбором С или С++.

roy ★★★★★
() автор топика

да при чем тут история
если ты знаешь основы а це это основы
а если ты еще проследишь как Це докатился из масивов структур
в объектный язык и почему так произошлою

короче знаешь основы нет для тебя границ

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

Ассемблер какой либо конкретной платформы знать полезно, но вовсе не обязательно. А начинать с этого - так и вовсе ОЧЕНЬ вредно.

Antichrist
()

2 roy: На самом деле, могу только процитировать покойного Э. Дейкстру:
Если вы хотите получить от компьютера пользу, не программируйте!


На самом деле, для программирования "для души" под *nixами вполне
достаточно хорошего знания shell вкупе с тем, что называется toolbox
(разные там sort да find) + например, awk + например, tcl/tk (для
графического программирования). Даже perl необязателен. Можно еще
добавить Emacs Lisp -- если emacsом как таковым пользуешься.


Несмотря на то, что в отличие от Antichrist я большой фанат C, однако
в данном случае могу сказать то же, что и он -- на С (тем более на
С++) надо смотреть в последнуюю очередь. Ибо хуже плохого программиста
на С может быть только плохой программист на С++. Если уж так
хочется чего-то "тяжелого", то можно посмотреть на Java (которую я
*не* люблю, но которая все-таки позволяет достаточно просто писать
программы с тяжелым GUI итп).


Опять же, несмотря на очень теплые чувства к неимперативному
программированию и Lispу в частности, рекомендовать его никак
не могу (я имею в виду полномасштабный Lisp), равно как и Prolog
и т. п. Т. е. это имеет смысл только в том случае, если собираешься
заниматься чем-то связанным с AI (но AI это не то, что
можно порекомендовать начинающему программисту в качестве области
деятельности) -- в противном случае затраты на изучение оных вряд
ли окупятся (предвижу, что гн Antichrist сейчас станет меня с
г*ом есть :)


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

Стану, ещё как. Тот же помянутый тобой Emacs является очень даже живым опровержением дурацкого мифа о том, что Лисп - это только для AI.

Почитай введение к книге Пола Грэхема "On Lisp", где он весьма даже качественно проехался на тему мифа об AI.

Книгу можно скачать с его сайта. Да и вообще, там много чего почитать стоит, и в первую очередь, статью "Being popular".

http://www.paul-graham.com/

Antichrist
()

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

Вопрос в другом -- как в общем случае по совокупности параметров
(скорость разработки, ресурсожоркость, переносимость, надежность)
программы (допустим) на лиспе соотносятся с программами (допустим)
на С. Кроме того, факт есть факт: б'ольшая часть "системных" библиотек
написано на C, POSIX.1 и ему подобные стандарты сформулированы через
С API. Отсюда вопрос (риторический): насколько можно гарантировать
возможность использования того или иного API из программ на Lispе
(подставить любой другой язык)?

Наконец третий вопрос: назовите три крупных программы, не связанных
с AI, которые были бы написаны на Лиспе и реально использовались.


А пример с Emacs не показателен. Emacs как раз написан на С, а Lisp
для него -- просто язык расширения -- а это все таки другая весовая
категория (Emacs Lisp все таки не Common Lisp)


Да, замечу еше раз: я вовсе не имею в виду, что Lisp -- это плохо

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

Шум

Ну так ты почитал Грэхема? Он на все твои вопросы ответил... Включая и те, что ты не задал ещё...

Antichrist
()

Гм. В таких случаях принято говорить Chapter and Verse, please!
В означенной книге есть единственная глава (1.5) размером в
одну страницу, где рассматриваемая проблематика чуть-чуть затрагивается
(достаточно абстрактно); например в книге "Мир Лиспа" (М. Мир 1990,
перевод с финского, попадается в старой книге) этот круг вопросов
рассматривается намного подробнее.

aa5779
()

2 Antichrist:
О разных вещах мы говорим. То, что пишет этот Грехем, в принципе
общеизвестно и совершенно недоказательно -- в той же помянутой мной
книге "Мир Лиспа" одна из глав называется "Лисп -- язык программирования
искусственного интеллекта" -- но это ровным счетом ничего не значит.

Я прекрасно знаю, что Lisp можно использовать в принципе для любых
задач (об чем уже говорил). Дело ведь не в самом языке, а в том
насколько он интегрирован в среду. Я имею в виду наличие библиотек,
тулзов и просто наработок, которыми программист может пользоваться.
Для C существует огромный и разнообразный инструментарий. Пользоваться
им в Лиспе либо невозможно, либо трудно, либо непереносимо (в см.
non-portable). А родная среда Lispа фактически намного беднее.
(В области AI ситуация, разумеется, иная, потому что существует
почти сорокалетний опыт использования Лиспа в этой области).

Разумеется, на Lispе можно легко писать самомодифицирующиеся программы,
а на C это существенно труднее. Однако не худо бы задаться вопросом --
а оно вам надо? Подобные трюки могут быть очень элегантными, но
каково это все отлаживать и сопровождать? Я уж не говорю о том, что
чем многие лисповские конструкции невозможно эффективно скомпилировать.
Наконец, наличие сборки мусора делает поведение программы принципиально
недетерминированным -- а если учесть что некоторые алгоритмы сборки
мусора имеют эффективность O(n^2), а некоторые чуть ли не O(ln n),
то реальное поведение одной и той же программыв в разных реализациях
может очень неприятно отличаться. И так далее. Прибавим еще, что
Lisp намного сложнее C (я имею в виду *cтруктурную* сложность самого
языка).

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

(Если есть желание продолжить дискуссию, пиши на artem@aa5779.spb.edu)

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