On 24/02/2019 16:16, Mr Flibble wrote:
> On 24/02/2019 15:11, Alf P. Steinbach wrote:
>> On 24.02.2019 12:20, Mr Flibble wrote:
>>> On 24/02/2019 04:47, Cholo Lennon wrote:
>>>> On 2/24/19 12:16 AM, Mr Flibble wrote:
>>>>> Hi!
>>>>>
>>>>> Work on neos my universal compiler that can compile ANY programming
>>>>> language is progressing. Initial language implementations will be
>>>>> Ada, JavaScript, Python, Lua and Forth then maybe C.
>>>>>
>>>>
>>>> It sounds interesting. Could you describe your compiler? Is
>>>> something similar, for example, to clang/LLVM? What
>>>> architecture/platform are you going to support?
>>>
>>> The compiler is language agnostic (i.e. contains no C++ code specific
>>> to any one programming language). A language schema file that
>>> describes the syntax and semantics of the language is an input to the
>>> compiler; the format of the schema file is Relaxed JSON so is very
>>> easy to write.
>>>
>>> The target of the compiler is my custom bytecode VM which will have a
>>> JIT.
>>
>> I detect an extreme /internal feature/ creep here, which may stand in
>> the way of the community ever getting a finished NeoGFX (whatever).
>
> There is no feature creep going on: it has always been the intention
> that neoGFX will have a scripting engine but it makes sense to make the
> engine a separate project.
>
I must admit I assumed your first post here was a parody of Rick. The
suspicious part is that you did not include any pseudo-religious waffle.
But the "I am going to re-invent half the computing world solely
because it will be /my/ version" part was there, along with a bold claim
that you alone would handle a project that would normally be estimated
at hundreds of man-years of effort.
Including a scripting engine in neoGFX makes sense. Trying to make a
"universal compiler" that supports Ada, JavaScript, Python, Lua, Forth
and maybe C - that makes far, far less sense. The key questions you
have to ask yourself are:
1. Who is going to use it?
2. Why are they going to choose this system rather than another one?
3. Why are they going to choose this language rather than a different one?
4. This work will take time and effort - is it the most important use of
your time and effort? (Note - "it's fun" and "I want to do it" are
perfectly good reasons, if you are economically free to make the choice.)
I think it is reasonable to say right at the start that there are
precisely /zero/ Forth or Ada programmers who would be interesting it
using those languages along with neoGFX. And there will be precisely
/zero/ users of neoGFX who would be interested in learning Ada or Forth
in order to use them there.
People might well be interested in using Python with neoGFX (that would
interest me). But almost certainly what they will want is Python
bindings for neoGFX - they would want to write their software in Python
and use neoGFX for the gui, just as they do today with TKinter, wxPython
or QT for Python. I can't imagine that anyone would want to make, say,
a C++ application with neoGFX and attach Python as a scripting language.
Lua and JavaScript, on the other hand, are perfect candidates. Both are
very popular as scripting languages for this sort of thing - and in both
cases you can use existing projects to provide the interpreter, bytecode
and VM.
Surely it would make most sense to integrate an existing JavaScript or
Lua system into neoGFX, and then build out from there?
You may have grand overall plans, and thus this is not "feature creep" -
but it is still wise to take smaller steps at a time.