All streams
Search
Write a publication
Pull to refresh
-5
0
Иван Левашев @OCTAGRAM

Удалённый программист Delphi+Ada

Send message
Действительно, для общего случая подойдёт только нетипизированный Variant Invoke.

Ещё одна слабо документированная фича Delphi pre-2010 — это RTTI, который включает в себя published свойства, поля и методы, посредством которой можно сделать AsDynamic в том числе и на старых версиях Delphi
Для доступа к методам объекта используются методы record (или методы object в Delphi 7 и 2005)

По поводу оверхеда — да, это действительно так. Смысл статьи — показать, что кое–какие фичи в Delphi реализуемы и показать, куда копать

Кстати, System.Rtti.TValue — это как раз интерфейс в записи
Идея напоминает SWIG
Te Waka o Pascal: Why Delphi Cannot (currently) Support WinRT

Маркет устроен так, что в него практически невозможно попасть приложениям, не написанным на выбранных неизменно дурным вкусом Microsoft языках программирования. Выделение динамической памяти — запрещённый вызов, и те приложения, которые всё же прошли в маркет, прошли только по той причине, что память выделяется не напрямую через WinAPI, а через run-time DLL этого языка программирования.

Можно догадаться, run-time DLL каких языков программирования доступны в Windows 8. Разумеется, ничего хорошего:

Is there any indication that Embarcadero wants to support native Metro development using the unmanaged API?

Yes. We are very keen on supporting WinRT with native Delphi & C++ code. Right now, the issues surrounding the WinRT space center around the fact that many OS-supplied APIs which are required by anyone implementing their own language RTL are actually off-limits unless you're the VC++ RTL DLL. You know, little things like RtlUnwind for exception processing and VirtualAlloc (et. al.) for memory management… Any calls to those APIs from your application will automatically disqualify your application from being an «official» WinRT application capable of delivering through the MS app store.

Right now the VC++ RTL DLL is given special dispensation since that is the library that makes the calls to those forbidden APIs and not directly from the user's app.


If you have to be locked down to MS tools to develop targeting WinRT, then MS is shooting itself in the foot. Windows history of commercial success is not due MS, but due to the huge number of Windows applications, created by a vast number of tools and compilers out there, both commercial and free/open sorce.


Поддерживаю назревающий тренд «берите wine и делайте апгрейд до Linux вместо Windows 8».

Вот ещё бы студия поддерживала этот тренд. Wine — потому что есть ещё Solaris, BSD, Mac OS, и кроме Wine сложно найти лучший нативный аналог Java.
На 6–7ой минутах Страуструп невзначай прошёлся по всем больным местам Delphi и C++ Builder:

Б. С.: —… но базовый посыл сложно было очень оспорить: если вы хотите, чтоб что–то широко использовалось, это рано или поздно должно стать стандартом, то есть, предметом стандартизации. Ну что здесь можно сказать? Если язык является собственностью некоей организации, рано или поздно она начнёт использовать изменения и нововведения в языке для того, чтобы усилить бренд той самой корпорации. Понятно, что корпорация и компании, входящие в её альянс, имеют преимущество по сравнению с теми, кто не входит вот в это вот сообщество. И сегодня мы говорим о языках программирования: неплохо так мысленно вернуться лет на 25 назад посмотреть на то состояние вопроса. Кстати, многие языки так и не дожили до сегодняшних времён, а есть языки, которые составляют конкуренцию C++, но они являются собственностью одной некоей корпорации. Конечно, для сторонников данной корпорации они обладают определёнными преимуществами, но этим дело–то не заканчивается: что делать остальным? И остро встаёт вопрос о портабельности или переносимости кода. А здесь ситуация становится всё хуже и хуже, и переносимость кода с одной платформы на другую становится всё сложнее и сложнее с каждым днём, и вот здесь основная проблема.
Д. И.: — Да, ну, конечно, страшный сон: не могу себе даже представить, если каждый будет писать свой собственный компилятор C++ со своим стандартом, это просто хаос будет.
Б. С.: — Да, это очень часто встречается, когда существует некий C++–подобный компилятор. Это часто встречается, когда не просто мы говорим о программировании, а о создании графического пользовательского интерфейса. Да, здесь большая проблема, но всё–таки надо сказать, что существует ядро, такая стандартная платформенная основа, и которая легко переносима. Здесь, конечно, достаточно хорошо, когда основная гигантская часть системы написана на таком стандартном языке и не зависит от расширений, сделанных конкретным вендором.
Д. И.: — Да, и я чуть не забыл тебя спросить:… (меняет тему)


Страуструпу пятёрочку за трололо, Интерсимоне — за покерфейс
Непонятно каким образом объектная модель Delphi мешает реализовать любое копирование, как вам нужно

a := b; — объектная модель не мешает, но и не помогает. Только, используя варианты, можно вклиниться в процесс копирования

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

Это почему еще? Даже в антагонистическом С++ это не так

Имелось в виду, что string(nil) в Delphi — это пустая строка, и собственные типы могли бы быть устроены так же…

Методы не могут изменить содержимое переменной–указателя, у которого они были вызваны

Зачем такие извращения?

… в том числе, становясь nil, если их занулить. Например, если сделать строке .Delete по всему диапазону. А также это необходимо для copy-on-write. MyCustomString.Append('12') может захотеть стать другим указателем, если будет знать, что не уникален.

Нет контроля за тем, что происходит при копировании объекта.

Встроенного копирования объектов в Delphi нет, соответственно нет и контроля. Копируйте и контролируйте сами.

В некоторых случаях это крайне нежелательно, особенно, когда объекты начинают выстраиваться в иерархию и иметь пересекающиеся части.
А после обучения этим языкам предполагается, что они и дальше пишут на Delphi? Вы думаете, им понравится C++, в котором приведение типа из char* в std::string вызывает Segmentation Fault в случае NULL? Или Java, в которой при сравнении строк можно получить NullPointerException, если не использовать equals из стороннего пакета Apache Commons.

Delphi и Ada — нативные языки программирования, позволяющие работать в том числе с сишными библиотеками, но при этом изолированные от них языковым барьером. Нет ситуации, когда я делаю инклуд одного файла, этот файл инклудит заголовки Win32, и через все эти инклуды в препроцессор и пространство имён заливается неконтроллируемый объём дефайнов и объявлений. И Delphi, и, особенно, Ada имеют свои механизмы определения области видимости, отличные от C и C++ в лучшую сторону.

Кроме того, в Delphi и Ada для примитивных типов можно включить проверку диапазонов, и это штатная фича, в отличие от костылей типа Electric Fence или libmudflap в C/C++. И, наоборот, в отличие от Java и C#, эти проверки можно отключать.
Скорость скачивания обновлений по gprs может быть от 1.5 до 5 Кбайт/сек. Тариф — 7 руб. за Мб

.bpl'ки улучшают ситуацию, но само их появление на платежных терминалах можно приурочить только к крупным обновлениям
По правилам обсуждение политики запрещено, а этот вопрос тесно связан с особенностями нашей страны
Вся эта проблема с высшим образованием существует из–за работодателей, которые дискриминируют по признаку наличия образования, а не наличия знаний, как хотелось бы. Диплом государственного образца, конечно. Онлайн курсы — в свободное от получения образования время, а после получения образования — в свободное от ухода за детьми время, по остаточному принципу.

Корень зла — в таких работодателях. Их ещё слишком много, чтобы сбросить со счетов значимость вышки.
Благодаря поборникам копирайта, пираты не могут предоставить своё решение проблемы. Скажем, по моей библиотеке iTunes можно собирать статистику прослушиваний и собственных рейтингов. Хранить сумму, перечисленную за каждый трек и предоставлять мне самому инструменты отслеживания, про кого же я забыл. О чём–то таком ещё Столлман говорил.

Но ведь это автоматически подразумевает, что большая часть музыки нелегальна по нынешним меркам, а та, за которую я плачу (предположим, можно платить произвольную сумму), на самом деле может быть куплена не до конца. То есть, по нынешним меркам не куплена вовсе. Ай–яй–яй! Так нельзя. И неважно, что при эластичном спросе микроплатежами можно набрать больше денег, чем единичными большими покупками, всё равно так нельзя.

И не получается никак. Как хотят адепты копирайта, не работает. Как хотели бы потребители, не делают. Нехилую долю музыки можно приобрести только на физическом носителе. Вот, допустим, недавно рипнутый мною Synthpop Club Anthems 5. Сам диск — $3, доставка в Россию в течение месяца — $8.25, стояние в очереди на Почте России — бесценно. Мне бы больше понравилось BitCoin'ами заплатить за ALAC версию The Echoing Green — Suffer (Rename Club Mix), а остальные мне хватает и на DI Premium иногда слушать в эфире. Можно обойтись и без физического носителя, на trackitdown: Chris Dynasty — Subwayz (Pred Remix). За $3 (для маленьких платежей у trackitdown комиссия) теперь уже не альбом из 16 треков, а только один трек. Mоментально, но дорого, блин. Как результат, какие–то из треков, которые я слушал, я покупаю, какие–то качаю GreyLink'ом из p2p.
Как минимум, в Konsole есть TrueColor:

There is a predefined 256 color space compatible with his
xterm sister, and, even beyond that, a 3-byte RGB color space.

The ESC codes are as follows
А, может, пора понять тем, кто выпускает медиаизлишки, что вакантное место уже занято, и они должны быть счастливы, что им вообще уделили время, может, даже доплачивать за прослушивание надо.

Весь этот «досуг» не двигает человечество вперёд, по большому счёту. Кто–то должен гайки винтить, оптику варить, а фильмы, музыка — отвлекают от дел.

Я думаю, на данный момент отснято и отзвучено более чем достаточно для того, чтобы прекратить делать что–то новое просто так, ради денег. Эпоха относительно качественных фильмов начинается с 90х годов, и нашим детям вполне бы хватило того, что было отснято за эти 20 лет. Смотреть–не пересмотреть.

Кто–нибудь помнит ещё фильм «Телепорт». А если так, то много ли мир потерял бы, если бы его не было никогда? То, что было искусством, сейчас — развлечение. Мне не жалко, если развлечению поплохеет. Искусство всё равно останется.
CrossKylix — пишем в Delphi, компилируем для Linux. Используется легковесный самописный эмулятор Linux, эмулирующий только те вызовы, которые использует линуксовый dcc из поставки Kylix 3. Отладки нет.

GPS — поддерживает удалённую компиляцию и отладку на языках семейства GCC: Ada, C, C++.
А начхало бы правительство США на интересы своих корпораций, того же Майкрософта, и у нас до сих пор ни одна контора ничего не покупала бы — ни виндоус, ни 1С.

Вот ведь трагедия.
Есть Б–Контур. Есть Ананас. Бухгалтера могли бы править формулки в Ананасе и делиться патчами друг с другом аналогично тому, как это происходило с httpd (ныне Apache).

Почему-то как только у людей здесь что-то получается, они бегут на Запад, защищать свои инвестиции.

Потому что в России действует режим оккупации со стороны США. Как одно из проявлений этого режима, Центробанк держит высокие процентные ставки, кредит дешевле брать в иностранных банках, но ещё дешевле — став иностранной организацией. Есть и другие проявления оккупации, косвенно выражающиеся в том, что в других странах больше возможностей. У нас раньше дань в виде золото–валютных резервов только через ЦБ выплачивалась 50/50, то есть, если по УСН 6% работать, 3% родине, 3% — в США. На следующий 2013й год ещё и из бюджета деньги пойдут на помощь Европе и Америке.

Разумеется, утечка мозгов из России — такое же желательное явление для оккупанта. Поэтому в России лоббируются некоторые самоограничительные законы, а на некоторые места проводятся люди, которые будут работать не на благо родины. А даже, если и будут, используется пиар, фигурное цитирование и подмена повестки дня в подконтрольных СМИ так, чтобы постоянно создавать впечатление невозможности жизни здесь.
Жаль, что протокол BitTorrent. Больше бы хотелось Gnutella2 и/или DC++ DHT
Скорее анти–Путинской пропаганды. Путинский канал — это Russia Today
Пусть лучше магнитные ссылки с TTH выдают для Shareaza, GreyLink и любого другого протокола, использующего TTH

Information

Rating
Does not participate
Location
Воркута, Коми, Россия
Date of birth
Registered
Activity