No i udało się nagonić wszystkie zaległości i ukończyć AoC 2023 jeszcze w tym roku.
Był to mój drugi, po 2022, rok aktywnego rozwiązywania kalendarza do samego końca i na bieżąco (w sensie - w tym samym roku
W poprzednim roku używałem Pythona z Jupyter Notebook, co pozwalało szybko uzyskać działający kod. W tym wybór padł na Rust. Ogólne doświadczenie z tym językiem okazało się bardzo przyjemne, choć wiadomo - trzeba nieco więcej czasu poświęcić na przygotowanie inputu i testowanie/debugowanie.
No właśnie - to testowanie i debugowanie zupełnie zmieniło moje podejście. Zamiast szybko, jako-tako coś napisać i dalej ew. refactorować, to w końcowych dniach górował TDD z małymi krokami. Choć zajęło to dość sporo czasu, to finalna odpowiedź była dobra za pierwszą próbą. Opłaciło się.
Jednak jeśli chodzi o algebrę liniową i grafy - Python oferuje zdecydowanie lepsze biblioteki (NumPy i NetworkX) i zwartą składnię. Szczególnie odczuwalne było to w dniu 25, gdzie w Pythonie rozwiązanie to 1 funkcja z NetworkX a w Ruście... nie xD.
Podobnie algebra liniowa i dzień 24, który to rozwiązać można symbolicznie na papierze - gdy trzeba zaimplementować od zera, to tak średnio. Choć tu akurat moja wina, bo niby jest kilka bibliotek, ale z żadnej nie korzystałem
Dodatkowym odkryciem jest edytor Helix - świetna i lekka alternatywa dla *vim czy VS Code. Rozsądne defaulty, minimalny config i współpraca z LSP out of the box.
#adventofcode
Ja w tym roku też miałem iść w Rust ale zdecydowałem się na mix Go i Nim. Z Go mam dość duże doświadczenia ale Nim użyłem praktycznie pierwszy raz i bardzo przypadł mi do gustu i trochę żałuję że nie jest bardziej popularny. Gratulacje za wytrwałość!
P.S - Vim rulez 🚀
@HannibalLecter Go i Nim też spoko. Zwłaszcza, że Python i Rust to już właściwie mainstream w AoC
Najs, dla mnie to był pierwszy AOC, całość, oprócz 24/2 i 25 zrobiłem w Java, równania po próbie rozwiązania na kartce na piechotę zrobiłem w mathematica i ostatnie z rozpędu też, fajnie nawet się udało zwizualizować ten problem.
Na pewno jeśli chciałbym w kolejnych latach cisnąć, to jakaś własna biblioteczka byłaby mega użyteczna, w tym roku byłem zbyt leniwy żeby repo robić.
@Bujnik własna biblioteka w miarę rozwiązywania - to, co się powtarza kilka razy leci do lib. Dla mnie najtrudniejsze w tym "ciśnięciu" byłoby wstawanie przed 6:00 przez niemal cały grudzień :D.
@rust-n-dust - niezłe poświęcenie chłopie!
@rust-n-dust No ja tak przytryhardziłem, ścigałem się z paroma ludźmi z pracy, co też na jakości kodu rzutowało, bo byle wynik przeszedł tak naprawdę, a zgodnie ze sztuką, to i jakieś teściki i biblioteczka sensowna by się przydała
Zaloguj się aby komentować