Earlier quoted context omitted.
Not trying to take away anything, but just from the top of my head: Zig, Rust, Odin, Beef lang and then don’t forget about those that even precede C like Fortran or Pascal.
I think any discussion of small, performant, fairly memory-safe languages could include Forth or Factor. Speaking of the Pascal family, we could also stand for someone to put time into a more modern Oberon or a standard subset of Ada.
The Hare programming language
311–320 of 323 posts
Re: The Hare programming language
#312I see that Hare exposes itself via the hare module in stdlib. Is there any plan for metaprogramming/macro (not preprocessor) in Hare?
> Is there any plan for metaprogramming/macro (not preprocessor) in Hare? We don't plan to add anything like that. Hare strives to be simple and straightforward. Metaprogramming would not fit it well. Closest thing in this direction that we tried was reflection, but that didn't turn out to play along with the rest of the language either, so it was removed.
Re: The Hare programming language
#313Earlier quoted context omitted.
I’m sure it is not the answer you want to hear, but partial use of GCs seems to be exactly that. Modern GCs have insanely good throughput OR latency. Quite a few languages have value types now, with that you can restrict your usage to stack allocations for the critical hot loops, while low-latency GCs promise less pauses than the OS itself, which should be plenty good for even the most demanding games.
Hey, I'm open to any answer that helps me write better programs. :) Which languages do you have experience working with in high-performance situations? I, for one, had high hopes for using Go for video game development, but it turns out that even in highly-tuned Go code with the latest GC optimisations, there are still significant GC pauses that cannot be overcome [0]. However, perhaps you're referring to other types…
The main feature is its ability to safely share or move data around between actors in a way that is data-race and deadlock free. Pony doesn't use locks anyways :-)
A high level as to how it achieves this:
i. All variables have a "reference capability" - which is a description of what you can and cannot do with the variable alias (pointer) you have.
ii. The references to the data (think pointer) are passed in messages.
iii. As references are made and removed, actors send messages to the originating actor updating the count of references. When the count reaches zero, that data can be GC'd.
It's nice, because unlike some other language runtimes, it doesn't have to stop the world to work out what can and can't be GC'd. It's all done on-the-fly as it were.
Re: The Hare programming language
#314Earlier quoted context omitted.
I think you are reacting too strongly. Really, what's the problem?
Thank you for the sanity check. It is difficult for me to articulate really, but I guess I (perhaps in error?) have deferred battles over say proprietary drivers away from programming language licensing (just so that there is no confusion here, I am fairly hard line in terms of the usage of proprietary software for my own personal use; only falling marginally short of the FSF party line). Perhaps seeing this has me f…
If free software begets other free software simply through its replication, then I think the juice is worth the squeeze
Re: The Hare programming language
#315Happy to see “secretlang” out in the open! I have been following development from afar and really like the idea of a “simple” take on a language, but with a lot of wisdom and affordances added since the state of the world back in 1972. In short, Hare seems to be a language that I really should like and I want to take it for a spin. What I find a bit confusing though is the licensing. I belong to the “BSD school”, but…
Re: The Hare programming language
#316Re: The Hare programming language
#317Earlier quoted context omitted.
For those not familiar with the concept: this is how moral backbone looks like.
This is not "moral backbone" in the slightest - the Hare developers are not risking anything to take this position, unlike others who may lose their jobs, be imprisoned, or even lose their lives for taking a moral stance.
Small steps are steps never the less.
Re: The Hare programming language
#318The first thing I look for in something that claims to be a systems language is whether it provides anything that helps me out. First and foremost, does it provide any primitive that can be used for automation? C++ brought destructors, Rust did a Drop trait. What do you have? Second, does it provide any way to operate on types? C++ got templates, Rust offers generics. What do you have? Third, does it provide useful c…
> We have learned things since then. Have you? We have learned to read the documentation before we judge things.
Re: The Hare programming language
#319Earlier quoted context omitted.
It definitely does. I think a lot of people think it doesn't because a) most people who know both have far more experience with C++ and are yet to experience its really complicated bits yet, and b) C++ has an actual specification so you can read about all its complexity. Rust may not have SFINAE but C++ doesn't have for , Phantom data or Pin.
> Rust may not have SFINAE but C++ doesn't have for , Phantom data or Pin. I'll grant you PhantomData, but I'd argue with the other two. C++ does have lifetimes and pinning semantics, they're just implicit and (largely) taken for granted. That is, until you cause memory unsafety with either. IMO, the overall pattern between C++ and Rust is that "advanced" use requires many of the same skills between the two, but that…
C++ does have pinning, but it is much rarer than in Rust because of user-defined move constructors.
Re: The Hare programming language
#320This looks quite nice, actually. The negativity in the comments seems a bit heavy. I really like the idea of a language that is as (or almost as) simple as C but with many of the footguns removed.
Another day another group of people criticising a language they’ve never tried.
If you paint a house grab a paint brush. If you need to hang a picture a hammer and a nail.
Writing a program? Pick the best language for the job.