Announcing Razen v0.1.695: Streamlining the Language and Supercharging Error Handling ๐ (Beta)
Hey Dev.to fam! ๐
Iโm thrilled to share a new milestone for Razen, the programming language Iโve been passionately developing. Weโve just released v0.1.695, now in Beta, focused on making Razen leaner, more reliable, and developer-friendly โ especially when it comes to error handling and library support.
Why Beta?
Razen is still early-stage but rapidly evolving. The Beta status means:
- The core syntax and libraries are mostly stable, ready for serious exploration
- Weโre actively gathering community feedback to shape future features
- Some APIs and tokens are still in flux (like the recent token removals), aiming for a clean, maintainable language
If you like being on the cutting edge, diving into language design, or helping steer a language from ground zero, this is a perfect time to jump in.
Whatโs New in v0.1.695?
โจ Enhanced Error Handling โ Because Bugs Happen
- Robust try-catch-finally ensures your cleanup always runs
- Clearer error messages with line and column details
- Nested exceptions support for complex error flows
๐ Library System Revamp
- Faster library imports for a smoother dev experience
- StrLib now packs more punch with advanced string operations
- TimeLib handles all your date/time needs cleanly and consistently
Cleaning House: Token Removal for Simplicity
Based on community feedback, we removed some redundant tokens, especially around strings and date/time. This makes Razen easier to learn, parse, and maintain:
- String operations use
StrLib
functions instead of dedicated tokens - Date/time now handled through
TimeLib
functions
Migration Example
lib strlib;
lib timelib;
# Before
text greeting = "Hello, World!";
concat fullName = "John" + " " + "Doe";
slice firstName = "John Doe"[0:4];
len nameLength = "John Doe".length;
# After
take greeting = "Hello, World!";
take firstName = StrLib[substring]("John Doe", 0, 4);
take nameLength = StrLib[length]("John Doe");
# Date & Time
let currentTime = TimeLib[now]();
let year = TimeLib[year](currentTime);
let month = TimeLib[month](currentTime);
Why This Update Matters
By simplifying the language and beefing up error handling, Razen becomes:
- More intuitive for new and experienced devs alike
- More performant under the hood
- Easier to maintain and extend as the language matures
Join Us on This Journey
Razen is an evolving Beta project, and your feedback is invaluable! Try it out, experiment, break things, and share your thoughts:
- GitHub: BasaiCorp/Razen-Lang
- Reddit: r/razen_lang
- Discord: discord.gg/7zRy6rm333
Letโs build something great together โ a language that respects the wisdom of the past but embraces the future.
Thanks for reading and being part of the dev community! If you want tutorials, deep dives, or to discuss language design, just say the word.
โ Prathmesh, Creator of Razen
Top comments (0)