Fork me on GitHub
#off-topic
<
2021-01-09
>
Timur Latypoff21:01:59

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)

phronmophobic21:01:03

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

borkdude21:01:23

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

borkdude21:01:38

I have not tried it though

noisesmith22:01:15

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

Timur Latypoff22:01:40

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

noisesmith22:01:20

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

borkdude22:01:22

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

borkdude22:01:33

not programming in general

noisesmith22:01:51

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

borkdude22:01:21

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

borkdude22:01:33

Curious about Zig

noisesmith22:01:14

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

noisesmith22:01:11

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

noisesmith22:01:31

but most people using zig are not looking to use gc

borkdude22:01:52

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

dpsutton22:01:20

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

noisesmith22:01:30

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

noisesmith22:01:52

definitely simpler than clojure, but less usable in mainstream projects

borkdude22:01:04

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.

borkdude22:01:52

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

borkdude22:01:05

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

Timur Latypoff22:01:35

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

noisesmith22:01:37

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

noisesmith22:01:03

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

noisesmith22:01:13

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

emccue22:01:22

Not "new new", but elm

emccue22:01:54

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

Dan Abrams23:01:47

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.

Timur Latypoff07:01:52

I also follow shakti (aka k9), it’s not easy at all (and “unconventional”), but damn it’s fast and elegant. And ungooglable.

phronmophobic08:01:16

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

gklijs11:01:34

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 Latypoff12:01:11

@UCCHXTXV4 @U7RJTCH6J wow, digging into BOOM-related things, eve looks crazy interesting: http://witheve.com

Timur Latypoff12:01:53

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

borkdude12:01:30

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

👍 3
borkdude12:01:16

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 Latypoff12:01:23

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

Timur Latypoff13:01:10

I guess the project has lost its steam 😞

phronmophobic17:01:50

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

👍 3
phronmophobic17:01:36

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