Вверх ↑
Этот топик читают: Гость
Ответов: 501
Рейтинг: 16
#31: 2018-01-17 05:47:42 ЛС | профиль | цитата
Nic, смотрю пакет. думал соберу пример хрома. некоторые файлы пришлось ручками перемещать тык теперь не хватает Adobe_Acrobat.cs как оказалось его нужно каждому примеру сразу немного злость набежала что зря для этого дела поставил рядом виндыру. искал Adobe_Acrobat.cs.с ходу гугл ничего не дал. поиск по папкам тоже. где взять это чудо?
AlexKir, (имхо) паскаль на вид красивее солидней понятнее но на этом преимущества заканчивается. как не крути а мертвая рыба расти уже не будет.
помню мое первое знакомство и СИ++ я был немного ошарашен всеми его причудами но немного поныряв в него с головой понял что не так уж все и плохо(а было плохо так как мой первый язык программирования был паскалик(просто в нас в школе учитель только его и знал )
и что меня в самом начале убедило и дальше учить С++ что когда я писал консольное приложение(даже простое прочитать что ввел пользователь прибавить к нему 1 и вывести обратно) то он сам конвертировал данные к нужному типу переменной(итого всего 3 строчки прочитать с экрана текст прибавить и вывести) в паскале же нужно постоянно конвертировать вручную(итого 5 строчек кода)
вам как и мне привычней писать на паскале но как по мне все должно расти и совершенствоваться а на старом авто далеко не уедешь. ну а что к среде тык если вам так горит этот пакет так давайте начните а мы поддержим. вот ваш интерпретатор для LLCL можно делать или по старинке переписать компоненты ручками. ну как по мне лучше и без кола и ллсл а чистый паскаль. так и много костылей избавимся и может наконец то с альфа каналами все будет хорошо и много компонентов будет перенесено почти без изменений и рантаймов будет меньше. вы скажете а как же размер готового приложения? ну вы что из 80их? у вас скорость интернета несколько килобит и размер жд в мегабайтах?
карма: 1
        ]  
0
Главный модератор
Ответов: 2702
Рейтинг: 355
#32: 2018-01-17 08:53:34 ЛС | профиль | цитата
RAWY_EX писал(а):
Nic, смотрю пакет. думал соберу пример хрома. некоторые файлы пришлось ручками перемещать тык теперь не хватает Adobe_Acrobat.cs как оказалось его нужно каждому примеру сразу немного злость набежала что зря для этого дела поставил рядом виндыру. искал Adobe_Acrobat.cs.с ходу гугл ничего не дал. поиск по папкам тоже. где взять это чудо?


RAWY_EX, Вы приложили усилия чтобы поставить пакет и запустить несколько примеров. Вам стало жалко потраченных усилий настолько, что отписывая свои претензии на форуме, Вы не потрудились даже указать название примера. Если мы не будем уважать друг друга, то о чём вообще здесь можно говорить?

Поправлено.

Редактировалось 2 раз(а), последний 2018-01-17 09:55:58
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Разработчик
Ответов: 4668
Рейтинг: 420
#33: 2018-01-17 11:50:33 ЛС | профиль | цитата
AlexKir писал(а):
Чего стоит вечная путаница в параметрах типа вот такого безобразия :

Писать плохо можно на любом языке, можно переписать эту функцию на паскаль, полностью сохранив всю ту же самую путаницу с указателями. В коде видно, что используются C++-ные new и delete, при это он написан так, словно изначально это был чистый Си. В C++ уже очень давно есть векторы, которые предпочтительнее использовать вместо ручной работы с памятью, и код получился бы куда читабельнее.
AlexKir писал(а):
что есть в С++ чего нет в Паскале чтобы терпеть его выбрыки

Далее - мое имхо
А что есть в паскале, чего нет в C++, чтобы терпеть его выбрыки? 2018 на дворе, а до сих пор на синтаксическом уровне разделены понятия объекта и класса (когда первое по сути - экземпляр второго, в свое время мне это знатную путаницу в голове внесло, к счастью, переболел), переменные объявляются только в самом начале в общей свалке, нет лямда-функций (смотреть самый нижний пример). Большим плюсом паскаля является система модулей (юнитов) и скорость компиляции, это бесспорно, но модули для C++, призванные решить обе эти проблемы, уже в активной разработке (пруф).
Я по прежнему считаю паскаль хорошим языком, с которого стоит начинать изучать программирование (но только не бэйсик, до сих пор счастлив, что мне повезло начать не с него), но вот создавать на нем что-нибудь серьезное я бы сейчас не стал.
карма: 10
0
Ответов: 501
Рейтинг: 16
#34: 2018-01-17 14:33:13 ЛС | профиль | цитата
Nic писал(а):
Вы не потрудились даже указать название примера

а
RAWY_EX писал(а):
хрома

что по вашему? в папках примера только одна папка примера хрома
HiAsm_AltBuild\Elements\CNET\Example\Chrome\ChromeBrowser.sha
карма: 1
        ]  
0
Ответов: 3943
Рейтинг: 622
#35: 2018-01-17 15:01:06 ЛС | профиль | цитата
Assasin писал(а):
до сих пор на синтаксическом уровне разделены понятия объекта и класса (когда первое по сути - экземпляр второго)
С точки зрения прочих ООП языков - да ("объект" - это экземпляр "класса"). Но, в Паскале эти понятия различаются по реализации. В той же Java нету типа данных, аналогичного object (как и record).
карма: 19

0
Главный модератор
Ответов: 2702
Рейтинг: 355
#36: 2018-01-17 15:29:59 ЛС | профиль | цитата
RAWY_EX писал(а):
HiAsm_AltBuild\Elements\CNET\Example\Chrome\ChromeBrowser.sha

Альтернативный дистрибутив HiAsm не всегда успевал за обновлениями пакета CNET, потому работа с этим дистрибутивом не может быть гарантирована. Разработка и отладка проводилась под официальной версией среды и сейчас перенесена в проект HiAsm.NET. В любом случае обсуждение проблемы использования ChromiumWebBrowser есть в указанных выше темах.
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Разработчик
Ответов: 4668
Рейтинг: 420
#37: 2018-01-17 18:09:50 ЛС | профиль | цитата
Netspirit писал(а):
Но, в Паскале эти понятия различаются по реализации. В той же Java нету типа данных, аналогичного object (как и record)

Лично для меня это и было проблемой, меня постоянно мучил вопрос: зачем нужен object, если есть class? Или обратный: зачем нужен class, если есть object?

В том же C++: struct - POD-структура (которая впоследствии стала отличаться от class только деталями), class - структура, умеющая сложную логику обработки данных, наследование и полиморфизм.
В Java все даже проще: есть только class и все имеет свой класс (кроме скалярных встроенных типов, но это уже исключение из правила, да и то для них тоже есть контейнерные классы).
А теперь паскаль: вот record - понятно, POD-структура с полями; вот object - понятно, продвинутая структура, аналог C++ class; а вот class - понятно, продвинутая структура, ... стоп, но это ведь уже было?

В результате майндфак: где правильно применять class, а где object и указатели на него? И зачем такие сложности?

Редактировалось 1 раз(а), последний 2018-01-17 18:10:04
карма: 10
0
Ответов: 1416
Рейтинг: 97
#38: 2018-01-17 18:42:04 ЛС | профиль | цитата
По русскому языку к меня всегда стояла твёрдая 3-.
По причине не понимания языков, всё у меня более-менее получается, стоит разобраться - не по колено, а по пояс в говне.
Товарищи учёные, доценты с кандидатами!
Замучились вы с иксами, запутались в нулях.
карма: 3

0
Ответов: 3943
Рейтинг: 622
#39: 2018-01-17 18:46:29 ЛС | профиль | цитата
Assasin писал(а):
а вот class - понятно, продвинутая структура, ... стоп, но это ведь уже было?
Ну, ошибка в предыдущем утверждении:
Assasin писал(а):
вот object - понятно, продвинутая структура, аналог C++ class
Правильно "аналог C struct, продвинутый"

В целом, Паскалю может не хватать от C: объявления переменных в любом месте, и оператора сравнения ()?()). Первое - только в случае если есть различия в возможностях оптимизации компиляторами (и то, я считаю, что ничто не мешает компилятору Паскаля начинать работать с переменной только в месте её использования, не взирая на то, где она была объявлена). Второе - исключительно на уровне синтаксиса, как и остальные C-шные операторы типа +=, -=, *=, i++.
Иногда не хватает С-шных макросов (частично выручают inline функции, но не вижу причин, чтобы не добавить их в язык - в FPC уже есть).
В последние годы в Delphi появилось достаточно много новшеств, типа generics, operator overloading, хелперы для примитивных типов и т.п.

Редактировалось 3 раз(а), последний 2018-01-18 12:00:20
карма: 19

0
Ответов: 1416
Рейтинг: 97
#40: 2018-01-17 18:49:32 ЛС | профиль | цитата
И у кого больше?
Пусть оно идёт, как идет, а вот зауженные рукава и накладные карманы мы не позволим!!!

Редактировалось 1 раз(а), последний 2018-01-17 19:03:48
карма: 3

0
Ответов: 1735
Рейтинг: 152
#41: 2018-01-17 20:08:17 ЛС | профиль | цитата
Как по мне - дело не в языке в данном случае, ведь мы же говорим о HiAsm - программировании без кода, поэтому базовый язык здесь для пользователя играть роли не должен. Я, например, изучал Паскаль по кодам компонентов. Был бы код на Си - изучил бы его.

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

Проблема в данном случае будет только для разработчиков и тестеров, причём не только среды, но и компонентов - им придётся переучиваться.
карма: 5
0
Ответов: 865
Рейтинг: 12
#42: 2018-01-17 21:01:54 ЛС | профиль | цитата
В новых диалектах паскаля тоже полно всяческой "ERROR-оЛогии"(в FPC есть си-шные +=, *= , /=, -= вместо Shl и Shr можно юзать >> << Оператор for..in..do проходит по всем элементам множества, для множества есть "><" Симметричная разность, есть Перегрузка операторов operator оператор(параметры) результат: тип; begin тело end;, есть глобальные потоковые переменные threadvar и класс "помощник" Type помощник=class helper for класс; интерфейсы... предлагали добавить вот такие навороты
"навороты"

var
a, b, e: Integer;
c, d: String;
begin
a := 42;
c := 'Hello World';
(b, d) := (a, c);
a := 21;
b := 84;
(a, b) := (b, a); // the compiler needs to ensure the correct usage
of temps here!
a := 42;
(a, e) := (a * 2, a); // (a, e) should be (84, 42), not (84, 84)
end;
------------------
type
TDoubleVector = tuple of (Double, Double, Double, Double);

operator + (aLeft, aRight: TDoubleVector): TDoubleVector;
// implement by e.g. using SSE instructions

// somewhere else
begin
(d1, d2, d3, d4) := (d1, d2, d3, d4) + (1.0, 2.0, 3.0, 4.0);
end;
Говорят где-то в PascalABC.NET уже есть ... и это так сказать "навскидку" )
Но вообще мне многие навороты Си сильно то ли Рапид то ли pl/1 напоминают... Да, круто 100500 операций в одну строчку!
...но где эти Рапид и Пл/1 ?"В гробу у белых тапках!"
Но самое забавное вы ХВАСТАЕТЕСЬ ровно тем, что я ругаю, читабельность кода подобные пассажи резко снижают .

P.s.

Про Лямду на PascalABC.NET...
А на FPC/Lazarus пришел Гродон Фримен с монтировкой и все опошлил ...

Редактировалось 7 раз(а), последний 2018-01-17 21:32:36
карма: 1

0
Главный модератор
Ответов: 2702
Рейтинг: 355
#43: 2018-01-17 22:00:00 ЛС | профиль | цитата
AlexKir, Сколько можно "переливать из пустого в порожнее"? Вы хотите чтобы оставшиеся на форуме 2,5 разработчика признали Ваши доводы убедительными и начали переделывать пакет Windows под понравившийся Вам framework? Без мотивации на голом энтузиазме? Имея перед глазами печальный опыт автора, который за 14 лет продвижения HiAsm не получил, заслуживающих того дивидендов? Вы думаете это реально? Лично мне очевидно, что это прожектерство и утопия. Если бы Вы ещё сами "бросились вперёд с криком БАНЗАЙ!", можно было посмотреть из "второго ряда с попкорном" кто ещё к Вам присоединится. Вопросы здесь риторические - не надо на них отвечать. Мне "со своей колокольни" и "своими тараканами" и так хватает головной боли, чтобы ещё вступать с Вами в полемику. Обсуждение данной темы бесперспективно, а значит бесполезно.

Редактировалось 1 раз(а), последний 2018-01-17 22:01:29
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 1416
Рейтинг: 97
#44: 2018-01-17 22:51:10 ЛС | профиль | цитата
3042 писал(а):
программировании без кода
это ново!
как правильно - отнють нет, или неотнють?
Не получится по определению! (Потомкшто).

Кроссплатформенность - это хорошо
выносим за скобки разговора! Кому неймётся - есть беговая дорохка, кто рысаки?
Прикинте к носу размер своего конца, а потом бегите. -- удобно?

Как flint2 скажу:
1. Пластыри и заплатки будут ставить, все кто надеется доплыть. но...
2. передача данных - чудовищьна. Понятно, что навееная пылью стримов, и KOL (в корне -анафима!) заморочила рассудок.
Что было то прошло!
Все строилось, как на подводной лодке? зплатки, заплатки, заплатки - не непотапляемость, а выжить!
( Я тоже в Польше служил - Колобхег и на Бромхольме бывал...(не сожалею о содеянном) ).
3. Есть механизмы - виртуальный сек и
можно так?
конечно можно сократить не нужные сохранения регистров, а вдруг экзотика?

asm     MOV     EAX , 0
MOV DWORD [l2],EAX
MOV EAX , [EBP + 20]
SUB EAX , 1
MOV DWORD [PK],EAX
MOV EAX , ESP
SUB ESP , $F80
MOV EBP, DWORD [EAX+4]
PUSH EBP
MOV EBP, DWORD [EAX]
PUSH EBP
MOV EBP , EAX
ADD EBP , $C
PUSH EBX
PUSH ESI
PUSH EDI
MOV EAX , -4[EBP]
CALL ТУДА!!!
LEA EBP , -4[EBP]
MOV $0[EBP] , EAX
POP EDI
POP ESI
POP EBX
MOV EAX , ESP
MOV ESP , EBP
MOV EBP , [EAX]
MOV EAX , 4[EAX]
XCHG EAX , [ESP]
RET
AlexKir спокойно, это диагноз, к бабке не ходи!
AlexKir, Сколько можно "переливать из пустого в порожнее"?
Золотые слова!
И чё? А воз и ныне там!?

Кто не пробовал говорить "халва, халва, халва", попробуйте - не греет в наших северных лесах.
А может быть хором поможет? И в бубен, вокруг костра - наверняка поможет!

Редактировалось 9 раз(а), последний 2018-01-17 23:46:15
карма: 3

0
Разработчик
Ответов: 4668
Рейтинг: 420
#45: 2018-01-17 23:57:08 ЛС | профиль | цитата
AlexKir писал(а):
Но самое забавное вы ХВАСТАЕТЕСЬ ровно тем, что я ругаю, читабельность кода подобные пассажи резко снижают .

Возьмем строчку 206 из реально используемого мной кода:
let logins = room.getMembers().map(x => RegExp.escape(x.name)).sort().reverse().join('|');
Когда таких операций становится много, их, конечно же, стоит писать вот так (особенно в продакшен коде):
let logins = room.getMembers()
.map(x => RegExp.escape(x.name))
.sort()
.reverse()
.join('|');
Без лямда функции это выглядело бы минимум так:
let logins = room.getMembers();
for (let key in logins){
logins[key] = RegExp.escape(logins[key].name);
}
logins = logins.sort().reverse().join('|');
А если бы я еще и сортировал по своему порядку (+1 лямда функция) и еще какие-то пост-обработки добавлял, код бы растолстел еще и еще.

Сравнивайте сами, что проще и легче читается

Редактировалось 2 раз(а), последний 2018-01-17 23:58:48
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)