-
Есть сишарперы, надо быстро ввести их в курс дельфового дела. Без дебрей, просто достаточные для работы понятия, отличия от привычной им платформы. Что есть почитать?
-
-
у D датасет - это набор данных из селекта и как правило живой и связанный всю жизнь с физическим хранилищем, а у них датасет - некий аналог всей БД и как правило он отсоединен от физического хранилища.
в D события - скалярные, у них - вектрора (списки обработчиков)
у них любая запятая - член класса, в D есть глобальные переменные сами по себе.
до остального допрут сами.
-
-
Спасибо.
Мне вообще кажется, что основная трудность, которая может возникнуть - это отсутствие сборки мусора.
-
> Kerk © (07.02.17 10:33) [4]
> отсутствие сборки мусора.
кстати, чем дальше, тем больше убеждаюсь, что сборка мусора для объектов - зло, чаще всего. мир вернется к явному уничтожению объектов, как вернулся к нативному коду и строгой типизации.
в FMX вообще что-то невообразимое с этой сборкой мусора в виде ARC. вроде бы она есть для iOS и Android, но ее нет для Mac, вот как до такого можно было додуматься.
-
на шарпе пусть пишут, делов то)
-
Ром, а какой во всем этом смысл? Неужели готовых Дельфишников нет?
-
> ухты_х © (07.02.17 12:35) [6]
да, перевести проект :)
-
можно найти компромисс - перевести проект на фортран, чтоб удобно было всем.
-
> rrrrr © (07.02.17 09:42) [2] у них любая запятая - член класса, в D есть глобальные переменные сами по себе.
Тут скорее аналогия со статическим классом, т.е. в delphi нет статических классов, а есть методы и переменные сами по себе отсюда все что в статическом классе C#, то в Delphi само по себе. Или на оборот все что в Delphi само по себе, должно быть в C# в статическом классе.
-
> Kerk © (07.02.17 10:33) [4] Мне вообще кажется, что основная трудность, которая может возникнуть - это отсутствие сборки мусора.
Да я не думаю, в C# достаточно объектов, которые необходимо явно уничтожать, поэтому программисты в курсе. В Delphi нет using вместо него нужно использовать try finally...
-
Сначала они говорят "вот мы вам дали новый супер-язык! В нем не нужно заботиться об освобождении памяти - среда все сделает сама! В нем нет прямой работы с памятью - мы позаботились о безопасности ваших приложений. А виртуальная машина - просто сказка. Короче, мы вам упростили программирование раз эдак в сто." И десятки гуру(говорят, что гуру программирования, хотя больше похоже на гуру маркетинга) в один голос подтверждают это.
И каким-то образом из раза в раз это срабатывает! Народ толпами кидается на эти плюшки. И из раза в раз оказывается, что для написания чего-то сложнее хелловорда нужно работать с памятью напрямую, знать параметры запуска виртуальной машины, учитывать особенности работы GC конкретно этой версии виртуальной машины - не то и хеловорд станет зависать... что, все это правда компенсирует легко исправимую ошибку неосвобождения памяти? Интересно, как им это удается? Могу понять кто по второму разу в МММ вкладывается, но тут-то что за магия?
-
> Юрий Зотов © (07.02.17 13:07) [7] > > Ром, а какой во всем этом смысл? Неужели готовых Дельфишников нет?
Не знаю. Обстоятельства выше меня. Я увольняюсь и у меня есть некоторое время, чтобы передать им все нажитое непосильным трудом за годы работы.
-
> stas © (07.02.17 14:26) [10] > в delphi нет статических классов
Вроде ж есть
-
а, ну тогда все проще. скажи им что теперь вместо {} у них будут begin и end а все остальное точно такое же
-
картман © (07.02.17 14:41) [12]
Для определенных задач этого достаточно, там где не достаточно есть Си и т.д. Для каждой задачи нужно подбирать среду разработки.
-
-
> в delphi нет статических классов
Если под словом "статический" подразумевается "существующий без явного создания прикладным кодом", то все классы в Delphi - статические.
-
> stas © (07.02.17 14:58) [16]
> Для каждой задачи нужно подбирать среду разработки.
Ага. Конечно. Вот ща как раз сижу над новой задачей, и думаю: приложение под виндоус, какую же среду мне выбрать? Ну, в моем случае, несколько проще: есть какой-никакой опыт в разных. Так что же выбрать? Или, если быть точнее - имеет ли смысл мне платить за лицензию Делфи, если у меня есть официально бесплатный VS2015 с С#?
Может, выбор среды определяется всё-таки не только задачей?
-
> stas © (07.02.17 14:58) [16] > > картман © (07.02.17 14:41) [12] > > Для определенных задач этого достаточно, там где не достаточно > есть Си и т.д. > Для каждой задачи нужно подбирать среду разработки.
я в большей степени про то, что реклама для домохозяек и программистов одинаковая: с нашим продуктом Ваши ресницы станут на 300% объемнее.
-
Программисты такие же люди как все :)
-
Удалено модератором
-
C# - Delphi Статический класс - объект или запись Статический метод - статический метод(со служебным словом classes), или просто функция.
Часть шаблонов в дельфи отсутсвует.
К сборке муссора они привыкнут. А вот то что работа со структурами отличается от объектов вот это их будет сильно выбешивать.
Ещё много различий.
-
> Eraser © (07.02.17 12:33) [5] > в FMX вообще что-то невообразимое с этой сборкой мусора > в виде ARC. вроде бы она есть для iOS и Android, но ее нет > для Mac, вот как до такого можно было додуматься.
Используйте стандартный Free как раньше и все. В ARM он аналогичен MyObjectVar := nil; procedure TObject.Free; begin // under ARC, this method isn't actually called since the compiler translates // the call to be a mere nil assignment to the instance variable, which then calls _InstClear {$IFNDEF AUTOREFCOUNT} if Self <> nil then Destroy; {$ENDIF} end; И если создаете TComponent в Runtime содавайте его с Owner = nil - TMyClass.Create(nil) и все будет прекрасно уничтожаться, и не надо DisposeOf вызывать лишний раз. Который не совсем как надо работает ( http://stackoverflow.com/questions/27818697/how-to-free-a-component-in-android-ios).
-
kilkennycat © (07.02.17 16:24) [19] > Вот ща как раз сижу над новой задачей, и думаю: приложение > под виндоус, какую же среду мне выбрать?
Конечно зависит от задачи, но я б Delphi выбрал, - если есть вероятность адаптировать программу под MacOS, Android и iOS. Тем более FMX сейчас мощная вещь, которая доставляет. Скажем это VCL 2.0 .
-
> Кто б сомневался © (07.02.17 23:04) [24]
> Используйте стандартный Free как раньше и все.
само собой. но, напрашивается вопрос - зачем они внедрили ARC, если он даже в генофонде не используется.
-
> Eraser © (07.02.17 23:24) [26]
По слухам кто-то из разработчиков компилятора уперся рогами, обещая уволиться, если новый компилятор будет без ARC. Дурачок, конечно.
-
Глупее ARC только индексация строк с нуля в мобильном компиляторе. Вот это уж точно никакой практической необходимостью оправдать нельзя.
-
Eraser © (07.02.17 23:24) [26]https://community.embarcadero.com/blogs/entry/give-in-to-the-arc-side-38948There is a multi-layered answer to that. One part of the answer involves the continuing evolution of the language. As new and more modern programming styles and techniques are introduced, there should be no reason the Delphi language cannot adopt such things as well. In many cases, these new techniques rely on the existence of some sort of automatic resource/memory management of class instances. One such feature is operator overloading. ... enhancements such as fully “rooting” the type system. Under such a type system, all types are, effectively, objects which descend from a single root class. Some of this work is already under way, and some of the syntactical usages are even available today. The addition of “helper types” for non-structured types is intended to give the “feeling” of a rooted type system, where expressions such as “42.ToString();” is valid. When a fully rooted type system is introduced, such an expression will continue to work as expected, however, there will now be, effectively, a real class representing the “42” integer type. Fully rooting the type system will enable many other things that may not be obvious, such as making generics, and type constraints even more powerful. Other possibilities include adding more “functional programming” or “declarative programming” elements. LINQ is a prime example of functional and declarative programming elements added to an imperative language.
-
> Kerk © (07.02.17 20:02) [21] > > Программисты такие же люди как все :)
вот это и шокирует! С другой стороны, чему удивляться - по образу и подобию же...
-
> Кто б сомневался © (07.02.17 23:54) [29]
прочитал статью. там нет ответа на вопрос - зачем? ну да, чуть меньше писать.
42.ToString; как и другие хелперы, прекрасно компилируется в старом добром VCL, где никакого ARC отродясь не было.
да пёс бы с ним с ARC + FMX, ну решили так решили, меня ситуация с отсутствием ARC в Mac компиляторе поставила в тупик (хотя Mac - это тоже FMX!), мягко скажем. Архитекторы и стратеги б..
И на том спасибо, что оставили возможность писать в старом стиле.
> Kerk © (07.02.17 23:43) [27]
ну это многое объясняет, если не все )
-
>картман © (07.02.17 18:27) [20] > Ага. Конечно. Вот ща как раз сижу над новой задачей, и думаю: > приложение под виндоус, какую же среду мне выбрать? Ну, > в моем случае, несколько проще: есть какой-никакой опыт > в разных. Так что же выбрать? Или, если быть точнее - имеет > ли смысл мне платить за лицензию Делфи, если у меня есть > официально бесплатный VS2015 с С#? > > Может, выбор среды определяется всё-таки не только задачей? >
Понятно что влияют еще факторы, но иногда они не столь значимы. Ну, допустим задача написать утилиту prinscreen экрана и сохранение на рабочий стол по клавише PrintScreen под виндой. Выложить ее в инет и продавать. На 1-й взгляд что VS что Delphi подходят одинаково. Что будет происходить у пользователя 1. Delphi Скачал, запустил-работает все - ок. 2. VS Скачал, запустил - -Установите .Net, скачал запустил установку -Обновите IE до 11 версии скачал запустил установку - Обновите винду до SP 2.0 Скачал, закончилось место на диске...
Но это я конечно утрировал :).
С другой стороны написать приложение на VS для работы с БД используя EntityFramwork -красота... и пользователя можно погонять за обновлениями.
-
> -Установите .Net, > скачал запустил установку > -Обновите IE до 11 версии > скачал запустил установку > - Обновите винду до SP 2.0
извини за грубость, но это бред
> Скачал, закончилось место на диске...
а вот это уже ближе к делфи-приложению.
-
kilkennycat © (08.02.17 12:44) [33]
> извини за грубость, но это бред
Попробуй установить XP без сервиспаков и запусти приложение написанное на 4 framework.
-
> stas © (08.02.17 12:50) [34]
не надо рассказывать азы. Предложи еще какую-нить кастрированную "супер-пупер сбору со всем нужным без всего ненужного" или 98-ую.
Ты предложил задачу - printscreen. Каким боком это всё к нему по отношению к VS2015 и почему не к Delphi? Давай уж тогда скажем, что в случае Delphi придется установить BDE, и кстати, тот же самый ИЕ11 и еще MSXML... Так будет честнее. Хоть и еще бредовей.
-
Боюсь, что мода на сборку мусора еще очень долго не пройдет.
Кстати, а приложения под .Net также декомпилируются почти в исходный код как и Java?
-
> DayGaykin © (08.02.17 13:02) [36]
да.
-
-
> Eraser © (08.02.17 13:15) [38]
не только заинтересованное, но и лукавое. можно ли считать нативным приложение, которое базируется на апи? Мне кажется, что разница слишком незначительна.
А некоторые ваще WINDEV любят
-
А помните эти эпические топики "Программа написана на Delphi и на другом компьютере на запускается"? Когда компилили с рантайм-пакетами для экономии размера файла? :) Потом правда придумали дотнет и там без "рантайм пакетов" компилировать вообще нельзя, но это не проблема, пользователь сам все себе установит.
-
> компилили с рантайм-пакетами
у меня это было дефолтом, но я про это не знал:) сильно удивился, когда на другом компе не заработало :)
-
kilkennycat © (08.02.17 12:59) [35]
Я о приложении для пользователя, ему чтобы пользоваться любым приложением написанным на C#, нужно в любом случае установить .NET.
-
> stas © (08.02.17 15:51) [42]
а пользователю с приложением делфи нужно купить или украсть компьютер.
-
> kilkennycat © (08.02.17 12:59) [35] > Ты предложил задачу - printscreen. Каким боком это всё к > нему по отношению к VS2015 и почему не к Delphi? Давай уж > тогда скажем, что в случае Delphi придется установить BDE, > и кстати, тот же самый ИЕ11 и еще MSXML... Так будет честнее. > Хоть и еще бредовей.
Осталось еще только объяснить, зачем приложению PrintScreen на Дельфи понадобился BDE ? Впрочем, как и ИЕ11 или MSXML... Хотя, если скриншот планируется хранить ввиде XML, то последнее может пригодиться... :)
-
> kilkennycat © (08.02.17 12:44) [33] > > > -Установите .Net, > > скачал запустил установку > > -Обновите IE до 11 версии > > скачал запустил установку > > - Обновите винду до SP 2.0 > > извини за грубость, но это бред
У меня когда то дрова на Radeon (Catalyst) не захотели ставиться на Win 7 pro из за того, что инсталлятор (!) чтобы запуститься требовал какую то другую версию .net . Я кстати именно из за глючного Catalyst теперь беру только Nvidia.
-
> чтобы пользоваться любым приложением написанным на C#, нужно в любом случае установить .NET. причем именно тот на котором написано приложение. в итоге на компе уже зоопарк из "нетов", а нужное приложение так и не запускается...
вот буквально сегодня, установлены NET 1.1 и 4.6.1, а блин мелкософтский же mssql требует 3.5... (ну да mssql старый, но мне именно он и нужен).
-
> Кто б сомневался © (08.02.17 16:58) [45]
Инсталлятор делфи кстати тоже без .Net не запустится. Я недавно ставил Berlin на чистую Windows 10. Пришлось в гугле искать, где взять нужный .Net :)
-
а про comctrl.dll все наверное забыли
-
> sniknik © (08.02.17 17:00) [46] > причем именно тот на котором написано приложение.
это крайне странно. там вполне работает поддержка старого во всех новых. сейчас вот только недавно они решили избавляться от старья, и это счастье накроется.
За три года работы с .нет у меня ни разу не было ситуации, чтобы пользователи сказали "чет оно не хочет работать потому что чего то нет" ну и в конце концов, если разработчик предполагает возможность такого казуса, нет никаких проблем в развертывании приложения со всем необходимым.
> Kerk © (08.02.17 17:11) [47]
ну вот. дотнет победил :)
-
> установлены NET 1.1 и 4.6.1
99% моих поделок на 3.5 . ниже не охота из-за потери возможностей, выше не охота из-за требований работы на хр тестирую на "чистых" хр, 7, 8, 10 и сервер 2012 - проблем нет.
-
-
> sniknik © (08.02.17 17:35) [51] > ну так ты и не мелкософт.
да. им до меня как до юпитера :)
-
Тут правильно заметили - главная проблема приложений написанных на MSVS - ms visual c++ redistributable. Не уверен, что приложения написанные на самой новой версии студии можно запустить на XP без танцев с бубном.
Сейчас вижу все больше серьезного софта, написанного на QT, например, новый RealVNC. Вот где прямой конкурент FMX и вот к чему надо стремиться, хотя бы в плане маркетинга.
WPF и всякие новомодные технологии PlatformUI строительства интерфейса в винде конечно красивы (посмотрите на новый SnagIt, если уж речь про скриншоты), но нынче тренд на кроссплатформенность. в гос. учреждениях все чаще можно встретить линукс (недавно в провинциальной детской больнице видел, например), а на западном рынке без Mac'а тяжело. Про Android + iOS думаю можно не писать вообще.
-
Ребята, Welcome на http://fire-monkey.ru Отличное молодое мультиплатформенное сообщество по Delphi, по наполнению лучше английских форумов. Вот бы Вас там еще увидеть!
|