Following API changes

PureBasic uses a commandset built on top of the OS API, using generic commands to abstract it from you, the developer. One of the most daunting (and boring) task for us is to follow underlying API changes. A famous example was Cocoa support replacing old Carbon API on PureBasic for OS X. Another one is the DirectX11 support for the Sprite/Screen library on Windows. Linux isn’t left behind, with the recent GTK3 support for the whole commandset. All this requiers a lot of work, new knownledge to learn, and tons of testing, just to provide functionnalities which already work in the current API. From the PureBasic developer point of view, there is nothing fancy as the commands works as usual, only the implementation under the hood has been completely reworked. That’s one of the great strength of PureBasic: you can upgrade your program without worrying it about the technology used behind by just using a new version. OK, you will probably have some adjustements to do here and here, but it’s really nothing compared to migrate a whole program from one API to another.

Which brings us to a somewhat recurrent issue with PureBasic upgrade: commands are sometimes renamed, changed, or even removed. It often makes the developer angry as a working code needs to be modified to run again with the new version, and we don’t like to change working code. Agreed. But I would like to explain why it happens, and why it is important for PureBasic future. One important thing to understand: we don’t change the commandset unless it’s really necessary. It’s not our goal to mixup the whole stuff only to bother you. That said, the technology is always evolving and an high level programming language like PureBasic needs to follow the evolution as well. If not, it will be left behind, and a new language, using more modern API will take over. Let me use the sprite library as an example to illustrate my thoughs:

– API designed on Amiga in 1998 with no 3D acceleration. Was quite simple: sprite only, no zoom, no rotation, and many software only routines.
– Later, with DirectX7 on Windows, we got some 3D accelerated functions for some cards, so we added the ‘sprite3d’ library to support it. It was optional, as it didn’t work everywhere. That made the sprite lib a bit more hard to use, as you had to create 3D sprite using a real sprite with texture mode. DirectX7 mainly worked with 2D acceleration using DirectDraw, so we couldn’t switch to full 3D
– Nowaday DirectX9/DirectX11/OpenGL offers much better support for 3D only sprites, and 2D acceleration is not supported anymore. So all the sprites are now natively in 3D, even if we use it in 2D mode. What the purpose of having a ‘sprite3d’ lib as regular sprites are 3d anyway ? This one was obsolete, so we had to remove it to cleanup the library and have easier sprite handling, for you and for newcomers.

A new language won’t even think about separating sprite in 2 libs as it makes no sens: all is 3D now, even cheap phones handle its GUI in 3D mode. That was legacy and if we want to have PureBasic around in the future, we have to think ‘new’, and adapt the current commandset to new technology, even if it slightly breaks code. If we stick with older functionalities/design for compatibility sake, we will be slowing dying. Indeed, old PureBasic versions are available in the museum section of your online account, if you just need to do maintainance on a software.

11 thoughts on “Following API changes

  1. J. Baker

    That’s what I love about PB. If you preferred something the old way, go to your account and grab an older version of PB. Other then that, thanks for keeping PB updated!

  2. TI-994A

    “All this requiers a lot of work, new knownledge to learn, and tons of testing, just to provide functionnalities which already work in the current API. From the PureBasic developer point of view, there is nothing fancy as the commands works as usual, only the implementation under the hood has been completely reworked.”

    Hello Fred. Being programmers ourselves, we know and appreciate all the hard work that you and the Fantaisie team put in day after day, year after year, and version after version, to make all this cross-platform magic possible, which continues to make PureBasic great.

    For this tireless dedication to your users, we thank you!

  3. USCode

    Cross-platform support and command abstraction are a couple of the primary features that attracted me to PB. That, along with the wide scope of library support out of the box and the ability to create small/fast native executables with NO dependencies! AFAIK PB is unique in the world with its combination of features and purity.

    If current CPU trends continue and with Apple and Microsoft slowly merging their mobile and desktop platforms together, I suspect a big task in the near future will be PB support of ARM processors.

    Keep up the EXCELLENT work! =)

  4. diaaannnas

    академия труда и социальных отношений курган итоговое тестирование для профсоюзных лидеров вопросы и ответы

    http://lifehak.xyz/

    если находясь в декретном пропустила время когда надо было полтверждать квалификацию учителя что делать

    mwetyu

  5. Rogercoism

    Essay Writing Service – EssayErudite.com

    Our [url=https://essayerudite.com]essay writing service[/url] provides a full-scale writing assistance accessible online 24/7.
    Apart from many other writing companies, we are rather picky when forming a professional staff of experts.
    Moreover, we try to make our every customer feel safe and pleased with the service.

    essay writing service

    Essay Writing Service – https://essayerudite.com

  6. StevenImasp

    Write My Paper – EssayErudite.com

    Looking for an expert to [url=https://essayerudite.com/write-my-paper/]write my paper[/url] for you? You are at the right place.
    Providing superior writing service appears to be our main specialization and passion.
    Our website is the best destination for every English-speaking student who calls for assistance when handling his or her daily academic tasks.

    write my paper

    Write My Paper – https://essayerudite.com/write-my-paper/

  7. Haroldlok

    Write My Essay For Me – EssayErudite.com

    Can You [url=https://essayerudite.com/write-essay-for-me/]Write Essay For Me[/url] ? How many times do students worldwide ask this question without finding an answer?
    We’d rather not check the official statistics. At the same time, essays appear to be probably among the most popular academic assignments.
    Students from various education establishments need to complete them constantly. If you are among those lucky ones, feel free to contact our customer service department and opt for an essay writing help.

    Write Essay For Me

    Write My Essay For Me – https://essayerudite.com/write-essay-for-me/

  8. JamesGen

    Best Essay Writing Service – EssayErudite.com

    Looking for the [url=https://essayerudite.com/best-essay-writing-service/]best essay writing service[/url] can turn into a pain in the neck especially if you are not an experienced essay buyer.
    EssayErudite.com is well known among students from the USA, UK, Canada and Australia.
    We provide a superior writing assistance and handle all types of academic papers ranging from dissertations and thesis statements to reviews and coursework.
    Whatever the challenge is, you can always count on us.

    Best Essay Writing Service – https://essayerudite.com/best-essay-writing-service/

  9. WilliamWic

    Buy Essay – EssayErudite.com

    Where to [url=https://essayerudite.com/buy-essay/]buy essay[/url] online ? Our experienced writers can boast higher degrees in addition to exceptional writing skills.
    You now have a great chance to buy essay papers online with only a couple of clicks.

    Buy Essay

    Buy Essay Online – https://essayerudite.com/buy-essay/

  10. ZlobCulse

    If you’re interested in winning millions, then I’m here to help!
    At [url=skyliteboom.com]Casino[/url] you can play over 450 world-class games and I’m giving you an exclusive Welcome Bonus to get you stuck into winning.
    Use it today to increase your chances of hitting our jackpots.
    All you have to do is [url=skyliteboom.com]sign up today[/url] and watch the rewards come rolling in.
    skyliteboom.com
    [url=skyliteboom.com]Prepare to hit the big time[/url]
    [url=skyliteboom.com]Hacer giros para ganar millones[/url]
    [url=skyliteboom.com]Holen Sie sich spinnen, um Millionen zu gewinnen[/url]
    [IMG]http://i63.tinypic.com/ofdmds.jpg[/IMG]

Leave a Reply