Live data from Hacker News

Felix - a fast scripting language

felix-lang.org

71–80 of 88 posts

Re: Felix - a fast scripting language

#71
post #52

Earlier quoted context omitted.

Interesting. If that's the way it is intended I missed it completely; I'd definitely be much more receptive to that line of meaning.

Python and Lua are both compiled languages, almost all languages are compiled these days. They compile to bytecode rather than native machine code, then run an interpreter which may well do on-the-fly compilation to machine code (JIT). Bytecode target makes the compiler platform independent. Felix does the same, except the "bytecode" is ISO Standard C++.

I'm not sure what any of this has to do with the verbiage about "scripting languages," but I'd be much more interested in reading about Felix if it didn't involve so many attempts to redefine colloquially-understood terms in non-standard ways.

(Yes, most languages compile to bytecode, but people generally use the colloquial term "compiled language" to refer to a language whose implementations usually compile to machine code. JIT compilers for dynamic languages are quite a different thing because they generally only compile type-specialized fragments of code; such machine code has guards that fall back to the general-purpose interpreter if the expected preconditions do not hold.)

Re: Felix - a fast scripting language

#72
post #52

Earlier quoted context omitted.

Python and Lua are both compiled languages, almost all languages are compiled these days. They compile to bytecode rather than native machine code, then run an interpreter which may well do on-the-fly compilation to machine code (JIT). Bytecode target makes the compiler platform independent. Felix does the same, except the "bytecode" is ISO Standard C++.

Python and Lua are both compiled languages, almost all languages are compiled these days. For some strange reason, certain misconceptions in CS/programming have half-lives measured in several decades, such as this annoying distinction between interpreters/VMs/compiled languages. We're at least 20 years out from interpreters being meaningfully distinct from VMs and compiled languages.

> We're at least 20 years out from interpreters being meaningfully distinct from VMs and compiled languages.

Compiled languages generally don't support eval. That's a pretty meaningful difference.

Re: Felix - a fast scripting language

#73
post #59

The web page rubs me the wrong way. How can you claim to be the fastest anything without a single benchmark? How can you claim to be a "scripting language" when you're statically-typed and compile to C++? What does "scripting language" even mean then? How can you say things like "it will be a bit slow the first time but subsequent runs will load much faster than any VM." Any VM? Are you really "much faster" than: $ t…

Macbook Pro: ~/felix>flx --test=build/release --static mt ~/felix>time ./mt real 0m0.004s user 0m0.001s sys 0m0.002s ~/felix>time ../lua-5.2.1/src/lua mt.lua real 0m0.006s user 0m0.001s sys 0m0.003s

[deleted]

Re: Felix - a fast scripting language

#74
post #59

The web page rubs me the wrong way. How can you claim to be the fastest anything without a single benchmark? How can you claim to be a "scripting language" when you're statically-typed and compile to C++? What does "scripting language" even mean then? How can you say things like "it will be a bit slow the first time but subsequent runs will load much faster than any VM." Any VM? Are you really "much faster" than: $ t…

Macbook Pro: ~/felix>flx --test=build/release --static mt ~/felix>time ./mt real 0m0.004s user 0m0.001s sys 0m0.002s ~/felix>time ../lua-5.2.1/src/lua mt.lua real 0m0.006s user 0m0.001s sys 0m0.003s

What are the LuaJIT timings on the same machine also is this the proof that it is "The fastest scripting language on Earth."? Please provide your profiling results with the languages tested, the files ran and the timings.

Re: Felix - a fast scripting language

#75
post #51
post #21

Why do language designers continue to insist on semi-colon terminated lines?

Two choices dictate a terminator: (a) free form 1D language like C vs 2D language like Python or Haskell, and, (b) support for assignment statements x = y and the like as in C vs all statements starting with a keyword as in say ATS. I personally do not like the semi-colons either.

Doesn't even need to be 2D Layout. See, for instance, ruby.

Re: Felix - a fast scripting language

#76
post #46

Earlier quoted context omitted.

So Common Lisp and Fortran are scripting languages? This test seems to be more like "Is the language heavily influenced by C or C++?"

Then add it's easy to create one-liners.

I will add this as a great qualifier, though i fear the day where someone says that APL is a scripting language ;)

Re: Felix - a fast scripting language

#77

Earlier quoted context omitted.

Then add it's easy to create one-liners.

I will add this as a great qualifier, though i fear the day where someone says that APL is a scripting language ;)

I'm not familiar with APL, but after seeing the examples from Wikipedia [1], I think I know what you mean:

    # generates a typical set of Pick 6 lottery numbers
    x[⍋x←6?40]
    # finds all prime numbers from 1 to R
    (~R∊R∘.×R)/R←1↓⍳R
    # game of life
    life←{↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵}
[1] http://en.wikipedia.org/wiki/APL_%28programming_language%29#...

Re: Felix - a fast scripting language

#78

Earlier quoted context omitted.

Python and Lua are both compiled languages, almost all languages are compiled these days. For some strange reason, certain misconceptions in CS/programming have half-lives measured in several decades, such as this annoying distinction between interpreters/VMs/compiled languages. We're at least 20 years out from interpreters being meaningfully distinct from VMs and compiled languages.

> We're at least 20 years out from interpreters being meaningfully distinct from VMs and compiled languages. Compiled languages generally don't support eval. That's a pretty meaningful difference.

> Compiled languages generally don't support eval.

Python is compiled to bytecode. It supports eval. So does Smalltalk. Lua would fall into this category as well, and a whole bunch of others. I don't think "compiled" means what you think it means anymore, which is my whole point.

Re: Felix - a fast scripting language

#79
post #69
post #20

Which high level optimisations are we talking about?

As a whole program analyser, Felix does a lot of optimisations. The most important one is inlining. Felix pretty much inlines everything :) When a function is inlined, there are two things you can do with the arguments: assign them to variables representing the parameters (eager evaluation) or just replace the parameters in the code with the arguments (lazy evaluation). Substitution doesn't just apply to functions: a…

These are very good optimisations indeed. Inlining adds a lot more speed than people think. I don't understand why people want closures in their languages. You basically want a function that cheats her own scope... I don't get where the big deal is.

Re: Felix - a fast scripting language

#80
post #42

The web page rubs me the wrong way. How can you claim to be the fastest anything without a single benchmark? How can you claim to be a "scripting language" when you're statically-typed and compile to C++? What does "scripting language" even mean then? How can you say things like "it will be a bit slow the first time but subsequent runs will load much faster than any VM." Any VM? Are you really "much faster" than: $ t…

are you referring to the "The fastest scripting language on Earth" tagline? i saw that as a way to say "look, this is a compiled language that you can use as a scripting language" with a touch of whimsical humour.

This was pretty much exactly my reading.
Post reply on HN