/SyntaxSafari

Embarking on a 12-language coding expedition! πŸŒπŸ¦’ Join the #SyntaxSafari and dive into diverse digital terrains.

Primary LanguagePerlMIT LicenseMIT

🌍 SyntaxSafari πŸ¦’

Venture with me as I embark on the wildest code journey of 2023/24 – exploring 12 vast landscapes of programming languages!

SyntaxSafari Banner

Note: The inspiration comes from the Exercism 12in23 challenge. And this is my take on it.


πŸš€ Mission Statement

"Why stick to one playground when there are so many to explore?"

In our daily coding life, we often stick to our comfort zones, using the same old languages. But hey, why limit ourselves?

Here at SyntaxSafari, I'm broadening my horizons, and like any true explorer, I'm documenting my journey.

Expect bugs, laughs, 'aha' moments, and more bugs!


🎯 The Targeted Terrains

  1. Perl - Diving into the pearls of scripting. 🚧 Work in Progress! 🚧
  2. Go - Gonna Go where the wind takes me!
  3. Rust - Making sure my code doesn't corrode.
  4. C - Going back to the roots. C what I did there?
  5. Bash - Let's make some noise!
  6. (G)AWK - No, it's not (g)awkward. Or is it?
  7. Erlang - Why have one process when you can have many?
  8. V - Aiming for speed, aiming for efficiency!
  9. Zig - Ziggity zag, let's not let this one lag.
  10. Haskell - Asking the functional questions.
  11. Wren - Ready to fly with this lightweight scripting bird.
    12. Java - Brewing some classic code. Or maybe not. Still deciding.
  12. C++ - The final frontier. Taking C to the next level, one plus at a time!

Runners-up: A short-list of languages that I considered, but didn't make the cut. Maybe next time!

  • Java
  • JavaScript
  • TypeScript
  • Python (I already know a thing or two about this one.)

πŸ—ΊοΈ Current Journey Status

  • Perl - In Progress! 🚧
  • Go
  • Rust
  • C
  • Bash
  • AWK
  • Erlang
  • V
  • Zig
  • Haskell
  • Wren
  • C++

🧭 Selecting My Next Safari Destination

Whenever I feel the call of the wild code, I use the following trusty command to randomly pick my next programming language to explore:

echo "Go Rust C Bash AWK Erlang Zig V Haskell Wren C++" | tr ' ' '\n' | sort | gshuf -n 1

This command breaks down our safari landscape into individual terrains, sorts them for a fair game, and then shuffles to surprise me with my next coding adventure. Where will the winds of SyntaxSafari take me next? Let's find out! πŸŒͺοΈπŸ¦’

Note: I'm on a macOS, so you need to have coreutils installed to use gshuf. If you're on Linux, you can just use shuf instead.

brew install coreutils

πŸ“… Safari Schedule

Mark your calendars! The safari officially kicks off on October 1st. Get ready for an exhilarating journey through the wilds of code!


πŸ“– Diary Logs

Every language comes with its own set of challenges, discoveries, and eureka moments. Check out my diary logs for each language to get a peek into my adventures and misadventures!

Here's how it's going to work:

  • I'll be keeping a diary log for each language in its respective folder.
  • Inside each folder, I'll keep the following files:
    • NOTES.md - A somehow random collection of thoughts, gotchas, "aha!" moments, etc.
    • RESOURCES.md - A collection of resources that I find useful.
    • DIARY.md - A diary log of my journey through the language.
    • code/ - A folder containing all the code I write while exploring the language.
  • I'll do my best and update the diary log as I go, but I can't promise anything. I'm not a robot, you know. πŸ€–
  • For each language, I'm hoping to come up with a small, not-so-trivial project that encapsulates the core strengths or unique features of that language. I'd like to see this as a practical touchstone for your learning.
  • All other resources, like books, tutorials, links, visuals etc. will be listed in the RESOURCES.md file.
  • For anything that doesn't belong in the above files, I'll drop it in the Miscellaneous/ folder.

🀝 Join the Safari!

Feel like embarking on a similar journey? Fork this repo, and let's explore together! Or just hop into the issues and discussions; any and all contributions, suggestions, and jokes are welcome. The more, the merrier!


πŸ‘©πŸ’» Happy coding, fellow explorers! Remember: it's not about mastering every terrain, but enjoying the journey and the view.