Skip to main content

Introduction

Structure of This Material

This is a meta-course: it introduces concepts and links directly into the official BBj documentation rather than duplicating reference material. The goal is to orient you in the BBj ecosystem so you can find and use the official resources effectively.

Each section covers a topic area with explanations, working code examples, and links to the relevant documentation pages. The official docs are comprehensive -- this course shows you where to look and what to look for.

Prerequisites

This material is written for experienced software developers who are new to BBj. It assumes familiarity with:

  • Programming fundamentals (variables, functions, control flow)
  • Loops and conditional statements
  • Object-oriented programming concepts
  • Working with an IDE or code editor

The material does not cover general programming concepts. If you need to strengthen any of these areas, address those gaps before starting.

BBj for Java, Python, and C# Developers

If you are coming from Java, Python, C#, or similar languages, this section maps familiar concepts to their BBj equivalents. For a comprehensive task-by-task translation reference, see BBj for Java, Python, and C# Developers.

What is BBj?

BBj is a dynamic, interpreted language that runs on the JVM. It has automatic garbage collection (Java's GC) and seamless Java interoperability -- you can instantiate Java classes directly, and BBj classes can extend Java classes.

Key Terminology

Java/C#PythonBBjNotes
keywords/statementskeywords/statementsverbsSee Alphabetical Verbs
CLASSPATHsys.pathPREFIXSearch path for classes. See PREFIX verb
this.fieldself.field#fieldInstance field reference within methods
ArrayList / ListlistBBjVectorBBjAPI().makeVector() - dynamic array
try/catchtry/exceptSETERR/THROWSETERR errHandler sets handler, THROW raises errors
static factorymodule functionBBjAPI()Entry point for creating BBj objects (windows, vectors, etc.)

Common Tasks

TaskBBj Approach
Collectionsvector! = BBjAPI().makeVector() then vector!.add(item)
Error handlingSETERR handler + label, or use THROW "message", 256
Database accessSQLOPEN, SQLPREP, SQLEXEC verbs
String functionsLEN(), MID(), POS(), CVS() - see Functions list
File I/OOPEN, READ, WRITE, CLOSE verbs

Further Reading

Please Contribute!

Found a typo? Have a suggestion? We welcome contributions to improve this tutorial.

View Contributing Guidelines | Open an Issue

Your contributions help make this material better for future BBj developers!