off-topic

https://github.com/clojurians/community-development/blob/master/Code-of-Conduct.md Clojurians Slack Community Code of Conduct. Searchable message archives are at https://clojurians-log.clojureverse.org/
Timur Latypoff 2021-01-09T21:44:59.059600Z

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)

phronmophobic 2021-01-10T08:06:16.080500Z

just thought of two more, TLA+ and http://boom.cs.berkeley.edu/ . not general purpose, but they have interesting ideas behind them.

clyfe 2021-01-10T08:10:25.080800Z

https://www.youtube.com/watch?v=R2Aa4PivG0g is related to boom.

gklijs 2021-01-10T11:04:34.081300Z

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.

Timur Latypoff 2021-01-10T12:45:11.084400Z

@claudius.nicolae @smith.adriane wow, digging into BOOM-related things, eve looks crazy interesting: http://witheve.com

Timur Latypoff 2021-01-10T12:45:53.085600Z

It’s like “what if everything is a Datomic database and we just write reactive queries on everything”

borkdude 2021-01-10T12:48:30.085900Z

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

👍 1
borkdude 2021-01-10T12:51:16.086300Z

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.

Timur Latypoff 2021-01-10T12:52:23.086500Z

Well, I guess if the language does the job and is open, really performant implementations will follow inevitably, like V8 for JS.

Timur Latypoff 2021-01-10T13:02:10.086700Z

I guess the project has lost its steam 😞

phronmophobic 2021-01-10T17:40:50.090300Z

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

👍 1
phronmophobic 2021-01-10T17:44:36.090600Z

for languages trying to make programming more accessible, I think there's some interesting ideas in https://noflojs.org/ and labview

Ben Sless 2021-01-12T10:33:40.121200Z

Curious about Jai, whenever the designer decides to open source it

phronmophobic 2021-01-09T21:48:03.059700Z

not new (it's become more popular recently) and it's not turing complete, but datalog is interesting

borkdude 2021-01-09T21:58:23.060200Z

@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)

borkdude 2021-01-09T21:58:38.060400Z

I have not tried it though

2021-01-09T22:02:15.064200Z

zig is a simpler c (more internally consistent, no preprocessor, instead you use the full language at compile time)

Timur Latypoff 2021-01-09T22:02:40.064700Z

@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)

2021-01-09T22:03:20.065Z

it does have built in polymorphism, a function can take a type as its first argument

borkdude 2021-01-09T22:03:22.065200Z

I mean, in the same domain of low level programming as Rust

borkdude 2021-01-09T22:03:33.065400Z

not programming in general

2021-01-09T22:03:51.065600Z

I've been using zig a lot lately, zig is to c as rust is to c++ in many ways

borkdude 2021-01-09T22:04:21.065800Z

I am doing Rust right now, but I feel like I'm jumping through lots of hoops to get stuff done

borkdude 2021-01-09T22:04:33.066Z

Curious about Zig

2021-01-09T22:05:14.066200Z

the language is still pre-1.0, but I think the final design is going in good directions

2021-01-09T22:06:11.066400Z

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

2021-01-09T22:06:31.066600Z

but most people using zig are not looking to use gc

borkdude 2021-01-09T22:07:52.066800Z

Ok, but as for high level programming languages that compete with Clojure in "simplicity", not sure if I know any good competitors

dpsutton 2021-01-09T22:10:20.067100Z

to the original question, i think Typescript could fit that bill. a new language, innovative. some dimensions it could be simpler, some not

2021-01-09T22:10:30.067300Z

the old programming languages ml and scheme are very simple (and big influences on clojure)

2021-01-09T22:10:52.067500Z

definitely simpler than clojure, but less usable in mainstream projects

borkdude 2021-01-09T22:21:04.068800Z

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.

borkdude 2021-01-09T22:21:52.070200Z

It was quite easy to get it to behave like a dynamically typed language

borkdude 2021-01-09T22:22:05.070700Z

E.g. I serialized results from sqlite to JSON dynamically without writing a ton of typed boilerplate

Timur Latypoff 2021-01-09T22:22:35.071500Z

@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.

2021-01-09T22:23:37.071700Z

I'm thinking of things like ArrayList where it has a constructur taking a type as an argument, returning the concrete type

2021-01-09T22:24:03.071900Z

that's a form of polymorphism (but not runtime polymorphism unless you make a vtable, it's true)

2021-01-09T22:26:13.072100Z

but eg. ml also lacks straightforward runtime polymorphism, and I consider it a cromulent high level language

emccue 2021-01-09T22:46:22.072300Z

Not "new new", but elm

emccue 2021-01-09T22:46:54.072500Z

far fewer constructs and explicitly targeted at one specific kind of application

2021-01-09T23:07:47.076300Z

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.