Page 1 of 10 123 ... LastLast
Results 1 to 10 of 96

Thread: thinBasic 2.x direction

  1. #1
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    57
    Posts
    8,777
    Rep Power
    10

    thinBasic 2.x direction

    Hi all,

    summer is already with us. I will be on holiday in Spain from the 24th of July till the 8th of August.
    I will have my laptop with me but in the above period my activity on the forum will be limited to check forum functionality.

    Before the above period I think I will release a final 1.9 definitive, ultimate, no looking back, last version
    I know, I said that before but I didn't want to left a 1.x version with known important bugs inside. Now I'm quite satisfied of current beta 1.8.x so I'm confident I will be able to close this development line.

    So, what about start talking for the next thinBasic 2.0 direction and exchange ideas and/or requests for the autumn/winter/next years development time

    I have some ideas but mostly they are related on internal thinBasic Core organization. I will summarize them here but I would like to have this thread open to all of you to post whatever idea even the most mad or impracticable (I already did my best below ) or even critics on what thinBasic has been and what you would like it to be. A kind of open mind brain storming where to put all and at the end get what is best suitable or shared by many.

    Please, please, please! I posted this thread in "Vaporware" forum.
    Take my ideas and whatever we will talk about here as brain storming and not like stones. All can change and/or nothing will change


    So far, my ideas are the following:


    1as you know thinBasic has been developed using PowerBasic and started with PowerBasic 8.x At that time PB had no OOP. Starting from PB version 9.x OOP started to see the light. I will take advance of it converting internal thinBasic Core engine from global variables and UDT to Classes and Interfaces. thinAir is already programmed with this logic in some of its parts. I will extend it to thinCore and thinDebug


    2The above new internal code organization will open to door to multi-threading, so it will be possible to have threads in scripts and have parallel script functions executions


    3For all module developers: the above will change all thinCore SDK functionality because it will be necessary to pass 1 or 2 additional parameters to all SDK functions. Something like script ID and thread ID. But on this I need more time to be sure what it will need


    4CODEPTR to script functions. I think I've an idea on how to calculate and wrap code pointers of script functions and be able to interface to external libs that need a pointer to a function


    5A native interface to COM components more or less like scripting languages like VBScript or other COM aware languages do. A simple dotted notation without all the current not user friendly thinBasic COM module functionalities


    6Some kind of OOP in thinBasic. This is something I already wanted to start some time ago but always stopped myself to start because I knew it would be a long never ending road so I wanted to finish 1.x development line before even start talking.
    It will be not easy, it will be necessary to change a lot internally (Core engine) but something to definitely talk about and choose a possible direction


    7thinAir project handling able to summarize all the options of a project from resources to bundling


    8thinAir plug-in system. So open to all programmers able to develop a DLL the possibility to add plug-ins to thinAir able to interact directly with script sources



    9Improved thinBundle:


    9.1 add application icons
    9.2 add application resources
    9.3 options for each of the bundled files (compress, extract, delete, ...)
    9.4 "extract" the DLLs and EXE in memory instead of hard drive.
    9.5 "extract" script into memory instead of hard drive.








    10Exception handling: see below Petr's description



    11An official uptodate and supported SDK for a free C/C++ language.



    12read C headers directly (as well as its own Basic headers).



    13Named Parameters



    14Explicit line continuation (mainly already in place in thinBasic 1.8.6.0)



    15Assignment vs Equality Operators



    16Local Functions



    17Dynamic scoping



    18Closure



    19Use XML as possible thinBasic source code format. This would allow to include inside source code a lot of other possible informations like comments, descriptions, debugging info, data (in general) to be used at runtime, files, and even binary data



    20Being able to create a thinbasic script at runtime dynamically and let it run or use it as a function



    xxxI call this last line of the table as xxx because it can be hot but please, please, please (again) take it as option on the table to throw away at any time: possibility to change development language used to develop thinBasic.

    I love PowerBasic at the max, it is my preferred programming language. I would suggest to every programmer to spend to buy it without any any hesitation.

    But thinBasic is something different and I would like it to be something more in the future: more open to different platforms, more open to 3rd party libs, more open to additional module programmers.
    As far as we can see and have seen during recent years PB will not open to different platforms. Maybe it can change and I will be happy if it will happen but we cannot wait forever. The same for 64bit: it will happen, maybe this year, maybe next year but again we have to see a little ahead.
    So this point is just to say that this option is on the table. Maybe I will never change but if the conditions will demand or will be favorable, why not. And if yes, where to look at.

    ADDED: this point doesn't necessary refer to thinBasic version 2.x but is an open point always valid as possible consideration.





    Ok, I will stop here because the above points can have work for more than ... many years or more.
    I will wait for your mad comments.

    Ciao
    Eros
    www.thinbasic.com | www.thinbasic.com/community/ | help.thinbasic.com
    Windows 10 Pro for Workstations 64bit - 32 GB - Intel(R) Xeon(R) W-10855M CPU @ 2.80GHz - NVIDIA Quadro RTX 3000

  2. #2
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    7,128
    Rep Power
    732

    Re: thinBasic 2.x direction

    Thanks a lot Eros,

    this look to the future was long awaited, and I am happy to see it so nicely summarized here.

    Ad 1
    That sounds great. I am more and more getting used to OOP style of coding, so this is definitely good idea

    Ad 2
    Yes please

    Ad 3
    No problem.

    Ad 4
    Again great.

    Ad 5
    Sounds good to me, I did not used third party COM libraries yet, but dotted syntax is the way for this.

    Ad 6
    This is funny. When I started on ThinBASIC project, OOP programming was pure evil in my eyes. With the years I am more and more fascinated by this concept, and I am 100% voting for having it in ThinBASIC. I did brief PDF proposal about OOP model in ThinBASIC, I removed the dust from the file and attach it here. The 50% of PowerBASIC for me are the fantastic, unmatched José Roca headers.

    Ad 7
    Very good to have.

    Ad 8
    Very good to have.

    Ad 9
    Especially the icon and resources would be appreciated.

    Ad xxx
    This is interesting point and something to think about. I also love PowerBASIC to the max, especially the version 9 got me excited.
    I like its string handling, inline assembly, the introduction of OOP model and on the first place - rock stability.

    In the past years I tried various other languages, as part of school classes or during my own investigations.
    I must say I found just 2 tools which got my attention (when I do not count pure thinBasic itself):
    • C#
    • Oxygen


    The first one because it was the first languge where OOP made sense for me. But for our purposes it is something not usable, as it has .NET dependancy, and the work with strings is very weak, especially for people used to BASIC. +/- the same for Java - requiring Java installed could be problem, I am personally quite annoyed by agressive Java on task bar on laptops, if I need it for some applet I install it, try the applet, and the uninstall.

    The Oxygen is converging very well to compiler of my dreams - it has OOP very close to C# model I like so much, it has BASIC syntax, it can create DLLs and now it can compile bith 32bit/64bit EXEs and Charles is man-compiler and reliable guy. The only problem I have with Oxygen, is the lack of documentation and proper IDE + debugging tools.

    I am not sure if these solutions are already mature enough to hold the thinBASIC project on its shoulders. In my experience, C# programming flows very well, but there were some reliability issues (maybe more related to .NET as such), which keep me off using C# for projects I would consider selling or sharing with other people. Oxygen is great as I said, only the mentioned (definitely solvable) problems make me undecided. I cannot judge the stability, as I use it for little tests.

    That is why I still use PB9 for TBGL development, I trust the tool and it is documented.

    For me, the press on multiplatformity is not so big. If I would say one, it would be Linux, but I am not using it too frequently. I usually install it, play with it and remove it again. I am sure ThinBASIC could become a star on Linux on the other side... I still remember E.K mentioning the lack of Linux port the only problem
    The 64bit Windows question is more interesting to me for the memory it can allocate.

    Last note regarding the portability across the OSs - it would mean having module of UI not based on catching Windows messages, but working in more abstract way, like Delphi/VB/C# did - that means handling events using OnClick and other automatically fired callback functions not dependent on platform.

    Ad 10
    There is one thing I would add to the magic list, and that is Exception handling, I summarized it a while ago, and still think it is good feature to have:
    Exception handling proposal open for discussion


    Petr
    Attached Files Attached Files
    Learn 3D graphics with ThinBASIC, learn TBGL!
    Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB

  3. #3

    Re: thinBasic 2.x direction

    Hi Eros,
    i suggest that there may be always a ghost thinbasic ship made from other materials and lurking behind the clouds waiting for a call on emergencies. it can be a kind of a gymnastic exercise .
    the materials; i looked at http://en.wikipedia.org/wiki/List_of_compilers
    could it be free pascal ? it has 32 and 64 bit support, and have OOP,
    purebasic ??...,
    other suggestion: is to make another support site for thinbasic on a famous free groups such as yahoo groups; i said that because i have seen a successfull BCX discussion group site there discussions, files, pics, http://tech.groups.yahoo.com/group/bcx/ it is running from year 2000 until now.
    regarding linux, i have installed it before a month, and believe me i feel in this environment like a guest in a poor house; no chairs, no TV, no cola, poor nvidia support, i can't run the sound, every thing done in a hard way... etc. i feel always thirst with a dried throat while i am in this OS, while in ms windows it is like Bill Gates casting his richness and comfort on his product. but whatever the situation it is good to support linux since it means from a philosophical viewpoint that thinbasic have more horizons and lookouts and ways of doing things.
    thanks


  4. #4
    thinBasic author ErosOlmi's Avatar
    Join Date
    Sep 2004
    Location
    Milan - Italy
    Age
    57
    Posts
    8,777
    Rep Power
    10

    Re: thinBasic 2.x direction

    Free pascal was under my attention. Strings handling is not bad
    www.thinbasic.com | www.thinbasic.com/community/ | help.thinbasic.com
    Windows 10 Pro for Workstations 64bit - 32 GB - Intel(R) Xeon(R) W-10855M CPU @ 2.80GHz - NVIDIA Quadro RTX 3000

  5. #5

    Re: thinBasic 2.x direction

    xxx
    My number one compiler for Windows is still PowerBASIC, but without 64bit and no Linux I have been experimenting with other avenues.

    If you are looking for ideas take a look at the direction I went using wxWidgets and the Bcx Windows and Linux translators.
    BcxWx: http://www.basic-compiler.com/forum/
    c++ based using this compiler: http://tdm-gcc.tdragon.net/

    The source for both Bcx Windows and Bcx Linux is provided so you may be able to get an idea on direction.

    The wxWidget library has much more than just UI. String handling is not too bad but not on a level with PB.
    A lot of built in functions!

    James

  6. #6

    Re: thinBasic 2.x direction

    I really liked Petr's proposal on OOP.

    However, in my humble opinion, if you were to rewrite all the modules and functions to act as objects, it would make it much less easier to use for new programmers. It's one thing to learn a command, it's another thing to learn an entire system of objects. Besides, who wants to make a FileHandler object that requires an instance of a File object before you can read and write from a file? I love OOP, but it can be overkill.

    That's one of the problems I have with OOP. I never know what to make an object, and what not to. It takes so much planning that I never get to do any programming. At least for me. Most things don't need to be an object but in an object oriented environment, your code is considered disorganized unless it's in classes.

    I think if we do have support for objects, they should be optional (and we definitely need static classes - having to make a FileHandler object instance just doesn't make sense to me). I think the default modules that come with thinBASIC need to stay the way they are personally. But then some could argue that this turns into PHP - class support but a standard library that doesn't even use it.

  7. #7

    Re: thinBasic 2.x direction

    All sounds great. But I will just comment on the cross platform thingy. You know that I would love to see thinBasic running on my IMac natively. Any other platform would be awesome and someone that make it stand out to the competition even more. The WXWidgets suggestion should be looked at seriously if crossplatform development will be on the list. Regarding switching development languages? Switch only if you want to support other platforms. There my suggestion is either C++ or FreePascal. Both are available for free, matured and developed and run on most platforms.

  8. #8
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    7,128
    Rep Power
    732

    Re: thinBasic 2.x direction

    JosephE,

    I agree with you, in some places OOP is not necessary. But it would be good to have it in arsenal in case you need it.


    Petr
    Learn 3D graphics with ThinBASIC, learn TBGL!
    Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB

  9. #9

    Re: thinBasic 2.x direction

    You could always fork with 2.0.
    1.0 stays the way it is with minor additions while 2.0 becomes the oop/crossplatform version with no need to follow any of the 1.0 format?

    James


  10. #10

    Re: thinBasic 2.x direction

    Eros,

    Personally I would like to see you invest your talents in a cross platform interpreter and ScriptBasic is a great foundation with unlimited potential. You have done an outstanding job with thinBASIC but due to the compiler you're currently using, you hit the wall. (no cross platform support, almost 10 years behind the curve, end of life cycle) If an already existing open source interpreter isn't your cup of tea, then using James Fuller's suggestion of BCX/wxWidgets to give you a C environment to play with sounds like a great choice as well.

    ScriptBasic Project Manager
    Project Site
    support@scriptbasic.org

Page 1 of 10 123 ... LastLast

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •