My advice to you is that you need to answer the question, "What <i>is</i> Orange?"<p>Your page right now focuses much more strongly on answering what it <i>isn't</i>. It isn't klunky, like C++. It is neither typed nor untyped. It doesn't "limit user's expressivity". It doesn't require you to declare variables, except that's <i>also</i> optional.<p>It almost comes across like it's nervous that some people might disagree with some design decisions. Let me put your mind at ease: If you are serious, and if you attain any success, I solemnly promise you the Internet will string up your language, dismember it publicly, douse all the pieces in gasoline, light them on fire, and dance around the flames. Why is that actually something that ought to put your mind at ease? Well, it's inevitable <i>anyhow</i>, so you might as well go ahead, have some fun, and make some decisions about what Orange is going to positively be. If you get to that point, remember you'll be the one in possession of a language that's gotten enough attention for that to be worthwhile, and they'll just be hecklers.
That looks interesting. However, i'm not really into language-design and compilers and the first commit is from April while the project has only two contributors. Apart from the absence of a standard-library, I couldn't find anything like "attention, this is in beta". Don't get me wrong, I just would be surprised if this really was a stable language developed in under three months.<p>(Something I was wondering about is that it says "Contains orange standard library stuff" in <a href="https://github.com/orange-lang/orange/blob/master/lib/libor/README.txt" rel="nofollow">https://github.com/orange-lang/orange/blob/master/lib/libor/...</a> and "At the moment, Orange has no standard library" in <a href="https://github.com/orange-lang/orange/blob/master/README.md" rel="nofollow">https://github.com/orange-lang/orange/blob/master/README.md</a> at the same time.)<p>Edit: I definitely was too fast. <a href="https://github.com/orange-lang/orange/tree/master/lib/libor" rel="nofollow">https://github.com/orange-lang/orange/tree/master/lib/libor</a> doesn't contain any code.
Is it memory-safe? Is it garbage-collected?<p>Edit: Looks like it does extern calls to `malloc`, with no matching frees. Supporting proper dynamic resource management is <i>fundamental</i> for a system language, as the whole point of an operating system is to manage resources for user programs.
Have you seen Nim and/or Crystal? Both of these languages seem to incorporate a lot of the ideas you are planning for orange, hence I must ask: what makes Orange different?
It'd be nice to update "Why" with reasons why other recent developments in systems programming languages fail to address what you think Orange is addressing.
You are including etc/cereal/include to your -I
but this does not exist, and I see no probe for cereal.<p><pre><code> tools/orange/main.cc:12:10: fatal error:
'cereal/types/unordered_map.hpp' file not found
#include <cereal/types/unordered_map.hpp>
</code></pre>
This one: <a href="https://github.com/USCiLab/cereal" rel="nofollow">https://github.com/USCiLab/cereal</a> ?
Please add it as submodule to etc.<p>The apple standard cc=clang-602.0.53 is not good enough.
error: no matching constructor for initialization of 'llvm::EngineBuilder'
EngineBuilder builder((std::unique_ptr<Module>(m_module)))<p>macports clang-mp-3.{3,5,6,7} even fail before with this error: no matching constructor for initialization of 'llvm::raw_fd_ostream'
raw_fd_ostream raw(loutput.c_str(), ec, llvm::sys::fs::OpenFlags::F_RW)<p>I only have 5 clang's on my mac.
I suggest this reading to each author before making a new language: <a href="http://www.scriptol.com/programming/languages-with-no-programmer.php" rel="nofollow">http://www.scriptol.com/programming/languages-with-no-progra...</a>
<p><pre><code> for (i = 0; i < 10; i++)
</code></pre>
Why do so many language copy C's error prone while masquerading as a for loop? This construct is responsible for quite a bit of errors (off by 1).
Is the simple--easy-to-learn--without-the-mistakes-of-C systems language becoming a hype now?<p>Not to be a downer, but that's what it seems like since Rust 1.0.
What are the pros of leaving out the type identifier when declaring a generic type? I understand that it's viable to not provide some "Type" identifier to denote a generic type, but I feel like it's better to have it for clarity. What happens when you have a function that accepts two kinds of generic types? This inconsistency doesn't seem worth it to me
Is the syntax python-inspired?<p>It looks a lot more clean to read than Nim, so this will be interesting.<p>I couldn't find any more examples besides the simple "hello world", so it would be nice to see a few more in-depth examples.