SpiderBasic 1.00 alpha est un nouveau basic dédié au developpement Web
Avec une syntaxe similaire à PureBasic..

Le , par comtois, Responsable Purebasic
Un nouveau Basic dédié au développement web , basé sur la syntaxe de PureBasic. Il est gratuit jusqu'au 31 décembre 2014 pour les utilisateurs de PureBasic ayant une licence.

Hi folks !

We are very happy to officially announce our new product:

- A Basic to master the Web -

Why the SpiderBasic name ? Well, spider, web, basic, should I say more ? It's a new programming language available for Windows (more plateforms will follow)
to develop rich web applications (JavaScript/HTML5/WebGL) based on the PureBasic syntax. ? Even if the syntax is close, there is fondamental differences
in the program workflow between PureBasic and SpiderBasic. In JavaScript, there is no blocking operations, all is asynchronous. For example, LoadImage()
will return immediately and you will have to wait for a callback announcing the load is done. So it was not possible to create just a new backend for PureBasic
and run a PureBasic program on the web. That's why we decided to fork PureBasic completely and made a new language to have greater control over the
commandset and command design. You can still write a program which will work in PB and SB, but it will need some care and probably some CompilerIf.

For now, we are targeting major browsers (firefox, chrome, ie and safari) in their lastest versions. In the long run, Android and iOS support could be
added as subsystems to be allow to create native applications or game with SpiderBasic !

SpiderBasic is a new commercial program which will be available for 49 euro with all minor upgrades included. When a major version will be
released a new license will be needed (will happen about every 1 or 2 years, like PureBasic). The website and support forums will be launched when SpiderBasic
will be stable enough to be released.

As a gift for your support, SpiderBasic will be free until 31 dec. 2014 to all registered PureBasic user ! It's available right now on your
online account . Please read below before installing though.

Important: this is an alpha version, so while it can run some programs, it's far from being stable or feature complete. Your comments are welcome
as well as your bug reports.

1) Don't install it in "Program Files" directory or the examples couldn't be run out of the box. The examples needs to be put in a writable directory
as an .html file is created side by side to the SpiderBasic file.

2) Open one example (look in the "Examples" drawer of the SpiderBasic installation folder

3) Press "compile" and it should launch your default web browser and display the program.

Limitations against PureBasic compiler:

- Bitwise operands like '<<', '>>', '^', '!' only works on 32-bit numbers
- Quads are not real 64-bit quads but 53-bit only.
- Float are handled like double (32-bit float doesn't exists)
- Integer type other than 'quad' and 'integer' are subject to slow casting to respect their range
- '?' operator to get the labels address is not supported
- 'Break' doesn't support a level parameter
- No 'Goto'
- No 'Gosub'
- No 'End'

Supported libraries:

Libraries limitations:

- Only outlined and standard mode supported for now
- Gradient functions not implemented
- Custom filter not implemented
- DrawingBuffer() not implemented
- DrawText() not implemented
- DrawRotatedText() not implemented
- AlphaBlend() not implemented
- DrawingFont() not implemented
- DrawAlphaImage() not implemented
- FillArea() not implemented
- GrabDrawingImage() not implemented
- TextHeight() not implemented
- TextWidth() not implemented

- ParseDate() not implemented

- GetGadgetFont() not implemented
- ProgressBar(): no vertical settings, fixed height
- ScrollBar() not implemented
- TreeGadget() not implemented
- MDIGadget() not implemented
- ExplorerGadgets() not implemented
- DateGadget() not implemented
- CalendarGadget() not implemented
- IPAddressGadget() not implemented
- ShortCutGadget() not implemented
- ComboBox has fixed height (font based)
- No Right click support for ImageGadget()
- ResizeGadget() not implemented
- DisableGadget() not implemented
- ListIconGadget() not implemented
- ButtonImageGadget() no pressed image
- Get/SetGadgetItemData() not implemented
- Get/SetGadgetItemColor() not implemented
- SpinGadget() not implemented

- CatchImage() not implemented
- CopyImage() not implemented
- EncodeImage() not implemented
- GrabImage() not implemented
- ImageDepth() not implemented
- ImageFormat() not implemented
- ResizeImage() not implemented
- SaveImage() not implemented

- ChangeCurrentElement() not implemented
- CopyList() not implemented
- InsertElement() not implemented
- MergeLists() not implemented
- MoveElement() not implemented
- PopListPosition() not implemented
- PushListPosition() not implemented
- SplitList() not implemented
- SwapElements() not implemented

- PopMapPosition() not implemented
- PushMapPosition() not implemented

- RandomData() not implemented
- RandomSeed() not implemented

- Image support not implemented

- No window maximize/minimize buttons
- WindowOutput() not implemented
- Get/SetWindowState() not implemented
- Get/SetWindowColor() not implemented
- PostEvent() not implemented
- DisableWindow() not implemented
- WindowEvent()/WaitWindowEvent() not supported (use BindEvent() instead)
- Add/RemoveKeyboardShortcut()

- StringByteLength() not implemented

- ToolBarStandardButton() not implemented

Known issues:
- The doc is the one from PureBasic
- The icons and extensions are one from PB as well
- No runtime debugger ("Debug" works and output to browser console)
- Not optimized

Don't hesitate to play with it, publish your small programs (tell us if you want them included in the final package) and report bugs here:

Have fun with SpiderBasic and don't be too harsh with it, it's still in early stage !

The Fantaisie Software Team.

Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :

 Poster une réponse

Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 21/01/2014 à 18:56
un exemple de jeu (une petite démo très simple) de ce qu'il est possible de faire

Utilisez la barre espace pour tirer :

C'est un peu chargé en vaisseaux ennemis

Je peux mettre le code source ici si ça intéresse quelqu'un.
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 27/01/2014 à 7:22
La version alpha 2 est disponible sur votre compte. Elle comporte des corrections de bogues ,et l'implémentation de nouvelles fonctions (la bibliothèque Gadget notamment est plus complète).

et un nouvel exemple en ligne qui montre les différents gadgets :

Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 01/02/2014 à 20:17
Je viens de m'y mettre, et voici mon premier test , c'est juste un petit scrolling dans un cadre délimité (les tuiles sont aléatoires, je n'ai pas pris le temps de construire une jolie map)


Utilisez le curseur pour faire défiler la carte.

ça reste fluide chez moi, il est donc possible de se faire un RPG en ligne

Certes , j'en suis loin mais le résultat est encourageant.
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 05/02/2014 à 0:17
La version alpha 3 est disponible sur votre compte, elle comporte des corrections de bogues, et quelques fonctions supplémentaires.

L'exemple Gadgets.html est à jour pour illustrer les nouvelles commandes :


alpha 3 is out ! It does brings a lot of fixes and the following new commands. The incompatibility list has been updated.

- Added: ContainerGadget(), ListIconGadget() and TreeGadget() (See GadgetOverview.pb example for a demo)
- Added UseGadgetList()
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 05/02/2014 à 11:35
Avec PureBasic on peut ajouter de l'assembleur dans le code.
Avec SpiderBasic on peut ajouter du javaScript dans le code, petit exemple d'un utilisateur allemand 'Danilo' :

Code : Sélectionner tout
Procedure DesktopWidth()
    ; Returns the width of the browser area
    !var width;
    !require(["dojo/window"], function(win){
    !  width = win.getBox().w;
    !return width;

Procedure DesktopHeight()
    ; Returns the height of the browser area
    !var height;
    !require(["dojo/window"], function(win){
    !  height = win.getBox().h;
    !return height;
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 06/02/2014 à 20:36
Les démos commencent à sortir, voici un petit jeu d'un Canadien

Touche [Entrée] pour commencer la partie
Touche [Espace] pour tirer
et le curseur pour se déplacer.

Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 07/02/2014 à 18:53
zou, encore une démo, un pong


Barre espace pour démarrer le jeu
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 08/02/2014 à 0:28
'falsam' (un français) propose d'écrire les fonctions décrites un peu plus haut ainsi :

Code : Sélectionner tout
Procedure DesktopWidth()

Procedure DesktopHeight()

Debug DesktopWidth()
Debug DesktopHeight()
Merci à lui.
Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 19/02/2014 à 19:14
La version alpha 4 est disponible sur votre compte, elle corrige pas mal de bogues et comporte de nouvelles commandes qui devraient vous permettre de commencer à créer des applications qui tiennent la route.

alpha 4 is out ! It does brings a lot of fixes and the following new commands, which should allow to start building some interesting applications !

  • Added: XML Library (see Xml.sb)
  • Added: Font Library
  • Added: #PB_Window_Background and #PB_Window_BorderLess flags for OpenWindow()
  • Added: TreeGadget(), nested SplitterGadget()
  • Added: DesktopWidth()/DesktopHeight()/DesktopDepth()/DesktopName()/ExamineDesktop(), DesktopMouseX(), DesktopMouseY()
  • Added: HTTPRequest() with #PB_HTTP_Get and #PB_HTTP_Post type
  • Added: URLEncoder(), URLDecoder()
  • Added: ChangeCurrentElement(), CopyList(), InsertElement(), MergeLists(), MoveElement()
  • Added: PopListPosition(), PushListPosition(), SplitList(), SwapElements()
  • Added: PopMapPosition(), PushMapPosition()
  • Added: RandomSeed(), DrawText(), TextWidth(), TextHeight(), DrawingFont()
  • Added: SetFrameRate(), CreateSprite(), SpriteOutput()
  • Added: SortArray(), SortList(), RandomizeArray(), RandomizeList()
  • Added: CopyImage(), ImageDepth(), ResizeImage(), GrabImage(), ImageFormat()
  • Added: .sb/.sbi/.sbp/.sbf extension support for the SpiderBasic IDE
  • Added: optimization option in compiler window based on Google Closure Compiler (requires java)
  • Added: port and optimization options in the IDE (in Compiler Options)
  • Added: image support for menu item
  • Added: automatic grayed toolbar icon when disabled

Avatar de comtois comtois - Responsable Purebasic https://www.developpez.com
le 26/03/2014 à 15:26
La version Alpha 5 est disponible sur votre compte avec quelques nouveautés importantes.

alpha 5 is out ! Some more improvements and bug fixes

  • Added: RegularExpression library
  • Added: Import/EndImport support for variables and functions
  • Added: "!" full inlined javascript support
  • Added: EnableJS/DisableJS to put big javascript blocks in programs
  • Added: CallDebugger support for native browser debugger (the FireFox/Chrome debugger needs to be opened first).
  • Added: FrameGadget()
  • Added: #PB_Compiler_InlineJavascript compiler constant
Responsable bénévole de la rubrique PureBasic : comtois -