PowerBASIC vs PureBasic

Windows лучше чем Linux! Чем? Ясно же написано — чем Linux!
Раздуй свой холивар сегодня, потому что завтра это может сделать уже кто-то другой!
HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 06.04.2009 (Пн) 20:02

Учи матчасть
Ты кажется меня не так понял.
Вот твой обработчик событий
Код: Выделить всё
Function MainWndProc(ByVal hWnd As Dword, ByVal wMsg As Dword, ByVal wParam As Dword, ByVal lParam As Dword) Export As Long
     Local ps As PAINTSTRUCT, wRect As RECT, hdc As Long
      Select Case wMsg
         Case %wm_create
             Function = 0
         Case %wm_paint
            hdc = BeginPaint(hWnd, ps)                            'initiates window painting
            Call GetClientRect(hWnd, wRect)                       'gets dimensions of window's client area
            Call DrawText (hdc, "Hello, Windows 98!", -1, wRect,_ 'displays a text string
               %DT_SINGLELINE Or %DT_CENTER Or %DT_VCENTER)
            Call EndPaint(hWnd, ps)                               'ends window painting
            Function = 0
         Case %wm_destroy
              PostQuitMessage 0
       End Select
       Function = DefWindowProc(hWnd, wMsg, wParam, lParam)  'performs default processing of message
End Function

А вот мой обработчик событий
Код: Выделить всё
Repeat ; Начало главного цикла.
   Event=WaitWindowEvent() ; Получаем идентификатор события.
   Gadget=EventGadget() ; Узнаём идентификатор активного гаджета.
    If Event=#PB_Event_Gadget And Gadget=2 ; Условие будет выполнено при щелчке по кнопке.
     MessageRequester("Сообщение","Была нажата кнопка") ; Выводим на экран сообщение.
    EndIf
  Until Event = #PB_Event_CloseWindow ; Прерываем цикл при закрытии окна


Обрати внимание что у тебя там куча API функций, а у меня не одной, да и у тебя кода гораздо больше.
У тебя можно так сказать нет всроеного обрабаотчика событий, а процедура MainWndProc вызывается с помощью API функции GetMessage

Теперт спотри как у тебя создаётся окно
Код: Выделить всё
wClass.cbSize        = SizeOf(wClass)
      wClass.style         = %CS_HREDRAW Or %CS_VREDRAW
      wClass.lpfnWndProc   = CodePtr(MainWndProc)
      wClass.cbClsExtra    = 0
      wClass.cbWndExtra    = 0
      wClass.hInstance     = GetModuleHandle(ByVal %Null)
      wClass.hIcon         = LoadIcon  (%NULL, ByVal %IDI_APPLICATION) 'loads an icon for use by the program
      wClass.hCursor       = LoadCursor(%NULL, ByVal %IDC_ARROW)       'loads a mouse cursor for use by the program
      wClass.hbrBackground = GetStockObject(%WHITE_BRUSH)             
      wClass.lpszMenuName  = %NULL
      wClass.lpszClassName = VarPtr(szClassName)
      wClass.hIConSm       = LoadIcon  (%NULL, ByVal %IDI_APPLICATION) 'loads an icon for use by the program
      Call RegisterClassEx (wClass)                'registers a window class for the program window
      hWnd = CreateWindow (szClassName, "The Hello Program", %ws_overlappedwindow, _
           %CW_USEDEFAULT, %CW_USEDEFAULT, %CW_USEDEFAULT, %CW_USEDEFAULT,_
           %NULL, %NULL, wClass.hInstance, %NULL)
     ShowWindow hWnd, %sw_show
     UpdateWindow hWnd
а уменя окно создаётся так
Код: Выделить всё
OpenWindow(1,0,0,200,100,"Заголовок окна",#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
разницу видишь?
У тебя размер кода гораздо больше чем у меня.
Весь прикол в том, что если захочу, я могу написать код, примерно такой как у тебя, но вот есть ли смылс?
Как говорится "если нет разницы то зачем платить больше"? :)
Я не спорю, знание API очень важно, но если прогу можно писать почти не зная API и при этом будут получатся неплохие проги, что разве это плохо?

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

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 06.04.2009 (Пн) 20:21

HAWK писал(а):...разве это плохо?

Плохо. Если ты что-то делаешь, ты должен представлять себе, ЧТО ты делаешь.
label:
cli
jmp label

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: PowerBASIC vs PureBasic

Сообщение jangle » 06.04.2009 (Пн) 20:34

HAWK писал(а): Ты кажется меня не так понял.
Обрати внимание что у тебя там куча API функций, а у меня не одной, да и у тебя кода гораздо больше.
У тебя можно так сказать нет всроеного обрабаотчика событий, а процедура MainWndProc вызывается с помощью API функции GetMessage


Ты явно не разбираешься в элементарных принципах обработки оконных сообщений. А значит не сможешь обработать их основную массу.
Почитай, хотя бы мануалы Майкрософт по данной теме: http://msdn.microsoft.com/ru-ru/library/bb384843.aspx
Как должен выглядеть правильный обработчик сообщений.

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


Ты не сможешь написать такой код, как у меня. Потому, что не знаешь WinAPI32.

Как говорится "если нет разницы то зачем платить больше"? :)
Я не спорю, знание API очень важно, но если прогу можно писать почти не зная API и при этом будут получатся неплохие проги, что разве это плохо


Плохо.

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 06.04.2009 (Пн) 21:18

Ты не сможешь написать такой код, как у меня. Потому, что не знаешь WinAPI32.
Знаю, и часто использую, но используя встроеные функции я во много раз увеньшаю время разработки проги!

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

Плохо.
Что плохо? То, что я могу написать прогу за меньшее время?

Если ты что-то делаешь, ты должен представлять себе, ЧТО ты делаешь
Я всё прекрасно представляю, а иначе я бы просто не смог писать проги сложнее Hello Word.

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

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 06.04.2009 (Пн) 21:26

Типичный нетчик.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Re: PowerBASIC vs PureBasic

Сообщение FaKk2 » 07.04.2009 (Вт) 4:10

Хакер писал(а):Типичный нетчик.


Да, да :)
Фигня эти ваши пауэр и пюр бэйсики. Вот как надо:
Код: Выделить всё
using System.Drawing;
using System.Windows.Forms;

namespace testwindow
{
   static class Program
   {
      public static void Main()
      {
         Form myForm = new Form {Text = "Hello World"};
         myForm.Controls.Add(new Label { Text = "Hello World!", Font = new Font("Verdana", 24f), AutoSize = true});
         Application.Run(myForm);
      }
   }
}


P.S. Желательно иметь чувство юмора :mrgreen:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Re: PowerBASIC vs PureBasic

Сообщение Dark Machine » 07.04.2009 (Вт) 8:48

P.S. Желательно иметь чувство юмора


при беглом обзоре НЕТ текста промелькнуло:
- моя форма есть новая форма с тесктом "Привет Мир"
- я добавлю контрол с новой меткой "Привет Мир"
- и я шрифт добавлю ....
- запускайся! запускайся моя форма !!!
:D

Jangle,
а зачем привел пример SDK? ведь и DDT есть...
без каментов, и так все понятно
Код: Выделить всё
#COMPILE EXE
#INCLUDE "WIN32API.INC"
DECLARE CALLBACK FUNCTION ShowDIALOG1Proc()

FUNCTION PBMAIN()
    LOCAL lRslt AS LONG, hDlg  AS DWORD
    DIALOG NEW %HWND_DESKTOP, "Dialog", 163, 75, 135, 46, TO hDlg
    CONTROL ADD BUTTON, hDlg, 1001, "KNOPKA", 5, 5, 50, 15
    DIALOG SHOW MODAL hDlg, CALL ShowDIALOG1Proc TO lRslt
END FUNCTION

CALLBACK FUNCTION ShowDIALOG1Proc()
    IF CBMSG = %WM_COMMAND THEN
           IF CBCTL = 1001 THEN
              ? "Bila najata knopka"
           END IF
    END IF
END FUNCTION

HAWK,
не принимай все так близко, языки разные бывают, одни лижут , другие говорят третьи и то и другое делают :mrgreen:

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: PowerBASIC vs PureBasic

Сообщение jangle » 07.04.2009 (Вт) 10:59

а зачем привел пример SDK? ведь и DDT есть...
без каментов, и так все понятно


Чтобы показать ограниченность PureBasic, написать что-то отличное от простейшего GUI практически нереально. PureBasic - это примитивный язык, для начинающий программистов, которые не знают API и основной упор делают на встроенные функции. Типа "кнопко-кидателей", рисовальщиков интерфейсов к базам Access или BDE в Дельфи.
А когда надо решить практическую задачу, средней сложности. PureBasic - делает громкий пук в лужу.

Вот пример из жизни: хожу я на один веселый форум, где дофига рекламы которая дико меня раздражает и нажигает трафик. Мне охота ее вырезать, а заодно и все дурацкие скрипты. Поскольку я использую IE, нужно написать BHO, который в момент поступления события WebBrowser_DocumentComplete с учетом URL`а (именно этот сайт) через WebBrowser.Document.body.innerHTML получит содержимое HTML страницы, вырежет от туда все .gif и определенные .js, cохранит ее обратно, и вызвав WebBrowser.Document.body.refresh отобразит мне страницу без рекламы.

Совершенно реальная, рутинная задача на час работы. Можно ли ее решить, с использование PureBasiс? Нет, нельзя. Язык просто не поддерживает COM-programming. И так во всех областях, куда ни ткнись, везде клин. Это собственно и показывает, различие универсального языка, и узкоспециализированного типа PureBasic. Не надо пытаться сверлить бетонную стену - отверткой, для этого есть перфоратор.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: PowerBASIC vs PureBasic

Сообщение Williams » 07.04.2009 (Вт) 11:26

Еще раз по-поводу "нета".
Вчера увидел такой убогий код на VB.NET, что слезы на глаза навернулись :) Сразу стало ясно почему некоторые заказчики предпочитают работать с сишарпщиками :) Если индус служит где-то главным инженером завода, это ведь не значит, что все инженеры обезъяноподобные :P

Мне кажется на любом из вышеуказанных языков можно написать красивый и чистый код.
И вы думаете, что вас оставят в живых после прочтения этого поста?

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 14:19

Чтобы показать ограниченность PureBasic, написать что-то отличное от простейшего GUI практически нереально. PureBasic - это примитивный язык, для начинающий программистов, которые не знают API и основной упор делают на встроенные функции. Типа "кнопко-кидателей", рисовальщиков интерфейсов к базам Access или BDE в Дельфи.
А когда надо решить практическую задачу, средней сложности. PureBasic - делает громкий пук в лужу.
Ну почему же ты свегда утверждаешь чего совершенно не знаешь. Кароч, бросаешь слова на верер. За слова не отвечаешь!
Приведи доказательства.

Ну вот смотри, создание окна на PureBasic как ты любишь
Код: Выделить всё
Declare MainWndProc(hWnd, wMsg, wParam, lParam)

wClass.WndClassEx : Msg.MSG
szClassName.s = "HelloWin"

      wClass\cbSize        = SizeOf(wClass)
      wClass\style         = #CS_HREDRAW | #CS_VREDRAW
      wClass\lpfnWndProc   = @MainWndProc()
      wClass\cbClsExtra    = 0
      wClass\cbWndExtra    = 0
      wClass\hInstance     = GetModuleHandle_(#Null)
      wClass\hIcon         = LoadIcon_(#Null, #IDI_APPLICATION) ;'loads an icon for use by the program
      wClass\hCursor       = LoadCursor_(#Null, #IDC_ARROW)       ;'loads a mouse cursor for use by the program
      wClass\hbrBackground = GetStockObject_(#WHITE_BRUSH)             
      wClass\lpszMenuName  = #Null
      wClass\lpszClassName = @szClassName
      wClass\hIConSm       = LoadIcon_(#Null, #IDI_APPLICATION)
      RegisterClassEx_(wClass)
      hWnd = CreateWindow_(szClassName, "The Hello Program", #WS_OVERLAPPEDWINDOW, #CW_USEDEFAULT, #CW_USEDEFAULT, #CW_USEDEFAULT, #CW_USEDEFAULT,#Null, #Null, wClass\hInstance, #Null)
      ShowWindow_(hWnd, #SW_SHOW)
      UpdateWindow_(hWnd)
     
      While GetMessage_(Msg, #Null, 0, 0)
        TranslateMessage_(Msg)
        DispatchMessage_(Msg)
      Wend
     
      End
     
Procedure MainWndProc(hWnd, wMsg, wParam, lParam)
ps.PAINTSTRUCT : wRect.RECT : hdc.l
      Select wMsg
         Case #WM_CREATE
             ProcedureReturn 0
         Case #WM_PAINT
            hdc = BeginPaint_(hWnd, ps)                            ;'initiates window painting
            GetClientRect_(hWnd, wRect)                       ;'gets dimensions of window's client area
            DrawText_(hdc, "Hello, Windows 98!", -1, wRect,#DT_SINGLELINE | #DT_CENTER | #DT_VCENTER)
            EndPaint_(hWnd, ps)                               ;'ends window painting
            ProcedureReturn 0
         Case #WM_DESTROY
              PostQuitMessage_(0)
       EndSelect
ProcedureReturn DefWindowProc_(hWnd, wMsg, wParam, lParam)  ;'performs default processing of message
EndProcedure


Хотя куда проще это сделать с помощью всроеных функций.
Типа так
; Открываем окно
OpenWindow(1,200,250,300,50,"The Hello Program",#PB_Window_MinimizeGadget)
CreateGadgetList(WindowID(1)) ; Создаём новый список гаджетов
TextGadget(2,80,20,180,15,"Hello, Windows 98!") ;Отображаем текст

Repeat ; Начало главного цикла Repeat-Until
Event=WaitWindowEvent() ; Получаем текущий идентификатор события
Until Event=#PB_Event_CloseWindow ; Прерываем цикл при попытке закрыть окно (щелчёк по крестику в заголовке окна)
End ; Завершаем работу программы


Можно ли ее решить, с использование PureBasiс? Нет, нельзя.
Очять пишешь чего не знаешь!
Как по твоему работают эти примеры? viewtopic.php?f=49&t=39210&st=0&sk=t&sd=a#p6717585
Не через COM ли?

Ну если хочешь почитай эту тему форума. http://www.purebasic.fr/english/viewtop ... 83&start=0
Там тоже про COM много пишут

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: PowerBASIC vs PureBasic

Сообщение jangle » 07.04.2009 (Вт) 15:08

HAWK писал(а): Ну почему же ты свегда утверждаешь чего совершенно не знаешь. Кароч, бросаешь слова на верер. За слова не отвечаешь!
Приведи доказательства.


Все ответы были приведены ранее. То, что ты не можешь их понять - это твои проблемы.


А код, просто грамматическая каша, ужас, ужас! Красным выделил только откровенную шизофрению слэшей и подчеркиваний
Есть грамматика языка в БНФ?


wClass.WndClassEx : Msg.MSG
szClassName.s = "HelloWin"

wClass\cbSize = SizeOf(wClass)
wClass\style = #CS_HREDRAW | #CS_VREDRAW
wClass\lpfnWndProc = @MainWndProc()
wClass\cbClsExtra = 0
wClass\cbWndExtra = 0
wClass\hInstance = GetModuleHandle_(#Null)
wClass\hIcon = LoadIcon_(#Null, #IDI_APPLICATION) ;'loads an icon for use by the program
wClass\hCursor = LoadCursor_(#Null, #IDC_ARROW) ;'loads a mouse cursor for use by the program
wClass\hbrBackground = GetStockObject_(#WHITE_BRUSH)
wClass\lpszMenuName = #Null



Очять пишешь чего не знаешь!
Как по твоему работают эти примеры? viewtopic.php?f=49&t=39210&st=0&sk=t&sd=a#p6717585
Не через COM ли?

Ну если хочешь почитай эту тему форума. http://www.purebasic.fr/english/viewtop ... 83&start=0
Там тоже про COM много пишут


Ты явно не понимаешь, ни моих ответов, ни даже ссылок которых приводишь. Чтобы было проще, попробуй привести пример такого COM-класса:
Неужели это сложно понять. Или ты просто не знаешь, что это такое?

Код: Выделить всё
#Compile Dll "ActiveX_COM.Dll"
#Dim All
#Register None
#Com Doc "CVACalc encapsulates several methods for resolving vector values."
#Com Name "CVACalc", 0.0001
#Com Guid Guid$("{C6053157-DAD1-4FAF-B4D7-96C128E522CB}")
#Com TLib On
%USEMACROS = 1
#Include "Win32API.inc"
$CVACALCGUID = Guid$("{A6AE5018-2FBC-4952-B078-A94FC27FF351}")
$CVACALCIO =   Guid$("{CD68C662-926E-49F2-8B38-526A50469942}")

Global ghInstance As Dword
Function LibMain (ByVal hInstance As Long, _
    ByVal fwdReason As Long, _
    ByVal lpvReserved As Long) As Long
    Select Case fwdReason
    Case %DLL_PROCESS_ATTACH
    ghInstance = hInstance
    Function = 1

    Case %DLL_PROCESS_DETACH
    Function = 1

    Case %DLL_THREAD_ATTACH
    Function = 1

    Case %DLL_THREAD_DETACH
    Function = 1
    End Select
End Function

Class CVACALC $CVACALCGUID As Com

Instance ptX As Double
Instance ptY As Double
Instance radangle As Double
Instance vlength As Double
Instance dangleraw As Double
Instance dangleABS As Double
Instance HasValues As Long


Class Method CalcRadAngle()
    Local ry,rx As Double
    ry = ptY
    rx = ptX
    ! emms
    ! fld ry
    ! fld rx
    ! fpatan
    ! fstp ry
    radangle = ry
End Method


Class Method CalcDegreeAngleRAW()
    dangleraw = radangle * 57.29577951308232##
End Method


Class Method CalcDegreeAngleABS()
    If dangleraw = 0 Then dangleraw = radangle * 57.29577951308232##
    If Sgn(dangleraw) = -1 Then
      dangleABS = 360 + dangleraw
    Else
      dangleABS = dangleraw
    End If
End Method

Class Method CalcVectorLengthXY()
    vlength = Sqr((ptX)^2+(ptY)^2)
End Method

Class Method CalcPolar2Rect()
    ptX = vlength * Cos(radangle)
    ptY = vlength * Sin(radangle)
End Method

....................
И так далее...


Теперь понятно о чем речь?

J@me$
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 27.02.2008 (Ср) 9:30
Откуда: Саратов

Re: PowerBASIC vs PureBasic

Сообщение J@me$ » 07.04.2009 (Вт) 15:20

Вообще все эти "встроенные" функции - это просто обертка WinAPI, причем чаще кривая, недающая полного контроля над осью. Так что лучший выбор - C + WinAPI. А PureBasic вроде языка для создания быдлоигр и не более.
AutoIt v3 rules
Изображение

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 15:52

Все ответы были приведены ранее. То, что ты не можешь их понять - это твои проблемы
Ну значит ты так криво объяснил!

А код, просто грамматическая каша, ужас, ужас! Красным выделил только откровенную шизофрению слэшей и подчеркиваний
Есть грамматика языка в БНФ?
Это тот ужас что ты раньше привёл, тока переделаный под синтаксис PureBasic. Так что ты сам признался что подобный код ужасный!
Никто тебя за язык не тянул!

Через слеши производится доступ с членам структуры.
А функции, у которых есть между именем и открывающей скобкой нижний пробел, это API функции.
А добавлен нижний пробел для того, чтобы случайно не совпали имена у встроеных функций и API и так проще их отличать. Сразу видно где встроеная, а где API.
Но PowerBasic это не грозит, т. к. там вообще нет всроеных функций...
Я вообще немогу понять как можно писать на чистом API и утвержнать что это круто?
Неужели нежалко времени и сил на намисание тоны текста?

Ты явно не понимаешь, ни моих ответов, ни даже ссылок которых приводишь. Чтобы было проще, попробуй привести пример такого COM-класса:
Неужели это сложно понять.
послушай, без подробный коментариев в исходнике сложно что-то понять.
Так что хорошо его откомментируй!
Неужели так трудно?

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 15:56

Вообще все эти "встроенные" функции - это просто обертка WinAPI, причем чаще кривая, недающая полного контроля над осью.
Да, некоторые из встроеный функций - обёртка API, но сделана она нормально и без глюков.
Зато проги писать одно удовольствие!
И не надо думать что это как-то ограничивает программиста, ведь можно при необходимости участок кода написать на API.

Dark Machine
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 26.05.2004 (Ср) 13:12

Re: PowerBASIC vs PureBasic

Сообщение Dark Machine » 07.04.2009 (Вт) 16:01

wClass.WndClassEx : Msg.MSG
szClassName.s = "HelloWin"

Синтаксис FASM-a

Class\hIcon = LoadIcon_(#Null, #IDI_APPLICATION) ;'loads an icon for use


Мда.... слэш жжёт... :o ундерскор я ещё пойму, но вот слэш... жаль, валерианки не было под рукой..
Видимо деокдер из ПурВасика в ФАСМ сделали очччень быстро и неуспели подобрать подходящий символ :mrgreen:
А как выглядит оператор целочисленного деления?

А вы ещё порсмотрите на синтаксис IBasic --- без поллитра не понять :shock:

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: PowerBASIC vs PureBasic

Сообщение jangle » 07.04.2009 (Вт) 16:06

HAWK писал(а):
Это тот ужас что ты раньше привёл, тока переделаный под синтаксис PureBasic. Так что ты сам признался что подобный код ужасный!
Никто тебя за язык не тянул!


Не надо перевирать мои слова. Я привел пример грамматического абсурда, в качестве разделения полей структуры слэшем и точкой. Повторяю вопрос, где грамматика PureBasic в БНФ?

Через слеши производится доступ с членам структуры.


В чьей нездоровой голове, появилась такая идея? Почему двумя строчками выше использовалась точка, а затем слэш?

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


Какая собственно разница для программиста, между встроенной и API функцией?

Но PowerBasic это не грозит, т. к. там вообще нет всроеных функций...
Я вообще немогу понять как можно писать на чистом API и утвержнать что это круто?
Неужели нежалко времени и сил на намисание тоны текста?


В PowerBASIC значительно больше встроенных функций, чем в PureBasic.

послушай, без подробный коментариев в исходнике сложно что-то понять.
Так что хорошо его откомментируй!
Неужели так трудно?


Ты требуешь комментариев к выражению 2+2=4 ? Это сложно понять?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: PowerBASIC vs PureBasic

Сообщение jangle » 07.04.2009 (Вт) 16:12

Dark Machine писал(а):Мда.... слэш жжёт... :o ундерскор я ещё пойму, но вот слэш... жаль, валерианки не было под рукой..
Видимо деокдер из ПурВасика в ФАСМ сделали очччень быстро и неуспели подобрать подходящий символ :mrgreen:
А как выглядит оператор целочисленного деления?

А вы ещё порсмотрите на синтаксис IBasic --- без поллитра не понять :shock:


Ну тогда понятно, кривизна синтаксического анализатора, пораждает идиотскую грамматику языка :mrgreen: Вобщем руки надо отрывать за такое...

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 17:19

Синтаксис FASM-a
Да, используется фасм :)


Повторяю вопрос, где грамматика PureBasic в БНФ?
А кто сказал что это стандартный язык?
Почему он должен быть похож на PowerBasic?

В чьей нездоровой голове, появилась такая идея? Почему двумя строчками выше использовалась точка, а затем слэш?
Кто тебе дал право критиковать язык, который ты не знаешь! Может ещё обсудим кривизну китайских иероглифов?
По делу.
Через точку объявляется структура.
И не нужно думать что выглядит это ужасно.
В редактре все нормально подсвечено, в отличие от редактора PowerBasic, где больше чёрного текста чем подсвеченого!

Изображение


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

В PowerBASIC значительно больше встроенных функций, чем в PureBasic.
Больше это сколько?

Ты требуешь комментариев к выражению 2+2=4 ? Это сложно понять?
Тебе что лень написать?

PS.
Я так понял что ты jangle язык PureBasic вообще незнаешь, так почему же пишешь что он г...но?
Может ещё про китайский или любой другой язык так напишешь?

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 17:23

А PowerBasic может запускать DLLки прямо из памяти.

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

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 07.04.2009 (Вт) 17:46

HAWK, что за чушь ты несёшь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 18:07

HAWK, что за чушь ты несёшь?
что чушь?
Возможность запуска DLLок из памяти?

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

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 07.04.2009 (Вт) 18:13

Фраза «запуск DLL» чушь. Как следствие, фраза «запуск DLL из памяти» — ещё большая чушь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 18:21

Вот пример на PureBasic http://www.filehoster.ru/files/cm9590
При компиляции иходника в исполняемый файл была "зашита" библиотека Scintilla.dll.
При запуске проги, функции этой DLLки вызываются прямо из исполняемого файла, т. е. библиотека в виде отдельного файла не существует.
Вот это я и назвал "запуск DLLки из памяти", т. к. EXEшник во время исполнения находится в памяти.

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

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 07.04.2009 (Вт) 18:29

Прежде чем вещать из своих уст всякую чушь, надо бы подучить мат. часть.

Сабжевая возможность — черная магия. Никакая сила в мире не может гарантировать, что при вшивании DLL-образа в в образ EXE всё по прежнему будет работать правильно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 18:41

Как бы там нибыло, но проверено с множеством разных DLLок и всегда работало без единого глюка и на разных осях семейства форточковых! :)

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

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 07.04.2009 (Вт) 18:54

HAWK писал(а):Как бы там нибыло, но проверено с множеством разных DLLок и всегда работало без единого глюка и на разных осях семейства форточковых! :)

Проблема не в том, что оно не будет работать. Проблема в том, что никто не может с уверенностью сказать на сколько корректно и до какого момента оно будет работать. Я понимаю, что тебя такой вариант устраивает. Но это не делает тебе чести, как программисту. Скорее, наоборот.
label:
cli
jmp label

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 19:01

Ну что поделаешь, мне нравится когда всё в одном исполняемом файле.

Проблема в том, что никто не может с уверенностью сказать на сколько корректно и до какого момента оно будет работать Винда - потёмки...

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

Re: PowerBASIC vs PureBasic

Сообщение iGrok » 07.04.2009 (Вт) 19:11

HAWK писал(а):Винда - потёмки...

Для тебя - возможно.
label:
cli
jmp label

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

Re: PowerBASIC vs PureBasic

Сообщение Хакер » 07.04.2009 (Вт) 19:14

Это для тебя она — потемки. Для меня она — операционная система. Хорошая операционная система, предлагающая интерфейсы и, главное, правила. Она гарантирует мне: если я буду играть по правилам, она тоже будет. И всё будет славно.

Я делаю это и не напрягаюсь.

Ну что поделаешь, мне нравится когда всё в одном исполняемом файле.

Пожалуйста. Для этого есть статические библиотеки. Специально для этого. Динамические — не для этого.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

HAWK
Википедик
Википедик
 
Сообщения: 74
Зарегистрирован: 02.04.2009 (Чт) 19:28

Re: PowerBASIC vs PureBasic

Сообщение HAWK » 07.04.2009 (Вт) 19:29

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

Пред.След.

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

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

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

    TopList