Are there any new programming languages that caught your attention for being innovative in making programming simpler? Clojure was a significant mental shift for me personally, and really brought me back the joy of programming. But Clojure is mostly done, are there any new ideas lately? (Plz no Rust, that’s not simpler by any measure, in my opinion. Better performance and correctness — maybe)
just thought of two more, TLA+ and http://boom.cs.berkeley.edu/ . not general purpose, but they have interesting ideas behind them.
https://www.youtube.com/watch?v=R2Aa4PivG0g is related to boom.
I did not see pony mentioned before in this thread. It takes 'safety' some steps further than rust does, https://www.ponylang.io/. Might not be easy initially, but if you want a correct highly concurrent application it might make it a lot easier. With Clojure this is also already a lot better than Java.
@claudius.nicolae @smith.adriane wow, digging into BOOM-related things, eve looks crazy interesting: http://witheve.com
It’s like “what if everything is a Datomic database and we just write reactive queries on everything”
Eve has been funded on KickStarter in the early 201x, the author, Chris Granger, was quite active in the Clojure community before that. In 2015 or so I spoke in person with him on a conference and he was then still implementing Eve in Rust (for performance). I'm surprised it's now all in typescript
Aha: > In the pursuit of our goal to make programming more accessible, we’ve built over 30 versions of Eve since we started about two years ago.
Well, I guess if the language does the job and is open, really performant implementations will follow inevitably, like V8 for JS.
I guess the project has lost its steam 😞
before eve, there was light table. he’s still trying to make programming more accessible, https://twitter.com/ibdknox. if you find that interesting, I would also recommend bret victor if you haven’t seen his talks, http://worrydream.com
for languages trying to make programming more accessible, I think there's some interesting ideas in https://noflojs.org/ and labview
Curious about Jai, whenever the designer decides to open source it
not new (it's become more popular recently) and it's not turing complete, but datalog is interesting
@timur058 As an alternative to Rust, I've heard that Zig is the "simple" equivalent (where Go = easy, garbage collected and Rust is performant, but quite complex)
I have not tried it though
zig is a simpler c (more internally consistent, no preprocessor, instead you use the full language at compile time)
@borkdude from what I’ve seen, Zig is very low-level (does not even have any built-in or “official” way to do polymorphism). So I agree that the language is simple, but it hardly makes programming simpler, in my opinion (like Clojure’s fearless concurrency, persistent data structures, package management, plain data philosophy did)
it does have built in polymorphism, a function can take a type as its first argument
I mean, in the same domain of low level programming as Rust
not programming in general
I've been using zig a lot lately, zig is to c as rust is to c++ in many ways
I am doing Rust right now, but I feel like I'm jumping through lots of hoops to get stuff done
Curious about Zig
the language is still pre-1.0, but I think the final design is going in good directions
while there's no gc out of the box, ArrayList, HashMap, etc. are polymorphic and take an "allocator" as an argument, that allocator could be a gc
but most people using zig are not looking to use gc
Ok, but as for high level programming languages that compete with Clojure in "simplicity", not sure if I know any good competitors
to the original question, i think Typescript could fit that bill. a new language, innovative. some dimensions it could be simpler, some not
the old programming languages ml and scheme are very simple (and big influences on clojure)
definitely simpler than clojure, but less usable in mainstream projects
I tried some golang during the Christmas break. As a language it's quite limited, but I got something working relatively more quickly than say Rust. It may become a guilty pleasure. For years I've ignored it because it's kind of an anti-FP language.
It was quite easy to get it to behave like a dynamically typed language
E.g. I serialized results from sqlite to JSON dynamically without writing a ton of typed boilerplate
@noisesmith > it does have built in polymorphism, a function can take a type as its first argument I might be mistaken, but that does not work like run-time polymorphism (same way C++ virtual functions or Java interfaces work), does it? To do polymorphism, your types have to contain the “hand-coded” vtable — at least it’s what I understood from skimming.
I'm thinking of things like ArrayList where it has a constructur taking a type as an argument, returning the concrete type
that's a form of polymorphism (but not runtime polymorphism unless you make a vtable, it's true)
but eg. ml also lacks straightforward runtime polymorphism, and I consider it a cromulent high level language
Not "new new", but elm
far fewer constructs and explicitly targeted at one specific kind of application
I was developing in Elm for a few years and there are many ways in which it’s simple, but also many of its “simple” features are more “easy” in the simple vs easy sense. It uses a deeply coupled web framework, for instance, that uses an FFI that’s only available to the compiler authors. This framework is well-designed, but highly coupled.