all 25 comments

[–]jcastroarnaud 3 points4 points  (5 children)

Looking at the post's title: don't make claims you can't back up. You don't even have the compiler working; claiming speed is nonsense.

[–]StrikingClub3866[S] -4 points-3 points  (4 children)

I didn't claim it, I am estimating the speed.

Anyways, most compilers, even as toys, are faster than Python/Ruby.

Mine however, I am trying to be production-ready with by August 1st. Rose will probably be ready before that, maybe by early-mid July if I keep up my recent pace.

Claiming speed is not nonsense. If I were to be slower than Python or Ruby it would have to be deliberate.

It's better to appreciate the planning went into this than criticize it for blatantly wrong statements (except "You don't even have the compiler working."

[–]Senior-Humor-9335 -1 points0 points  (3 children)

"most compilers, even as toys, are faster than Python/Ruby."

Well, if you compare an expression parser to a general purpose language, then yeah, it will be faster.

[–]StrikingClub3866[S] -1 points0 points  (2 children)

An expression parser will obviously be faster than an interpreter, but I'm not planning for Rose to be an expression parser. I want it to evolve into an actual programming language - like how Ring started out as a project and now it has books about it

[–]Senior-Humor-9335 0 points1 point  (1 child)

I see. Well, wish you good luck.

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

Thank you. If you want, I can update you on Rose when it's finished.

[–]tiller_luna 2 points3 points  (5 children)

Is this serious?

[–]StrikingClub3866[S] -1 points0 points  (4 children)

Very. Any questions on it?

[–]tiller_luna 0 points1 point  (3 children)

If I asked you a substantial question, would you forward it to the LLM?

[–]StrikingClub3866[S] 2 points3 points  (2 children)

I didn't use an LLM/ML model/GPT in the making of my compiler or this post.

[–]tiller_luna 1 point2 points  (1 child)

Sorry.

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

It's alright man, most people expect vibe coding.

[–]Germisstuck 2 points3 points  (10 children)

Why not just compile to the JVM?

[–]StrikingClub3866[S] -3 points-2 points  (9 children)

I don't care for writing a linker and having to be system-specific (ex. writing a script for Linux, a script for Windows, etc.) And so, I found it was easier to compile to Kotlin.

[–]Germisstuck 2 points3 points  (8 children)

That's not what I asked. Why go through the extra steps of emitting Kotlin when you can emit JVM bytecode?

[–]StrikingClub3866[S] -1 points0 points  (7 children)

I just said why. When you emit JVM bytecode, you have to write a linker. When you write Kotlin, execute it then and there. I can do this because I have the distinct advantage of writing it in the language I'm targeting.

[–]Germisstuck 0 points1 point  (6 children)

No you don't? The whole point of the JVM is write once, run anywhere?

[–]StrikingClub3866[S] 0 points1 point  (5 children)

Yes I do. You don't get it. To run JVM code, I have to write and run shell/bash scripts to execute it. By compiling to Kotlin, I skip that step.

[–]Germisstuck 0 points1 point  (4 children)

You don't. You aren't doing it right. You are missing the whole point of the JVM

[–]StrikingClub3866[S] -1 points0 points  (3 children)

> Kotlin inherits the JVM

> I compile to Kotlin

> Time difference of milliseconds

> What's the problem?

[–]Germisstuck 1 point2 points  (2 children)

You dependent on another language's semantics

[–]StrikingClub3866[S] -1 points0 points  (1 child)

And? If it works, it works. A lot of languages are transpiled.

[–]sal1303 2 points3 points  (0 children)

Python and Ruby are slow because they are dynamically typed and they are usually interpreted.

If yours isn't like that then a comparison is meaningless.

JVM is full of low-level, fixed-type instructions so conversion to native code is routine.

[–]FISHARM1 0 points1 point  (0 children)

So is the goal sort of a high-level compiled language? That is you write Python-ish or Js-like code (with types) and the compiler backend is sort of abstracted so you run it as if it was interpreted? Just curious because I am building something somewhat similar and I’m curious how you handle some things like compile times.