Success really isn’t optional

News and information about Ultibo.
User avatar
Site Admin
Posts: 2209
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Success really isn’t optional

Postby Ultibo » Sat Feb 03, 2018 12:34 am

Today marks two years since the release of Ultibo and so much has happened in that time it is almost impossible to remember what life was like before. We won’t deny that there have been some disappointments along the way, like the apparent lack of interest in the VC4 port, still we remain convinced that the need for what we are doing is greater now than ever.

You might have noticed a little less activity lately, we’ve been busy with another project, but we’ve also spent a lot of time thinking about the future direction of Ultibo. No matter how much the project expands and no matter how capable it becomes, one recurring theme we see is that the Pascal language is too often cited as a reason not to use Ultibo.

Ultibo is about making a difference not about making excuses, so the time has come for some changes. In order to grow the project to its full potential we’ve decided to broaden the audience beyond the Pascal language and create opportunities for people to build projects using a wider range of tools. Some may question why, couldn’t those people create their own project after all? We’ve looked long and hard and it seems that in spite of the best efforts of many, nothing else has come close to reaching the capabilities Ultibo already has and the future potential it holds.

We haven’t yet finalized all the details of how this will work but you can be sure that Pascal will continue to be supported as the core itself will remain unchanged, support for new languages will be added on to what we already have. Which languages you ask? We’re not going to say right now but if you look at any top ten list of most popular programming languages you’ll be sure to see the ones we’re thinking of.

We hope you’ll join us in welcoming a whole new group of makers to share the future of Ultibo. | Make something amazing
Posts: 443
Joined: Tue Feb 09, 2016 6:21 am
Location: Sydney, Australia

Re: Success really isn’t optional

Postby pjde » Sat Feb 03, 2018 4:41 am

Happy Birthday.
Posts: 857
Joined: Fri Sep 30, 2016 6:30 pm
Location: Poland

Re: Success really isn’t optional

Postby pik33 » Sat Feb 03, 2018 8:27 am

My activity is also reduced due to work and home duties :( :(

But then:

lack of interest in the VC4 port

I tested a HVS and its possibilities: there are good and bad sides of this part of VC4. As the usefulness of it in my project didn't meet expectation, I dropped it, but then the acquired knowledge may be useful in the future

The "Hello Audio" is yet to be tested. I want to have as universal audio driver as possible; maybe Hello Audio will allow to add HDMI audio output to my SimpleAudio library

I have no RPi camera so I will not test this part of RPi/VC4.

The OpenGL ES and MMAL ... these need time...

The problem with RPi is its memory. The "hardware acceleration" is a magic mantra repeated and repeated as if "hardware acceleration" can accelerate magically all graphics operations. This is simply not true. You can make a window manager using HVS, but then HVS is dumb enough to overvrite windows one on another. Use 4 of them, or 6 if overclocking, and the memory bandwidth is saturated... You can make a window manager using OpenGL and textures, but then if you want your windows to be realtime, these textures has to be (1) moved from user memory to VC4 texture memory (2) composed by VC4 (=another memory moves)

So the one possible solution to have a realtime window manager on RPi is to calculate rectangles on the screen and then move/redraw only visible rectangles. The simplest and fastest way is using CPU and a fast procedure written in assembler. All other ways to do this which I tried are simply slower and more complex.

Which languages you ask?

C and C++

The disclaimer: I don't like C language family at all.


I can read and write C/C++


there is a lot of C and C++ code available which does a lot of useful things. It is much easier to modify the code for my need than to translate it all to Pascal first.

The Ultibo as it is now supports C (but not yet C++) but then you have to precompile the code first and then link it into your project. So I did it in my audio player: the Amiga module decoder and mp1-2-3 decoder are ready made Raspbian C libraries I recompiled for using in my projects.

So what I consider to be useful for making projects with Ulitibo?

- C++ support - a lot of code is written in C++ - some people even don't realize they use C++ and not C :)

- ability to open and edit and compile C/C++ code as a part of the project
Posts: 31
Joined: Tue Jan 02, 2018 5:54 pm
Location: UK

Re: Success really isn’t optional

Postby hippy » Sat Feb 03, 2018 12:57 pm

Congratulations on the anniversary. I remember when Ultibo was first announced to the public. It looked promising but did not support what I needed for the projects I envisioned at the time. Two years on and I am here using it. Not massively yet, but I am on-board.

Graphics have never interested me for what I do so I cannot comment on the effort put into VC4 and whether that was worthwhile or not. But 'doing something they said couldn't be done' is I think a badge you can wear with pride which also proved Ultibo is backed by credible talent and that counted for a lot.

Though not complete, Ultibo is a solid and sound effort. I would have no hesitation in recommending it for projects and products it is suited for. In fact there doesn't seem a lot missing, just that what is isn't so easy to do.

Use of Pascal does create some resistance, though not quite as much as having used a Visual Basic would have :D

I don't like C, less so C++, so Pascal is a better choice for me but I can see that support for either would help bring people into the fold, may help with extending Ultibo itself. As long as Pascal remains supported as you intend that is good enough for me. If adding languages helps deliver things which would otherwise be more difficult to achieve then that alone is enough justification for me.

I'm looking forward to what the next year brings.
User avatar
Posts: 159
Joined: Mon Feb 08, 2016 1:30 pm

Re: Success really isn’t optional

Postby Jyv » Sat Feb 03, 2018 1:56 pm

For this anniversary, I will scream a "BIG THANK YOU" to Ultibo for the experience it offered to all of us for the past 2 years,
simply because nothing is missing in Ultibo,
you compile your existing object pascal program and it simply works, and I am not talking of a 100 source lines program, I am talking of 300KLOC web application server full stack,
there is no other competing offer on the market today, not even close.
Well done Ultibo ! 2 years (public release), fully mature, and with strong perspectives to consolidate early adopters,
from now on, any visitor can find confidence that Ultibo is there to stay and to live long times thanks to the great support provided in this forum.

Wishes for the next 10 years:
- The more the community host Github repos with prebuilt SD Ultibo image, the more tinkering programmers could try and adopt Ultibo.
- Debugging your program running in qemu from Lazarus IDE will be the feature that will make the hackers buzz about Ultibo.
Posts: 26
Joined: Thu Jan 04, 2018 1:42 pm

Re: Success really isn’t optional

Postby reyncla » Sat Feb 03, 2018 2:26 pm

Congratulations for those two years of great effort and dedication.

Although until recently entry into the world of Ultibo, I have been using lazarus, arduinos and microcontrollers for a few years.

Presonally, I do not like to use the C language (and its C ++ and C # derevidos) I prefer to use Pascal.

However, I am sure that the popularity of the Arduino is not that it uses C language, but that on the Internet you find enough libraries for different devices with their respective examples.

There are some "bare metal" for raspberry, which are in C language and do not have the desired popularity. And their disadvantage is that they are complex to understand and compile.

The user who works with these devices (badly called "programmer"), likes to have almost everything ready, that meets their needs without much effort ...

Previously, I programmed the raspberry with Linux Operating System, realizing programs with lazarus and python. When you understand that in the industrial world you need Robustness of a simple "microcontroller" that you can turn on and off several times without damage, in the case of the raspberry with OS, when doing this operation the SD corrupts, but you also need the great processing of a microprocessor, ready with its HDMI ports , LAN and USB.

This has been achieved by Ultibo, being able to use the Raspberry with most of its native ports and taking advantage of this great processing without the need to have an Installed Operating System.

In my opinion, I do not hesitate to recommend Ultibo, that the base is still the Pascal language (respect that you want to include other programming languages).

Happy Birthday
Posts: 1589
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Success really isn’t optional

Postby Gavinmc42 » Sat Feb 03, 2018 2:37 pm

2 years may seem long, but to me it has flown by because it made coding Pi's fun not a chore.
I use Ultibo because it is quick but more importantly it is reliable.
Extremely reliable i2c comms which caused me no end of trouble in Linux.

There are very few things that can do all three things on the product triangle of time, cost, quality.
Pi's with Ultibo smashes the traditional "pick two out of three" methodology.
My quality of coding is crap, but it still works because I am only writing just the top application layer.
i am getting faster too and Pi's are cheap but great quality, Ultibo is free.

The previous years in Pi Linuxland were painful, so much to learn, so many ways to do things.
So much I will never comprehend or want to bother to learn, plus it has issues with security that are too complex for me to fix.

In fact there doesn't seem a lot missing, just that what is isn't so easy to do.

Well it is not easy in Linux and the multiplicity of dependencies, libraries and babel of languages that comes with either.
Lots of basic examples are needed to show how simple some Ultibo stuff is now.
Or with 300KLOC as jyv has, how complex things can be done too.

Ultibo is growing, perhaps slower than Garry hoped for but probably faster than he expected?

There is a huge amount of green boxes here, especially in packages.
So far I think I have used only two of them. fcl-image and fcl-registry.

The actual Pascal language itself has a few legacy things like begin/end.
But at my age that is a blessing because my eyes are not as young as they used to be and the C brackets (){}[] can start to look the same on some screens.
Even when I was decades younger those brackets caused problems, missing ones etc.
Free Pascal also has to be freed from the Delphi database only, Embarcadero (we will rip you off) taint.

Yes, lots of the VC4 stuff is hard, but some like OpenVG turned out, with just a few examples to be surprisingly easy.
VC4 stuff is hard in Raspbian too, without Jamesh and 6by9 on the Pi forums it would be extremely hard.

I know of no other Toolset as free, powerful, easy and fast to use that fills in the gaping chasm between Microcontrollers and PCs.
There will be the few noisy and active posters like myself, but there are hundreds just getting on with it silently.
And many others still yet to be convinced that their old and trusted gcc is obsolete.

There is a new way of coding, it's RAD, it's old but it now has a new audience, the Arduino generation of maker/hackers/coders.
The jobs of the future are yet to be made, coders will be needed more than ever.
2years, plus those years before in gestation is not very long at all.

I am really excited for what will happen in year 3 and look forwards to understanding and perhaps remembering what happened in the last 2 years.
What the future holds for Ultibo? Well it can do just about anything now.
I won't predict it will do everything but I do predict there will be a future and a very long one too.
Posts: 55
Joined: Thu Feb 04, 2016 7:07 am

Re: Success really isn’t optional

Postby hansotten » Sun Feb 04, 2018 10:34 am

C or C++ may be obvious for the 'real Unix' programmer, it is the standard choice for all embedded/operating system development nowadays. The web developers use other tools, PHP, Python, and especially Javascript.

The Raspberry world is not so C/C++ oriented, it looks to me more Python supported. Especially the RPi foundation and the eco system, with suppliers like Adafruit, Pimoroni and many more supply Python examples driving the (p)HAts.

Personally, Python is for me and I suppose most less experienced programmers, more acceptable, I cant get my head around C.

Pascal (and Modula and Oberon) will stay my main programming language of choice, though I have done Fortran, assembler (PDP-11, VAX, 6502 and Z80), Python on the Pi and the Arduino dialect of C++ and enjoyed getting the job done.

Opening up Ultibo with choices of programming languages will attract new users for sure! Having the core in Pascal and user programs in other languages, quite normal for an OS :D
Posts: 1589
Joined: Sun Jun 05, 2016 12:38 pm
Location: Brisbane, Australia

Re: Success really isn’t optional

Postby Gavinmc42 » Sun Feb 04, 2018 12:12 pm

Having the core in Pascal and user programs in other languages, quite normal for an OS

That is a big nail you and Paul have hit on the head.

Turning Ultibo into an OS than can use any language.
Not sure if you want gcc to be hosted in Ultibo., but the VC4 userland stuff is compiled C.
Many languages have the capabilities to use/interface to C libs.
Garry has proved Ultibo can do this too.

But what about micro versions, MicroPython, Lua, TinyC.

Ones worth trying first

People use Free Pascal to speed up Python :D
If we use Python will we slow down Ultibo? :roll:

Write all the lower layers in Ultibo and higher levels in Rust, C, Python, C++, HTML5, JS.....?
Posts: 31
Joined: Tue Jan 02, 2018 5:54 pm
Location: UK

Re: Success really isn’t optional

Postby hippy » Sun Feb 04, 2018 3:49 pm

hansotten wrote:The Raspberry world is not so C/C++ oriented, it looks to me more Python supported. Especially the RPi foundation and the eco system, with suppliers like Adafruit, Pimoroni and many more supply Python examples driving the (p)HAts.

Personally, Python is for me and I suppose most less experienced programmers, more acceptable, I cant get my head around C.

I suspect those using C/C++ are just getting on and doing it. The Pi's premise is for learning and Python is what the Foundation has chosen. It's then a self-fulfilling prophecy that everything revolves around Python.

I made the jump to Python because of the Pi and I have found it a good, mostly, "write once, use anywhere" language, it's now my preferred language, despite there being quite a lot I don't actually like about it.

I would love to see Python adopted such that I can use it alongside Ultibo just as I am currently using it alongside Raspbian. Whether Ultibo, Raspbian or anything else is just a means to an end for me; though I view Ultibo as the better means to that end.

As to what flavour if it happens; I believe that must be a full, standard 3.x, because MicroPython isn't a credible option. MicroPython is acceptable when there's nothing else, when nothing more will run on the constrained hardware it's targeted at. If one wants to attract Python users, because that's what Pi users are encouraged to use, one won't do that with a 'not quite the same Python'. Some will accept it but most will carry on with what works how they expect it to work and live with the fact it requires Raspbian to make it work. MicroPython would be better than nothing, but I would consider it an opportunity missed.

It was finally accepting that I could have full Python and Raspbian or other Linux, a long wait for any bootable Python on a Pi, learning Bare Metal in C, or I was going to have to be coding in Pascal which had me come to Ultibo.

Return to “News”

Who is online

Users browsing this forum: No registered users and 1 guest