Чего мне не хватает в FreePascal

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: Чего мне не хватает в FreePascal

Сообщение stikriz » 06.11.2012 22:23:46

На самом деле, никто не знает точно как писать хороший код. У меня мнение, что хорош тот код, который легко поменять в процессе разработки, и в котором отдельные фичи локализованы в отдельных понятных местах. Если я легко могу менять поведение класса, если класс самодостаточен, и зависимости идут преимущественно только в либу мою или lcl, если интерфейсы позволяют менять код только в одном месте, а не перетряхивать кучу модулей из-за какого-то изменения в одном, то я считаю, что все идет нормально. И тут любой инструмент, который позволяет упростить понимание только приветствуется. И еще, начинающий программист долго пишет, потому, что нет у него наработок. Ну, не буду я думать второй раз над тем, как послать поток по сокету. А он будет. Долго. А хочется получить хоть что-то, да побыстрей. Способность писать много модулей до первого Run - это приходит не сразу. Поэтому и зарплата различается :-) Надо быть добрее и делиться опытом с теми, кто это воспринимает нормально. Есть еще отлитый в граните код. Кстати, как пример - это 1С. Есть ядро - платформа, которую рано или поздно можно отладить и развить до приемлемого уровня. А есть надстройка в виде интерпретируемого кода, ну или в виде плагинов (что концептуально немного похуже). Рано или поздно платформа будет стабильной, а интерпретируемый код, во первых, касается именно предметной области, где все меняется, где и надо менять - и пусть там ищут баги хоть до бесконечности. Я не говорю, что 1С сделало это прекрасно. Однако, именно такой путь наиболее правильный.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 07.11.2012 05:30:44

Padre_Mortius писал(а):Это вы про свой код такое говорите?
Unit-тесты дают достаточно много, если код пишется правильно. Если код написан коряво, то unit-тесты вообще ничего не дадут.


Да, про свой. Но особенность моей работы такова (я писал выше), что при написании не до конца ясен результат, который должен получиться. Практика показывает, что если работать с заказчиком напрямую, то оплата будет раз в 10 выше. Но среднестатистический заказчик не может написать ТЗ в принципе. Поэтому разработка программного продукта - это совмещение исследования в области постановки задач и программирование.

Соответственно юнит-тесты позволяют выявить простые ошибки в простых функциях. У меня в них практически нет ошибок. Большинство функций я написал давно (и на многое есть тесты).
А функции, связанные с бизнес-логикой сложно тестировать, т.к. на момент написания до конца неясна конечная логика. И здесь большинство ошибок связано с неправильным пониманием нужной логики, а не с ошибочным кодированием. У меня вообще редки ошибки при кодировании, т.к. стараюсь не спешить при написании кода.

Добавлено спустя 7 минут 40 секунд:
stikriz писал(а):На самом деле, никто не знает точно как писать хороший код. У меня мнение, что хорош тот код, который легко поменять в процессе разработки, и в котором отдельные фичи локализованы в отдельных понятных местах. Если я легко могу менять поведение класса, если класс самодостаточен, и зависимости идут преимущественно только в либу мою или lcl, если интерфейсы позволяют менять код только в одном месте, а не перетряхивать кучу модулей из-за какого-то изменения в одном, то я считаю, что все идет нормально. И тут любой инструмент, который позволяет упростить понимание только приветствуется. И еще, начинающий программист долго пишет, потому, что нет у него наработок. Ну, не буду я думать второй раз над тем, как послать поток по сокету. А он будет. Долго. А хочется получить хоть что-то, да побыстрей. Способность писать много модулей до первого Run - это приходит не сразу. Поэтому и зарплата различается Надо быть добрее и делиться опытом с теми, кто это воспринимает нормально. Есть еще отлитый в граните код. Кстати, как пример - это 1С. Есть ядро - платформа, которую рано или поздно можно отладить и развить до приемлемого уровня. А есть надстройка в виде интерпретируемого кода, ну или в виде плагинов (что концептуально немного похуже). Рано или поздно платформа будет стабильной, а интерпретируемый код, во первых, касается именно предметной области, где все меняется, где и надо менять - и пусть там ищут баги хоть до бесконечности. Я не говорю, что 1С сделало это прекрасно. Однако, именно такой путь наиболее правильный.


Во многом согласен. Только вся сложность реальных проектов в которых я работаю, заключается в неопределенности задачи (т.к. заказчик знает цель и задачи в терминалогии бизнеса, но не способы решения задач). Бывает часто, что первое видение структуры проекта оказывается совсем не похоже на конечную структуру проекта. Класс который вначале казался самодостаточным, затем оказывается зависимыми от всего, и его приходится вообще выкидывать. Поэтому действительно приходится выделять некое как бы ядро с базовым функционалом (мало связанным с конкретной бизнес-логикой) и прикладную часть в которой все меняется во время жизни проекта. Поэтому основной инструмент - это голова на плечах. Я вообще более 50% времени разработки не стучу по клавишам в написании кода, а просто смотрю, думаю и т.п.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение dunin » 07.11.2012 08:32:35

Padre_Mortius писал(а):...
Unit-тесты...

Господа, извиняюсь, что прерываю столь обстоятельную дискуссию тупым вопросом: что такое unit-тесты? :roll:
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Чего мне не хватает в FreePascal

Сообщение Brainenjii » 07.11.2012 08:53:34

модульное тестирование же ^_^
Грубо говоря - когда пишешь маленькие программки, которые проверяют отдельные методы. Для Lazarus'а, кстати, есть один такой плагинчек, упрощающий (как мне кажется) разработку и использование модульных тестов для проектов Изображение
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Чего мне не хватает в FreePascal

Сообщение dunin » 07.11.2012 09:07:30

Brainenjii писал(а):модульное тестирование же ^_^
...

Ага. Спасибо. Понял. Знаю. Даже пользуюсь. Таскаю отлаженные юниты из проекта в проект. А как иначе?

Добавлено спустя 3 минуты 10 секунд:
По отладчику моя ИМХа. Его отсутствие явно напрягает - неуютно как-то. Его наличие - тоже не панацея - ибо кэпшены и шоумессаджи рулят.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Чего мне не хватает в FreePascal

Сообщение Brainenjii » 07.11.2012 09:33:30

тот плагин и showmessage'ам и caption'ам даёт цивилизованную замену ^_^
По поводу темы. Мне многого не хватает в FPC - namespace'ов с циклическими ссылками между объектами, адекватных обобщений с наследованием вместо кодогенерации, сладких анонимных функций и замыканий (т.е. с настолько сахарным и немногословным синтаксисом, насколько это возможно)...
А не, не так уж и много ^_^ Отладчик не имеет особого отношения к синтаксису (иногда полезно взглянуть на первое сообщение темы, да). Несколько удивляет сама аргументация - основной пикой в сторону лазаря идёт отсутствие отладчика, каких-то маловменяемых cnPack'ов (это ведь какие-то либы для поддержки китайского? Я всё пропустил и китайцам уже сильно нужны отечественные разработки?), не более вменяемой поддержки UTF-16 (UCS2*ToUTF8 || UTF8ToUCS2* разве не то? Или не работает), когда как все адекватные системы уже давно перешли на UTF8 (на коей Lazarus, что характерно, и работает).
С отсутствием отладчика согласен на все 146%, но ведь сами аргументирующие тут же говорят, что отладчик им, де, не нужен, и вообще они пару раз в неделю/месяц запускают. Я без него, к сожалению, до недавнего времени работать практически не мог. Но плюшки лазаруса (бинарники под unix-like) с лихвой покрывают всё остальное. Работать под виндой? Без yakuake? Без виртуальных рабочих столов? Без KWin'a? Без ssh? Без bash'a???!!! Увольте.
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 07.11.2012 15:40:15

Brainenjii писал(а):тот плагин и showmessage'ам и caption'ам даёт цивилизованную замену ^_^
По поводу темы. Мне многого не хватает в FPC - namespace'ов с циклическими ссылками между объектами, адекватных обобщений с наследованием вместо кодогенерации, сладких анонимных функций и замыканий (т.е. с настолько сахарным и немногословным синтаксисом, насколько это возможно)...
А не, не так уж и много ^_^ Отладчик не имеет особого отношения к синтаксису (иногда полезно взглянуть на первое сообщение темы, да). Несколько удивляет сама аргументация - основной пикой в сторону лазаря идёт отсутствие отладчика, каких-то маловменяемых cnPack'ов (это ведь какие-то либы для поддержки китайского? Я всё пропустил и китайцам уже сильно нужны отечественные разработки?), не более вменяемой поддержки UTF-16 (UCS2*ToUTF8 || UTF8ToUCS2* разве не то? Или не работает), когда как все адекватные системы уже давно перешли на UTF8 (на коей Lazarus, что характерно, и работает).
С отсутствием отладчика согласен на все 146%, но ведь сами аргументирующие тут же говорят, что отладчик им, де, не нужен, и вообще они пару раз в неделю/месяц запускают. Я без него, к сожалению, до недавнего времени работать практически не мог. Но плюшки лазаруса (бинарники под unix-like) с лихвой покрывают всё остальное. Работать под виндой? Без yakuake? Без виртуальных рабочих столов? Без KWin'a? Без ssh? Без bash'a???!!! Увольте.


Выбирая паскаль - мы вибираем синтаксис паскаля. Любители краткого или иного синтаксиса выбирают иные языки. В этой части развитие языков должно идти с осторожностью, т.к. минусов обычно больше, чем плюсов. Всякие анонимные функции к этому и относятся. Нужен - выбирайте питона, пхп и прочее.

Для юникса - Лазарь единственный паскалевский инструмент, с этим никто и не спорит. Но Вы сегодня говорили, что не знаете для чего нужно использовать DLL, на что можно ответить, что непонятно для чего нужно программить под юникс/линукс подобные системы, если можно под них не программить? Денег за это платят мало (это не админство юниховых серверов), мировой рынок занят не нами, наше не покупают и т.д. и т.п., в итоге денег не хватает, что цена Дельфи кажется большой. Я понимаю, когда кто-то работает на юнихе (в отдельных случаях удобнее), но я не до конца понимаю тех, кто программит под юних?

Итого: если нужен юникс, то выбор Лазаря без вариантов. А если нужна винда, то выбор Лазаря уже сомнителен, т.к. недоделок много, а плюсов мало. UTF8 выгоден только для англоязычных задач, а для нас он работает медленее. На UTF8 работают многие, т.к. многие и есть англоязычные.
cnPack - это ни как не связано с китайским языком. Интересует скачайте - это опенсорсный проект. Дельфи богат инструментами и он лучше работает под винду. Хотите сравнение? Например, дома можно иметь отни только пасатижи и использовать их всместо молотка и отвертки, а можно помимо них иметь и отвертку, и молоток, и пилу, и шуруповерт и дрель. Используешь все вместе редко, но когда нужно повесить люстру, то имея инструмент делаешь это за 10 минут, а имя только пасатижи будешь ковыряться весь день, либо будешь нанимать сторонних работников.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение Brainenjii » 07.11.2012 16:33:25

Выбирая паскаль - мы вибираем синтаксис паскаля.

Не понимаю, что это за боязнь - брать хорошее. Ввели Generic'и - кто-то умер? Что-то перестало работать? Почему я не могу использовать конструкцию Try Except Finally? Почему после Except обязательно нужно оборачивать в Begin/End. Это 2 лишние строчки и лишний отступ. Какие минусы от анонимных функций? Зато как сладко будет с ними делать всевозможные итераторы ^_^ Чего плохого в явном указывании - кто может обращаться к приватным полям класса, а кто нет? Это удобно и никак не изменит "классический" паскаль. Даже духу паскаля это не противоречить не будет. Но нет же - "This Is SPASCAL!!!!!1111oneone" :-D
alexey38 писал(а):Но Вы сегодня говорили, что не знаете для чего нужно использовать DLL

Не совсем так ^_^ Я говорил, что не знаю зачем _мне_ DLL ^_^ Я уже довольно давно (посмотрел - блин, уже больше 2 лет) перешёл от LCL/VCL на веб-интерфейсы. Последние полгода вообще перевёл всё новые проекты на JS в интерфейсе и паскаль на сервере. И даже без разницы - запущен ли сервер на линуксе или винде. Другое дело, что под линуксом мне гораздо удобнее разрабатывать - больше можно увидеть чего в системе творится.
alexey38 писал(а):UTF8 выгоден только для англоязычных задач, а для нас он работает медленее

Медленнее? Экономим на спичках вместо стандартизации? (только ни слова о Java, пожааалуйста ^_^) Уж лучше пользователь подождёт лишнюю наносекунду, чем переконвертировать весь вывод в bash/файлы/веб-службы и т.д.

И вообще, давайте ругать няшку Lazarus в другой теме ^_^ Тут ведь всё-таки мечтают о FPC
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 07.11.2012 17:40:35

Brainenjii писал(а):И вообще, давайте ругать няшку Lazarus в другой теме ^_^ Тут ведь всё-таки мечтают о FPC


Так и говорят, что нужны DLL, отладчик, OLE, UTF16 и т.п. Согласен, что кому-то нужны web-сервисы, я же не предлагаю убрать имеющиеся возможности. Но кому-то нужно то, чего сейчас нет ни в ФПС, ни в Лазаре.

Добавлено спустя 2 минуты 10 секунд:
Brainenjii писал(а): Уж лучше пользователь подождёт лишнюю наносекунду, чем переконвертировать весь вывод в bash/файлы/веб-службы и т.д.

В постановке вывода веб-формы, конечно будет разница в наносекунды. Но если для вывода отчета нужно перелопатить кучу информации, и запрос обрабатывается часами, то выигрышь даже в 5% - это уже минуты ускорения.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение hinst » 30.11.2012 22:16:30

отладчик не нужен.
:arrow: нужен сборщик мусора,
:arrow: лиямбды,
:arrow: анонимные методы
:arrow: анонимные классы
:arrow: поддержка шаблонов TList<T> на нормальном уровне
:arrow: Контейнеры типа Map, Queue, Array, List, Tree и прочие, которые можно специализировать на нужный тип, причём чтобы они были в стандартной библиотеке, а не самому запиливать и по интернету искать
а иначе ну што это, 2012 год же уже
:arrow: примитивы для программиста неотличимы от объектов (это не значит что не нужно их оптимизировать)

короче надо запилить компилируемый в ассемблер C# в паскаль-стиле
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: Чего мне не хватает в FreePascal

Сообщение CynicRus » 02.12.2012 17:49:27

hinst писал(а):отладчик не нужен.
:arrow: нужен сборщик мусора,
:arrow: лиямбды,
:arrow: анонимные методы
:arrow: анонимные классы
:arrow: поддержка шаблонов TList<T> на нормальном уровне
:arrow: Контейнеры типа Map, Queue, Array, List, Tree и прочие, которые можно специализировать на нужный тип, причём чтобы они были в стандартной библиотеке, а не самому запиливать и по интернету искать
а иначе ну што это, 2012 год же уже
:arrow: примитивы для программиста неотличимы от объектов (это не значит что не нужно их оптимизировать)

короче надо запилить компилируемый в ассемблер C# в паскаль-стиле


Delphi Prism из фри-паскаля? Нет уж, увольте. Лично мне не хватает только адекватного отладчика.
CynicRus
постоялец
 
Сообщения: 106
Зарегистрирован: 28.06.2012 14:31:11

Re: Чего мне не хватает в FreePascal

Сообщение alexey38 » 02.12.2012 19:52:59

hinst писал(а):короче надо запилить компилируемый в ассемблер C# в паскаль-стиле

Для этого есть Delphi Prism. Он чем Вас не устраивает?
У каждого продукта есть свои фишки. Дельфи хорош под чистой Виндой. ФПС и Лазарь в кроссплатформенной нише, а на линуксах вообще без альтернативы. Под .NET существует Prism (Oxygene).
Если "DLL, отладчик, OLE, UTF16" - это не нарушает принципа кросс-платфроменности, т.к. это частные реализации, не влияющие на существующий код, то "сборщик мусора" - это полное противоречие с существующим кодом. Будет некий компилятор без единой библиотеки.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Чего мне не хватает в FreePascal

Сообщение daesher » 02.12.2012 20:24:44

По большому счёту - нормальных library package (как они называются). Как времянка - экспорт методов из библиотеки (импортировать их можно уже сейчас).
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Чего мне не хватает в FreePascal

Сообщение PapaNT » 03.12.2012 12:44:09

files32 писал(а):Хочу иметь возможность создания переменных без их предварительного объявления.
или, хотя бы,
как в PL/1, иметь возможность прямо в коде написать Var и объявить переменную.
PapaNT
постоялец
 
Сообщения: 167
Зарегистрирован: 11.09.2009 12:06:46
Откуда: Москва

Пред.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru