PowerBASIC vs PureBasic

Windows лучше чем Linux! Чем? Ясно же написано — чем Linux!
Раздуй свой холивар сегодня, потому что завтра это может сделать уже кто-то другой!
iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 23.01.2014 (Чт) 19:07

Trink писал(а):но разные

Т.е. одна - это просто строка, а вторая - с блэк-джеком и стюардессами? Или что значит "разные"?
Почему одни строки объявляются как .s, а другие - как $?

Trink писал(а):Что не так с исходником?

Это не бейсик. Ни по форме, ни по содержанию. :)

Это нехилая такая мешанина из бейсикоподобных конструкций, ассемблера (да, я помню, что пюре целиком всё в него транслирует), и ещё чего-то.
Почему сразу не взять си? Я смотрю в код "драйвера", и не понимаю, чем в данном случае pure проще или удобнее си.

Вот это вообще выносит мозг покруче 1С-ки (хотя до хаскеля, конечно, чуток не дотягивает :D ): *KeServiceDescriptorTable\ntoskrnl\ServiceTable\ar[_function].
То есть смысл конструкции примерно понятен, конечно, но хочется спросить автора WHY?! :shock:
Почему всё-таки было не использовать уже давно всем известные и использующиеся чуть мене, чем везде, конструкции? Т.е. таки точку для доступа к членам, и пусть даже хотя бы пробел или какое-то ещё ключевое слово для объявления. Никаких разумных причин, кроме "так захотелось" я не вижу. При этом указатель взят стандартный.

Встроенный ассебмлер в бейсике тоже спорное решение. Впрочем, к power-у тот же вопрос. Всё-таки бейсик - это именно "простой" язык. Но не мешает, и ладно.

Кстати, отсюда сразу же возникает вопрос к тем, кто пишет на power/pure. Почему выбран именно этот язык? Какие у него достоинства, например, перед си, паскалем?
Т.е. у того же vb / vb.net - действительно простота и незвоможность выстрелить себе в ногу. А тут? По сравнению с vb/.net - более широкие возможности и кроссплатформенность (а что, действительно можно скомпилить код, писанный под win32, и он будет работать под AmigaOS? И, кстати, что такое "Web" в данном контексте? Компиляция в хтмл? :) ), а чем он выигрывает у паскаля/си?

Накидать формочки для erp/crm/"просто бд" проще и быстрее в rad-средах, их есть на все случаи жизни: (vb/.net/delphi/cpp[qt/wxwidgets/etc]).
Сложный серьёзный проект удобнее писать на .NET/Java (в зависимости от требований).
Если при этом есть повышенные требования к производительности/ресурсам - с/cpp.

А что быстрее и удобнее делать в power/pure ? Для чего они нужны?
Последний раз редактировалось iGrok 23.01.2014 (Чт) 19:08, всего редактировалось 1 раз.
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 23.01.2014 (Чт) 19:07

Trink писал(а):Вызов функции по указателю может понадобится например, при динамической загрузке DLL. Многопоточность тоже необходима, особенно если требуется использовать по полной многоядерный процессор.

Идеология безопасного и надёжного программирования, принятая в VB, гласит:
  • Не нужно иметь указатели на функции и совершать вызовы к ним. Надо иметь указатели на интерфейсы и совершать вызовы к его методам.
    Но и вообще к тому же: viewtopic.php?f=15&t=42930
  • Многопоточность в VB поддерживается. Но концепция гласит: вместо создания нового потока напрямую нужно создавать новый объект, который будет жить в апартаменте нового потока. Но и вообще к тому же: viewtopic.php?f=54&t=43507
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 23.01.2014 (Чт) 20:04

iGrok писал(а):Почему одни строки объявляются как .s, а другие - как $?
Потому что второй вариант, достался в наследство от традиционного бейсика. Формат строк совершенно одинаков.

iGrok писал(а):Почему сразу не взять си?
Действительно. Зачем все эти бейсики, паскали, ассемблеры и т. д.? Есть же Си и на нем нужно всем кодить!

iGrok писал(а):То есть смысл конструкции примерно понятен
Аналог этой конструкции на Си.
Код: Выделить всё
KeServiceDescriptorTable->ntoskrnl.ServiceTable[_function]
По вашему проще и понятнее?
Этот же драйвер на Си. Сравнивайте.

iGrok писал(а):Почему всё-таки было не использовать уже давно всем известные и использующиеся чуть мене, чем везде, конструкции?
Чем обратный слеш хуже точки (без учета того что вы привыкли что именно точка разделяет поля структуры)?

iGrok писал(а):Встроенный ассебмлер в бейсике тоже спорное решение.
Почему? Никто же на заставляет писать на ассемблере, но его наличие явно не недостаток! Наоборот, это большой плюс, т. к. расширяет возможности.

iGrok писал(а):Кстати, отсюда сразу же возникает вопрос к тем, кто пишет на power/pure. Почему выбран именно этот язык? Какие у него достоинства, например, перед си, паскалем?
Синтаксис проще чем у си/паскаля, кроссплатформеный, не обязательно знать все тонкости API системы, т. к. для многих задач достаточно 1800 встроенных, кроссплатформенных функций PureBasic, исполняемый файл мало весит (от 2 КБ) и и много других причин.

iGrok писал(а):а что, действительно можно скомпилить код, писанный под win32, и он будет работать под AmigaOS?
Да. Кроссплатформенность на уровне исходника.

iGrok писал(а):кстати, что такое "Web"
Возможность трансляции PureBasic-кода в JS/HTML5.
Для примера, одна из игрушек, давным-давно написаная под комп (можно найти в дистрибутиве в папке "Examples\Sources - Advanced\Waponez II"), но теперь перекомпилированная под веб. http://purebasic.com/spidertest/waponez/

Хакер писал(а):Идеология безопасного и надёжного программирования, принятая в VB, гласит:
Не нужно иметь указатели на функции и совершать вызовы к ним.
Допустим такую ситуацию что вы хотите использовать технологию Aero на системах Виста и выше, но при этом хотите чтобы прога работала и на предыдущих версиях ОС. Предположим что нужно использовать функции DwmIsCompositionEnabled и DwmExtendFrameIntoClientArea из dwmapi.dll.
Если прилинковать статически, то на XP и более ранних версиях ОС прога не запустится, а динамическая загрузка функций из DLL, VB6 не поддерживает.
Как быть в этом случае? Или следуя концепции нужно отказаться от VB6 и написать на чем-то другом?

Хакер писал(а):Многопоточность в VB поддерживается.
Официально поддерживается и нормально работает?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: PowerBASIC vs PureBasic

Сообщение Mikle » 23.01.2014 (Чт) 21:58

Хакер писал(а):Не нужно иметь указатели на функции и совершать вызовы к ним. Надо иметь указатели на интерфейсы и совершать вызовы к его методам.

Интерфейсы, методы... в пурике вообще ООП нет :)
Trink писал(а):Чем обратный слеш хуже точки (без учета того что вы привыкли что именно точка разделяет поля структуры)?

Привычка - это уже не мало. Вот я Паскаля считай, что вообще не знаю, но легко читаю и понимаю примеры на нём.
Если уж ломать что-то привычное, то на что-то более правильное. Например, я бы не возражал, если бы в бейсиках разделитель заменили на ";", двоеточие имеет другой смысл, даже не в языках программирования, а в обычных человеческих языках. Этот смысл более соответствует ключевому слову "As", вот его бы заменить на двоеточие (да, как в Паскале).
Такие замены можно принимать или не принимать, но они понятны и логичны.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 23.01.2014 (Чт) 22:22

Trink писал(а):достался в наследство

Т.е. TDC для строк - достался, а остальное решили тотально переделать? Где логика?

Trink писал(а):По вашему проще и понятнее?

По-моему, ровно так же. Но я именно об этом и говорю. Basic самим своим названием предполагает простоту, а не это.

Trink писал(а):Чем обратный слеш хуже точки (без учета того что вы привыкли что именно точка разделяет поля структуры)?

Тем, что привык не один я. Привык весь мир, и этой привычкой успешно пользуется. А вот те, кто начинают на пюре - привыкнут к слэшу. И будет "упс".
Конечно, в си тоже есть исключение - оператор стрелка, но он упрощает частоиспользуемую операцию доступа к члену класса по указателю.

Trink писал(а):Синтаксис проще чем у си/паскаля

У бейсика - да. У power/pure - нет. Вычёркиваем.

Trink писал(а):кроссплатформеный

А си и паскаль, типа, не кроссплатформенные? :)
Если речь о чём-то типа кроссплатформенного фреймворка - как минимум Qt, WxWidgets, Lazarus, Delphi. Да даже дотнет (mono). Вычёркиваем.

Trink писал(а):не обязательно знать все тонкости API системы, т. к. для многих задач достаточно 1800 встроенных, кроссплатформенных функций PureBasic

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

Trink писал(а):исполняемый файл мало весит (от 2 КБ)

Окей, вот тут большинство других "труъ" кроссплатформенных сред (qt,lazarus,wx) отвалилось. Всё-таки 10Мб на экзешничек - это дофига.
Впрочем, остался дотнет и дельфи. Да и вообще в мире современных объёмов и скоростей - не аргумент. Вычёркиваем.

Осталось что-то? Ах, да...
Trink писал(а):много других причин

Такого же уровня, я так понимаю? :)

Trink писал(а):Кроссплатформенность на уровне исходника.

С трудом верится, но допустим. В конце концов, qt и лазарус этого добились (хотя и ценой жуткого неродного интерфейса), так что ок.

Trink писал(а):Возможность трансляции PureBasic-кода в JS/HTML5.

Ыыы... Зачёт. В целом бесполезно, но хотя бы забавно.

Trink писал(а):Допустим такую ситуацию что вы хотите использовать технологию Aero на системах Виста и выше, но при этом хотите чтобы прога работала и на предыдущих версиях ОС.

Не надо забывать, что Vb6 - это одна тысяча девятьсот девяносто если не ошибаюсь седьмой год. Висты тогда ещё даже издалека в проекте не было.

Trink писал(а):Официально поддерживается и нормально работает?

Да, разумеется. С оглядкой на предполагаемую концепцию использования.
label:
cli
jmp label

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 24.01.2014 (Пт) 0:05

Mikle писал(а):Интерфейсы, методы... в пурике вообще ООП нет :)
Есть и интерфейсы и методы и ООП. :) http://purebasic.info/phpBB3ex/viewtopic.php?f=8&t=2278
Код можно писать в ООП стиле.
Пример (с инкапсуляцией в виде отдельного пространства имен).
Код: Выделить всё
DeclareModule OOP

  Interface iTest
    Title(s.s)
    Text(s.s)
    Show()
    Release()
  EndInterface
 
  Declare New()
 
EndDeclareModule

Module OOP

  Structure Param
    *vt
    Title.s
    Text.s
  EndStructure
 
  Procedure Title(*this.Param, s.s)
    *this\Title = s
  EndProcedure
 
  Procedure Text(*this.Param, s.s)
    *this\Text = s
  EndProcedure
 
  Procedure Show(*this.Param)
    MessageRequester(*this\Title, *this\Text)
  EndProcedure
 
  Procedure Release(*this.Param)
    FreeMemory(*this)
  EndProcedure
 
  Procedure New()
    *this.Param = AllocateMemory( SizeOf(Param) )
    If *this
      *this\vt = ?Funct
    EndIf
    ProcedureReturn *this
  EndProcedure
 
  DataSection
    Funct:
    Data.i @Title(), @Text(), @Show(), @Release()
  EndDataSection


EndModule

UseModule OOP

Test.iTest = New()
Test\Title("Заголовок")
Test\Text("Текст")
Test\Show()
Test\Release()


Mikle писал(а):Вот я Паскаля считай, что вообще не знаю, но легко читаю и понимаю примеры на нём.
То есть только из-за разделителя полей в виде точки, паскаль сразу стал полностью понятен хотя его не знаешь? :shock: Что-то невероятное! Если так легко читаешь паскалевский код (а он на бейсик не очень похож), то почему вызывает затруднение чтение PureBasic-кода, который намного ближе к традиционному бейску чем паскаль?

iGrok писал(а):А вот те, кто начинают на пюре - привыкнут к слэшу. И будет "упс".
Это все равно что сказать что "те кто кодят на бейсике не будут иметь привычки ставить точку с запятой в конце логически законченной строки" или "те кто кодят на бейсике привыкнут в апострофу для комментов, а не к двойному слешу". Так что "усп" при переходе с одного ЯП на другой все равно будет. :D

iGrok писал(а):У бейсика - да. У power/pure - нет. Вычёркиваем.
Агрументируйте, а то пока что одно голословие.

iGrok писал(а):А си и паскаль, типа, не кроссплатформенные?
Мы тут бейсик обсуждаем или что? Странно что вы про джаву еще не вспомнили.

iGrok писал(а):Если речь о чём-то типа кроссплатформенного фреймворка - как минимум Qt, WxWidgets, Lazarus, Delphi. Да даже дотнет (mono).
Ну ка расскажите как все это (Qt, Lazarus, Delphi) прикрутить к бейсику. Ждемс.

iGrok писал(а):Окей, вот тут большинство других "труъ" кроссплатформенных сред (qt,lazarus,wx) отвалилось. Всё-таки 10Мб на экзешничек - это дофига.
Впрочем, остался дотнет и дельфи.
Дотнет тоже втопку. У него жирный рантайм. А дельфи ни какой не кроссплатформенный. Если же имеется в виду XE, то у него "жирные" исполняемые файлы и опять же Дельфи != Бейсик, так что не аргумент!

iGrok писал(а):В конце концов, qt и лазарус этого добились (хотя и ценой жуткого неродного интерфейса), так что ок.
В PureBasic нативный GUI (под виндой WinAPI, под линукс GTK2/3, под мак Cocoa, а веб JS/HTML5 ).
Это одна из причин малого веса исполняемых файлов и отсутствия рантайма.

iGrok писал(а):Не надо забывать, что Vb6 - это одна тысяча девятьсот девяносто если не ошибаюсь седьмой год. Висты тогда ещё даже издалека в проекте не было.
И как это вяжется с отсутствием динамической загрузки DLL и вызовом из нее функций? По вашему 1998 году DLL не существало?

iGrok писал(а):Да, разумеется. С оглядкой на предполагаемую концепцию использования.
Ну тогда пример нормально работающего многопоточного приложения на VB6 встудию!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 24.01.2014 (Пт) 3:02

Trink писал(а):То есть только из-за разделителя полей в виде точки, паскаль сразу стал полностью понятен хотя его не знаешь?

Удивительно, но факт. Когда у абсолютного большинства языков какие-то мелкие элементы синтаксиса совпадают, неожиданное отличие несколько выводит из равновесия. Тот же паскаль легко читается, т.к. создавался как учебный язык со строгим, но простым синтаксисом. Бейсик должен читаться ещё легче. А тут выходит наоборот, отсюда и когнтивный диссонанс.

Trink писал(а):Это все равно что сказать что "те кто кодят на бейсике не будут иметь привычки ставить точку с запятой в конце логически законченной строки" или "те кто кодят на бейсике привыкнут в апострофу для комментов, а не к двойному слешу". Так что "усп" при переходе с одного ЯП на другой все равно будет.

Это немного другое. Один вопрос, когда используется символ, который обычно не используют. И другой, когда для стандартной цели используется необычный символ. Точка с запятой - разделитель по своей сути. С двойным слэшем всё чуть сложнее, но он тоже в большинстве языков используется для одной и той же цели. Я сходу вспоминаю только одно исключение - perl6. Но перл это вообще эталон чёрной синтаксической магии.
А тут повсеместно используемся точка перекочевала в объявление переменных (в котором она никем не используется), и, поскольку она оказалась занята, для доступа к членам вместо неё взяли широко употребимый символ экранирования/целочисленного деления.

Я понимаю, что тут нереально дождаться ответа, почему так сделано, но вообще узнать причины такого неочевидного решения было бы очень интересно. Обычно-то наоборот стремятся сделать синтаксис как можно более понятным для всех... Ну, кроме перла и эзотерики.

Trink писал(а):Агрументируйте, а то пока что одно голословие.

Встроенный ассебмлер, указатели, необходимость ручного выделения памяти для создаваемых объектов (я же правильно понял AllocateMemory( SizeOf(Param) ) ? Кстати, а кто следит за памятью, и кто и как её будет после этого чистить? ).
Синтаксис "стиля ООП" вообще не имеет ничего общего с простотой, сплошной костыль с прямым оперированием vtable, созданием отдельной структуры и т.п. В общем, реализация ООП на уровне того же перла или ассемблера.
Да хотя бы взглянуть на реализации того самого драйвера. Я не вижу большой разницы между вариантами на си и на pure. Т.е. в данном случае синтаксис по "сложности" докатился до уровня си.
Процесс обработки событий интерфейса тоже трудно назвать простым.

Ок, "встроенные" winapi. Это достоинство? Как будто трудно подключить tlb/юниты/хидеры, и т.п.

Trink писал(а):Мы тут бейсик обсуждаем или что? Странно что вы про джаву еще не вспомнили.

Trink писал(а):Дотнет тоже втопку. У него жирный рантайм. А дельфи ни какой не кроссплатформенный. Если же имеется в виду XE, то у него "жирные" исполняемые файлы и опять же Дельфи != Бейсик, так что не аргумент!

Trink писал(а):Ну ка расскажите как все это (Qt, Lazarus, Delphi) прикрутить к бейсику. Ждемс.

В данном конкретном случае это обсуждение ответа на вопрос, чем pure лучше си и т.п. при том, что синтаксис по сложности вполне может с ними тягаться.
Можете перечитать повыше, на что я отвечаю, и подумать почему мне не нужно отвечать, как прикручивать qt к бейсику. :)

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

Trink писал(а):В PureBasic нативный GUI (под виндой WinAPI, под линукс GTK2/3, под мак Cocoa, а веб JS/HTML5 ).

Ок, принято. Хотя и интересно, что ж там за костыли используются.

Trink писал(а):И как это вяжется с отсутствием динамической загрузки DLL и вызовом из нее функций? По вашему 1998 году DLL не существало?

Я этого не говорил. А вяжется это очень просто - по идеологии vb, динамическая загрузка dll не нужна, т.к. небезопасна.

Trink писал(а):Ну тогда пример нормально работающего многопоточного приложения на VB6 встудию!

Как нефиг: viewtopic.php?f=15&t=39686
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 24.01.2014 (Пт) 11:22

Trink писал(а):Допустим такую ситуацию что вы хотите использовать технологию Aero на системах Виста и выше, но при этом хотите чтобы прога работала и на предыдущих версиях ОС. Предположим что нужно использовать функции DwmIsCompositionEnabled и DwmExtendFrameIntoClientArea из dwmapi.dll.
Если прилинковать статически, то на XP и более ранних версиях ОС прога не запустится, а динамическая загрузка функций из DLL, VB6 не поддерживает.
Как быть в этом случае? Или следуя концепции нужно отказаться от VB6 и написать на чем-то другом?

А с declare разве упадёт? При наличии on error в месте вызва, естественно.

Mikle писал(а):Интерфейсы, методы... в пурике вообще ООП нет :)

Так он это по VB6 писал :)

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 24.01.2014 (Пт) 12:31

iGrok писал(а):А тут выходит наоборот, отсюда и когнтивный диссонанс.
Только из-за обратного слеша и точки с запятой в качестве определения начала коммента?
Просто интересно, какие вы знаете и используете на практике языки кроме VB?

iGrok писал(а):Точка с запятой - разделитель по своей сути.
Значит асм не труъ теперь?
Пойдите на форум ассемблерщиков и напишите что их символ комметна полная бодяга! И линк сюда. Посмотрим куда они пошлют. :D

iGrok писал(а):Я понимаю, что тут нереально дождаться ответа, почему так сделано, но вообще узнать причины такого неочевидного решения было бы очень интересно.
Это к разработчикам. http://www.purebasic.fr/english/index.php
Спросите у Фреда (Fred).

iGrok писал(а):Встроенный ассебмлер, указатели, необходимость ручного выделения памяти для создаваемых объектов (я же правильно понял AllocateMemory( SizeOf(Param) ) ?
Что в этом плохого? Если такие расширенные возможности не предусмотрены в VB, это только его жирный минус!
Никто же не заставляет использовать их. А вот если они реально нужны, то в VB будет облом, а в PureBasic все ОК.

iGrok писал(а):Кстати, а кто следит за памятью, и кто и как её будет после этого чистить?
Программист следит. Но для большинства задач, нет необходимости для работы с памятью и асмом. Если они возникают, то решаются без проблем, а вот в VB будет облом, т. к. нету таких возможностей.
Кроме того, нет необходимости напрямую выделять память. Скажем в процедуре, в место выделения памяти, можно создать массив требуемого размера и получив указатель на него, работать как с памятью. Плюс в том, что такую память освобождать не нужно и при выходе из процедуры она освободится средствами PureBasic.

iGrok писал(а):Синтаксис "стиля ООП" вообще не имеет ничего общего с простотой, сплошной костыль с прямым оперированием vtable, созданием отдельной структуры и т.п.
Есть препроцессор SimpleOOP, который позволяет писать в таком стиле.
Код: Выделить всё
Class FirstClass
   Private Val.l
   
   Public Method Proc1()
      Debug "Proc1()"
      This\Val = 123
   EndMethod
   
EndClass

Class SecondClass Extends FirstClass            ; Наследование класса FirstClass
   Public Method Proc2()
      Debug "Proc2()"
;       Debug This\Val     ; Пример недопустимого доступа к приватной переменной.
   EndMethod
EndClass


iGrok писал(а):Да хотя бы взглянуть на реализации того самого драйвера. Я не вижу большой разницы между вариантами на си и на pure. Т.е. в данном случае синтаксис по "сложности" докатился до уровня си.
А я вижу и код драйвера на PureBasic проще для понимания чем аналогичный код на Си.

iGrok писал(а):Ок, "встроенные" winapi. Это достоинство? Как будто трудно подключить tlb/юниты/хидеры, и т.п.
Если сравнить с VB, то да, достоинство и большое!

iGrok писал(а):В данном конкретном случае это обсуждение ответа на вопрос, чем pure лучше си и т.п. при том, что синтаксис по сложности вполне может с ними тягаться.
Вы не правы. В Си бывают такие навороты что даже бутылка и парочка друзей не могут помочь. В PureBasic такого нет. Если вам немного непривычен его синтаксис, это не значит что он по сложности как у Си.

iGrok писал(а):Рантайм дотнета обычно не нужно таскать с собой.
Вся проблема в том что его много развелось и "крутые программисты" используют текущую версию фреймворка (даже если бы хватило раней версии) не задумываясь что она может быть не на всех компах.

iGrok писал(а):Хотя и интересно, что ж там за костыли используются.
Костылей нет. Кроссплатформенные функции для того и нужны. Библиотеки этих функций, заточенные под конкретную платформу.

iGrok писал(а):А вяжется это очень просто - по идеологии vb, динамическая загрузка dll не нужна, т.к. небезопасна.
Прекрасная отговорка. Если что-то не поддерживается, то считаете что это даже плюс, а не недостаток! :shock:
Уверяю вас, все безопасно. Конечно зависит от прямоты рук. Если они прямые и растут откуда надо, то проблем не возникает. Хотя если вы вообще не умеете программировать и тыкаете "пальцем в небо" разрабатывая проект, то да, небезопасно.

iGrok писал(а):Как нефиг: viewtopic.php?f=15&t=39686
Незачет! Нормальный пример дайте.

Qwertiy писал(а):А с declare разве упадёт? При наличии on error в месте вызва, естественно.
Речь идет даже не о падении проги, а о том что ее, загрузчик винды отбракует, если не найдет статически прилинкованную DLL или функцию в ней.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 24.01.2014 (Пт) 12:42

Trink писал(а):Речь идет даже не об падении проги, а о том что ее загрузчик винды отбракует, если не найдет статически прилинкованную DLL или функцию в ней.

Насколько я помню, функции, объявленные через declare как раз-таки линкуются динамически. Или нет? Собственно в этом и был мой вопрос.

Trink писал(а):Вся проблема в том что его много развелось и "крутые программисты" используют текущую версию фреймворка (даже если бы хватило раней версии) не задумываясь что она может быть не на всех компах.

А ещё есть поблема в том, что теоретической достаточности недостаточно для практической работоспособности. Вот хороший пример - полтемы выясняли, что код, скомпилированный под .NET 4 работает правильно, а он же, но под более ранней версией работает по-другому и получается фигня. Версии фреймвёрка ведь спокойно стоят рядом и не конфликтуют. Так что не вижу причин не поставить свежие версии один раз, после чего про них можно будет забыть.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 24.01.2014 (Пт) 12:51

Trink писал(а):Речь идет даже не о падении проги, а о том что ее, загрузчик винды отбракует, если не найдет статически прилинкованную DLL или функцию в ней.

В VB при использовании Declare Function библиотека не попадает в ранний DLL-импорт. Она будет подгружена во время выполнения. То есть как раз так, как тебе хочется. То есть твоё представление о том, как оно происходит строго противоположено реальному положению дел.

Так что сначала выучи предмет, о котором споришь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 24.01.2014 (Пт) 21:12

Trink писал(а):Только из-за обратного слеша и точки с запятой в качестве определения начала коммента?

Из-за слэша и точки в объявлении переменной. Это всё равно что вместо "for" использовать "tan", а для тангенса, т.к. "tan" уже занят, например взять "gap".
Точка с запятой - вообще не критично, я же написал.

Trink писал(а):Просто интересно, какие вы знаете и используете на практике языки кроме VB?

Долго перечислять. На вскидку в "ежедневной" работе: php, perl, delphi, js.
Хотя бы раз в неделю: python, java, c.
Хотя бы пару раз в месяц приходится писать или читать код на objc, c#, cpp, as2/as3, asm (последний в отладчике, в основном).
С VB6/VBA имею дело существенно реже, просто до этого на нём долго писал.
Может, что-то забыл ещё из того, с чем редко имею дело. Типа диалекта 1С, или MQL4. Или haskell/lisp. Ну, эти вообще дай бог пару раз в год, и в основном на уровне чтения кода, а не написания. :)

И я, кажется, написал, что меня эти особенности синтаксиса pure не пугают и не сбивают с толку. Просто вызывают недоумение самим своим существованием. :)

Trink писал(а):Значит асм не труъ теперь?

Ммм... И каким образом этот вывод был сделан из процитированной фразы?

Trink писал(а):Что в этом плохого? Если такие расширенные возможности не предусмотрены в VB, это только его жирный минус!

Для языка - ничего. Но мы, кажется, о простоте синтаксиса...

Trink писал(а):а вот в VB будет облом

Что ж вы всё о VB-то? У VB синтаксис гораздо проще, не надо с ним сравнивать.

Trink писал(а):Кроме того, нет необходимости напрямую выделять память. Скажем в процедуре, в место выделения памяти, можно создать массив требуемого размера и получив указатель на него, работать как с памятью. Плюс в том, что такую память освобождать не нужно и при выходе из процедуры она освободится средствами PureBasic.

Ой, а вот это вообще жесть. Образец, так сказать, bad practices.

Trink писал(а):Есть препроцессор

О, вот так гораздо лучше.

Trink писал(а):А я вижу и код драйвера на PureBasic проще для понимания чем аналогичный код на Си.

Ну, кому как. Видимо, для тех, кто знает purebasic - да. Для меня они идентичны, сишный даже чуток логичнее и немного более красив. Но возможно это потому, что я привык к си и не привык к pure.

Trink писал(а):Если сравнить с VB, то да, достоинство и большое!

:shock: win32.tlb + шаблон проекта, где она заранее подключена, и уже никакой разницы нет.

Trink писал(а):Вы не правы. В Си бывают такие навороты что даже бутылка и парочка друзей не могут помочь. В PureBasic такого нет. Если вам немного непривычен его синтаксис, это не значит что он по сложности как у Си.

:shock: Си с плюсами точно не путаете? Точно-точно? Уверены?

Trink писал(а):Вся проблема в том что его много развелось и "крутые программисты" используют текущую версию фреймворка (даже если бы хватило раней версии) не задумываясь что она может быть не на всех компах.

Это не проблема языка, это проблема кривых рук. Ну и опять же, для серьёзного применения эта проблема несущественна.

Trink писал(а):Костылей нет. Кроссплатформенные функции для того и нужны. Библиотеки этих функций, заточенные под конкретную платформу.

Извините, не верю. Но аргументировать не буду. Лезть и изучать асм-код библиотек сейчас как-то совсем не хочется. Так что будем считать, что этот раунд за вами. :)

Trink писал(а):Уверяю вас, все безопасно. Конечно зависит от прямоты рук.

Если безопасность зависит от прямоты рук - это не безопасность. VB6 проектировался так, чтобы не зависеть от прямоты рук. На то он и basic. При прямых руках си и ассемблер тоже безопасны.

Trink писал(а):Незачет! Нормальный пример дайте.

Для начала объясните, чем он ненормален. Список требований, так сказать.
label:
cli
jmp label

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 24.01.2014 (Пт) 23:24

iGrok писал(а):Ммм... И каким образом этот вывод был сделан из процитированной фразы?
Вы написали что точка с запятой это знак разделителя, но наверное забыли что с него начинается коммент в асме.

iGrok писал(а):Ой, а вот это вообще жесть. Образец, так сказать, bad practices.
Почему?

iGrok писал(а):Си с плюсами точно не путаете? Точно-точно? Уверены?
Подразумеваю С/С++.

iGrok писал(а):Извините, не верю. Но аргументировать не буду. Лезть и изучать асм-код библиотек сейчас как-то совсем не хочется.
Ну а как по вашему в PureBasic реализована кроссплатформеность? Интерпретация/виртуалка? Думаете что в 2 КБ можно поместить интерпретатор? Прога компилится полностью в нативный код, без байт-кода или интерпретации и при этом используются функции платформы, под которую компилили.
На официальном сайте об этом прямо написано.
PureBasic is a native 32-bit and 64-bit programming language based on established BASIC rules. The key features of PureBasic are portability (Windows, Linux and MacOS X are currently supported), the production of very fast and highly optimized executables and, of course, the very simple BASIC syntax. PureBasic has been created for the beginner and expert alike.


iGrok писал(а):Если безопасность зависит от прямоты рук - это не безопасность.
Большинство функций безопасны в этом плане и лишь некоторые нужно использовать с умом. Но их отсутствие ограничивает возможности языка. Представьте что из Си полностью убрали возможность работы с памятью, указателями и все что с этим связанно? Как по вашему это было бы хорошо или нет в плане его возможностей?

iGrok писал(а):Для начала объясните, чем он ненормален. Список требований, так сказать.
Хотя бы тем, что это не стандартный, а ActiveX EXE. В нем объекты это "сферические кони в вакууме" не взаимодействующие друг с другом. Должна быть работа с одним объектом из нескольких потоков. В PureBasic такое не вызывает проблем.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 25.01.2014 (Сб) 0:46

Trink писал(а):Вы написали что точка с запятой это знак разделителя, но наверное забыли что с него начинается коммент в асме.

Написал. Ничего не забывал. Что-то не так? Точка с запятой, кстати, не только в асме отделяет комменты от текста.

Trink писал(а):Подразумеваю С/С++.

Так си или плюсы? Это два разных языка, в общем-то. Pure сопоставим по сложности синтаксиса с си, но уступает плюсам.

Trink писал(а):Ну а как по вашему...

Я же сказал, будем считать, что этот раунд за вами. Я верю в нативность кода, я не верю в качественную реализацию gui. Остальное-то работает, куда оно денется...

Trink писал(а):Большинство функций безопасны в этом плане и лишь некоторые нужно использовать с умом. Но их отсутствие ограничивает возможности языка. Представьте что из Си полностью убрали возможность работы с памятью, указателями и все что с этим связанно? Как по вашему это было бы хорошо или нет в плане его возможностей?

Си - не бейсик. Бейсик - простой безопасный язык. Это следует из самого названия. Безопасность в диалектах бейсика не должна зависеть от прямоты рук. Вообще, бейсик - он на то и бейсик, чтобы не задумываться о таких вещах. Именно поэтому я и утверждаю, что purebasic/powerbasic ближе к си (по сути), а не к бейсику.

Trink писал(а):Должна быть работа с одним объектом из нескольких потоков.

Это небезопасно.

Ой, чуть не забыл.
Trink писал(а):Почему?

Как минимум с точки зрения поддержки кода. Создаётся одна сущность, а потом с ней работают как с другой сущностью. Это вещи из разряда чёрной магии, и в программе хотя бы чуть-чуть более сложной, чем хелловорлд их применение недопустимо. Автоматически освобождаемая память, с которой работают "руками" через указатели в общем случае хуже, чем утечка, т.к. при ошибке пользователя приведёт к более серьёзным последствиям (появление уязвимости типа use-after-free, в лучшем случае просто падение программы).
label:
cli
jmp label

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: PowerBASIC vs PureBasic

Сообщение bon818 » 25.01.2014 (Сб) 4:10

Trink писал(а):
Пойдите на форум ассемблерщиков и напишите что их символ комметна полная бодяга! И линк сюда. Посмотрим куда они пошлют.

А еще лучше предложить им поменять их символ комметна на апостроф.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 25.01.2014 (Сб) 7:29

Trink писал(а):Должна быть работа с одним объектом из нескольких потоков.

Никто не мешает обмениваться ссылками на объекты между потоками.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 25.01.2014 (Сб) 14:21

iGrok писал(а):Так си или плюсы? Это два разных языка, в общем-то.
Разные языки? С++ это Си с классами и другими плющками.

iGrok писал(а):Си - не бейсик. Бейсик - простой безопасный язык.
Безопасность сильно ограничивает возможности языка. PureBasic это бейсик с расширенными возможностями, в котором сняты многие ограничения, а значит расширена сфера его применения.

iGrok писал(а):Это небезопасно.
В PureBasic безопасно.
В качестве примера, общим объектом для потоков будет строковая переменная.
Код: Выделить всё
Global String.s, Mutex=CreateMutex()

Procedure TestThread(Var)
  Temp.s
   
  Repeat
   
    If Random(100000) % 100 = 0       ; Если при делении по модулю на 100 будет 0, то очистить строку.
      Temp=""
    Else
      Temp + Str(Random(100000))      ; Дозапись в конец строки случайного числа от 0 до 100000.
    EndIf
       
    LockMutex(Mutex)
    String = Temp
    UnlockMutex(Mutex)
 
  ForEver
 
EndProcedure

CompilerIf #PB_Compiler_Thread=0
  CompilerError "Включите поддержку потоков в настройках компиляции"
CompilerEndIf

For i=1 To 10
  CreateThread(@TestThread(), 0)    ; Создание потока.
Next i

MessageRequester("", "Нажмите 'ОК' для закрытия программы")
В программе создаются 10 потоков (не считая основной) и в них генерируются случайные числа, переводятся в строку и затем записываются в общую строку для всех потоков. Все работает без глюков.
Сможете сделать подобное в VB, причем прога должны быть обычным EXE, а не ActiveX.
Если все таки решите, то знайте, что для нормальной работы, функции генерации случайных чисел и конвертации числа в строку и работа со строками, должны быть потокобезопасны, иначе глюки и вылеты проги!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 25.01.2014 (Сб) 14:23

Trink писал(а):Сможете сделать подобное в VB, причем прога должны быть обычным EXE, а не ActiveX.

Кому должна?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 25.01.2014 (Сб) 15:02

Trink писал(а):Разные языки? С++ это Си с классами и другими плющками.

Скажите это Страуструпу. Это разные языки. Просто cpp очень многое унаследовал от си. Но тогда и php - это тоже "си с классами и плюшками", и все остальные языки с си-подобным синтаксисом туда же.

Trink писал(а):PureBasic это бейсик с расширенными возможностями, в котором сняты многие ограничения, а значит расширена сфера его применения.

Вот поэтому я и говорю, что это уже не бейсик. :)

Trink писал(а):В PureBasic безопасно.

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

Trink писал(а):Если все таки решите, то знайте, что для нормальной работы, функции генерации случайных чисел и конвертации числа в строку и работа со строками, должны быть потокобезопасны, иначе глюки и вылеты проги!

Внимательнее плиз. Хакер уже писал, что весь рантайм в VB потокобезопасен.
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: PowerBASIC vs PureBasic

Сообщение Mikle » 25.01.2014 (Сб) 15:46

Просьба, плиз, ответить на пару вопросов:
1. PBPROG с сайта GcUp.ru, это ты, или нет?
2. По каким признакам ты определяешь, что язык является бейсиком?

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 25.01.2014 (Сб) 16:48

iGrok писал(а):Вот поэтому я и говорю, что это уже не бейсик. :)
Тогда VB.NET тоже не бейсик, потому что в нем есть отличия от классического бейсика. И VBA / VBS тоже не бейсики. Кстати, VB тоже не бейсик, ведь в классическом бейсике классов нет, а они сложны для понимания новичкам, а значит VB стал сложнее и по вашей же логике, перестал быть бейсиком. Вот так-то! :wink: :D

iGrok писал(а):Внимательнее плиз. Хакер уже писал, что весь рантайм в VB потокобезопасен.
Но тем не менее, в VB многопоточность не используют из-за глючности! В PureBasic с этим проблем нет.

Mikle писал(а):1. PBPROG с сайта GcUp.ru, это ты, или нет?
Нет.

Mikle писал(а):2. По каким признакам ты определяешь, что язык является бейсиком?
По элементарным конструкциям языка.
Вот что общего у классического бейсика и PureBasic.

1. Циклы аналогичные. Например цикл For.
Код: Выделить всё
For x=0 To 320
  For y=0 To 200
    ; Код.
  Next y
Next x


2. Подпрограммы. Они есть в PureBasic, но не рекомендованы для использования, т. к. устарели.
Код: Выделить всё
a = 1
b = 2
Gosub M1
Debug a
End

M1:
a = b*2+a*3+(a+b)
a = a+a*a
Return


3. Массивы объявляются как в классическом бейсике (оператор Dim).
Код: Выделить всё
Dim MyArray.l(41)
Так же присутствует оператор ReDim, изменяющий размер массива.
Код: Выделить всё
Dim MyArray.l(1) ; We have 2 elements
MyArray(0) = 1
MyArray(1) = 2

ReDim MyArray(4) ; Now we want 5 elements
MyArray(2) = 3

For k = 0 To 2
  Debug MyArray(k)
Next


4. Оператор Goto, но он не рекомендован к использованию, т. к. устарел (реально его почти не приходится использовать, кроме редких случаев, когда без него увеличится число строк кода).
Код: Выделить всё
M1:
Goto M1


5. Библиотеки String и Math почти полностью аналогичны классическому бейсику.

6. Библиотека Memory, частично похожа на аналогичную из классического бейсика.

7. Базовый синтаксис (например, операторы сравнения, присваивания и т. д.) как у бейсика.

8. В названии языка есть слово Basic. :D 8)

В общем, языковые конструкции ближе всего к бейсику, чем к любому другому языку.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 25.01.2014 (Сб) 23:36

Trink писал(а):Тогда VB.NET тоже не бейсик, потому что в нем есть отличия от классического бейсика. И VBA / VBS тоже не бейсики. Кстати, VB тоже не бейсик, ведь в классическом бейсике классов нет, а они сложны для понимания новичкам, а значит VB стал сложнее и по вашей же логике, перестал быть бейсиком. Вот так-то!

vb.net - вообще странный гибрид. Вроде и бейсик, а вроде и не особо. vb/vba/vbs - бейсики. Речь не об "отличиях от классического" (я так и не понял, что такое "классический бейсик" и почему), а о возможности выстрелить себе в ногу. О знаниях, необходимых для безопасного использования языка.

Trink писал(а):Но тем не менее, в VB многопоточность не используют из-за глючности!

Чушь.
label:
cli
jmp label

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 25.01.2014 (Сб) 23:54

iGrok писал(а):я так и не понял, что такое "классический бейсик" и почему
Выше уже писал что подразумеваю QBasic и подобный ему.

iGrok писал(а):Речь не об "отличиях от классического" (я так и не понял, что такое "классический бейсик" и почему), а о возможности выстрелить себе в ногу.
Тогда следуя вашей логике и бейнфак можно назвать бейсиком. :D В ногу в нем выстрелить ну никак нельзя. 8)

iGrok писал(а):Чушь.
Если бы это было бы чушью, то не городили бы такой огород. viewtopic.php?f=54&t=43507
И там так и не закончили его городить.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 26.01.2014 (Вс) 0:17

Trink писал(а):подразумеваю QBasic

Причина? Потому что захотелось считать его "классическим"? Почему не "спектрумовский" бейсик? Почему не VB (я уже писал, что по соответствующему запросу гугл выдаёт именно его)?

Trink писал(а):Тогда следуя вашей логике и бейнфак можно назвать бейсиком.

Почему кусок про простоту использования пропустили? Наиболее удобные для критики аргументы выбираете, не обращая внимания на остальное? :)

Trink писал(а):Если бы это было бы чушью

Ммм.. Опять странная логика. Это таки чушь, и многопоточность таки используют. Хотя и совсем не так, как вам привычно. Однако же это совсем не повод говорить, что её нет, она не работает или она глючит, т.к. все три пункта - чушь.

З.Ы. А вообще-то тем про pure vs power, так вот на мой взгляд у pure действительно лучше "дополнительные плюшки" (перечисленные вами в самом начале), а у power чуть менее страшный синтаксис (тоже по сложности ближе к си, чем к бейсику, но зато без "извращений"), но имхо оба они не менее бессмысленны, чем бесполезны.
label:
cli
jmp label

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 26.01.2014 (Вс) 1:06

iGrok писал(а):Причина? Потому что захотелось считать его "классическим"? Почему не "спектрумовский" бейсик?
Имею в виду скорее не конкретную среду/диалект, а эталон синтаксиса. VB явно не может быть эталоном, т. к. он отличается от предыдущих версий бейсика.

iGrok писал(а):Почему кусок про простоту использования пропустили?
По вашему в VB работа с объектами это предел простоты? А костыли из-за ограничений (из ваших слов, чтобы не выстрелить в ногу) требующие тонны кода это и есть простота?

iGrok писал(а):Опять странная логика. Это таки чушь, и многопоточность таки используют.
Так дайте примеры где реально используется многопоточность и все работает без глюков. Пока что только слова.

iGrok писал(а):Хотя и совсем не так, как вам привычно.
А как? Опять какие-то ограничения и чтобы их преодолеть нужны костыли с тоннами кода что явно не для новичков? Это и есть простота языка?

iGrok писал(а):Однако же это совсем не повод говорить, что её нет, она не работает или она глючит, т.к. все три пункта - чушь.
Пока нет доказательств, это так и есть, потому что простыми средствами (читай из коробки) VB не поддерживает многопоточность. И если можно ее использовать, то с нехилыми костылями и это явно не для новичков.

iGrok писал(а):А вообще-то тем про pure vs power
Но про power никто не пишет.

iGrok писал(а):но имхо оба они не менее бессмысленны, чем бесполезны.
Сами хоть поняли что написали? :shock:
Отборная у вас трава, однако. :D

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 26.01.2014 (Вс) 2:43

Trink писал(а):VB явно не может быть эталоном, т. к. он отличается от предыдущих версий бейсика.

QB тоже отличается от предыдущих версий бейсика, почему тогда эталоном выбран он?

Trink писал(а):А костыли из-за ограничений (из ваших слов, чтобы не выстрелить в ногу) требующие тонны кода это и есть простота?

Я, кажется, уже про это писал. Если микроскопом ещё можно забивать гвозди, то уж выкручивать шурупы - точно не стоит. Не для этого он предназначен.
Собственно, все костыли - оттуда же. Выбор неподходящего инструмента для реализации задачи.

Trink писал(а):Так дайте примеры где реально используется многопоточность и все работает без глюков. Пока что только слова.

Пример был дан. ActiveX серверы.

Trink писал(а):VB не поддерживает многопоточность

Trink писал(а):Пока нет доказательств

Имхо, проблема в том, что вы как-то очень однобоко понимаете, что такое многопоточность. Он таки её поддерживает, примеры были даны неоднократно. Как объяснить то, что вы их упорно не хотите замечать, и по какому-то недоразумению считаете, что это не многопоточность, а что-то другое, я не знаю.

Разве что так:
Trink писал(а):Отборная у вас трава
label:
cli
jmp label

Trink
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 22.01.2014 (Ср) 11:47

Re: PowerBASIC vs PureBasic

Сообщение Trink » 26.01.2014 (Вс) 15:34

iGrok писал(а): Если микроскопом ещё можно забивать гвозди, то уж выкручивать шурупы - точно не стоит. Не для этого он предназначен.
Вы против универсальных ЯП? Почему?
По мне так удобнее пользоваться одним инструментом, чем 1500.

iGrok писал(а):Пример был дан. ActiveX серверы.
По вашему когда пишут многопоточную прогу на С/С++, Дельфи, PureBasic и т. д. то создают ActiveX сервер? Вот поэтому и незачет! Обычная прога != ActiveX. А если вы не знаете в чем разница, гугл в помощь. Он знает.

iGrok писал(а):Имхо, проблема в том, что вы как-то очень однобоко понимаете, что такое многопоточность.
Это вы видимо никогда не писали многопоточные программы кроме ActiveX.

iGrok писал(а):Он таки её поддерживает, примеры были даны неоднократно.
Я просил пример обычной проги (не ActiveX EXE) с многопоточностью на VB6. Неужели это так сложно понять?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: PowerBASIC vs PureBasic

Сообщение Mikle » 26.01.2014 (Вс) 15:42

Trink писал(а):Я просил пример обычной проги (не ActiveX EXE) с многопоточностью на VB6.

http://bit.pirit.info/forum/viewtopic.php?t=20871

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 26.01.2014 (Вс) 17:38

Trink писал(а):Вы против универсальных ЯП? Почему?

Конечно нет! Я против того, чтобы специализированность ЯП считали недостатком. В общем случае это достоинство.

Trink писал(а):По вашему когда пишут многопоточную прогу на С/С++, Дельфи, PureBasic и т. д. то создают ActiveX сервер?

Где я такое написал? Всё-таки нужно внимательно читать то, что вам пишут. Я сразу упомянул, что "родная" многопоточность в ВБ есть, но с оглядкой на идеологию.

Trink писал(а):Это вы видимо никогда не писали многопоточные программы кроме ActiveX.

Откуда дровишки? Писал, и неоднократно.

Trink писал(а):Я просил пример обычной проги (не ActiveX EXE) с многопоточностью на VB6.

Почему вы считаете Activex-сервер "необычной прогой"? Дайте тогда, что ли, определение "обычной проги", и заодно своему видению многопоточности. А то они у нас, похоже расходятся.

Почему-то вы упорно не хотите вникать в то, что вам пишут. Я понимаю, о чём вы, я признаю, что со своей точки зрения вы полностью правы, но проблема в том, что у вас некорректная точка зрения, и нежелание взглянуть на проблему под другим углом (благо всё разжёвано даже, и задана куча наводящих вопросов) не слишком хорошо характеризует вас, как программиста. Как "программиста на purebasic" - да. Как программиста - нет.

Я уже не раз писал, что инструмент нужно выбирать под задачу, а для этого нужно знать много разных инструментов, и понимать область их применения и их сильные и слабые стороны.

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

В вб по идеологии запрещены все вещи, имеющие неочевидные для программиста последствия, в том числе и многопоточность с ручным управлением потоками. Однако сам по себе язык поддерживает многопоточность штатным образом - в виде activex-серверов. То, что вы считаете эту многопоточность какой-то "не такой" - это проблема исключительно вашего нежелания расширять свои знания предметной области.

Боюсь, вы и после этого всё равно ничего не поймёте (раз не поняли до сих пор несмотря на достаточно толстые намёки), и ещё не дай бог обидитесь, поэтому сразу имейте в виду - я не имею цели нанести вам обиду или оскорбление. Цель у меня одна - попытаться донести необходимость более тщательного изучения предметной области.

Ну и похоливарить заодно от души, конечно. Куда без этого. :mrgreen:
label:
cli
jmp label

The trick
Постоялец
Постоялец
 
Сообщения: 774
Зарегистрирован: 26.06.2010 (Сб) 23:08

Re: PowerBASIC vs PureBasic

Сообщение The trick » 28.01.2014 (Вт) 23:24

Вот еще пример многопоточности, каждое окно создается в своем потоке.
Вложения
TrickMultithread.rar
Многопоточность на VB6
(11.65 Кб) Скачиваний: 235
UA6527P

Пред.След.

Вернуться в Holy Wars@VBStreets

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

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

    TopList