The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Анализ популярности языков программирования в 2012 году , opennews (ok), 08-Янв-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


33. "Анализ популярности языков программирования в 2012 году "  +/
Сообщение от ram_scan (?), 08-Янв-13, 16:12 
Сие не геморные языки. Я на сях и языках алгольной группы кодю уже лет 15 как, но до сих пор без гугля и пары-торйки тыков не могу описать на сях тип указателя на массив указателей на структуры, содержащие указатели на функции с определенными прототипами. Или когда мне надо расположить структуру по абсолютному адресу в памяти без трюкачества. А на языках алгольной группы (на той-же аде или модуле-2) я делаю это с первой попытки просто по аналогии без заглядывания в ламерку и с первого раза попадаю.

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

В итоге языками алгольной группы я пользуюсь на круг чаще, но по ним гуглю намного реже.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

56. "Анализ популярности языков программирования в 2012 году "  +/
Сообщение от Crazy Alex (ok), 08-Янв-13, 18:36 
Эм... Такое, в общем-то, за раз описывать и не надо. У вас же там сущности какие-то? Вот и объявите их отдельно, с именами, чтобы было понятно, о чём оно. Тогда и читателю проще. насчёт структуры по абсолютному адресу не скажу - не надо было, но по идее же один раз макрос под это дело пишется?

Это не то чтобы в защиту плюсов (я их как раз за примитивизм не особо люблю) - просто не пойму, зачем это гуглить сто раз.

Ответить | Правка | Наверх | Cообщить модератору

86. "Анализ популярности языков программирования в 2012 году "  +1 +/
Сообщение от Orduemail (ok), 09-Янв-13, 05:57 
> Сие не геморные языки. Я на сях и языках алгольной группы кодю
> уже лет 15 как, но до сих пор без гугля и
> пары-торйки тыков не могу описать на сях тип указателя на массив
> указателей на структуры, содержащие указатели на функции с определенными прототипами.
> Или когда мне надо расположить структуру по абсолютному адресу в памяти
> без трюкачества.

Неудачные примеры. Про структуру по адресу: её не надо располагать, надо приводить тип указателя. А про указатель на структуру, указателей на функции, указателей на структуры, выше правильно написали, не надо забывать про существование typedef.

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

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

87. "Анализ популярности языков программирования в 2012 году "  +/
Сообщение от Orduemail (ok), 09-Янв-13, 06:01 
> В итоге языками алгольной группы я пользуюсь на круг чаще, но по
> ним гуглю намного реже.

Странно, что это так. Ведь постоянно приходится искать в гугле какие-нибудь библиотеки, описания этих библиотек, куски кода для копипасты, и прочая, и прочая. Вы что, пользуясь языками алгольной группы, на постоянной основе используете C'шные библиотеки?

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

129. "Анализ популярности языков программирования в 2012 году "  +/
Сообщение от ram_scan (?), 10-Янв-13, 17:52 
Понятная и хорошая библиотека идет с читабельной докой и стопятистами примерами. А системную как правило и так помнишь на память.

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

Самый простой (правда несколько притянутый за уши, но тем не менее) пример. Обращение к структуре по имени и через разыменовывание указателя. Если на алгольном языке мне достаточно знать что разыменовывание указателя делается через ^, взятие адреса через @ а обращение к полю структуры или юниона через . то я не грея голову пишу ptr^.field когда разыменовываю указатель, и foo.field когда обращаюсь в адрес. Или @foo^.field если мне хочется странного, но это по крайней мере все равно очевидно, логично и всегда так а не иначе, вне зависимости от контекста. Надо два указателя разыменовать ptrptr^^.field. Надо три - ptrptrptr^^^.field.

А на сях тех-же самых синтаксис выходит разный, и я, зная, что указатель разыменовывается через * а обращение к полю через . внезапно должен писать ptr->field разыменовывая указатель и foo.field обращаясь в символическое имя (чудны дела твои господи). Двойной указатель будет уже *ptrptr->field, а не, внезапно, ptrptr->->field как бы можно было логически предположить. Интуитивность такой записи за гранью добра и зла. То есть вместо того чтобы помнить два правила которые применимы везде я должен помнить уже три которые применимы каждое в своем случае, причем там где двух по идее вполне достаточно. А голова то не резиновая, а это самый простой пример который только удумать можно.

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

Хотя мож я просто дурак и у меня в голове ничего не держится =)

Ответить | Правка | Наверх | Cообщить модератору

131. "Анализ популярности языков программирования в 2012 году "  +/
Сообщение от Orduemail (ok), 11-Янв-13, 02:55 
> Понятная и хорошая библиотека идет с читабельной докой и стопятистами примерами. А
> системную как правило и так помнишь на память.

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

> А на сях тех-же самых синтаксис выходит разный, и я, зная, что
> указатель разыменовывается через * а обращение к полю через . внезапно
> должен писать ptr->field разыменовывая указатель и foo.field обращаясь в символическое
> имя (чудны дела твои господи). Двойной указатель будет уже *ptrptr->field, а
> не, внезапно, ptrptr->->field как бы можно было логически предположить.

Если это вызывает проблем, то можно писать вместо ptr->field так: (*ptr).field. И указатели высших порядков тогда используются по той же схеме: (**ptr).field, (***ptr).field и тп. Тот же самый паскаль, но вместо ^ ставим * и порядок символов другой. А оператор -> лишь, как вы правильно назвали, синтаксический сахар, позволяющий уменьшить количество * перед ptr. В большинстве ситуаций уменьшить количество до нуля, и, вероятно, именно красота и законченность этого нуля и явился причиной введения такого оператора в язык.

> [...]
> Хотя мож я просто дурак и у меня в голове ничего не
> держится =)

Я думаю дело не в личных свойствах интеллекта. Дело лишь в том, что на C вы пишите редко. Причём вам не доводилось читать чужой код. Ну или доводилось, но иногда, нерегулярно и понемногу.
Такие проблемы стандартны: когда влезаешь в незнакомый язык, начинаешь спотыкаться о каждую мелочь, потому что тот раздел мануала к языку ещё не прочитан, или потому что он после прочтения успешно забыт, или потому, что в мануале явно не описана какая-то тонкость, а прочтение по диагонали не подразумевает вдумчивого восприятия информации.
Я точно так же буду спотыкаться, если мне приспичит писать под какой-нибудь там gnat или fpc. Я точно так же спотыкаюсь, когда суюсь в схему после коммон лиспа. Когда не пользуюсь пару-тройку лет python'ом/ruby/чем-угодно-ещё, а потом вдруг что-то начинаю на нём ваять.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру