
Euboea – simple, fast, AOT-compiled programming language - palaiologos
https://github.com/KrzysztofSzewczyk/Euboea
======
blunte
Is it a bit premature to promote this given that there's almost no information
of any kind (docs, examples)?

As an entertaining aside, I find the consonant-vowel balance fascinating:
KrzysztofSzewczyk/Euboea

~~~
pvinis
Is the name coming from this place in Greece?
[https://goo.gl/maps/mvMYQwErCXk](https://goo.gl/maps/mvMYQwErCXk)

~~~
palaiologos
Yes.

------
yatac42
Why does it say AOT in the title and the README, but JIT in the project
description? Did that change at one point and the description wasn't updated?

Edit: Actually it says AOT at the beginning of the README, but then JIT later
in the Philosophy section. So I guess if the README has been updated, it's
been updated incompletely.

------
thosakwe
I know this is (maybe) a little nit-picky, but what exactly does "blazingly
fast" mean here? The README compares its performance in benchmarks against
Lua, but Lua is not necessarily "blazingly fast" either when compared to
outputs from C, C++, Rust, etc.

It's a term I hear everywhere (especially in the JS world), but I don't really
understand what it implies.

~~~
otabdeveloper2
> ...but I don't really understand what it implies

It means "faster than the slowest language currently in common use, I guess".

------
BubRoss
Seem bizarre to push being only four times faster than straight lua when it is
compiled to native instructions. Lua is 50x-100x slower than a native binary.

~~~
enriquto
Yes, at first I thought it was comparing against luajit, which is indeed
blazingly fast. But for a compiled language just to be 4x faster than lua, I
fail to see the point (of emphasizing it speed, not of the language itself).

~~~
otabdeveloper2
We actually compared stock lua to luajit in production, for something with
high load and serious performance requirements.

The difference turned out to be no big deal, less than x2 in speed. The real
performance killer seems to be garbage collection and chasing pointers due to
inefficient data structures. Luajit doesn't help much here.

In the end we went with stock lua because it doesn't have the 1 gigabyte
memory limit, and so can use a much larger thread pool.

------
jzebedee
I've only heard AOT used when referring to languages that are normally JIT'ed.
If this compiles straight to native, why call it AOT?

------
rafaelvasco
No win support planned ?

~~~
palaiologos
Currently no, but any help on it would be _greatly_ appreciated!

------
ausbah
can someone give a dumbed down version of what a AOT compilation consists of
for someone who doesn't have a background in programming languages

~~~
PezzaDev
AOT (ahead of time) is your code is turned into machine code before you run
it.

JIT (just in time) is your code turning into into machine code as you run it.
Machine code is what your CPU directly processes, so it can be very fast.

AOT languages can use more expensive techniques to make super optimised
machine code since the cost is upfront when compiling the code, not when
running it. But JIT languages can have features that exploit the fact that
machine code is made on the fly.

AOT programming languages: C++, C, Rust

JIT programming languages: C#, Javascript, Java

~~~
pvorb
But why does the README say

> Use JIT compilation

then?

------
rurban
dasm is the right tool for this. call me convinced.

------
pulsarpietro
YAUL ?

------
zeroname
Quick Review (WARNING: contains controversial opinions!)

Good:

\- "minimal usable set of keywords and control structures"

\- "simple cooperation with C"

\- "no access to files on physical drive"

\- reasonably terse syntax (except for "end instead of braces")

Bad:

\- The name of the language, I don't know how to pronounce it and I can't
remember how to type it. Rename to "Boa" or similar.

\- The name of the author, it's a bad transliteration. Rename to "Christoph
Shoechuck" or similar.

\- "focus on targeting UNIX-like operating system"

\- "intended to be used with shell scripts" \- shell scripts are brittle and
awful to write

\- end instead of braces

What:

\- isn't AOT and JIT contradictory?

\- isn't interfacing with C and "no access to files" contradictory?

Conclusion:

I like a simple, small and embeddable language, but I don't want to embed
anything in shell scripts and I don't want to depend on UNIX.

~~~
palaiologos
I've made a mistake while creating thread and I think I'm no longer able to
edit the title.

I'm from Poland, so such name is natural for us.

Euboea depends on POSIX and X86 highly, therefore I thought about Euboea like
about another text processing / computation language to be used in shell
scripts making programming easier.

> isn't interfacing with C and "no access to files" contradictory

As UNIX philosophy states, CLI tools may use stdin and stdout (among other
streams), to read data, process it, and output it back. Also, this model is
ensuring a) safety, b) simplicity.

Interfacing with C is actually not that advanced right now and all you can do
is to specify C function name by modifying libE.c, it's exported name usable
from Euboea and amount of parameters (-1 if vararg)

~~~
zeroname
> I'm from Poland, so such name is natural for us.

I'm aware, but your global audience is generally not. That's why I advise on
name changes. You own your name, you can do anything to it. There are people
from India with names so long that a byte overflows and there are people from
Africa with exclamation marks (click sounds) in their names. I'm sure there's
a great cultural heritage behind these names, but they're just impractical.

If I don't know how to pronounce a name, I am going to avoid you just _a
little bit_ more. I'm less likely to remember your name. I'll have to look it
up to spell it right. Should I get into the unfortunate situation of having to
pronounce it in public, I'm likely to embarrass myself.

In short, your name is a risk to me. A small risk, all things considered, but
a risk nonetheless. It's causing me extra work. A small amount of extra work,
but extra work nonetheless.

The thing is, it's not just me, it's _almost everyone_ , even those who
wouldn't dare admit it or those who are unconscious of it. All those tiny
little negatives add up to a significant negative in your life. Studies show
that "foreign-sounding" names lead to less job interviews, for instance, but
it doesn't end there.

Of course, if you hate success (as is common in Poland) you might not be
bothered by all of that. Sour grapes, but fair.

> Euboea depends on POSIX and X86 highly, therefore I thought about Euboea
> like about another text processing / computation language to be used in
> shell scripts making programming easier.

If that's the focus, your selling point should be something along these lines
of "a simple programming language to create UNIX tools", because that's really
what distinguishes it. I also think you can then give up on the whole "safety"
aspect, because UNIX fundamentally is unsafe and "no access to files" becomes
a limitation, not a feature.

~~~
lucozade
> That's why I advise on name changes

What astonishing presumption

> Of course, if you hate success (as is common in Poland)

Is the casual racism completely necessary? Couldn't you just stick to the
critique of the work rather than the person and his nationality?

~~~
zeroname
> What astonishing presumption

There's tons of evidence:

[https://www.newyorker.com/tech/annals-of-technology/why-
your...](https://www.newyorker.com/tech/annals-of-technology/why-your-name-
matters)

If it's "presumptious" of me to point that out, I don't care. Only ever
telling people what they want to hear is not helpful.

> Is the casual racism completely necessary?

Is the casual accusation of racism completely necessary?

It has nothing to do with race, more with history. Crab mentality is very
common in the former "eastern block".

> Couldn't you just stick to the critique of the work rather than the person
> and his nationality?

I'm not criticizing the person's nationality, that's not their choice. I'm
drawing the distinction between the individual and their nationality. You can
be a proud Pole, doing polish things, espousing polish ideals and mannerisms
above all else, whatever. You also can be an individual in global society who
happens to be from Poland.

~~~
lucozade
You don’t need to cite the prevalence of racist bigotry. Most people are
aware.

Practising it is fucking despicable.

~~~
zeroname
> You don’t need to cite the prevalence of racist bigotry. Most people are
> aware.

If you think discriminating based on difficult names is "racist bigotry",
okay. It doesn't change the facts. If you want free discrimination showered
upon you, keep your unpronouncable foreign name. If you want success, change
it. It is common practice for a reason.

> Practising it is fucking despicable.

You know what's despicable? Accusing people of "being racist" for just acting
like ordinary people happen to act. It's diminishing the impact of the word.
Ordinary people, including you, do have these biases. Consciously,
unconsciously, it doesn't matter.

I want people to do better for themselves, I can't change the world _for
them_. Neither can you by leaving these comments on HN.

~~~
lucozade
It’s common practice because there are a lot of racist bigots. That’s not a
particularly compelling reason.

You suggested to someone that they hide their heritage so you don’t think less
of them. You may consider that _ordinary_. But that’s common or garden racism.

And your inability to pronounce someone’s name is a failing in your education
or experience. Your failing, not theirs.

~~~
zeroname
> You suggested to someone that they hide their heritage so you don’t think
> less of them.

That's actually not true, that's your warped perception of what I'm saying.
Your brain happens to portray me as a caricature of everything that's wrong in
the world - a common bias you may not be conscious of.

Let's take my standpoint to the extreme. Let's say I know there's a bunch of
violent Nazis roaming the streets and I suggest not to wear a Star Of David
out there in public. Does that make _me_ a Nazi or an endorser of Nazism? If I
was the Nazi, wouldn't I rather want to _withhold_ that piece of information?

In any event, your name is not your heritage and your heritage is not you.

> And your inability to pronounce someone’s name is a failing in your
> education or experience. Your failing, not theirs.

That's actually a pretty arrogant thing to say. Let's say there's an Indian
restaurant chain that serves food worldwide. Are you going to say they'd be
denying their heritage, if they tuned down the spices in markets where people
generally can't stand hot food? Is it the failing of the people if they don't
return after eating just one meal that was too spicy? You know what, maybe it
is. That restaurant chain is still going out of business there.

Again, if you don't care about success, go all in with staying "true to your
heritage" if you like to. Keep your unpronouncable name and insist on it being
pronounced correctly.

