Objeck is an object-oriented programming language with functional features. Objeck emphasizes, expression, simplicity, portability, and scalability. The programming environment consists of a compiler, virtual machine, and command line debugger with IDE plugins.
class Hello {
function : Main(args : String[]) ~ Nil {
"Hello World" → PrintLine();
"Καλημέρα κόσμε" → PrintLine();
"こんにちは 世界" → PrintLine();
}
}
See more on Rosetta Code and checkout the following programming tasks.
Notable features
- Object-oriented with functional features
- Classes, interfaces and first-class functions
- Generics with type boxing
- Anonymous classes
- Reflection
- Object serialization
- Type inference
- Lambda expressions
- Closures
- Libraries
- Collections (vectors, queues, trees, hashes, etc.)
- HTTP and HTTPS client and SSL server support
- RegEx
- JSON, XML and CSV parsers
- Encryption
- Database access
- Query framework
- 2D Gaming framework
- Native support for threads, sockets, files, date/time, etc.
- Garbage collection
- JIT support for all targets
- arm64: Linux, macOS (Apple silicon)
- x86-64: Linux, macOS and Windows
Please refer to the programmer's guide documentation and online tutorial. Also checkout Rosetta Code examples.
VS Code | Debugger | Dungeon Crawler | Platformer | Windows Utility |
---|---|---|---|---|
Building on Linux and macOS
- Install required libraries:
sudo apt-get install build-essential git libssl-dev unixodbc-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev libreadline-dev unzip
- cd to
objeck-lang/core/release
and run./deploy_posix.sh
with the parameter64
ormacos
for x64 Linux or macOS - Build output with binaries and documentation will be located in
objeck-lang/core/release/deploy
- Reference
objeck-lang/core/release/deploy/readme.html
to set addtional paths and find examples
Building on Windows
- Unzip the OpenSSL Windows libraries in
objeck-lang/core/lib/openssl/win/x64
- Using Visual Studio 2022 or later open
objeck-lang/core/release/objeck.sln
- Ensure the core build completes successfully (in Release mode)
- To build everything, open a Visual Studio x64 command prompt and go to
objeck-lang/core/release
directory and rundeploy_amd64.cmd
- Build output with binaries and documentation will be located in
objeck-lang/core/release/deploy64
- Reference
objeck-lang/core/release/deploy64/readme.html
to learn how to set the environment variables and find code examples
Building under MSYS2 on Windows
- Under the UCRT64 shell (best MSYS2 Unicode support)
- Package dependencies
pacman --noconfirm -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-openssl make mingw-w64-ucrt-x86_64-SDL2 unzip mingw-w64-ucrt-x86_64-SDL2_ttf mingw-w64-ucrt-x86_64-SDL2_mixer mingw-w64-ucrt-x86_64-SDL2_image mingw-w64-ucrt-x86_64-unixodbc
- cd to
objeck-lang/core/release
and run./deploy_msys2-ucrt.sh
- Build output with binaries and documentation will be located in
objeck-lang/core/release/deploy-msys2-ucrt
- Set the path for to the UCRT64 'bin' directory
- Reference
objeck-lang/core/release/deploy-msys2-ucrt/readme.html
to set additional paths and find examples
- Under the Clang64
- Package dependencies
pacman --noconfirm -S mingw-w64-clang-x86_64-gcc mingw-w64-clang-x86_64-openssl make mingw-w64-clang-x86_64-SDL2 unzip mingw-w64-clang-x86_64-SDL2_ttf mingw-w64-clang-x86_64-SDL2_mixer mingw-w64-clang-x86_64-SDL2_image mingw-w64-clang-x86_64-unixodbc
- cd to
objeck-lang/core/release
and run./deploy_msys2-clang.sh
- Build output with binaries and documentation will be located in
objeck-lang/core/release/deploy-msys2-clang
- Set the path for to the Clang64 'bin' directory
- Reference
objeck-lang/core/release/deploy-msys2-clang/readme.html
to set additional paths and find examples