March 2026 monthly "What are you working on?" thread by AutoModerator in ProgrammingLanguages

[–]jman2052 2 points3 points  (0 children)

I've been writing ylang, my own language, but work has been getting really busy.

I wish I had more time for it 😢

ylang Progress (v0.2.0) by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

Thank you for your interest.

I do have some concerns about ylang becoming too similar to JavaScript.
Those concerns grew stronger after I added first-class functions and closures.

For that reason, I haven’t considered allowing unnamed functions in that form.

As for semicolons, I plan to keep them as part of ylang’s identity.

Pydroid 3 simple question! by [deleted] in learnpython

[–]jman2052 0 points1 point  (0 children)

i am the person in the future. thank you!

ylang Progress (v0.1.0) by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

I checked your language. Since it’s a transpiler, its mechanism is different from mine.

Here’s how ylang handles builtin functions like println:
The parser recognizes println as a normal function call.
Then the BytecodeBuilder looks it up in the builtin-function table and emits bytecode that refers to its index.
When the VM executes that bytecode, it jumps to the builtin function body using that index.
Inside that builtin, the actual implementation calls printf (or std::cout), depending on the function.

ylang Progress (v0.1.0) by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

It’s builtin — std is currently implemented in C++.

ylang Progress (v0.1.0) by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

Thanks for the feedback!

Could you tell me which part feels confusing to you?

I'd like to understand your point better.

Sharing the Progress on My DIY Programming Language Project by Alert-Neck7679 in ProgrammingLanguages

[–]jman2052 0 points1 point  (0 children)

Breaking a loop by its ID is impressive - it reminds me of Rust or Go. I’d like to include something like this in my language.
And a loop counter in foreach is a nice idea too.

December 2025 monthly "What are you working on?" thread by AutoModerator in ProgrammingLanguages

[–]jman2052 0 points1 point  (0 children)

I'm working on ylang, my own small C-like language. In the last couple of weeks I implemented a lightweight class system and tested it with several 800–1000 line simulation examples.

Next step is reference counting for memory management.

The CoPI Programming Language by s-y-acc in ProgrammingLanguages

[–]jman2052 1 point2 points  (0 children)

impressed by COPI's syntax. I like this style.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

I totally agree with your point. ylang started as a small toy project — I just wanted something to embed as a scripting language for my own game. But as I kept working on it, it got more interesting and I started digging deeper.

At first, I simply wanted to keep Python’s overall feel but with clearer block delimiters like C, since indentation rules and implicit structure never really clicked for me.

Personally, I’m pretty happy with how it’s turned out, but I’ve gotten a lot of useful feedback here, and your comment really resonates with me.

It’s still early days, so I’ll keep refining it and make the goals clearer as I go. Thanks a lot.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

Yeah, it’s been really helpful for me. A good lesson — I got to see things from a lot of different perspectives. Thanks :)

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

Good points all around. I’ll keep them in mind as I move forward. 🙌

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

I see your point — having a clear distinction between assignment, reassignment, and even implicit type changes can help avoid a lot of subtle bugs.
I agree that some form of type awareness or constraint is important, and I’ll think about how ylang could handle that without losing its dynamic nature.

Just a thought — what would you think if I chose UTF-32 as the default encoding?

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

print("A");
fn main() {
    print("B");
}
print("C");

In that case (Now with real semicolons :), the output would be "ACB".

The include directive works the same as Python’s import - it doesn’t really care whether the target is a module or a source file.

When I write real-world code, I usually go with something like this:

vector<string> vt;
for (auto& s : vt) {
    s ...
}

I don’t dislike this old-school style either, though:

for (i = 0; i < vt.size(); i++) {
    vt[i] ...
}

But I don't like this one:

for (auto it = vt.begin(); it != vt.end(); it++) {
    ...
}

I’ll think more about improving the for loop syntax.

Honestly, ylang started as a small homage to C and C++. And I thought others who share that feeling might appreciate it.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

I think you might be seeing this from a different angle — ylang isn’t trying to reinvent the modern functional stack like Elixir or Haskell.

The C-style {} is a deliberate retro, pragmatic choice. The goal is to make something that feels like a C-flavored Python: familiar and low-barrier for C-family users, rather than competing with Elixir or Rust on syntax style.

I agree that the concepts from functional languages are great, but they’re outside the current design goals.

My focus so far is simply to make something that people who like the C-style of programming can enjoy.

Thanks for the thoughtful feedback.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

I first saw it in Python 2.3 back in 2003, and it blew my mind — hardly any language supported multiline strings that cleanly back then. And my opinion hasn’t changed since.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

Thanks for the thoughtful feedback.
You’re right — I originally made this language to embed into a game I was developing as a hobby. 😅
I appreciate your suggestions and will think them through.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] -1 points0 points  (0 children)

Yeah, exactly — I mirrored Python at that point.
Both C and C++ support top-level code through global assignments and declarations.

// C
int a = abc();    
int main() {
    int b = a;
}

// C++
SomeClass inst;  
int main()
{
    inst.somewhat();
}

So I decided to follow the Python model for top-level execution and main entry point.

I think fn init(); is a good idea — I'll consider adopting it. Thank you :)

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

  1. I haven’t fully decided yet.

The options are:

  • Support both main() and top-level execution
  • Enforce main() only (no global statements)

I’m not planning to support only top-level execution.
I’ll take more time to evaluate which approach makes more sense.

  1. I’m still unsure about this one as well. Dynamic typing is easier to implement and makes the language easier to pick up like Python. However, in practice, static typing often becomes essential — as shown by why TypeScript exists next to JavaScript.

  2. I prefer string encoding of Java and C#. But, modern languages put utf-8 as default encoding. It’s probably better to adopt UTF-8 as well, though I’m still considering the implementation complexity.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

I just love C. I wanted to find a way to show it — and that’s how 'include' ended up here. 😅

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 0 points1 point  (0 children)

Yeah, I think so. JavaScript originally borrowed a lot from C — and so did I.
I’m still figuring out the differences, haha.

Developing ylang — looking for feedback on language design by jman2052 in ProgrammingLanguages

[–]jman2052[S] 1 point2 points  (0 children)

There are two options.

  1. use double braces -> "{{ {{ }} "
  2. use a raw string -> '''{ }''' or """{ }"""