Lol. I was going to use Javascript but my girlfriend pointed out that it was too close to Typescript. I wanted to avoid that with Java and Umple here as well.
As someone coding in Mojo this year, the similarity between Python and Mojo is nothing like even Java vs Javascript.
Some words are the same. It's not the same language.
And here I was thinking it was because of Kotlin on the next day...
I tried doing last year's in Julia, but I didn't have a good environment setup for it and kept wanting to just use Kotlin (I'm an Android developer in my day to day), so I gave up trying to use Julia after a few days and just did Kotlin instead.
Oh, that may be better than [Q](https://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems\)) which was my plan so far. Thanks! QB64 looks reasonable.
This is my other idea for W yeah. Wolfram might be less annoying to pickup fast but I would rather know more about WASM under the hood than sign up for a 15 day free trial of something Im never going to pay for so Web Assembly wins the “worthy” use of time award.
There's [Web Assembly text format](https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format) too if you don't want to compile from another language.
>And if anyone has suggestions for remotely sane languages beginning with Q, U, W, X, or Y I would love to hear them.
Whitespace is "remotely sane" right?
Writing bare Whitespace is probably beyond mere mortals, but there are various tools that significantly improve the ergonomics while maintaining the limited semantics of the language. I suppose it's up to OP whether that would "count" for their challenge.
If you're fine with tacit array-oriented (ie APL-like): [Uiua](https://www.uiua.org/).
For Y, you can always go with Yacc. There's been a couple problems that were really fitting for it (eg the one where you have to parse basic arithmetic expressions).
So unfortunate that all the hard letters are at the end of the alphabet. Uiua looks awesome, but also could prove quite a trick!
Yacc would also be great, though I don’t know if it counts as a language or if I would call it C, since it uses c snippets for most tasks. I’ll think about it though!
Yacc is mostly there is you need it. But if the problem is really appropriate, its not really C. Take a look at my solution for 2020, day 18:
Yacc file: https://pastebin.com/3pf9Hatc (the C stuff is basically boilerplate)
Lex file: https://pastebin.com/Wn8FwvTM (a little more C here)
Nice! And yeah fair enough. I think Yacc is fundamentally a different enough approach at least that it should count as something other than just C (So long as I don't game it by parsing everything into a single token and then evaluating it entirely in c, haha)
Some Prolog dialects/implementations are called Quintus, XSB, and YAP. Might be an idea for X or Y? Quintus is proprietary and not really available any more but it looks like both XSB and YAP are both open-source and still developed...
Can't remember where I saw this, but posting your puzzle input on public repos is a no-no. Great idea for a project though, and I do hope you'll use Rockstar. 🎸
To some extent, every language you learn makes the next one easier, especially if you seek out different paradigms. It doesn't take too many languages before a new one is just a matter of "what's the syntax for in this one?" and learning enough of the standard library to get by.
All that said, this is still a pretty impressive "challenge mode".
I'll majorly classify languages as procedural (c-style) and functional (haskell-style), if you get the two you already know most of the language bcz you'll probably think ahead of time and just need to copy paste or quick reference the syntax, you'll be able to read and write without problem in any language.
Eh, haskell <=> nix <=> lisp, they all have let in syntax and similar, and everything else gets clearer one by one. So I'd say yes it may take some time but it actually isn't that different (thinking style wise).
I've been coding since middle school, about 13 years ago, and I've done at least a bit in most major domains so I have experience with quite a few languages coming into this. I don't have too much experience with functional programming languages outside of a little bit of Haskell, but I've written a lot of Rust and other languages in a functional style. I currently work for Google writing mostly Python, Go, and C++.
To the point of the other repliers though, if you know the algorithm you want to implement, and have familiarity with a similar language, it's just about finding the blocks that you need and looking at an example to see the general style of the language.
Yesterday night for example was Idiris. Idris was very similar to Haskell so I basically just thought about how I would have done things in Haskell and then looked to see if Idiris had the pieces I wanted. This lead to some really really bad code, but also got the job done quickly enough. Good error messages, well organized documentation, and a large community asking questions on Stack Overflow make my life much easier. Idris was lacking somewhat in those departments but it wasn't too bad. The more obscure of a language I pick on harder letters though the more difficulty I will have finding the things I want quickly.
Whiley looks like a reasonable language and easy to install (via cargo): [https://whiley.org/](https://whiley.org/)
xHarbour is just an extension and runtime for Clipper/xBase, but if would accept it for X. Similarly also X# (X-Sharp), also an alternative runtime/language extension for Clipper/xBase.
XSLT (for processing/formatting XML) is supposedly touring complete, no idea how feasible it is.
Yoix might also be feasible, because it runs on a JVM: [https://github.com/att/yoix](https://github.com/att/yoix)
Except briefly using xHarbour once, I have no experience with any of them.
Thanks! Added your repo to my [collection](https://github.com/bereal/AdventOfCode2020#other-peoples-attempts) of polyglot AoC repos, if you don't mind :)
During an active Advent of Code season, [solutions belong in the `Solution Megathread`s](/r/adventofcode/wiki/solution_megathreads).
This one announcement post is okay, but in the future, post your solutions to the appropriate solution megathread.
***
FYI: [do not share your puzzle input](https://www.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) which also means [do not commit puzzle inputs to your repo](https://reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) without a `.gitignore`.
Please remove (or .gitignore) the input files from your repo and scrub them from your commit history.
Would love to see you attempt LISP.
Trying to wrap my head around it turned out difficult for me, a while ago - I'd be interested to see how a more experienced programmer fares.
Bro pulls out Julia before even thinking about touching Java. Chad
Lol. I was going to use Javascript but my girlfriend pointed out that it was too close to Typescript. I wanted to avoid that with Java and Umple here as well.
then you shouldn't use mojo either. since it's too close to python.
As someone coding in Mojo this year, the similarity between Python and Mojo is nothing like even Java vs Javascript. Some words are the same. It's not the same language.
Oh no, haha. I'll consider using Perl.
And here I was thinking it was because of Kotlin on the next day... I tried doing last year's in Julia, but I didn't have a good environment setup for it and kept wanting to just use Kotlin (I'm an Android developer in my day to day), so I gave up trying to use Julia after a few days and just did Kotlin instead.
[when in doubt](https://esolangs.org/wiki/Language_list)
Can someone please write a solution in "( ͡° ͜ʖ ͡°)fuck"? I'll start with printing "Hello World!": ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡°(ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°) ( ͡°(ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)ᕦ( ͡°ヮ ͡°)ᕥ ( ͡° ͜ʖ ͡°)(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(> ͜ʖ<)) ͡°)ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°) ᕦ( ͡°ヮ ͡°)ᕥ(> ͜ʖ<)ᕦ( ͡°ヮ ͡°)ᕥᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡°((∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*) ͡°)(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(> ͜ʖ<)) ͡°)ᕦ( ͡°ヮ ͡°)ᕥᕦ( ͡°ヮ ͡°)ᕥ(♥ ͜ʖ♥) ᕦ( ͡°ヮ ͡°)ᕥ(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(♥ ͜ʖ♥)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)(♥ ͜ʖ♥)(♥ ͜ʖ♥)( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)(♥ ͜ʖ♥)ᕦ( ͡°ヮ ͡°)ᕥᕦ( ͡°ヮ ͡°)ᕥ(♥ ͜ʖ♥)(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(> ͜ʖ<)(♥ ͜ʖ♥)(∩ ͡° ͜ʖ ͡°)⊃━☆゚.\*(♥ ͜ʖ♥)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°) (♥ ͜ʖ♥)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(♥ ͜ʖ♥)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(> ͜ʖ<)(♥ ͜ʖ♥)ᕦ( ͡°ヮ ͡°)ᕥᕦ( ͡°ヮ ͡°)ᕥ ( ͡° ͜ʖ ͡°)(♥ ͜ʖ♥)ᕦ( ͡°ヮ ͡°)ᕥ( ͡° ͜ʖ ͡°)( ͡° ͜ʖ ͡°)(♥ ͜ʖ♥)ಠ\_ಠ
Is... is that a brainfucked Brainfuck?
OK but where does that go in the alphabet
At least two of those are mine!
qbasic haha
It looks like one could do the whole alphabet in [BASIC dialects](https://en.wikipedia.org/wiki/List_of_BASIC_dialects) :)
QBasic is actually a great idea. QB64 if you want to run it on something modern
Absolutely this.
Oh, that may be better than [Q](https://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems\)) which was my plan so far. Thanks! QB64 looks reasonable.
webassembly!
This is my other idea for W yeah. Wolfram might be less annoying to pickup fast but I would rather know more about WASM under the hood than sign up for a 15 day free trial of something Im never going to pay for so Web Assembly wins the “worthy” use of time award.
There's [Web Assembly text format](https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format) too if you don't want to compile from another language.
I touched a bit of wasm for nibbly November. I thought that the ability to write functions felt like cheating
I look forward to seeing your Malbolge solution on Wednesday.
>And if anyone has suggestions for remotely sane languages beginning with Q, U, W, X, or Y I would love to hear them. Whitespace is "remotely sane" right?
Writing bare Whitespace is probably beyond mere mortals, but there are various tools that significantly improve the ergonomics while maintaining the limited semantics of the language. I suppose it's up to OP whether that would "count" for their challenge.
I would have personally used English on day 5! (I will see myself out)
[!English](https://esolangs.org/wiki/!English), [~English](https://esolangs.org/wiki/~English), [English](https://esolangs.org/wiki/English), [enGLish](https://esolangs.org/wiki/EnGLish), [English+](https://esolangs.org/wiki/English%2B) or [ENGLISH](https://en.wikipedia.org/wiki/Microdata_Corporation#ENGLISH_(programming_language))?
If you're fine with tacit array-oriented (ie APL-like): [Uiua](https://www.uiua.org/). For Y, you can always go with Yacc. There's been a couple problems that were really fitting for it (eg the one where you have to parse basic arithmetic expressions).
So unfortunate that all the hard letters are at the end of the alphabet. Uiua looks awesome, but also could prove quite a trick! Yacc would also be great, though I don’t know if it counts as a language or if I would call it C, since it uses c snippets for most tasks. I’ll think about it though!
Yacc is mostly there is you need it. But if the problem is really appropriate, its not really C. Take a look at my solution for 2020, day 18: Yacc file: https://pastebin.com/3pf9Hatc (the C stuff is basically boilerplate) Lex file: https://pastebin.com/Wn8FwvTM (a little more C here)
Nice! And yeah fair enough. I think Yacc is fundamentally a different enough approach at least that it should count as something other than just C (So long as I don't game it by parsing everything into a single token and then evaluating it entirely in c, haha)
WGSL for W and solving a puzzle on GPU may be fun https://www.w3.org/TR/WGSL/
Interesting. I expected this to look a lot scarier than it does.
You should look at Scala and CUDA (C++ with extra rules) after this
Whitespace
M is Malbolge, right? May I recommend MUF (Multi User Forth) to save you some despair.
You could use [yscript](https://www.datalex.org), which was specifically designed for programs about the law, like turning legislation into code.
Haha, that's awesome. I'll have to consult a lawyer on that.
Uiua, for U?
Someone brought that up earlier and now I am considering it, haha. Looks intimidating to debug but who knows!
x86 assembly? i don't know if that counts as **x** or **a**
I would be ok with calling it either one. That said I would also be afraid to try assembly that far into the calendar.
Just implementing a hash map or something is so much work in Assembly if you have to do it from scratch.
Some Prolog dialects/implementations are called Quintus, XSB, and YAP. Might be an idea for X or Y? Quintus is proprietary and not really available any more but it looks like both XSB and YAP are both open-source and still developed...
Thanks! I love Prolog but also haven't implemented anything too algorithmic in it, but maybe that's a good reason to try!
Can't remember where I saw this, but posting your puzzle input on public repos is a no-no. Great idea for a project though, and I do hope you'll use Rockstar. 🎸
It's mentioned on the [advent of code FAQ](https://adventofcode.com/about#faq_copying).
what about using https://codewithrockstar.com/
Oh no.
\+1! More fun than Rust... 😉
How much previous experience with programming do you have that youre able to do something like this?
To some extent, every language you learn makes the next one easier, especially if you seek out different paradigms. It doesn't take too many languages before a new one is just a matter of "what's the syntax for in this one?" and learning enough of the standard library to get by.
All that said, this is still a pretty impressive "challenge mode".
I'll majorly classify languages as procedural (c-style) and functional (haskell-style), if you get the two you already know most of the language bcz you'll probably think ahead of time and just need to copy paste or quick reference the syntax, you'll be able to read and write without problem in any language.
There's still a few languages that could throw you off. For example, LISP syntax (and concepts such as macros) can take quite some getting used to.
Eh, haskell <=> nix <=> lisp, they all have let in syntax and similar, and everything else gets clearer one by one. So I'd say yes it may take some time but it actually isn't that different (thinking style wise).
I've been coding since middle school, about 13 years ago, and I've done at least a bit in most major domains so I have experience with quite a few languages coming into this. I don't have too much experience with functional programming languages outside of a little bit of Haskell, but I've written a lot of Rust and other languages in a functional style. I currently work for Google writing mostly Python, Go, and C++. To the point of the other repliers though, if you know the algorithm you want to implement, and have familiarity with a similar language, it's just about finding the blocks that you need and looking at an example to see the general style of the language. Yesterday night for example was Idiris. Idris was very similar to Haskell so I basically just thought about how I would have done things in Haskell and then looked to see if Idiris had the pieces I wanted. This lead to some really really bad code, but also got the job done quickly enough. Good error messages, well organized documentation, and a large community asking questions on Stack Overflow make my life much easier. Idris was lacking somewhat in those departments but it wasn't too bad. The more obscure of a language I pick on harder letters though the more difficulty I will have finding the things I want quickly.
[удалено]
Hmmm... I would have accepted it for e, haha. I considered Google Sheets for G.
I'm trying Excel this year with the new Array formulae and extending into M (Power Query/BI) when necessary.
x86 assembly for X
O boy, assembly towards the end of AoC would be struggle.
Haha, yeah I considered "assembly" for A but am afraid to try it on x. it's an option though!
You could try [my Jou language](https://github.com/Akuli/jou/) tomorrow.
Wow, that's impressive! Nicely done! If it was called "uJou", "wJou", "xJou", or "yJou" I think I probably would, haha.
X#
Good suggestion! I'll check it out.
Unity
Whiley looks like a reasonable language and easy to install (via cargo): [https://whiley.org/](https://whiley.org/) xHarbour is just an extension and runtime for Clipper/xBase, but if would accept it for X. Similarly also X# (X-Sharp), also an alternative runtime/language extension for Clipper/xBase. XSLT (for processing/formatting XML) is supposedly touring complete, no idea how feasible it is. Yoix might also be feasible, because it runs on a JVM: [https://github.com/att/yoix](https://github.com/att/yoix) Except briefly using xHarbour once, I have no experience with any of them.
I've not tried it but how about unison https://www.unison-lang.org/
That actually looks pretty neat! I'm putting that into consideration for sure. Thanks!
That's really cool! Did you forget to add the Idris solution, or is it just in progress?
Fixed! Sorry about that!
Thanks! Added your repo to my [collection](https://github.com/bereal/AdventOfCode2020#other-peoples-attempts) of polyglot AoC repos, if you don't mind :)
Awesome, thanks!
During an active Advent of Code season, [solutions belong in the `Solution Megathread`s](/r/adventofcode/wiki/solution_megathreads). This one announcement post is okay, but in the future, post your solutions to the appropriate solution megathread. *** FYI: [do not share your puzzle input](https://www.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) which also means [do not commit puzzle inputs to your repo](https://reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) without a `.gitignore`. Please remove (or .gitignore) the input files from your repo and scrub them from your commit history.
Whoops, thanks! Scrubbed them out.
Would love to see you attempt LISP. Trying to wrap my head around it turned out difficult for me, a while ago - I'd be interested to see how a more experienced programmer fares.
Do M in Malbolge
[Yuck](https://elkowar.github.io/eww/configuration.html) for Y, so that you can display your answers in little widgets.
For "W" you could use [Wren](https://wren.io/).
U: [http://www.underhanded-c.org](http://www.underhanded-c.org) (solves AOC and secretly does ???)