Сравнение языков PureBasic и FreeBasic
|
|
haav | Дата: Суббота, 22.09.2012, 22:17 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Сравнение языков PureBasic и FreeBasic
Таблица сравнений находится ЗДЕСЬ
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
ShadEx | Дата: Вторник, 25.09.2012, 20:39 | Сообщение # 2 |
Лейтенант
Группа: Проверенные
Сообщений: 51
Статус: Offline
| Ну, про минусы ПюреВасика понятно, а почему ты выбрал для своей библиотеки похожие названия функций и концепцию именно из него?
Честно говоря, не очень удобный способ прописывать создание элементов GUI (учитывая дополнительные константы-номера при создании), лучше наверно было бы взять концепцию и похожие по названию функции из AutoIT...
Сообщение отредактировал ShadEx - Вторник, 25.09.2012, 20:42 |
|
| |
haav | Дата: Вторник, 25.09.2012, 22:08 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Quote (ShadEx) Ну, про минусы ПюреВасика понятно, а почему ты выбрал для своей библиотеки похожие названия функций и концепцию именно из него?
На тот момент мне это показалось хорошей идеей. С другой стороны многие названия носят уникальные имена , не пересекающиеся с API , да и несут хороший смысл того, что они делают. Про AutoIT я на тот момент только мельком слышал...
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
}{oma6bI4 | Дата: Четверг, 25.10.2012, 16:29 | Сообщение # 4 |
Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Offline
| Quote PureBasic: казуальные 2D игры, простые 3D игры\демки
IMHO Справедливости ради, для этих целей больше подходит BlitzMax/Blitz3D (Basic)
На вскидку: http://blitzetc.blitzmax.ru/index.php/Каталог:Blitz3D-Программы
|
|
| |
haav | Дата: Четверг, 25.10.2012, 18:27 | Сообщение # 5 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Quote (}{oma6bI4) IMHO Справедливости ради, для этих целей больше подходит BlitzMax/Blitz3D (Basic)
Согласен. Блитц заточенный под игры движок.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
electrik | Дата: Четверг, 20.02.2014, 15:54 | Сообщение # 6 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| меня тут друг пытается на пурик перетянуть. я и незнаю даже. ведь я привык к WinAPI, да и всегда интересно самому всё писать. там много чего готовенького. возникла у нас идея типа виртуального мира написать, так сказать 3d, звуковая общалка. вот и думаем, где проще будет, за счет готовых компонентов. мне впринципе пофиг, но чем-то ему пурик понравился. ща конечно его поставлю, но синтаксис, эт да. объявлять переменные типа myvar.s, за место dim myvar as string - как то диковато выглядит, любителей basic, это может запутать. могут подумать, что идёт обращение к какому-нибудь элементу типа или класса. да и всякие $ доллары, # решотки, тож как-то путает. дело привычки, но насовсем на пурик переходить не хочу. да и у меня миссия, так сказать, всем чем можно, помогать FreeBasic в продвижении, пусть это будут даже заголовочные файлы к библиотекам. да и подрубать к FreeBasic, можно любые библиотеки, разьве что от c++ классы не подрубить.единственное, что радует в пурике, маленькие бинарники. во FreeBasic они тоже маленькие, но на пурике простые проги будут весить ещё чуть меньше. ну и ещё плюс, для любителей яблока, вот тут FreeBasic проигрывает. зато PureBasic, нет для супер операционной системы dos, для лузеров это не важно, но продвинутым иногда dos может пригодиться. у нас на работе редакторы по брайлю, под dos работают в лексиконе - и это не прикол. год назад я работал в dos, на машине матричной печати, сам программу для неё под dos писал именно на FreeBasic.
|
|
| |
haav | Дата: Пятница, 21.02.2014, 05:26 | Сообщение # 7 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Что ж Серега, удачи!
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
electrik | Дата: Пятница, 21.02.2014, 12:00 | Сообщение # 8 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| глянул пурик, вещь не плохая, много чего интересного. готовые компоненты для создания серверов, мэйлов и т.д. надо будет глянуть твою window9, помню, что там бинарники вродь большие получаются, но так же помню, что вродь ты там что-то оптимизировал. попробовать реверснуть пуриковские функции, и добавить их в window9. может ещё что-то можно заоптимайзить будет, ведь если положить функции в разные bas файлы, то в библиотеке они будут тоже как-то отделены, и в бинарник будут браться только те, которые реально используются ладно, будет время, гляну сурсы window9.
концепция pure мне понравилась, впринципе логично, сначала всё создаём, кнопки, сервера, а потом обрабатываем события. классно будет, если эт всё на FreeBasic перетащить. и кодить приятней будет, и FreeBasic'у плюс
|
|
| |
haav | Дата: Пятница, 21.02.2014, 13:36 | Сообщение # 9 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Как ты Серега собираешься что то там перетаскивать? Если в DLL , то даже будь у тебя лицензия, это делать незаконно (такая уж лицензия у purebasic). А у меня библиотека легальная и я не хочу чтобы из-за таких косяков ей перестали пользоваться зарубежные коллеги. У них вопрос лицензии стоит очень остро.
Что касается размера, то тут мне понятно почему от версии к версии размеры бинарников вырастают как минимум на 30 кб. Всему виной встроенные операторы: new и delete . Если пройтись по библиотеке и заменить способ выделения памяти на функции Allocate, Deallocate , то размер бинарника маленькой программки упадет как минимум на 60 кб. Так два примера, делающие одно и тоже весят 78кб и 12 кб:
Код Dim As Integer Ptr a = New Integer Delete a Код Dim As Integer Ptr a = allocate (4) Deallocate(a) Но на самом деле никого сейчас не удивишь маленьким размером, времена DOS прошли. Когда у меня был жесткий диск 40гб , я тоже старался держать на компе только маленькие программы , а сейчас реально пофигу. Да и кроме того , на реальных программах (не хелловордах) , где включены картинки , звуки или просто много кода , разницы никакой не будет на чем ты пишешь , то есть размер будет сопоставим.
P.S. Если уж ты реально разбираешься в реверсинге, то было бы неплохо если бы ты смог разобраться как работает функция FindString (поиск строк) и связанные списки. Как я не пробовал писать списки на чистом winapi , все равно пуриковские реально быстрее.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
electrik | Дата: Воскресенье, 23.02.2014, 18:35 | Сообщение # 10 |
Полковник
Группа: Друзья
Сообщений: 182
Статус: Offline
| короче, поповоду поиска строк, это можно глянуть, а вот поповоду связанных списков, тут я с этим просто не заморачивался, и уже реверсить ни чего не надо.
Код open "c:\a.txt" for output as #1 print #1,command() close SLEEP(3000000,1)
компилируем и кидаем этот файл в purebasic\compilers, не забыв сделать копию polink. компилим пуриковскую прогу, естественно остановится, потом лезем в temp пользовательской папки, или если вы изменяли переменную окружения. там будет папка purebasic5 с кучей цифр, ну а кто умный, понял о чём я. скажу лишь, после реальной компиляции, там ни чего нет.Добавлено (21.02.2014, 21:45) --------------------------------------------- попробую узнать у человека про списки, он что-то мне рассказывал про это. он поклонник c++, мож подскажет алгоритм, или куда пойти за ним. а так, будет желание, гляну туда, мож пойму как оно написано. в связных списках, наверное есть места, где копируется память. есть способ от manhunter, быстро копировать память, идея такова, всё копируется на ассемблере movsd, а остальные оставшиеся 3 или 2 или 1 байт, копируются как есть, по одному. выигрыш в скорости, говорят большой.но а если x64, там вообще по 8 байт за раз можно копировать, а остальные побайтно, думаю нет смысла вставлять проверку <4. читал я когда-то про спаривание команд, но я честно скажу, не переварил это. если на ассемблере владеть этой техникой, проц выжимается по максимуму. что такое спаривание команд, как я понял, две команды работают по числу тактов как одна.но думаю, это ты знаешь, чтоб быстро копировать память, массив должен быть выровнен по скольку уж не помню, наверное по границе 4 байта на 32 системах, 8 на 64. таже фигня с кодом, только там другие выравнивания. Добавлено (21.02.2014, 21:53) --------------------------------------------- по поводу window9, ну ладно, не реверсинг, но такие же функции, для работы с network, и т.д. реверсинг в данном случае подразумевает изучение кода. ладно, это возможно и не будет, щас порыв так сказать, от впечатлений. я прекрасно осознаю, что в одиночку всё это перелопатить, маньяком надо быть. Добавлено (23.02.2014, 18:35) --------------------------------------------- я конечно понимаю, что тут не purebasic форум, но всё же спрошу как у бывалова. функция catchSound, может брать звук из памяти, но грузить то надо целый звук, а мне надо подчитывать с винта, причем не wave файл, а raw данные. в winapi, можно считывать состояния буферов и добавлять в очередь. тут тоже можно глянуть что звук остановился, но если я начну так подгружать, думаю паузы будут при воспроизведении. уже всю доку перерыл, пока так и не надыбал ничего. хотел переписать свои говорящие часики на пурике, только из-за кроссплатформености графических окон и т.д. можно конечно и fmod заюзать, но хотел без лишних библиотек. видимо не судьба. короче, я всё больше убеждаюсь, что пурик со встроенными функциями, очень ограничен для ковыряния на низком уровне. и видимо идея с виртуальным миром, на пурике тож не катит, так как тут тоже из сети надо будет подгружать кусочки звука, а писать на winapi, эт я и на FreeBasic накатать могу. надежда была на кроссплатформенные мощности языка, но как на зло функционал ограничен.
|
|
| |
haav | Дата: Воскресенье, 23.02.2014, 19:38 | Сообщение # 11 |
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Статус: Offline
| Серега! Я что и знал на пурике, уже успел забыть. А со звуком на пурике я вообще не работал, кроме простого воспроизведения. Так что ничем тут помочь не смогу. Попробуй спросить на русском форуме: http://purebasic.info/phpBB3ex/index.php, может там подскажут как это сделать встроенными возможностями.
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
|