Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Прочие языки программирования > Прочее...
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.04.2014, 19:01
fred_pb fred_pb вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Язык программирования PureBasic

Возможно не все знают что существует замечательный язык программирования, именуемый PureBasic.
Что в нем замечательного? А вот что: Он во первых не сложный и при этом достаточно мощный, что позволяет использовать PureBasic не только для обучения программированию, но и для разработки приложений, игр, библотек (dll и т. д.) и драйверов на профессиональном уровне.
PureBasic имеет кроссплатформенную IDE (Windows, Linux, Max OS X как x86, так и x86, а также PowerPC), в которую входит редактор кода, редактор форм, компилятор и довольно мощный отладчик.
Для PureBasic написано много библиотек функций почти на все случаи.
И не обращайте внимание на слово "Basic". Это язык простоты бейсика и возможностей Си.
Еще одной особенностью PureBasic является то, что программы компилируются в native-код и не требуют среды исполнения (типа runtime или .NET Framework) что облегчает распространение программ. И при это размер исполняемых файлов реально мелкий - от 2 КБ.

Скрин IDE с загруженной программой.

Ответить с цитированием
  #2  
Старый 08.04.2014, 19:38
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Он же коммерческий! Чем он лучше Delphi?
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #3  
Старый 08.04.2014, 19:47
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Драйвера на бейсике
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 08.04.2014, 21:14
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Ну, я вообще планирую драйвера на функциональном языке писать, так что нормально.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #5  
Старый 09.04.2014, 21:48
fred_pb fred_pb вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
Он же коммерческий! Чем он лучше Delphi?
Ваш вопрос звучит примерно так: - "что лучше отвертка или гаечный ключ?", только не уточняется нужно открутить шуруп или гайку. Надеюсь вы не будете откручивать шуруп гаечным ключом или гайку отверткой?
Лучше PureBasic чем Delphi или хуже зависит от задачи.
Например дельфи 7 только для Windows x86 и с его помощью даже приложение для Windows x64 не скомпилировать. А на PureBasic можно. Также PureBasic поддерживает компиляцию для Linux, MaxOS X и AmigaOS, а дельфи нет.

Разработка DLL в дельфи, по сравнению с PureBasic не имеет преимуществ. ИМХО в PureBasic проще.

А вот что касается разработки драйверов, то тут у дельфи облом. Есть конечно методы, но там еще те костыли. А в PureBasic довольно просто писать дрова и компилируются они из IDE без всяких батников и подмены линкера (у PureBasic COFF-формат объектных файлов и стандартный линкер). Примеры драйверов на PureBasic.

Для примера, код драйвера на дельфи.
Код:
unit tiny;

interface

TYPE
  UShort  = Word;   // unsigned 16-bit
  Short   = Smallint; // signed 16-bit
  ULong   = Cardinal;
  Size_T  = Cardinal;
  PVoid   = Pointer;

  NTStatus = ULong;
  CShort  = Short;

TYPE
  PUNICODE_STRING = ^UNICODE_STRING;
  UNICODE_STRING = packed record
  Length : UShort;
  MaximumLength : UShort;
  Buffer : PWideChar;
  end;

CONST
  NTOSKrnl = 'ntoskrnl.exe';

CONST
  IRP_MJ_MAXIMUM_FUNCTION     = $1B;

TYPE
  PDRIVER_OBJECT = ^DRIVER_OBJECT;
  DRIVER_OBJECT = packed record
  csType : CShort;
  csSize : CShort;
  DeviceObject : Pointer; // SHOULD BE PDEVICE_OBJECT
  Flags : ULong;
  DriverStart : Pointer;
  DriverSize : ULong;
  DriverSection : Pointer;
  DriverExtension : Pointer; // SHOULD BE PDRIVER_EXTENSION
  DriverName : UNICODE_STRING;
  HardwareDatabase : PUNICODE_STRING;
  FastIoDispatch : Pointer; // SHOULD BE PFAST_IO_DISPATCH
  DriverInit : Pointer; // PDRIVER_INITIALIZE
  DriverStartIo : Pointer; // PDRIVER_STARTIO
  DriverUnload : Pointer; // PDRIVER_UNLOAD
  MajorFunction : array [0..IRP_MJ_MAXIMUM_FUNCTION] of Pointer;
  end;

CONST STATUS_SUCCESS = NTStatus( $00000000 );

function DriverEntry(
  const DriverObject : PDRIVER_OBJECT;
  const RegistryPath : PUNICODE_STRING
  ) : NTStatus; stdcall;

implementation

function DbgPrint(
  const Format : PAnsiChar
  ) : NTStatus; cdecl; external NTOSKrnl name '_DbgPrint';

procedure ADriverUnload(
            const DriverObject : PDRIVER_OBJECT
            ); stdcall;
begin
 DbgPrint('Tiny: DriverUnload()');
end;

function DriverEntry;
begin
  DriverObject^.DriverUnload := @ADriverUnload;
  DbgPrint('Tiny: DriverEntry()');
  Result := STATUS_SUCCESS;
end;

end.
Аналогичный на PureBasic.
Код:
Declare DriverEntry(*DriverObject, *RegistryPath)

*A=@DriverEntry()
!jmp [p_A]

IncludePath #PB_Compiler_Home+"DDK\"
XIncludeFile "ntddk.pbi"
XIncludeFile "ntstatus.pbi"
XIncludeFile "ntfunct.pbi"

Procedure DriverUnload(*DriverObject.DRIVER_OBJECT)
  DbgPrint(@"PureBasic: DriverUnload()")
EndProcedure

Procedure DriverEntry(*DriverObject.DRIVER_OBJECT, *RegistryPath.UNICODE_STRING)
  
  DbgPrint(@"PureBasic: DriverEntry()")
  
  *DriverObject\DriverUnload = @DriverUnload()
  
  ProcedureReturn #STATUS_SUCCESS
EndProcedure


Попробуйте скомпилировать драйвер в дельфи.

А в PureBasic без заморочек компилируется из IDE. Просто вставьте код драйвера в редактор IDE и скомпилируйте. Нужно всего лишь в меню "Компилятор" щёлкнуть по пункту "Создать драйвер" и если в коде нет ошибок, то драйвер будет создан в указанной папке.

Последний раз редактировалось fred_pb, 09.04.2014 в 21:58.
Ответить с цитированием
  #6  
Старый 09.04.2014, 21:50
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

На FASM можно и под линух и под х64 и под АРМ [sarcasm]конпелировать[/sarcasm] хоть драйвера, хоть что; и ассемблер "проще" бейскиа, а с макросами так вообще бомба.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 09.04.2014, 22:46
fred_pb fred_pb вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Вот еще одно преимущество PureBasic - он использует FASM в процессе компиляции и позволяет заюзать почти все возможности этого асма, такие как асм. инструкции, директивы, макросы и т. д.
Ответить с цитированием
  #8  
Старый 10.04.2014, 00:15
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от fred_pb
Например дельфи 7 только для Windows x86 и с его помощью даже приложение для Windows x64 не скомпилировать.
А если взять не Delphi 7, а один из модных XE? Что, этот ваш PureBasic позиционирует себя в качестве конкурента Delphi 7? Мелко плаваете.

Цитата:
Сообщение от fred_pb
А вот что касается разработки драйверов, то тут у дельфи облом.
Вот тут вы себе противоречите. В подавляющем большинстве случаев перед программистом Delphi не стоит задача разработки драйверов, а если вдруг встанет, выбор маргинальных или немаргинальных средств разработки будет определяться по условиям задачи.

А теперь главный вопрос: что мне делать с моими исходниками на Delphi? Предположим, что я купился и купил. Дальше-то что? Переписывать всё на PureBasic? Мну разорится.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #9  
Старый 10.04.2014, 00:31
fred_pb fred_pb вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Freeman
А если взять не Delphi 7, а один из модных XE? Что, этот ваш PureBasic позиционирует себя в качестве конкурента Delphi 7? Мелко плаваете.
XE поддерживает винду и макос. PureBasic кроме них поддерживает линукс и амигу. Также в разработке новый продукт, транслирующий PureBasic-код в веб (JS, HTML5 и т. д.).

Цитата:
Сообщение от Freeman
Вот тут вы себе противоречите. В подавляющем большинстве случаев перед программистом Delphi не стоит задача разработки драйверов, а если вдруг встанет, выбор маргинальных или немаргинальных средств разработки будет определяться по условиям задачи.
В чем противоречие? В том что без огромных костылей и гемора в дельфи драйвер не создать? Где здесь противоречие?
В PureBasic создать драйвер во много раз проще.

Цитата:
Сообщение от Freeman
А теперь главный вопрос: что мне делать с моими исходниками на Delphi? Предположим, что я купился и купил. Дальше-то что? Переписывать всё на PureBasic? Мну разорится.
Я кого-то призываю бросать дельфи и переходить на PureBasic?
Эта тема создана для расширения кругозора, а не для переманивания прогеров на другой ЯП.
Ответить с цитированием
  #10  
Старый 10.04.2014, 01:07
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
На FASM можно и под линух и под х64 и под АРМ [sarcasm]конпелировать[/sarcasm] хоть драйвера, хоть что; и ассемблер "проще" бейскиа, а с макросами так вообще бомба.
[оффтоп]А если скачать FreshIDE, то получим еще и визуальный редактор окон, кроссплатформенную библиотеку и автодополнение.
Что касается бейсика - сам язык убог до невозможности, писать на нем программы жутко неудобно из-за некоторых его концепций. И не думаю, что PureBasic сравнится по стандартному функционалу с каким-нибудь XE5 со всеми их жестами, огнеобезьянами, 3Д-формами и т.д. Также делфи сейчас компилирует под IOS, в скором времени обещают Linux и Android. Писать же драйвера на бейсике - мсье, вы знаете толк в извращениях... Учитывая, что весь MSSDK на Си и все примеры на Си.
Пока что единственный плюс PureBasic'а, который я вижу - компиляция под Mac и Linux. Остальное играет не в его пользу.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 10.04.2014 в 01:50.
Ответить с цитированием
  #11  
Старый 10.04.2014, 12:23
fred_pb fred_pb вне форума
Прохожий
 
Регистрация: 08.04.2014
Сообщения: 8
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Что касается бейсика - сам язык убог до невозможности, писать на нем программы жутко неудобно из-за некоторых его концепций.
Это вы утверждаете хорошо зная PureBasic, или тупо обобщаете все бейсики руководствуясь чужим мнением?
Если уж обобщать как вы это делаете, то можно сказать что паскаль (а дельфи это паскаль) это учебный язык и ни на что другое кроме обучения он не годен. Но вы же понимаете что это не так. Тоже и с PureBasic. Сначала изучите предмет обсуждения, а потом критикуйте.
Ответить с цитированием
  #12  
Старый 08.04.2014, 22:26
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от fred_pb
Возможно не все знают что существует замечательный язык программирования, именуемый PureBasic...
Как ни странно, некоторые знают, но не вдохновляет.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 09.04.2014, 02:45
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Вброс про PureBasic уже замечен на форуме FreePascal.ru, но режим КТО там пока не объявили.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter