За 8 часов смог создать exe-файл: на форме один листбокс и одна кнопка. По нажатию кнопки - msgbox, по даблклику на листбоксе - содержимое строки заносится в CONTROL SET TEXT ( проще говоря button.caption=listbox get text). Я конечно дилетант в этом PB, но мне показалось, что есть несколько плюсов в сторону комбинации VB+API:
Проще написать приложение, используя API (огромное кол-во инфы и примеров + могучий MSDN)
Легче написать приложение, используя API (из VB, удобная IDE и т.д.)
Приложение, в котором упор делается на API ( а VB как оболочка) будет работать быстрее
И есть несколько минусов в сторону PB:
Совершенно убогая IDE
Отсутствие какой-либо информации о языке
Неудобоваримый механизм создания приложения по сравнению с VB
Возможно, создатели языка считают большим плюсом, что не надо носить с собой msvbvm60. Сомнительный плюс, т.к. его нет в 95, 98 и МЕ. Но эти системы не зря народ называет MustDie. Это позавчерашний день, и ориентироваться на них думаю не стоит.
Это повторюсь, на взгляд дилетанта. Разубедите меня, если получится.
1) Скорость выполнения программы выше чем у ВБ программы
2) Размер +) + отсутсвие той самой msvbvm60... вчерашний день или нет .. но зато приятно когда твоя программа... это один файлик размеров в 20 Кб(может быть и больше.. я так для примеру) и всё +) и не боишься его запустить и под 9х и под ХР...
3) Возможностей больше чем в ВБ
4) Ненравится та IDE которая даётся ... используй RAD Developer ... неплохая вещь...
5) Подробная информация о языке в ХЕЛП файле с примерами...
6) Портировать удобно с других языков... как ВБ... так и С.. и др..
За 8 часов смог создать одно приложение.... )) Мне на такую же операцию потребовалось секунд 20..
Ваш рассказ напоминает мне историю, как один юный кульный хацкер, пытался убедить меня что Visual C++ [sensored]. На мое предложение аргументировать свою позицию, он ответил:
- Ну как же, вот в VB я могу положить компонет на форму, и в Delhpi тоже могу, а в Visual C++ не могу, как-то там все запутано! Поэтому VC++ ацтой полный!!...
Тут коментарии как говорится излишни..
К сожалению стиль программирования на VB очень портит людей. Воспитывает из них "халтурщиков-кнопкокидателей", создает такой кодер проект в VB, навалит кучу ActiveX контролов, задаст несколько свойств, и получит прогу... И не важно ему, что ActiveX могут быть кривые и глючные, и к ним надо кучу run-time dll для работы, и что прога работает медленно и что размер дистрибутива будет мегабайт в 5 как минимум, и через интернет его никак не загрузить...
Если человек не сталкивался никогда с "низкоуровневым" программированием под Win32, ни писал ассемблерных вставок, не пользовался компилятором ресурсов, а только клепал формочки в VBA, то ему трудно оценить приемущества PB.
Насчет связки VB+API я не согласен, VB может использовать только ограниченный набор API функций, так как он не может работать с указателями как C++,Pascal или PB. А большинство API функций возвращяет результат не по значению, а в виде указателя на данные, так, что большая часть WinApi32 оказывается недоступным для программистов VB.
У PB основная область применения, как мне кажется это создание небольших по размеру программ, загружамых через интернет. Что-то типа FAR, The BAT, WinRAR, WinZIP, etc... Софт для управления базами и т.п. данных лучше писать на VB или VBA...
P.S. PowerBasic не замена VB, у этих языков разные области применения. VB-инструмент быстрой разработки, для непроффесионалов в области Win32. PowerBasic-довольно удобен для низкоуровневого программирования, и используется в основном узким кругом проффесиональных разработчиков, для столь же узких задач...
alex, ты немного не прав, не все любят осх, и простоту, но то что в PB - это слишком ... Могли бы хоть сделать визуальную среду создания форм... Дабы хоть немного упростить визуальное создание интерфейса, а вообще ему бы неплохую IDE, и все было бы в порядке...
И действительно жаль что он не объектно ориентирован
To alex: спасибо за юного кульного хацкера. Что касается кнопкокидательства и глючных ActiveX: я никогда не использовал сторонних ActiveX контролов неизвестного происхождения. Всего использовал три контрола: стандартные от Microsoft MSADODC.OCX, MSDatGRD.OCX и единственное исключение - кнопка XPButton.OCX. Всё остальное писал кодом, вплоть до того, что писал самодельные листбоксы, комбобоксы, листвью использую как материал Label и Image. Конечно это не уровень ассемблера, но всё делалось руками, и получалось гораздо приятнее и красивее, нежели стандартная серость Windows
Касательно API: Ограниченный набор фунций количеством около 1000, доступный из VB, способен выполнить практически любую задачу. Или может есть то что нельзя сделать? Какая конкретная задача не может быть решена? И не очень понятно, почему нельзя сделать тот же Bat на основе API? Или он не делается кроме как на уровне нулей и единиц?
О дистрибутивах 5 мегабайт и рантайм-DLL можно сказать следующее: И если у кого-то стоит Widows 3.хх, то ориентироваться на него не совсем правильно. Если программа нужна человеку, то пусть поставит себе WinXP, и моя программа будет работать без всяких дистрибутивов, одним голым exe-файлом. А если человек не хочет ставить XP для Вашей программы, то это значит лишь одно - программа недостаточно хороша, чтобы из-за неё ставить XP.
P.S. Не думаю, что Ока лучше Мерседеса, потому что она влазит в ваш сарай, а Мерседес не влазит. И если Мерседес не влазит в сарай, то надо строить гараж, а не покупать Оку. Если я ошибаюсь, поправьте меня
>Насчет связки VB+API я не согласен, VB может использовать только ограниченный набор API функций, так как он не может работать с указателями как C++,Pascal или PB. А большинство API функций возвращяет результат не по значению, а в виде указателя на данные, так, что большая часть WinApi32 оказывается недоступным для программистов VB.
Вынужден с вами не согласится. В большинстве указателей в VB срабатывает непосредственно переменная, а остальные можно адресовать с помощью CopyMemory, Str(Var,Obj)Ptr. В VB недоступна не большая часть API функций, а незначительная часть, отвечающая в основном за системное программирование. И то, как я уже говорил, незначительная часть.
2cresta: сравнение мерседеса с окой и сараем неправомерно - ведь это, фактически, означает, что программа должна быть важнее, чем ось, что можно предположить только для специализированных для решения какой-то одной задачи компов, например, сносят Вин и ставят Линукс, если хотят сделать свой комп сервером и унести от него навеки монитор. Даже ради программы уровня Офис подавляющее большинство юзеров не станут ставить новую ось. К тому же слишком многие уже забыли, что на некоторых компах ХР просто не пойдет - хорошо сидеть за крутыми Атлонами 2400+ и говорить: "Да таких компов уже не существует!". Признаюсь, мне всегда более приятно думать, что главная деталь компьютера - юзер. К слову, какая API принципиально недоступна из VB?
Я вот тоже немного думал о активиксах и т. п. Я тоже не люблю их, (поэтому мой контрол "Тяга" именно юзер контрол), но посмотрим на все это с другой стороны:Я пишу приложение для фирмы, оно должно быть крутым и изящным, я кинул на него 20 активиксов и что???Мне эти 20 активиксов помешают принести готовую сетапку на диске и забрать свое бабло?Вот так - то. Именно по этому, качая оттечественные примеры по ВБ я обнаружил минимальность ОСХ, а качая примеры, например, с сайтов США я заметил, что они там подключают к проэкту все, что подключается, и думаете они от этого страдают?НЕТ, они запаковывают в сетапку и ложаться спать!
Есть еще такое понятие, как красота. Где ж красота, если у тебя на форме лежит 20 активиксов, хз как работающих, регулярно глючащих и с кодом, больше напоминающим бмп-файл?
Хотя для коммерческого распространения программа не обязательно должна быть красивой, однако мне лично это неприятно. Вот такой я эстет, блин
To Sharp: Если рассуждать так, как рассуждаешь ты, то мы должны все равняться на самое отсталое, и сидели бы до сих пор на ДВК-2. Были когда-то такие древесно-вычислительные комплексы. Если у юзера нет машины, на которую можно поставить современную ОС, это его проблема. У меня нет денег на Мерс - я езжу на Опеле. И никогда Мерседесы не станут делать в расчёте на мою покупательную способность. Никто не будет под наши (или под абстрактного юзера) возможности подстраиваться. Это абсолютно. И тот же Microsoft гнёт свою линию, постоянно усложняя, утяжеляя и удорожая свои продукты. Если бы Бил Гейц заботился о бедных и несчастных юзерах, у которых маленькое ОЗУ, дохленький процессор и винт, на который не влезет дистрибутив новой ОС, не было бы ни Лонгхорна, ни 2003Server, ни XP. И программили бы мы на IBM 286 в лучшем случае, да и то вряд ли. Что кается программ уровня Офис - ещё раз повторю: если человек не ставит под твою прогу требуемое ПО, то значит твоя прога недостаточно хороша или на хрен не нужна. Если же она ему крайне необходима, и с её помощью он сделает то, чего без нее никак не получается - поставит. Особенно если приложение коммерческое. А юзер - это не модуль к твоей программе и не деталь компьютера.
> Если рассуждать так, как рассуждаешь ты, то мы должны все равняться на самое отсталое, и сидели бы до сих пор на ДВК-2.
Где я говорил, что мы должны равняться на самое отсталое? Однако если программа имеет код, позволяющий усомниться в месте из которого растут руки программиста, если она требует 30 файлов от сторонних разработчиков, если она засирает реестр и жрет половину ресурсов средней машины на таймере, если она показывает 10 секунд сплаш-скрин для программы, меняющей валлпапер, если она выдает GPF каждые 3 минуты, если она использует 16 DLL только затем, чтобы вывести в некоторых местах шрифты с нестандартными параметрами, если в нее запихнуто на 10 метров абсолютно лишней графики, зато автор даже не удосужился проверить орфографию, если она блистает красивейшими контролами, которые увеличивают размер папки System до невозможности, что ж тут хорошего? И в чем здесь технический прогресс?
> Если у юзера нет машины, на которую можно поставить современную ОС, это его проблема.
Если программист не может написать программу, которая нормально работала бы на большинстве компьютеров, то это его проблема. Опять таки, исключение составляют специализированные программы, например, популярные сервера обязаны иметь много рамы, а современный пакет квантовых расчетов, или, например, моделирования самолетов никто не будет ставить на второй пенек. Но многие здесь писали такие программы? И про них ли сейчас идет речь?
> У меня нет денег на Мерс - я езжу на Опеле. И никогда Мерседесы не станут делать в расчёте на мою покупательную способность.
Не надо сравнивать Мерседесы и программы. Мерседесы продадутся в идеале все, которые выпустятся, если их цена хоть как-то коррелирует с их качеством. Т.е. количество проданного товара зависит от произведенного числа. А вот количество продаж софта зависит исключительно от того, сколько юзеров посчитало его покупку целесообразной.
> И тот же Microsoft гнёт свою линию, постоянно усложняя, утяжеляя и удорожая свои продукты.
Можно было бы поразмышлять об античеловеческой сущности капитализма, но я просто укажу, что сам Билли владеет весьма крупными пакетами акций большинства серьезных производителей аппаратуры и ему кровно выгодно, чтобы юзер покупал все более дорогие компьютеры.
> Если бы Бил Гейц заботился о бедных и несчастных юзерах, у которых маленькое ОЗУ, дохленький процессор и винт, на который не влезет дистрибутив новой ОС, не было бы ни Лонгхорна, ни 2003Server, ни XP.
По вышеупомянутой причине, Билли весьма озабочен ресурсоемкостью своих приложений и осей. А между прочим, не так-то и много надо даже для создания такой "большой" ОС, как ХР. МенуетОС, между прочим, помещается на одну дискету. И является полноценной осью.
> если человек не ставит под твою прогу требуемое ПО, то значит твоя прога недостаточно хороша или на хрен не нужна.
Ни один юзер не вытерпит, когда какая-нибудь программа будет вести так, как будто она пуп земли, требовать кучу всего (в частности, установки другой ОС). Он просто удалит ее и потерпит, чего бы это ему не стоило.
> А юзер - это не модуль к твоей программе и не деталь компьютера.
Он всего лишь главный в компьютерной системе - именно он ставит задачи.
Не забывайте люди добрые что МИКРОСОФТ - это бренд. А за любой бренд платят деньги, причём не малые. Про мерс ничего не скажу, ездил всего один раз на дядином в Москве. Но для примера могу привести процессоры Интел. Хотя давно уже статистика указывает на отсталость Интела, по сравнению с AMD, я всё равно буду покупать преимущественно Интеловские процессоры (как скажем GE-Force для видух). Потому что это бренд. Но! Для того что бы стать брендом необходимо зарекомендовать себя на начальном пути к нему. А потом можно вытворять что хочешь. Примеры: Microsoft и Intel. Т.е. типичная для капиталистических отношений схема конкуренции и выживания лучших здесь почему то не срабатывает. Не буду говорить про монополизм - это тоже болезнь такой системы. Но лучше к ней(системе) приспособиться, а то сожрут.
To Sharp:это называется "передёргивать". Если не знаешь... У меня нет ни одной программы, которая "засирает реестр ". Я реестром пользуюсь только для того, чтобы считать системные настройки, и не более. Ни одной записи в реестр. Все свои настройки храню в своих файлах. Никаких "10 секунд сплаш-скрин" никогда не использовал, вся графика ограничивается иконками. "автор даже не удосужился проверить орфографию" - нескромно, но большинству, в том числе и тебе, дам сто очков вперёд в области орфографии, пунктуации и стилистики. "увеличивают размер папки System до невозможности" - XPButton.ocx, VBzip.dll и VBunzip.dll - это все сторонние вещи, которые я приношу с собой. Их суммарный объём - 245 Кб. "меняющей валлпапер" - мои программы исключительно для работы с базами данных, и использование в них "смены валлпапер" совершенно неуместно. И они не "блистают красивейшими контролами". Всего лишь обычные DataGrid, ListView и TreeView. И файл Setup.exe помещается на двух дискетах, хотя программы работают с базами данных. Если необходимо вдруг добавить msvbvm60, то получится 3 дискеты. Всё. Я могу написать программу, которая будет работать не только под XP. Можешь не сомневаться. "как будто она пуп земли, требовать кучу всего". Я ни одному из пользующихся моими программами, ничего не предлагал, не навязывал и не рекламировал. Человек, зайдя в магазин или на склад, видит программу и сам изъявляет желание приобрести её. При чём здесь "Он просто удалит ее и потерпит"? И программы требуют только самое необходимое. 8-ми мегабайтный MDAC я кастрировал до 2 Мб. Самый минимум. И каждого, кто заинтересовался программой, я предупреждаю - нужен XP. Пока ни один не упёрся рогами: не буду ставить и всё. И ещё, мой юный друг, вот где твоя главная ошибка: "Он всего лишь главный в компьютерной системе - именно он ставит задачи." Это далеко от истины. Если надо, то поясню. Одна наводка: Билли. Что он делает. Не в том смысле, что ПО производит А в том смысле, что он делает как личность. Прав CyRax: "Но лучше к ней(системе) приспособиться, а то сожрут". P.S. Может слишком резко, не обижайся...