9 ms·
Euboea – simple, fast, AOT-compiled programming language
- blunte 8y agoIs 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 8y agoIs the name coming from this place in Greece? https://goo.gl/maps/mvMYQwErCXk https://goo.gl/maps/mvMYQwErCXk
- palaiologos 8y agoYes.
- palaiologos 8y agoPlease check the wiki and examples directory :)
- blunte 8y agoI must be missing something...? Following the HN link, I arrive at the github project page for KrzysztofSzewczyk/Euboea. Scrolling down, I see in the readme text a section called Learning Euboea. That section tells me to go to the wiki (via a provided link). Following that link, I find a wiki with three pages. Those three pages have very little substance. Now I do notice the examples folder in the source, but even that just seems to have very limited snippets. I guess I was just expecting something different.
- palaiologos 8y agoWiki is not completed yet, but I'll be working on it.
- palaiologos 8y agohttps://github.com/KrzysztofSzewczyk/Euboea/wiki/Learning-Euboea https://github.com/KrzysztofSzewczyk/Euboea/wiki/Learning-Eu... Very simplistic crash course with ton of examples.
- swah 8y agoEvery time I see that sequence "Krzysz..." I think its something from SumatraPDF creator (Krzysztof Kowalczyk). Somehow I cannot internalize that its a regular name somewhere and I need to check the last name as well.. My neighbor (Brazil) name spells Cristofer which is really the same name.
- BubRoss 8y agoSeem 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 8y agoYes, 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).
- palaiologos 8y agoI have tested it myself and it's nearly as fast as luajit, but I didn't publish results. It doesn't mean you can't try it yourself!
- otabdeveloper2 8y agoWe 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.
- ausbah 8y agocan 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 8y agoAOT (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 8y agoBut why does the README say > Use JIT compilation then?
- mhd 8y agoIt's what people think of when they mean "compiled" in the first place: ahead of time, i.e. before you start the program, as opposed to JIT "just in time" where you compile (and re-compile) parts while other parts are already running.
- jzebedee 8y agoI've only heard AOT used when referring to languages that are normally JIT'ed. If this compiles straight to native, why call it AOT?
- thosakwe 8y agoI 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.
- palaiologos 8y agoJavaScript is often misusing this term, I'll benchmark Euboea against Rust or C++ soon.
- PezzaDev 8y agoIt frustrates me too. I'm always on the look out for languages that implement modern performance approaches into their design. I'd love to see a language that focuses on data orientated design, auto-vectorisation and possibly something like reference capabilities for concurrent programming. That language would truly be "blazingly fast".
- mrspeaker 8y ago"Blazingly" is the "literally" of software project speak. It means nothing.
- otabdeveloper2 8y ago> ...but I don't really understand what it implies It means "faster than the slowest language currently in common use, I guess".
- pulsarpietro 8y agoYAUL ?
- zeroname 8y agoQuick 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 8y agoI'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 8y ago> 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.
- rafaelvasco 8y agoNo win support planned ?
- palaiologos 8y agoCurrently no, but any help on it would be greatly appreciated!
- yatac42 8y agoWhy 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.
- rurban 8y agodasm is the right tool for this. call me convinced.