Обновить
64

Programmer

1,4
Рейтинг
105
Подписчики
Отправить сообщение
А если кто-нибудь по слепоте поставит три? Как поведет себя компилятор?
Ну это наверное дело привычки… мне вот не нравится программирование на отступах:) (хотя я разумеется в своих программах на С++ строго придерживаюсь одного из стилей выравнивания кода — Allman_style)
Мне нравится чтобы все элементы программы были «осязаемы». С пробелами такая проблема — а сколько их нужно использовать для отступа? Один, два, четыре, что с табуляцией, в разных редакторах табуляция соответствует разному числу пробелов… Что если я ошибусь на один пробел в большой длинной программе… Пробелы невидимы, и если на них повешена какая-то семантика, то получается, что я не могу точно видеть часть своей программы, как-то так:)
Хотя возможно вы и правы, спорить не буду:)
А чем вам не нравятся фигурные скобочки и точка с запятой?
Про скобки я могу только одно сказать — в текущем множестве общедоступных для ввода с любой клавиатуры символов (т.е. ASCII) их мало. Даже для шаблонов пришлось взять «угловые», которые мешаются с «больше-меньше», что не есть хорошо для компиляторов. Реально нужно не меньше 5 видов скобок.
А что касается точки с запятой — это разделитель между выражениями. Да, конечно можно попробовать исхитриться и без нее, но для меня это вполне естественный атрибут программы. Как минимум — способ визуально разделить программу на части. Это вообще малоизученная тема, точная семантика точек с запятыми и запятых «плавает» от языка к языку и даже внутри одного языка от конструкции к конструкции; но тем интереснее будет ее изучить.
Хоть я и не согласен с автором, но такие темы здорово мотивируют на разработку и доведение до ума собственных идей и проектов в области создания языков программирования, за что автору спасибо.
А вы все о том же:) Эх не хакер вы, не хакер…
Если это художественное произведение и предполагается погружение в мир, где принято длину считать в футах, метры будут ломать это погружение — лучше оставить в футах.
Перевод нормальный. Если в оригинале написано про гориллу, то почему переводчик должен пересчитывать это в системные единицы?
Ну и Гиктаймс это таки не научный журнал:)
Ура товарищи! Она еще и полностью электрическая… супер!
Дело даже не в том, что в этой записи не допускается переменное число аргументов или перегрузка функций по аргументам (хотя и это не есть хорошо). А в том, что у меня допустим есть проект на несколько гигабайт исходников, в нем сотни тысяч функций, а я этот код первый раз вижу. И мне нужно как-то определить, какой аргумент к какой функции относится.
Как в этой записи визуально отличить к какой функции например относится число 10?
(10 (20 bar) (30 40 baz) foo)
или
((10 20 bar) (30 40 baz) foo)
Даже если нигде и не используется — пунктуаторы делают код визуально более читаемым. А если код — просто набор идентификаторов-имен через пробелы, это плохо. Равно как и переизбыток скобок типа как в лиспе… Конечно, это чисто психологический момент, но всего должно быть в меру.

А вообще, допустим вы передаете результат одной функции в другую.
foo(10,bar(20),baz(30,40)))

Как вы такое запишете без скобок?
Ну так префиксная/постфиксная запись выражений тоже куда как оптимальнее инфиксной, никаких приоритетов не надо. Чего же мы на нее не перешли?
Нет, на самом деле скобки вокруг аргументов функций играют важную роль — они выделяют то, что в данном месте именно вызов функции, а не просто переменные записаны в ряд:)
Да, мне хочется скобочек:) Я когда-то давно столкнулся с каким-то древним скриптом (на помню точно что это было), все написано правильно, а оно не работает… целый день на это убил. Оказалось, что там где-то нужно было пробелы вместо табуляции, то ли наоборот — нельзя было пробел ставить в начале строки…
Пробелы невидимы, и это их главная проблема. А скобки задают структуру программы, они видимы, осязаемы.
Язык интересный, как раз читаю неспеша документацию, отмечаю интересные моменты (как положительные так и отрицательные). Фич никогда много не бывает, но вот синтаксис на отступах мне категорически не нравится — слишком это неочевидно, где N пробелов а где N+1… Там еще подобная вещь есть — приоритет операций в зависимости от количества пробелов перед символами операций, ИМХО вообще безобразие. Также мне не понравилась система приоритетов операций, странные операции специально для беззнаковых чисел. До метапрограммирования еще не добрался Как я понимаю, в данной статье нет примеров обращения к API компилятора, а это самое «особенное» в Nim.
Очень интересно, читал с удовольствием. Продолжайте!
ОК, я так понимаю это происходит внутри одного модуля. Тогда да, эта функциональность частично пересекается с рефлексией. Таким образом, компилятор все-же сохраняет где-то строковые имена модулей и функций, это и есть языковая поддержка о необходимости которой я говорю.
Спасибо, интересно. Но это не рефлексия, а динамическая загрузка библиотек (будущий boost.dll), тоже важная фича, но другое.
Речь идет не о деталях реализации, а о четком разграничении функциональности между слоями этой реализации — что делается в компиляторе, а что в стандартной библиотеке.
Можете привести пример на обероне как это делается?
И кстати, первый раз сталкиваюсь с такой терминологией
добыть процедуру по имени

Что вы имеете в виду? Получение ссылки на процедуру во время выполнения программы по динамической строке с именем?

Информация

В рейтинге
1 756-й
Зарегистрирован
Активность