Re[7]: Лаконичный Lazarus/Pascal без многословия begin...end
От: SergeyIT Россия  
Дата: 17.08.20 15:22
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>У меня есть желание перейти с Lazarus на Qt для своих хобби-проектов, я делал пару попыток, но пока безуспешно. Вот и интересно, насколько Qt удобен так же как Delphi/Lazarus для хобби и шароваро-варения.

Так пробуй, в чем проблема? За тебя никто не решит. Я тут не помощник, давно уже для других не пишу, все для себя. А если для других, там много проблем возникнет с поддержкой, локализацией, с разными платформами и т.д. и т.п.
Насчет попыток, я переводил с Дельфи на QT, особых проблем не было, с учетом вышесказанного...
Единственно — в Лазарусе багов несколько больше, чем в Qt, видимо меньше используется и поэтому тестируется не так активно.
Извините, я все еще учусь
Re[2]: Лаконичный Lazarus/Pascal без многословия begin...end
От: ylem  
Дата: 19.08.20 08:45
Оценка:
ARK>А зачем?

У него объявление классов и реализация его методов отдельно
И, кажается, это очень 'чисто', читаемо и удобно?
Re[3]: Лаконичный Lazarus/Pascal без многословия begin...end
От: AlexRK  
Дата: 21.08.20 09:13
Оценка:
Здравствуйте, ylem, Вы писали:

Y>У него объявление классов и реализация его методов отдельно

Y>И, кажается, это очень 'чисто', читаемо и удобно?

Так и в Ц++ то же самое.
Re[3]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Tai Казахстан  
Дата: 16.09.20 15:08
Оценка:
Здравствуйте, gyraboo, Вы писали:


J>>Были. Заменили begin/end на фигурные скобки, еще кой какие улучшения, в результате получился C#


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



И как вы выкручиваетесь из этой ситуации?
Re[4]: Лаконичный Lazarus/Pascal без многословия begin...end
От: gyraboo  
Дата: 16.09.20 16:00
Оценка:
Здравствуйте, Tai, Вы писали:

J>>>Были. Заменили begin/end на фигурные скобки, еще кой какие улучшения, в результате получился C#


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


Tai>И как вы выкручиваетесь из этой ситуации?


Одну шаровару написал на C#, наткнулся на слабость защиты и все остальные продукты стал снова на Delphi/Lazarus делать.
Re: БРЕД - Pascal без многословия begin...end
От: AWSVladimir  
Дата: 18.01.21 05:50
Оценка: +1
Здравствуйте, gyraboo, Вы писали:

G>Интересно, были ли попытки сделать Паскаль или Lazarus более лаконичным языком, убрав из него многословные операторы типа then, begin, end, interface, implementation, uses?

G>Lazarus — замечательный инструмент, но эта многословность языка иногда подбешивает.

Сразу видно начинающего прогера.
<Ctrl>+<J>+<Enter> -> конструкция:
begin
end;

<Ctrl>+<J>+<Стрелка вниз>+<Enter> -> конструкция:
begin
end else begin
end;

<Ctrl>+<J> — нажимаются одновременно.
Поэтому begin end; — пишется в 3 нажатия на клаву
а begin end else begin end; — в 4 нажатия
Это быстрее чем скобки рисовать

Изучай среду разработки и пользуйся ее возможностями!

Понятно что по дефаулту в среде этого нет, но на то ты и профессиональный разработчик, что бы настроить все для себя любимого.
Re[2]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.01.21 07:19
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Буковки набирать долго плак-плак.

TB>Это уровень даже не джуна Т_Т

Сначала набирать, потом читать. Оптимально, когда ЯП не тормозит и не обгоняет скорость твоего мышления.
Re[3]: Лаконичный Lazarus/Pascal без многословия begin...end
От: AlexRK  
Дата: 18.01.21 07:27
Оценка: +2
Здравствуйте, Nuzhny, Вы писали:

N>Сначала набирать, потом читать. Оптимально, когда ЯП не тормозит и не обгоняет скорость твоего мышления.


Никто все эти begin и then не читает. Это символы, такие же, как скобки. Пропускаются мозгом на автомате. Читают сложные выражения, а не это.
Re[4]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.01.21 07:29
Оценка: -1
Здравствуйте, AlexRK, Вы писали:

N>>Сначала набирать, потом читать. Оптимально, когда ЯП не тормозит и не обгоняет скорость твоего мышления.

ARK>Никто все эти begin и then не читает. Это символы, такие же, как скобки. Пропускаются мозгом на автомате. Читают сложные выражения, а не это.

Да банально меньше строк на экране помещается.
Re[5]: Лаконичный Lazarus/Pascal без многословия begin...end
От: AlexRK  
Дата: 18.01.21 10:43
Оценка: 1 (1)
Здравствуйте, Nuzhny, Вы писали:

N>>>Сначала набирать, потом читать. Оптимально, когда ЯП не тормозит и не обгоняет скорость твоего мышления.

ARK>>Никто все эти begin и then не читает. Это символы, такие же, как скобки. Пропускаются мозгом на автомате. Читают сложные выражения, а не это.

N>Да банально меньше строк на экране помещается.


Смотря с каким стилем сравнивать. Если, скажем, с GNU, то не просто не меньше, а как бы не больше. Да и с другими стилями разницы особой нет.
Re[6]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.01.21 10:50
Оценка:
Здравствуйте, AlexRK, Вы писали:

N>>Да банально меньше строк на экране помещается.

ARK>Смотря с каким стилем сравнивать. Если, скажем, с GNU, то не просто не меньше, а как бы не больше. Да и с другими стилями разницы особой нет.

Сейчас самый популярный формат ClangFormatStyleOptions
Re[7]: Лаконичный Lazarus/Pascal без многословия begin...end
От: vladislav_somov Россия  
Дата: 19.02.21 20:32
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Сейчас самый популярный формат ClangFormatStyleOptions


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

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

1. Бытует мнение, что современные процессоры настолько быстрые, что код, написанный так:

(Листинг 1)
012345670123456701234567
foo     :=      foo1;
bar     :=      bar2;

компилируется одинаково быстро с кодом написанным так:

(Листинг 2)
012345670123456701234567
foo := foo1;
bar := bar2;

2. Но выравнивание вновь добавленного вот такого кода:

(Листинг 3)
0123456701234567012345670123456701234567
foofoofoofoofoo := foo1foo1foo1foo1;
barbarbarbarbar := bar2bar2bar2bar2;

к листингу 1 приводит к мигреням, бессоннице и одинаково быстрой компиляции.

3. Лайфхак для перфекционистов, в коде:

(Листинг 4)
0123456701234567012345670123456701234567
foo := foo1;
bar := bar2;
foofoofoofoofoo := foo1foo1foo1foo1;
barbarbarbarbar := bar2bar2bar2bar2;

между операторами и операндами одинаковое количество пробелов, а между строками одинаковое количество переносов строк.

4. Впрочем, существует способ для непримиримых выравнителей:

(Листинг 4)
01234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567012345670123456701234567
foo                                                                             :=                                                                              foo1;
bar                                                                             :=                                                                              bar2;
foofoofoofoofoo                                                                 :=                                                                              foo1foo1foo1foo1;
barbarbarbarbar                                                                 :=                                                                              bar2bar2bar2bar2;

Это просто набросок, пробелами можно победить любого изобретателя длинных идентификаторов.

5. Лучше, если в команде используется ограничение на количество символов в идентификаторе, тогда выравнивание не остановить:

0123456701234567012345670123456701234567
foo := foo1;
fo1 := fo11;
f1_ := f11_;
f_1 := f_11;
_f1 := _f11;

Это пример, дальше по аналогии.


Ставьте лайки, подписывайтесь на канал.
Если креатив наберет больше 10 комментариев, продолжим публиковать статьи о выравнивании.
Может даже создадим ВЯЕФ (выровненный язык единого форматирования).
Re: Лаконичный Lazarus/Pascal без многословия begin...end
От: Dimonka Верблюд  
Дата: 26.05.21 13:04
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Интересно, были ли попытки сделать Паскаль или Lazarus более лаконичным языком, убрав из него многословные операторы типа then, begin, end, interface, implementation, uses?

G>Lazarus — замечательный инструмент, но эта многословность языка иногда подбешивает.

С этим всем можно жить легко и припеваючи.

Что реально подбешивает, что дельфи сам по себе вроде ничего, но реально он компилятор и иде прилагающаяся к DevEx-овским компонентам. Все остальные родные и сторонние компоненты настолько убоги, что упоминать их нет смысла. Исключения конечно есть, но они лишь подтверждают правило.

И вторая неприятность (на мой взгляд) — это то, что великие делфеведы так и не разродились нормальным репозитарием с менеджером компонентов (для авто-апдейта и сборки нужных компонентов). Когда ты думаешь, что надо наладить новую машину с нужным набором компонентов — это поседеешь от одной инсталляции дельфи, об компонентах вообще молчу. Приходится всё держать на виртуальной машине.
А если посмотреть на тех, кто "впереди планеты всей" (JS, PHP итд), так этот процесс занимает если не один запуск батника, то может три строчки в командной строке.
Re[2]: Лаконичный Lazarus/Pascal без многословия begin...end
От: gyraboo  
Дата: 26.05.21 13:08
Оценка:
Здравствуйте, Dimonka, Вы писали:

G>>Интересно, были ли попытки сделать Паскаль или Lazarus более лаконичным языком, убрав из него многословные операторы типа then, begin, end, interface, implementation, uses?

G>>Lazarus — замечательный инструмент, но эта многословность языка иногда подбешивает.

D>С этим всем можно жить легко и припеваючи.


D>Что реально подбешивает, что дельфи сам по себе вроде ничего, но реально он компилятор и иде прилагающаяся к DevEx-овским компонентам. Все остальные родные и сторонние компоненты настолько убоги, что упоминать их нет смысла. Исключения конечно есть, но они лишь подтверждают правило.


D>И вторая неприятность (на мой взгляд) — это то, что великие делфеведы так и не разродились нормальным репозитарием с менеджером компонентов (для авто-апдейта и сборки нужных компонентов). Когда ты думаешь, что надо наладить новую машину с нужным набором компонентов — это поседеешь от одной инсталляции дельфи, об компонентах вообще молчу. Приходится всё держать на виртуальной машине.

D>А если посмотреть на тех, кто "впереди планеты всей" (JS, PHP итд), так этот процесс занимает если не один запуск батника, то может три строчки в командной строке.

В Лазаре менеджер компонентов есть, и он имеет достаточно много хороших и нужных модулей, умеет устанавливать компоненты прямо из сетевого репозитория, что очень удобно.
В общем-то когда я год назад пересел с Дельфи на Лазаря, то проблем в Лазаре практически не встречал, в чем-то даже он мне больше нравится чем Дельфи.
Re[3]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Dimonka Верблюд  
Дата: 26.05.21 13:14
Оценка:
Здравствуйте, gyraboo, Вы писали:

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

G>В общем-то когда я год назад пересел с Дельфи на Лазаря, то проблем в Лазаре практически не встречал, в чем-то даже он мне больше нравится чем Дельфи.

лазарь сам по себе мне показался ужасно неудобным. Даже если у него чего-то и есть — это скорее для любителей самоистязания.
Ну и внешний вид всех компонентов хорошо если на уровне Widnows XP, а зачастую где-то ещё и раньше..
Re[4]: Лаконичный Lazarus/Pascal без многословия begin...end
От: gyraboo  
Дата: 26.05.21 13:19
Оценка:
Здравствуйте, Dimonka, Вы писали:

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

G>>В общем-то когда я год назад пересел с Дельфи на Лазаря, то проблем в Лазаре практически не встречал, в чем-то даже он мне больше нравится чем Дельфи.

D>лазарь сам по себе мне показался ужасно неудобным. Даже если у него чего-то и есть — это скорее для любителей самоистязания.

D>Ну и внешний вид всех компонентов хорошо если на уровне Widnows XP, а зачастую где-то ещё и раньше..

Внешний вид компонентов Лазаря стандартный для Винды, в том числе и для Windows 10. И поэтому проги на Лазаре выглядят вполне нормально, если только ты манифест не перекроил, тогда действительно компоненты могут визуально рисоваться убого и на уровне XP. Но по дефолту у гуишной проги в Лазаре имхо все тип топ с внешним видом компонентов.
Re[2]: Лаконичный Lazarus/Pascal без многословия begin...end
От: rudzuk  
Дата: 26.05.21 15:17
Оценка:
Здравствуйте, Dimonka, Вы писали:

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


getit давно есть и работает.
avalon/3.0.0
Re[5]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Dimonka Верблюд  
Дата: 26.05.21 15:51
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Внешний вид компонентов Лазаря стандартный для Винды, в том числе и для Windows 10. И поэтому проги на Лазаре выглядят вполне нормально, если только ты манифест не перекроил, тогда действительно компоненты могут визуально рисоваться убого и на уровне XP. Но по дефолту у гуишной проги в Лазаре имхо все тип топ с внешним видом компонентов.


Лазарус за отсутствием DevEx, я вообще не рассматриваю как инструмент. Просто сама мысль, что надо добавить какую-то таблицу, риббон или чего ещё, там заканчивается чем-то этаким, где за что не возьмёшься — ответ будет "а это ещё немножко не доделали".
Да и лазаровский "тип топ" тоже могу себе представить. Уж если в Дельфе он

Не, ну можно сказать конечно "ты же программист", доработаешь напильником. Да вот как-то поднадоело.
Re[3]: Лаконичный Lazarus/Pascal без многословия begin...end
От: Dimonka Верблюд  
Дата: 26.05.21 15:53
Оценка:
Здравствуйте, rudzuk, Вы писали:

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


R>getit давно есть и работает.


Это видно какой-то суперсекретный проект. Гугл о нём ничего не знает.
Re[4]: Лаконичный Lazarus/Pascal без многословия begin...end
От: rudzuk  
Дата: 26.05.21 18:29
Оценка:
Здравствуйте, Dimonka, Вы писали:

D> R>getit давно есть и работает.


D> Это видно какой-то суперсекретный проект. Гугл о нём ничего не знает.


Гуглу нужно правильно задавать вопросы.
avalon/3.0.0
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.