I was too busy to do AOC this month (that's adventofcode.com/).
So I'm thinking I'm going to do AOC 2024, *in 2025*, under the following rules:
- One challenge per week.
- I don't have to perform a challenge every week. The goal is to finish by the start of December.
- I have to do a different programming language every time.
- C, C++ and Objective-C are not eligible languages.
- If I make an honest attempt at a language and fail, I may retry in Go (but only Go) (I need to learn Go)
Questa voce รจ stata modificata (9 mesi fa)
Oblomov reshared this.
mcc
in reply to mcc • • •Bonus rules
- ASM may be used more than once as long as it targets different language families (x86_64, RISCV, ARM, WASM).
- JavaScript and TypeScript are the same language.
- Rust and Unsafe Rust may be potentially counted as two different languages.
- I may use Perl/Python to "preprocess" file inputs into arrays of numbers or strings (but no more complex parsing) in the target language
- If I make an honest attempt at a language and fail, I may retry in Go (but only Go) (I need to learn Go)
4censord bc100 arc ๐@eth0
in reply to mcc • • •mcc
in reply to mcc • • •This is my list of candidate languages. โญ means I feel comfortable and ready to go in the language. โ means a language I've used but am for whatever reason not confident I could do an AOC challenge in. Totally interested in suggestions for languages I am missing from my list, opinions as to whether Scheme and Racket are the same language, etc.
Goal here is personally/professionally enriching language tourism so I can be broad minded I expect. Maybe no intentional tarpit languages this time tho.
Joe Groff
in reply to mcc • • •mcc
in reply to Joe Groff • • •Fish Id Wardrobe
in reply to mcc • • •mcc
in reply to mcc • • •Wait HECK how'd I type ALL OF THAT, including the note about "no Objective-C" (reasoning: it's too much C) but forget Smalltalk/Self
Are there any languages I should know about that are like, "Smalltalk is to X" as Erlang is to Elixir or Scheme is to Racket? Or am I just describing Self here. What's a modern Smalltalk environment look like. Is Dave Ungar's magical Self IDE still publicly available. Was it ever public or did you just have to be in that one room in Mountain View in 2004 to see it
Raphael
in reply to mcc • • •Joe Groff
in reply to mcc • • •reshared this
Matte๊ฎ Italia e Oblomov reshared this.
Marcel Weiher
in reply to Joe Groff • • •@joe
Initially, the Objective part was viewed as a fairly generic integration layer to be added to many languages (see COM and SOM for similar ideas). I distinctly remember an article by Brad mentioning Objective-Assembler and others.
During the NeXT days, this was watered down a little to view Objective-C as a whole as a fairly dynamic target, but still focusing on the OO layer.
Even later, we saw the focus shifting to bridging C. Much harder, less fun.
reshared this
Oblomov reshared this.
mcc
in reply to Marcel Weiher • • •Helge Heร
in reply to Joe Groff • • •Objective Tcl
wiki.tcl-lang.orgJoe Groff
in reply to Helge Heร • • •reshared this
Oblomov reshared this.
Marcel Weiher
in reply to Joe Groff • • •@joe @helge Ups, should have answered here: AFAICR, exactly was that the original idea behind Objective-C.
C was just the first target that the Smalltalk OO layer was added to.
reshared this
Oblomov reshared this.
lambdageek
in reply to Joe Groff • • •Helge Heร
in reply to lambdageek • • •context.
mcc
in reply to Helge Heร • • •mcc reshared this.
fabiosantoscode
in reply to mcc • • •@helge @lambdageek @joe so true. The best use I've seen for prototypes is to create mappings that inherit from other mappings, like a linked list of maps you can push and pop from.
Though you can do it in a 40 line class these days
mcc
in reply to fabiosantoscode • • •fabiosantoscode
in reply to mcc • • •@helge @lambdageek @joe you could do it with a linked list of Map<> objects
But cursed objects don't need custom implementations for iteration, get/set, delete, because you just use the native object versions of this.
mcc
in reply to mcc • • •UPDATE:
Yesโฆ
Yesโฆ!!
YES!!!!
f.duriansoftware.com/@joe/1136โฆ
Joe Groff
2024-12-18 22:57:18
Oblomov reshared this.
DHeadshot's Alt
in reply to mcc • • •mcc
in reply to mcc • • •PS I'm doing one thread per week on this project, so if you came to just this thread, here's the link to the first week: mastodon.social/@mcc/113743302โฆ
mcc
2024-12-30 18:57:33
mcc
in reply to mcc • • •tef
in reply to mcc • • •mcc
in reply to tef • • •tef
in reply to mcc • • •tef
in reply to tef • • •mcc
in reply to tef • • •PedroMJ
in reply to mcc • • •Helge Heร
in reply to mcc • • •Avi Drissman :vm:
in reply to mcc • • •mcc
in reply to Avi Drissman :vm: • • •@avidrissman โฆ
โฆ
โฆ
โฆ
This post has reminded me to follow up on that lead I had for buying a used Newton
Tobias
in reply to mcc • • •- squeak.org/
- cuis.st/ (/cc @drgeo )
- pharo.org/
Cuis-Smalltalk
Copyright ยฉ 2009-2023 Juan Vuletich (Cuis-Smalltalk)mcc
in reply to Tobias • • •Tobias
in reply to mcc • • •I bought HiDPI to the Squeak VM
Tobias
in reply to mcc • • •It's available at selflanguage.org/
(caveat, I was/am involved there)
Self | Welcome
selflanguage.orgmcc
in reply to Tobias • • •Tobias
in reply to mcc • • •ใใฃใผใธใงใผใฐใฌใง
in reply to mcc • • •If I had to guess, a "modern" Smalltalk environment looks like what Dynamicland has been doing with Realtalk (Alan Kay is behind Dynamicland and was the individual who came up with Smalltalk on a dare basically). I got to visit Dynamicland in Oakland several years ago and it was friggin awesome!
6 minute overview video from August 2024: youtu.be/5Q9r-AEzRMA
I guess they're in process of setting up another space in Berkeley now (AFAIK, the Oakland lab more or less closed during the pandemic)? dynamicland.org
So yeah, you might have to be in that "one room" (Dynamicland in Oakland was several rooms) but, that's kind of the co-creating with people in spatial collaboration in essence, or as they term it: "communal computing."
Dynamicland
dynamicland.orgTim Panton
in reply to mcc • • •mcc
in reply to Tim Panton • • •Ted Mielczarek
in reply to mcc • • •Shauna GM
in reply to mcc • • •Cassandra is only carbon now
in reply to mcc • • •Definitely oddball ideas, but...
โข Shell languages (bash, fish, nu)
โข Theorem solvers (Lean)
โข F# as another functional language
โข Cranelift IR or CIL for others in the ASM bracket
โข T-SQL...?
mcc
in reply to Cassandra is only carbon now • • •Cassandra is only carbon now
in reply to mcc • • •Cassandra is only carbon now
in reply to Cassandra is only carbon now • • •Oblomov reshared this.
mcc
in reply to Cassandra is only carbon now • • •Oblomov reshared this.
Cassandra is only carbon now
in reply to mcc • • •Yeah, just as well, I suppose. It had a few interesting new ideas, but didn't seem like enough to justify a whole new language, perhaps?
One other idea: Scala, for typeclass goodness on the JVM.
Hugo "Dark Satanic" Mills
in reply to mcc • • •Were I not in a state of distinct mental dysfunction right now, I'd be doing AoC in Forth, so I'd definitely push that higher up the list. It's totally unlike anything else.
I'd also suggest Erlang to go on the list in the "Functional" section. (I'm reasonably capable in Erlang, and I like it).
For a challenge in the ASM section, go old-skool with Z80 or 6502 or 68000? (I've mostly done ARM2/3, and a bit of Z80; 68k looks... hard?)
And maybe a vector language like APL or J?
mcc
in reply to Hugo "Dark Satanic" Mills • • •mcc
in reply to mcc • • •Hugo "Dark Satanic" Mills
in reply to mcc • • •My understanding is that Prolog and APL are very different beasts (but I may have misunderstood APL).
Interestingly, Erlang is distinctly (and deliberately) Prolog-like in syntax; less so in operational semantics.
Oblomov reshared this.
Hugo "Dark Satanic" Mills
in reply to mcc • • •mcc
in reply to Hugo "Dark Satanic" Mills • • •Hugo "Dark Satanic" Mills
in reply to mcc • • •Daniel Darabos
in reply to mcc • • •mcc
in reply to Daniel Darabos • • •Cassandra is only carbon now
in reply to mcc • • •Lean Game Server
adam.math.hhu.deDaniel Darabos
in reply to mcc • • •@xgranade It's a normal functional programming language. You can do AoC in it easily. But it also serves as a basis for formal mathematics. It has a huge library of theorem proofs.
In other words, you can write a sorting algorithm in it and then in the same file prove its correctness, if you like!
Daniel Darabos
in reply to Daniel Darabos • • •mcc
in reply to Daniel Darabos • • •Luci Rose
in reply to mcc • • •mcc
in reply to Luci Rose • • •v
in reply to mcc • • •@luci I know the person who's making Gleam (oddly enough, via house parties hosted by my non-tech friends), which seems like an interesting stab within that Elixir space.
I can also say that Dart is pleasant to use & completely ordinary, I imagine you will have no trouble doing an AOC with it with no previous experience using the language.
mcc
in reply to v • • •aeva
in reply to mcc • • •mcc
in reply to aeva • • •aeva
in reply to aeva • • •mcc
in reply to aeva • • •@aeva Oh, somebody mentioned that yesterday, I should have written it down.
I tried to use Julia once and it was very interesting but I walked away because it turned out to be virtually impossible to embed and as you know that's critically important to me.
Oblomov reshared this.
Oblomov
in reply to mcc • • •mcc
in reply to Oblomov • • •Oblomov
in reply to mcc • • •@aeva
Yes-but-actually-no.gif
futhark-lang.org/
It's an ML-style purely functional language that transpiles to GPGPU languages (CUDA, OpenCL) so you can use the GPU without touching C-style stuff yourself.
Why Futhark?
futhark-lang.orgBrian Campbell
in reply to mcc • • •mcc
in reply to Brian Campbell • • •@unlambda Made a serious intensive push to learn Prolog in 2000. Very interesting, made me want to learn miniKanren. Really do not feel like a week is long enough to do an AOC challenge.
I will consider J/K.
I have been trying to learn to write in unlambda since the year 2001. Still no success.
Na
in reply to mcc • • •these are varying degrees of cursed:
- prolog
- clingo (or Answer Set Programming more generally)
- blender geometry nodes
- max/msp / puredata
- postscript
- J
- APL
- Uiua
mcc
in reply to Na • • •Oblomov reshared this.
Aslak Raanes
in reply to mcc • • •Tcl/Tk 9.0
www.tcl.tkcurtmack
in reply to mcc • • •Edward L Platt
in reply to mcc • • •bob
in reply to mcc • • •mcc
in reply to bob • • •J3RN
in reply to mcc • • •I should make a list like this. Since you know OCaml already, I think the big jump to Haskell is monadic IO. IIRC, PureScript is Haskell with row types.
EDIT: Hurr durr also PureScript is eager, which is a big diffrence.
TL;DR: You're well on your way! ๐
lambdageek
in reply to mcc • • •MATLAB or perhaps APL/J - one of the "everything is an array, actually" languages.
Or perhaps more interestingly Simulink or LabView.
Or Stateflow.
Excel.
GitHub Actions.
lambdageek
in reply to lambdageek • • •mcc
in reply to lambdageek • • •Dan Cassidy ๐ฆ
in reply to mcc • • •Michael JasonSmith
in reply to mcc • • •โข Modula-3 (the OO one)
โข Oberon
?
a kilo of saucepans (rakslice)
in reply to mcc • • •tobychev
in reply to mcc • • •If you put Fortran under paelo languages you ought to specify that it has to be the 77 variant (or earlier if you really want to taste the dust).
With that label even Fortran 90 would, in my opinion, be cheating.
Hilaire Fernandes
in reply to mcc • • •A language that doesnโt affect the way you think about programming, is not worth knowing.
โ Alan Perlis
Go #Smalltalk
cuis-smalltalk.github.io/TheCuโฆ
Top (The Cuis-Smalltalk Book)
cuis-smalltalk.github.ioJamie is a friendly nut
in reply to mcc • • •Fish Id Wardrobe
in reply to mcc • • •Eric Davies
in reply to mcc • • •Prolog or Picat could be fun *if* you had a problem for which they seemed suitable.
A big ol' SQL like PostgreSQL (or plpgsql if you want) could be enriching and is probably my top suggestion to add. I'm spending a lot of time with it now and there are lots of ways to approach programming problems in PostgreSQL.
Norgg
in reply to mcc • • •MaysonLancaster
in reply to mcc • • •mcc
in reply to MaysonLancaster • • •MaysonLancaster
in reply to mcc • • •Kat Marchรกn ๐
in reply to mcc • • •Erlang or Elixir would be a great addition here. Theyโre definitely different enough! Elixir has a lower barrier of entry and feels more modern, though.
And tbh as a former professional CL dev: Common Lisp is definitely closer to Python/JavaScript/etc than to any โfunctionalโ language.
mcc
in reply to Kat Marchรกn ๐ • • •Bart Smit / โฒโฒโฒโฒโฒโฒโฒ
in reply to mcc • • •john spurling
in reply to mcc • • •TryAPL
tryapl.orgRoger BW ๐ท
in reply to mcc • • •Crystal is basically almost-Ruby but way faster.
Scala is a bit more functional than Kotlin but in a broadly similar space (better code than Java but still targeting the JVM); I generally find it quite easy to translate code from one to the other. I would certainly count it as a separate language (no early return).
Ray Lee
in reply to mcc • • •io about
iolanguage.orgMark Reid
in reply to mcc • • •mcc
in reply to Mark Reid • • •Tom Forsyth
in reply to mcc • • •fraca7
in reply to mcc • • •mcc
in reply to fraca7 • • •fraca7
in reply to mcc • • •fraca7
in reply to fraca7 • • •mcc
in reply to fraca7 • • •@fraca7 Okay so
I designed a language once ( emilylang.org ), and the very earliest experimental version of the interpreter actually was written in Objective-C.
However, it was important to me it work on Windows/Linux! So I tried getting it working with GNUStep Foundation.
This was about 2014. HOLY CRUD, IT WAS HARD TO GET WORKING! I think it turned out to be a tarpit and I ultimately was not able to compile the interpreter. I started over in OCaml.
fraca7
in reply to mcc • • •Oooh nice ๐ The website seems down though? Or very slow.
I donโt have much experience designing programming languages (save for a few toy ones), but I wrote an LR(1) parser ยซ generator ยป in Python and from what I can gather, the OOP paradigm is not very fit for thatโฆ
GNUStep on Windows definitely looks like an adventure. The ยซ Call of Cthulhu ยป scenario kind.
mcc
in reply to fraca7 • • •emily
emilymcc
Unknown parent • • •mcc
Unknown parent • • •mcc
Unknown parent • • •mcc
Unknown parent • • •@unjello Oh, isn't Raku what used to be Perl 6?
I wrote one program in Perl 6 in 2001. I never found out if it worked, because Perl 6 had not released a working interpreter by the time that the university deleted my account and I lost the program.
mcc
Unknown parent • • •Seitan Lu Linvegan
Unknown parent • • •Leonard Ritter
in reply to mcc • • •mcc
Unknown parent • • •@unjello OK so I'm starting on this today!
mastodon.social/@mcc/113743302โฆ
Question: should I label this as BabelOfCode 2024 (because they're the 2024 puzzles) or BabelOfCode 2025 (because we're doing it in 2025?). I went with 2024 for nowโฆ
mcc
2024-12-30 18:57:33
Darby M. Dixon III
in reply to mcc • • •Paul Will Gamble ๐จ๐ฆ
in reply to mcc • • •mcc
in reply to Paul Will Gamble ๐จ๐ฆ • • •Paul Will Gamble ๐จ๐ฆ
in reply to mcc • • •mcc
in reply to Paul Will Gamble ๐จ๐ฆ • • •