Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Имбецилы

Автор Алексей Гринь, октября 17, 2009, 13:43

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

Triton

Цитата: Алексей Гринь от ноября 11, 2009, 17:52
Ещё вчера я вон, набыдлокодил макросы для быстрого протипирования классов (а то много ручной работы выходит).
Угу, Си и Си++ прямо таки замечательные языки: сначала программист пишет свою реализацию ООП, свой тип данных для строк, свой механизм управления памятью, свой RTTI... а потом берёт другой язык, и приступает таки к решению поставленной задачи.

Молиться, поститься и слушать радио Ватника

arseniiv

Я вам и говорю: Delphi, переделанный синтаксисом под Си! Мне бы такой язык жутко понравился. ;D Нет-нет, не пинайте меня. А можно ещё сделать другой язык.
Кстати, насколько быстро работает преобразователь текста вместе с компилятором? Свой собственный компилятор всё же не очень легко написать.

myst

Цитата: Алексей Гринь от ноября 11, 2009, 17:32
Да-а, что самое забавное, ДВУХпроходные компиляторы зачастую компилируют быстрее, чем ОДНОпроходные сишные.
У тебя и пруфы есть? :eat:


myst

Цитата: arseniiv от ноября 11, 2009, 19:18
Кстати, насколько быстро работает преобразователь текста вместе с компилятором?
А?

arseniiv

Ну, синтаксис вида си преобразуется к другому желаемому и тем компилятором обраба...

Triton

Цитата: arseniiv от ноября 11, 2009, 19:18
Я вам и говорю: Delphi, переделанный синтаксисом под Си! Мне бы такой язык жутко понравился. ;D Нет-нет, не пинайте меня.
Object Pascal... увольте.) Для прикладных задач всегда Java, Ruby, Tcl...

Цитата: arseniiv от ноября 11, 2009, 19:18
А можно ещё сделать другой язык.
А можно сделать свою ОС... Да куда там - свою аппаратную платформу! Вот только зачем? :eat:
Есть конечно маньяки вроде меня, которым этот процесс интересен сам по себе...  :D

Цитата: arseniiv от ноября 11, 2009, 19:18
Свой собственный компилятор всё же не очень легко написать.
Таки достаточно легко.
Крайне сложно написать оптимизирующий компилятор.  ;)
Молиться, поститься и слушать радио Ватника

myst

Цитата: arseniiv от ноября 11, 2009, 21:03
Ну, синтаксис вида си преобразуется к другому желаемому и тем компилятором обраба...
Это компилятор и есть, трансляция не обязательно в машинный код делается.

myst

Пока Гринь бороздит просторы препроцессора C, старики сражаются со змием окаянным, C++. Подробности. Реинкарнация Limbo, не иначе. :)

Triton

Цитата: myst от ноября 11, 2009, 21:09
Цитата: arseniiv от ноября 11, 2009, 21:03
Ну, синтаксис вида си преобразуется к другому желаемому и тем компилятором обраба...
Это компилятор и есть, трансляция не обязательно в машинный код делается.
Студенты такой компилер на 3-м курсе пишут  :yes:
Молиться, поститься и слушать радио Ватника

Алексей Гринь

Цитата: Triton от ноября 11, 2009, 18:34
Угу, Си и Си++ прямо таки замечательные языки: сначала программист пишет свою реализацию ООП, свой тип данных для строк, свой механизм управления памятью, свой RTTI... а потом берёт другой язык, и приступает таки к решению поставленной задачи.
А другие отчего-то или медленные, или памяти жрут немерено.

GNU костылит Vala, со стороны годный язычок, но не пробовал ещё. Из минусов — привязка к GTK, которая выльется в 8 МБ (ЕМНИП) балласта под Windows.

Цитата: myst от ноября 11, 2009, 21:13
Пока Гринь бороздит просторы препроцессора C, старики сражаются со змием окаянным, C++. Подробности. Реинкарнация Limbo, не иначе
ЛОР почитываем, в курсе. goto в списке «фич» веселит
肏! Τίς πέπορδε;

Triton

Как-то мы поменялись местами, теперь вы Си++ более защищаете, а я более на него нападаю.  :)

Цитата: Алексей Гринь от ноября 12, 2009, 23:15
А другие отчего-то или медленные, или памяти жрут немерено.
Медленные... А куда торопиться-то? ;) Посмотрите на приложения, которые у вас обычно запущены в системе — 99.9% процентов времени они проводят в ожидании порции данных из потока или сообщения от оконной подсистемы. Ну будут они на обработку данных тратить пусть даже в 10, в 20 раз больше времени — никто не заметит.
Бредовость идеи писать полноценное веб-приложение на Си очевидна всем, но в то же время идея писать на Си (пусть даже и приплюснутом) текстовый редактор, чат или графическую морду к чему угодно воспринимается нормально. Хотя по сути это вещи одного порядка.
Статически типизированный язык с эффективным оптимизирующим компилятором нужен только в определённых нишах: ядро ОС, драйвера, СУБД, медиакодеки, библиотеки сжатия или шифрования и т.п. В других случаях использование Си ничем не оправдано, кроме "писали по-старинке 20 лет, и дальше будем писать".
И то в своей нише Си хорош только там, где нужно уж совсем низкоуровневые и системные вещи писать, благодаря тому, что у него практически отсутствуют требования к runtime окружению. В более высокоуровневых областях уже играют роль внеязыковые факторы, а не мнимые преимущества самого языка.


Цитата: Алексей Гринь от ноября 12, 2009, 23:15
GNU костылит Vala, со стороны годный язычок, но не пробовал ещё. Из минусов — привязка к GTK, которая выльется в 8 МБ (ЕМНИП) балласта под Windows.
Заглянул в википедию:
Цитировать
Vala — язык программирования, предназначенный для прикладного и системного программирования на основе библиотек GLib Object System (GObject) рабочей среды GNOME/GTK+. Он был разработан Йюргом Биллетером и Раффаэле Сандрини.

Vala по своему синтаксису очень похож на C# и полностью реализует объектно-ориентированный подход. Программа на языке Vala транслируется в программу на языке C, которая в свою очередь компилируется в бинарный код целевой платформы со стандартными библиотеками C и GTK+ и выполняется со скоростью нативного приложения C.
"Язык... на основе библиотеки" и "транслируется в программу на языке C" - этапять, как говорится.
Сразу хочется спросить у авторов. Зачем оно такое? Какие проблемы, стоящие перед другими языками, оно решает? Какие имеет преимущества? Какую нишу планирует занять?
Или разработчикам просто хочется изобрести свой собственный С#, Java или Object Pascal?  :what:
Молиться, поститься и слушать радио Ватника

Алексей Гринь

Чтобы сразу было всем понятно: я перфекционист (т.е. имбецил).

Цитата: Triton от ноября 13, 2009, 00:09
Медленные... А куда торопиться-то? ;)
Чисто российский менталитет. Сожрём то, что дадут, и не подавимся. Мне есть куда торопиться, да и не только мне: погуглите «Windows тормозит».

Цитата: Triton от ноября 13, 2009, 00:09
Бредовость идеи писать полноценное веб-приложение на Си очевидна всем
Мне не очевидна :) Расскажите подробнее.

Цитата: Triton от ноября 13, 2009, 00:09
"Язык... на основе библиотеки" и "транслируется в программу на языке C" - этапять, как говорится.
Я не телепат, ваших суеверий не знаю. Что не так?

"Язык... на основе библиотеки" — о да, язык с синтаксисом, но без словаря — это мегакруто! :)

"транслируется в программу на языке C" — поддерживаю на 100%. Вместо того, чтобы писать кривой компилятор или фронтенд под какой-то определённый, лучше всегда в промежуточный си курочить. А там уже и все бинарные оптимизации будут, и поддержка 100% платформ, и бесшовная соместимость с существующими 99.9% C-based API.

Цитата: Triton от ноября 13, 2009, 00:09
Или разработчикам просто хочется изобрести свой собственный С#, Java или Object Pascal?  :what:
Не, они тормозят. Валу специально делают для написания gtk-софта, работающего со скоростью си. Обычно его и пишут на си, но на си получается слишком много ручной писанины. А тут ещё автоматическая работа с памятью, но без сборщика мусора, а на основе подсчёта ссылок + выхода/невыхода из области видимости. Прямо как то, о чём я мечтал :)

Цитата: Triton от ноября 13, 2009, 00:09
Какие проблемы, стоящие перед другими языками, оно решает?
Скорость, родное понимание GTK, отсутствие рукоблудия.

Она мне импонирует потому, что в правильную сторону смотрят мужики. Авось от привязки к GTK освободятся и налисапедят своё. А без привязки к GTK это будет практически идеал :)
肏! Τίς πέπορδε;

myst

Цитата: Triton от ноября 13, 2009, 00:09
И то в своей нише Си хорош только там, где нужно уж совсем низкоуровневые и системные вещи писать
Кабы Си обладал совсем уж низкоуровневыми возможностями. ;)


myst

Цитата: myst от ноября 11, 2009, 20:51
Цитата: Алексей Гринь от ноября 11, 2009, 17:32
Да-а, что самое забавное, ДВУХпроходные компиляторы зачастую компилируют быстрее, чем ОДНОпроходные сишные.
У тебя и пруфы есть? :eat:
Вижу, пруфов таки нет.

myst

Только сейчас заметил. Это сишные компиляторы-то однопроходные? :o :o :o

Алексей Гринь

Цитата: myst от ноября 13, 2009, 00:55
Только сейчас заметил. Это сишные компиляторы-то однопроходные? :o :o :o
А зачем тогда forward declarations?
肏! Τίς πέπορδε;

Алексей Гринь

Цитироватьstruct A
{
    struct B b;
};

struct B
{
    struct A a;
};

А теперь объясни, почему он пишет:

Цитироватьerror: field 'b' has incomplete type

В два прохода разрешение результирующего размера делается запросто.
肏! Τίς πέπορδε;

Triton

Цитата: Алексей Гринь от ноября 13, 2009, 01:29
Цитироватьstruct A
{
    struct B b;
};

struct B
{
    struct A a;
};
:uzhos:
Вы сами-то поняли, что написали?
Молиться, поститься и слушать радио Ватника

Triton

Цитата: Алексей Гринь от ноября 13, 2009, 00:39
Чисто российский менталитет. Сожрём то, что дадут, и не подавимся. Мне есть куда торопиться, да и не только мне: погуглите «Windows тормозит».
Тормознутость программы в наименьшей степени зависит от языка реализации. Если, скажем, в алгоритме стоит квадратичная зависимость времени работы или требуемой памяти от объема входных данных, то какой там будет дополнительно множитель - 1 или 20 - уже абсолютно без разницы.
Вон в Virtual Box открытие окна настроек тормозит по 5, а когда и по 10 секунд. В установщике Suse окно конфигурации тормозит как проклятое. Неужели в обоих случаях пайтон виноват? ;)

Цитата: Алексей Гринь от ноября 13, 2009, 00:39
"Язык... на основе библиотеки" — о да, язык с синтаксисом, но без словаря — это мегакруто! :)
Не так давно вы хвалили Си и порывались писать собственный ООП слой на макросах (изобретать синтаксис). В Си очень и очень маленький словарь стандартной библиотеки (а в freestanding варианте - и вовсе почти весь отсутствует).
В общем, опять взаимоисключающие параграфы.

Цитата: Алексей Гринь от ноября 13, 2009, 00:39
Не, они тормозят. Валу специально делают для написания gtk-софта, работающего со скоростью си. Обычно его и пишут на си, но на си получается слишком много ручной писанины. А тут ещё автоматическая работа с памятью, но без сборщика мусора, а на основе подсчёта ссылок + выхода/невыхода из области видимости. Прямо как то, о чём я мечтал :)
Знаете, сколько уже таких языков... Начиная от академически строго Cyclone, через простую как пень Java и "философский" D и заканчивая десятком поделок на основе dotNET.
Что мешает сделать gtk-биндинг для любого языка (собственно, они и есть для многих языков) и не изобретать велосипед?
Молиться, поститься и слушать радио Ватника

Triton

Цитата: myst от ноября 13, 2009, 00:51
Цитата: Triton от ноября 13, 2009, 00:09
И то в своей нише Си хорош только там, где нужно уж совсем низкоуровневые и системные вещи писать
Кабы Си обладал совсем уж низкоуровневыми возможностями. ;)
А каких именно не хватает, по вашему мнению?
Молиться, поститься и слушать радио Ватника

Triton

Цитата: Алексей Гринь от ноября 13, 2009, 01:24
Цитата: myst от ноября 13, 2009, 00:55
Только сейчас заметил. Это сишные компиляторы-то однопроходные? :o :o :o
А зачем тогда forward declarations?
forward declarations присутствуют by design. Если вы имеете ввиду многопроходный анализ семантики программы, то в Си++ этого добра выше крыши, благодаря неоднозначности грамматики. Даже имея перед собой полный набор классов и шаблонов, компилятор зачастую просто вынужден гадать на кофейной гуще, что за конструкция перед ним. И жутко тормозить.
http://yosefk.com/c  fqa/defective.html


Молиться, поститься и слушать радио Ватника

myst

Цитата: Алексей Гринь от ноября 13, 2009, 01:24
А зачем тогда forward declarations?
...
Это ещё не значит, что они однопроходные. Назови конкретные компиляторы.

myst


Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр