marcuse1w

@marcuse1w@functional.cafe

This profile is from a federated server and may be incomplete. Browse more on the original instance.

macleod, to haskell

Various thoughts on too many programming languages, for no discernible reason.

I have been interested in Go since it's very initial release, but their dependence on Google is uncharming to say the least. I still haven't made up my mind on its GC, but its definitely better than most.

I used to do some ML work in .NET and if it wasn't dependent on Microsoft it would be a heavy contender for a great language, but it has far too many Microsoft-isms to ever really go much farther.

Rust is great, I enjoy beating my head against a brick wall battling with the compiler, and their safety is great, but overly complicated and feature-creep is a real problem on that entire project. I do a lot of work these days in Rust, for better (mostly) or worse (mostly-ish).

C is my bread-and-butter, as is Javascript for quick prototyping.

Elixir is great, but Erlang is unwieldy, the community is growing, but not fast enough - and I just can't get my mind to enjoy the syntax no matter how nice it is.

D is a lot of fun, but their GC can be slow at times, and the community is very small and packages are often broken and unmaintained.

Python was my first true love, but I really can't stand the whitespace, again love the language, hate the syntax.

Zig is fun, but just that. Fast, nimble, but early days, a bit confusing, could replace my insistence on C for core projects, but again, early days. I love to use them as a compiler for C, much faster than the defaults on any of the others.

Odin is one I love to keep an eye on, I wish I could get behind using it for more things. When I first took notice ~4 years ago the documentation was a bit scattered, but it looks much better now. The developer behind it is incredibly cool, could be seen as the next Dennis Ritchie imo. Runes are dope. The syntax is by far my favourite.

Julia, I love Julia, but performance last I tested was a bit of a miss, and by miss, it required a decent chunk of compute for basics, but when you gave it the system to throttle, it would be insanely productive to write in. Javascript is something that I prototype even syscalls in, but Julia is just the same but much better and more productive (and less strange) in many regards. I am really hoping this takes over in the ML/Data world and just eats Python alive. I've heard there has been major work in the perf department, but I haven't had reason to try it out lately.

Ada, memory safety before Rust! Great language, especially for critical applications, decades of baggage (or wisdom), slow moving language, insanely stable, compilers are all mostly proprietary, job market is small, but well paid, great for robotics, defense, and space industry types, but the syntax is... rough. Someone should make a meta-language on top of Ada like Zig/Nim/Odin do for C, or Elixir does for Erlang.

The others: Carbon, haven't tried; Nim, prefer when they were "Nimrod" (cue Green Day), decent but not my style; Crystal, seems cool, but not for me; Scala, great FP language, but JVM; Haskell, I'm not a mathematician, but my mathematician friends love it. I see why, but not my thing as much as I love functional languages. I'll try it again, eventually. I did not learn Haskell a great good.

I tend to jump from language to language, trying everything out, it's fun and a total timesuck.

[ # ] :: #haskell #c #d #elixir #julia #nim #odin #odinlang #programming #code #rust #ada #dotnet #zig #python #txt

marcuse1w,

@macleod

Very nice write up. I am doing the same just for fun really.

I really like Ada, I used Modula2 and Modula3 as well, played a bit with Oberon, but Ada is surprisingly powerful and jet it all feels manageable, especially as you can leave features out. If you don’t like OO in Ada for example then don’t use it and it’s still a quite elegant and useful language. If you do low level programming the bit fiddling and register management feels like a joy and not like a loaded gun that randomly shoots at you. The relative safety helps and with Ada-SPARK you can even get proofs.
But… at least for me on an aarch64 Laptop I sometimes struggle to get the compiler on the system I want, that makes it less fun. I guess if I would use a PC things would be easier.

Not really a fan of C, I don’t think you can love C and Ada ;-)
But there are a lot of aspiring C alternatives.

Zig seems to be on the up but it’s not a big jump from C except for compile time execution.
I really like Odin, it looks kind of like C but feels easy and comfortable, especially if you like graphics. You focus more on your algorithm than on your language.

Then there more like C2, C3 (not very original names), D, V, Jai, Scopes, Carbon. They all have their own benefits but the communities are quite small.

I always want to learn Rust properly but always get distracted. The functionality looks great though.

I also wanted to learn a Lisp and finally tried Janet. A very pleasant small language. Compiles to a single binary. The parentheses are not as distracting as I thought. But I also did not quite get why some people get so excited about Lisps.

#c

marcuse1w,

@macleod

Functional programming wise I like Erlang. It’s simple, to the point, surprisingly powerful with a few charming quirks. Elixir is fine but I like Erlang better. I am interested in the new set-theory type system for Elixir though. The initial presentation looks really good.

I haven’t really given Haskell a chance, but when I dabbled with Elm I liked the approach. Elm is more simple of course. What I don’t like so much about Haskell is that there are several compiler extensions and even if you decide for yourself not to use them to keep it simple they might sneak into your projects via packages. And then you still have to learn the underlying concepts.

Compared to Haskell I prefer Ocaml, although that has also some charming quirks. In total it feels to me that in functional programming the language communities there are a lot of discussions about concepts and less about actual coding. I was a fan, but I gravitate back to procedural. Especially as a lot of procedural languages have some functionality now that used to be associated with functional programming.

Scala looks great, but I haven’t got around it.

A few interesting variances of Ada are Austral, which provides a linear type model that gives interesting guarantees for memory but also file management (and more). A really interesting approach. Austral is also quite new and still growing.
Then there is HAC which currently covers a subset of Ada and has a compact compilation suitable to embed into other programs.

Last but not least Nim. A very pleasant language. Versatile, fast and you can choose to use it with or without garbage collector. This is in my view a great option as there are many problems that benefit from a garbage collector but sometimes you need to know where your bits and bytes are exactly.

marcuse1w, to programming

Happy Ada Lovelace day.

She was the first computer programmer and the first person to understand that computer could also be used for something like music.

https://en.wikipedia.org/wiki/Ada_Lovelace

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • provamag3
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • JUstTest
  • All magazines