Introducing Orb, a new Basic

Some of you on Discord know I have been working on my own Basic-like Xojo-like language. Today, I’m releasing a pre-alpha MVP that allows you to write, execute, and compile applications. It has a long way to go but the “hard parts” are done as it goes end to end in a useful, distributable way.

Excerpts from the announcement post on Orb.software:

"Orb is a native, statically typed, garbage collected, cross-platform programming language with a Basic-like syntax. It currently runs on Windows (x64) and macOS (x64) and builds executables for both. I already have support for Linux and macOS (ARM) working and will ship them in a future release.

Many Orb design goals inform my ongoing development efforts. For now, Orb remains a research project into how something like Xojo could be both more modern and more capable if given a fresh start."

“I am designing the Basic I want to use if it were available.”

"I invite you to download the tester app (written in Xojo) to see it in action quickly. The tester app calls Orb via the CLI behind the scenes making it easy to try it out. It’s available for Windows (x64) and macOS (x64), with more to come.

I welcome your feedback and ideas. Orb is a passion project, and I would love to meet others who would benefit from this work."

Read the whole post: http://www.orb.software/news/introducing-orb

Looking forward to any feedback, ideas, discussion here. I appreciate everyones input on Discord and the ongoing conversations there. This is a really great resource. Shout out to the mods and community at large.

8 Likes

ok, sounds super good, downloaded and will play tonight, whatever, thanks for the effort, just keep away from the server stuff so you can get it finished!

first ‘build’ and I get a report:-
bash: /Users/doj/Desktop/tester: No such file or directory

also I can not copy the above text from the window I had to hand type it as the window does not allow copy.

so I decided to create the directory and build again.
this time it asked if I would allow access to the directory, I said yes and the directory was deleted and the file never appeared, the same message as above remained in the bottom window of Orb.

run produces the expected output in the bottom window, not typing it out though…

using Catalina on iMac

Yeah Im on seeing on Mac it doesn’t necessarily have permissions to execute the code. The GUI app is just calling a CLI app. You can actually go into the .app file, resources, and copy out “orb-cli” to your desktop or whatever.

Then say you put a *.orb file in there like test.orb, do:

./orb test.orb

it will run, to build:

./orb --build test.orb

what does test.orb have inside??

On Windows, I can build the examples but I can’t run them. I get a shell timeout error.

Julen

Any Orb code! You can see examples in the tester app. For now its quite limited to creative variables, basic assignments, conditionals, functions, etc. It’ll grow with time with more I/o capabilities like reading/writing files, databases, creating GUI’s.

Unlike Xojo where you use an IDE, with Orb your code can live in any file. Convention will be *.orb files are Orb code files.

Yep, that’s a bug. Will fix.

so basic code with extension orb

Yep, exactly

ok… I move the whole folder or orb_cli on top it own folder just calling it orb
I open terminal and copy the orb path into the terminal and then copy the orb file next to it

I got this error ‘fork/exec ./orb-racket: no such file or directory’

Say “orb-cli” is on your desktop. Then in your terminal you need to do:

cd /Users/<Username>/Desktop/orb-cli

Then say you have “test.orb” on your desktop. To execute the file in terminal do:

./orb ../test.orb

To build:

./orb --build ../test.orb

Once built there is a new file on your Desktop called “test”. You can use terminal to execute it:

../test

That’s a binary you can distribute to any machine of the same platform. On Windows it would be “test.exe” for example.

These types of builds are the equivalent to Xojo console apps. GUI apps coming soon :slight_smile:

thanks got it working on the Mac M1 MacBook Pro with Big Sur

Very nice! You must have Rosetta installed since you are using the x64 edition. I have an ARM/M1 native version coming in next release cycle. It works perfectly.

I have a M1 Mac mini with Big Sur and without Rosetta

I would be interested in joining this project.

Do you plan it as closed source, would be a shame. I think there`s a huge potential if we build an active community. Espacially if we build a superb IDE or VSCode integration for example.

I haven’t made a decision yet. Appreciate the interest and happy to talk more about it. At this stage (R&D) it’s mostly me finishing the grammar and language mechanics. If you read my design goals plenty of things I want the language to be able to do. Once all that is shipping then I can expand on the standard library and build things that get it close to Xojo.

Beyond just compiling things I think there is value in specific IDE’s & workflows for specific project types. For example, a web app builder could be amazing if it didn’t inherit 15 years of desktop baggage or constraints. I’d opt for one language + multiple tools/IDE’s depending on the task at hand.

I think it’s going to progress rather quickly. I already have a working web server and working GUI controls. I just need to expose them in a way that has a developer friendly API.

Very nice and ambitious project @pjzedalis. I’m very interested in language design having built two or three from scratch myself. Can I ask a few questions?

  1. Why use racket as the implementation language?
  2. Is Orb interpreted, compiled or middle ground (e.g. stack-based VM)?
  3. How are you implementing GUI controls? Are you bridging to a native library like wxWidgets or QT?
1 Like

I have played around with Roo, nice work there. Thanks for your interest and questions @Garry

  1. I fell in love with Lisp, and specifically Racket. The latter being focused on “language oriented” programming which really empowered me to build Orb.

  2. It’s compiled to machine specific and optimized bytecode.

  3. Orb will have both native widgets and an Electron-like web based UI toolkit eventually. You will be able to easily mix and match where appropriate in your app.

1 Like