1. 65

Do you plan to participate? If, do you plan to go all the way? What language will you use? Other thoughts?

      1. 6

        The last bit is really important and often left unsaid I feel

        1. 4

          That’s my plan. I’ve been meaning to learn zig for ~forever.

          1. 1

            thanks again for giving us this language :)

            1. 1

              These were super helpful! I don’t think I’d really know how to start without this write up.

              1. 1

                I think that next to last paragraph is important, I’ve done quite a few older advent of code problems in zig, and where it really was shining was in the intcode problems, where you have to build up a bigger interpreter over a couple of days, for the others it’s more a pain since you have to do stuff more low-level than what zig really is good at, still a fun excercise as long as one is aware that it’s quite a lot more low level than many languages.

              2. 52

                The last couple of years I’ve participated in it, it’s been fairly miserable between mornings, kids, work etc. to fit it in (and once you fall behind, it becomes an entirely different thing).

                I’m going to give myself the gift this year not to partake and just spend my limited time working on other things.

                1. 9

                  Also, I miss the life I had where I could learn a new language and do AoC at the same time. I learned Rust, Haskell and Clojure that way.

                  1. 7

                    I feel the same way after participating for five or six years. The first few days take less than and hour but before you know it, the tasks take multiple hours and a lot of mental effort throughout the day.

                    Best of luck to those of you participating though! It’s dangerously fun! ;)

                  2. 14
                    • yes!
                    • I will probably be out of my depth by the end of the first week!
                    • Factor!
                    • Looking forward to seeing others’ solutions with Roc, Nim, and Gren!
                    1. 4

                      Factor would be an interesting choice. I’ll probably try in Python, Factor and Forth (Retroforth).

                      1. 3

                        I usually also decide I don’t have “enough time” after 3-5 days :). Interesting languages. Factor is where my username (and company name) comes from btw.

                        1. 4

                          The thing about not having enough time is that once you miss a day, you have 4 tasks in one day, so you’re less motivated to do that potentially, and so on. I don’t think I’ve ever made it beyond day 10 for this reason.

                          1. 2

                            There was one year where every 2nd day was referencing each other, but in other years you can easily skip single or multiple days… if you can get over the fact that there’s this gaping hole in your star count.. I know what you mean, and I prefer to go all in or not participate, but I still think you can kinda go casual and just do how much you feel like.

                            1. 2

                              I remember being surprised when I learned you could skip a day. The interface may not make that (or may not have at the time… it’s been a while) obviously doable.

                              1. 2

                                I loved Intcode! It was introduced in 2019 on day 2, and then extended or reused on day 5 and every odd-numbered day after that.

                                1. 2

                                  Yeah, I really enjoyed that year as well, seems like many others didn’t but it was really a lot of fun to tinker around with my intcode interpreter, I have written it in a couple of languages by now :)

                        2. 13

                          I’m gonna be participating in December Adventure instead: https://eli.li/december-adventure

                          1. 10

                            Gonna give it a shot for the first time. Long-time programmer in my comfortable languages, but trying Janet as a way to learn. Not sure I will have the time to hit it daily, though.

                            1. 3

                              Same! But for me I’ll be using it to get comfortable with Fennel.

                              1. 2

                                I’ll try Janet too. But since December is a rough time for me, I can do the first day today and then some next weekend. Maybe.

                              2. 8

                                I’m planning on doing AoC again this year. I’ve been pretty stoked to try it out again using Roc. I’ve updated my aoc template using the new module parameters feature.

                                I updated my solutions for previous years, and have been pleasantly surprised by just how much the language and ecosystem have matured over the last 12months. I’m really proud to be part of the roc community and contribute to such an amazing project. I’ve learnt so much and had a great time.

                                Anyway, thank you for asking. I’m looking forward to seeing the awesome solutions other people post so I can up my roc game.

                                1. 8

                                  I loved live-REPL development in Common Lisp and slimv last year. This time I’ll try to get something similar going in Janet.

                                  Update: It’s going smoothly, given the first chapter of Janet for Mortals, (doc) in the REPL, some relevant familiarity with Clojure, and ⌘F. Some old uncommitted changes reminded me that I made it to day 24 last year. I’d really like to finish this time but who knows if it’s in the cards.

                                  I also took a moment to donate to the project and hope others do too.

                                  1. 3

                                    going in Janet

                                    some relevant familiarity with Clojure

                                    I did try to use Janet with some previous AoC editions, and having used Clojure previously, it was both blessing and a curse. I shot my foot several times because of mutability in Janet. Beware!

                                  2. 6

                                    There is also #lobsters-advent on libera.chat :)

                                    1. 5

                                      I’ll be using my own language, Varyx, again. Since 2019, the first year I completed AoC on its 25th day, I’ve yearned to finish at the top of a certain private leaderboard, and in 2022 I accomplished that. Now I’m ready to stop racing and let others compete for that distinction if they wish.

                                      Last year, I got frustrated at the puzzle difficulty half-way through and gave up. I expect the same to happen this year, but it’s my intention to do so more gracefully this time, with the goal of maximizing my enjoyment of AoC.

                                      1. 3

                                        I’ll be using my own language

                                        Now this is a goal I can support!

                                      2. 3

                                        I’m going to do as many problems as I feel like - sometimes I finish but other times I get bored/distracted/frustated, and I try to just leave it as whatever.

                                        I’m putting my solutions in an observable framework notebook this year, here’s day 1: https://llimllib.github.io/advent2024/01

                                        1. 3

                                          I am lookng for recommendations which language to lear and use. I want something that expands my view, but is a bit more esoteric. Now I’ve progrmamed in Haskell, Clojure, Python, Rust, C, C#, PHP amongs others. Looking for some cool ideas. One of my ideas was Idris 2 or Koka. So please send me recommendations :)

                                          1. 7

                                            How about Lil? It isn’t particularly engineered for speed, but it has a nice blend of features from functional languages and the APL family, it has first-class database-style tables and a SQL-like query language, it’s pretty handy at tokenizing messy input, and it can run in nearly any environment with a C compiler, a web browser, or an awk interpreter.

                                            1. 4

                                              SWI-Prolog, Forth (or probably Factor), Unison, J, Rebol

                                              1. 3

                                                Forth and Factor are both concatenative languages with a stack but otherwise are so different that I wouldn’t compare them like that.

                                                1. 2

                                                  Ditto, I’d try a Forth. Or maybe Io! It’s not super active, but it’d be a nice way to stretch the brain a little.

                                                2. 4

                                                  I would also recommend Prolog, but perhaps https://www.scryer.pl/ Scryer Prolog instead of SWI, since it’s more compliant with the Prolog standard

                                                  1. 1

                                                    There was a call and a leaderboard on the Picat mailing list if that’s your flavour.

                                                  2. 2

                                                    Last year I failed to do it in Rust. I ended up spending most of my time thinking about Rust rather than the problem at hand. So from now on I’ll be sticking to languages I’m already comfortable in. This year it will be Rust again.

                                                    1. 2

                                                      Something concatenative.org maybe? :)

                                                      1. 2

                                                        I predictably second refaktor’s suggestion, with Factor in particular.

                                                        1. 2

                                                          I did Pharo Smalltalk one year!

                                                          1. 1

                                                            ATS interleaves proof-level & value-level code while having dependent & linear types if you want to scratch those itches. Since you have done Haskell, another ML family language shouldn’t be too different on the syntax level (tho there are a lot of keywords). A read Introduction to Programming in ATS earlier this year from their documentation page.

                                                          2. 3

                                                            I’m also given it a go for the first time but time will tell how far I’ll get. I’ll be using Unison which has a nice Advent of Code 2024 to get you started.

                                                            1. 3

                                                              I liked some of the earlier ones and used that to road test new languages. At some point I just fell back to practicing C++. This year I think I’ll sit it out: my spare time has dwindled and I’m focusing on an embedded project I’m taking on, and my writing.

                                                              I’ll look in from time to time to see if there is something fun, but I don’t like that I have to solve the problems sequentially and in this way I like project Euler better.

                                                              1. 2

                                                                I usually end up doing them in C++ as well as a kind of comfort choice. Though sometimes it feels like you spend more time parsing the input than doing the actual task.

                                                              2. 3

                                                                I’ll try Odin this year.

                                                                1. 2

                                                                  I haven’t done AoC before but figure I’ll give it a try this year. I’ll be using Scryer Prolog

                                                                  1. 2

                                                                    I will try to do it with F# and Gleam this year, but like every year I won’t have time (and brain) to do more than 10/12 days ^^

                                                                    For the pythonists around here, give F# a try: it can feels very close to scripting and it has a wonderful REPL too :)

                                                                    1. 2

                                                                      I’ll be doing both Advent Of SQL and Advent of Code. It was a tie between Roc and Zig, but it looks like Zig might have to wait till next year.

                                                                      1. 2

                                                                        I’m doing Advent of Clojure (I’m the only one here at the time of writing this post)

                                                                        I plan to write it in the format of Clerk notebooks, containing a bit of prose, explanations, visualizations, etc. Maybe it’ll be helpful for somebody just starting with Clojure.

                                                                        Link to the notebooks

                                                                        1. 2

                                                                          I’m going to do it in my luajit + tinycc stack I wrote a while ago.

                                                                          1. 2

                                                                            I hope this doesn’t break a rule, but if you’re using a concatenative language, please consider posting solutions at c/concatenative.

                                                                            1. 2

                                                                              I just made a Day 1 solution. Ryelang is borderline concatenative, but i will post it :) Factor one is looking very nice … I just got lost at “ dup _ at 0 or * “

                                                                              // edit: waiting approval. Anyhow … this is my solution on reddit megathread

                                                                            2. 2

                                                                              As ususual, I plan to participate for as long as I can complete the challenges within 1 day, and then ill peck at it till I get bored. I started when I was a student, and year over year I get farther, so if the trendline continues, I should eventually complete a year, then I guess Ill start going back and doing previous years?

                                                                              1. 2

                                                                                I’m going to be using Elixir. Today I want to get a “getting started” guide for Elixir so I can use Elixir the way it wants to be used.

                                                                                1. 2

                                                                                  I’m excited! I always find this a great opportunity to improve how I write Python. Lots of people (understandably) go for the quickest solve, but I’m excited to write readable, maintainable code.

                                                                                  Once again, I’ll be posting my solutions and explanations as we go: https://advent-of-code.xavd.id/

                                                                                  It’s unlikely I’ll finish them all in 25 days (especially the later ones) but it’s a good time and a great way to learn.

                                                                                  1. 1

                                                                                    This will be my first time.

                                                                                    I’d like to attempt to make my own language for solving the puzzles as I go along. We will see!

                                                                                    1. 1

                                                                                      Yes, totally! I did last year, and it took a lot of time. SQL (with mutual recursion)! So many other thoughts…

                                                                                      If I wasn’t working on SQL stuff, I would almost certainly take the opportunity to pick up more APL, K, Forth, or (personal fav at the moment) Joy. In fact, I strongly recommend Joy on the basis that it brought exactly that for me!

                                                                                      1. 1

                                                                                        Here’s my attempt to sway you into the world of Factor. Before Joy’s creator, Manfred von Thun, sadly passed in 2011, he sent this heartfelt message honoring Factor’s creator, Slava Pestov, including:

                                                                                        I want to use this my first email to the group to do what I should have done years ago. Slava Pestov has designed and implemented his Factor language over quite some time now. The result is a most impressive piece of work. The design goes well beyond what I ever dreamed of for Joy, and the implementation is professional and clearly far superior than that of Joy. There is already a huge library for all sorts of things. And, very importantly, there are many users who are contributing in one way or another.

                                                                                        . . .

                                                                                        And what should happen to Joy? With a far superior alternative around, it would be pointless for me to patch up the existing Joy either as the language or in the implementation.

                                                                                        . . .

                                                                                        Should somebody else design a kind of Joy2? Maybe, but probably not. It would have to be significantly different from Factor to make it worthwhile.

                                                                                        1. 2

                                                                                          I’ve peeked a bit, but only a very small bit, at Factor. I should say that what I liked about Joy was the act of implementing it, and realizing how little it needed to be, more than actually using it which I haven’t really done for much more than some recursive computations. I think the same is probably true of Forth; I don’t imagine I would enjoy using it too much longer after I implement it. My sense is that Factor means to solve for this, which is great!

                                                                                          I’ll put it on the queue to check out in more detail, but I think for me it competes on different terrain than Joy does, if that makes sense? As it moves from “oh boy, I am learning about concatenative idioms, user extensible dispatch, and seeing just how easy call/cc can be” to “ok, time to get real work done” it has to displace Rust, which .. oof. :D

                                                                                          Actually, I’m going to upgrade it from “put it on the queue” to “put it on the stack”! I’ve got https://factorcode.org open now. :D

                                                                                          1. 2

                                                                                            Ok yes I’m already in love with the :: word to bind the stack elements spelled out in the stack effect documentation.

                                                                                      2. 1

                                                                                        I’m going to give it a try, but probably won’t go to the end. I’m going to use OCaml this year, though I was tinkering with the idea of maybe doing it in Forth this year too, at least at the beginning with the easier exercises as I haven’t actually written any in years. If I get lazy, I’ll probably switch to Python or Go.

                                                                                        1. 1

                                                                                          This is the first year I don’t have assignments to catch up on, so I’ll try to go all the way.

                                                                                          The goal is to use D until I figure out why it’s not used more.

                                                                                          1. 1
                                                                                            • Yes
                                                                                            • I’m in the 450 stars club (now 454), so yes!
                                                                                            • Python, like always (I usually get leaderboard points once or twice a year, so I’ll stick with what I know)
                                                                                            • /r/adventofcode is probably one of the few things still keeping me using Reddit
                                                                                            1. [Comment removed by author]

                                                                                              1. 1

                                                                                                Yep, I’ll try to do every day as I have in years past. Though I forgot about it until today so I haven’t done much planning… Probably will use Python as I find that’s usually fastest for me to hack things together in.

                                                                                                1. 1

                                                                                                  I always try to do at least a few days. I usually fall off after 5-10 days though.

                                                                                                  This year I plan to use Odin for my primary attempts, and my own language for to test it out. Might try out prolog or such as well.

                                                                                                  1. 1

                                                                                                    Last year was my first time participating - I finished all but two problems without looking up others’ solutions and had a good time.

                                                                                                    I’m inclined to take a swing at doing this year with Gleam, as I haven’t really had much practice with functional languages.