My advice to you is that you need to answer the question, "What is Orange?" Your page right now focuses much more strongly on answering what it isn't . 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 also optional. It almost comes across like it's nervous that some people might disagree with some design deci…
Yes. I'm concerned here that if a language makes something optional, some users will want to do it one way and some will do it another way, leading to inconsistent code bases. Some languages (Ruby, Haskell) prefer to let programmers decide how they do things, while others (Python) only provide one way of doing things. A lot of people disagree about which is better, but the decision to leave design open to users is it…
Orange: A simple systems programming language
21–30 of 42 posts
Re: Orange: A simple systems programming language
#22Have 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?
At the moment, I only have a vague idea of what I want Orange to be. The development has mostly been driven with what I thought at the time. It's been a bad approach, and I plan to fix it before I continue developing.
I'm going to work on figuring out Orange's specific goals and points where it differs from new languages like these. Saying I'll have this ready by the end of the weekend might be a stretch, but I will get back to you soon.
Re: Orange: A simple systems programming language
#23My advice to you is that you need to answer the question, "What is Orange?" Your page right now focuses much more strongly on answering what it isn't . 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 also optional. It almost comes across like it's nervous that some people might disagree with some design deci…
Given the design parameters that are stated ("systems", and C++-comparable), one can only assume that it's a typed language with aggressive (interprocedural) inference and monomorphized generics. Ensuring that the inference algorithm has good properties (performance, finding "most general types", matching programmer intent) should be a high priority. If it wants to avoid the clunkiness of C++, Orange should have conc…
Re: Orange: A simple systems programming language
#24Have 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?
I've seen both, but I haven't spent a lot of time looking at their documentation to start making comparisons. At the moment, I only have a vague idea of what I want Orange to be. The development has mostly been driven with what I thought at the time. It's been a bad approach, and I plan to fix it before I continue developing. I'm going to work on figuring out Orange's specific goals and points where it differs from n…
Re: Orange: A simple systems programming language
#25> variables can be defined implicitly Oops! :-)
Re: Orange: A simple systems programming language
#26> variables can be defined implicitly Oops! :-)
To expand a bit, implicit declaration works great for small programs. But it doesn't scale to larger source code bases, as misspelled names become hard to spot.
Re: Orange: A simple systems programming language
#27Is the simple--easy-to-learn--without-the-mistakes-of-C systems language becoming a hype now? Not to be a downer, but that's what it seems like since Rust 1.0.
- keeps 90% of C, - adds a string type - adds Go like "classes" (e.g. making more concrete the classic C idiom of passing a struct to the "object" to manipulate a la Glib) - adds a foreach - adds a builtin, multi-purpose map, vector and set type (e.g. based on Glib) for quick work - adds closures a la Obj-C / Apple's C - adds a small, but handy standard library (all C classic stuff + all Glib style stuff). - compiles to C-ABI compatible static binaries
Re: Orange: A simple systems programming language
#28Re: Orange: A simple systems programming language
#29Is the simple--easy-to-learn--without-the-mistakes-of-C systems language becoming a hype now? Not to be a downer, but that's what it seems like since Rust 1.0.
I'd personally would like to see a C ABI compatible language, that - keeps 90% of C, - adds a string type - adds Go like "classes" (e.g. making more concrete the classic C idiom of passing a struct to the "object" to manipulate a la Glib) - adds a foreach - adds a builtin, multi-purpose map, vector and set type (e.g. based on Glib) for quick work - adds closures a la Obj-C / Apple's C - adds a small, but handy standa…
Re: Orange: A simple systems programming language
#30Is the simple--easy-to-learn--without-the-mistakes-of-C systems language becoming a hype now? Not to be a downer, but that's what it seems like since Rust 1.0.
being easy to learn is not enough.
I think "scripters" like me definitely want a language that compiles to a binary (no VM) like C(so easy to deploy on a server or to distribute to third parties), with good a concurrency model(because concurrency is one of the most important thing in web apps today) but expressive yet statically typed. The language that can pull this off will be the next big thing, no question.
Go isn't(the next big thing). it could have been great, but its type system is just horrible once one digs a little bit. No co-variance or contra-variance so extremely limited polymorphism, devs having to do compiler's job with type assertions everywhere, a clunky error system(that could have at least benefited from some syntactic sugar to make it less verbose...). However Go concurrency model is excellent and set a standard