# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 8
# self = https://watcher.sour.is/conv/da7zlha
@kat I don’t like Golang much either, but I am not a programmer. This little site, Go by example might explain a thing or two.
@bender What's not to like? 😅
@prologic what’s to like? :-P
@bender Here's a short-list:

- Simple, minimal syntax—master the core in hours, not months.
- CSP-style concurrency (goroutines & channels)—safe, scalable parallelism.
- Blazing-fast compiler & single-binary deploys—zero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magic—unlike Java/C++/Python overhead.
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:

* Go: 25 keywords ([Stack Overflow][1]); CSP-style concurrency (goroutines & channels)
* Python 2: 30 keywords ([TutorialsPoint][2]); GIL-bound threads & multiprocessing ([Wikipedia][3])
* Python 3: 35 keywords ([Initial Commit][4]); GIL-bound threads, asyncio & multiprocessing ([Wikipedia][3], [DEV Community][5])
* Java: 50 keywords ([Stack Overflow][1]); threads + java.util.concurrent ([Wikipedia][6])
* C++: 82 keywords ([Stack Overflow][1]); std::thread, atomics & futures ([en.cppreference.com][7])
* JavaScript: 38 keywords ([Stack Overflow][1]); single-threaded event loop & async/await, Web Workers ([Wikipedia][8])
* Ruby: 42 keywords ([Stack Overflow][1]); GIL-bound threads (MRI), fibers & processes ([Wikipedia][3])

[1]: https://stackoverflow.com/questions/4980766/reserved-keywords-count-by-programming-language?utm_source=chatgpt.com "Reserved keywords count by programming language?"
[2]: https://www.tutorialspoint.com/What-are-Reserved-Keywords-in-Python?utm_source=chatgpt.com "Reserved Keywords in Python - Online Tutorials Library"
[3]: https://en.wikipedia.org/wiki/Global_interpreter_lock?utm_source=chatgpt.com "Global interpreter lock"
[4]: https://initialcommit.com/blog/python-reserved-words?utm_source=chatgpt.com "Python Reserved Keywords (Full List) - Initial Commit"
[5]: https://dev.to/sreeni5018/understanding-pythons-gil-and-enhancing-concurrency-with-multithreading-multiprocessing-and-5g1e?utm_source=chatgpt.com "Understanding Python’s GIL and Enhancing Concurrency with ..."
[6]: https://en.wikipedia.org/wiki/Java_concurrency?utm_source=chatgpt.com "Java concurrency - Wikipedia"
[7]: https://en.cppreference.com/w/cpp/thread?utm_source=chatgpt.com "Concurrency support library (since C++11) - cppreference.com"
[8]: https://en.wikipedia.org/wiki/JavaScript?utm_source=chatgpt.com "JavaScript"*
Ultimately, Go sits in the sweet spot on the complexity vs performance chart:

- Minimal syntax & concepts → low learning curve
- Compiled speed → high throughput
- Built-in CSP concurrency → scalable by default

See Rob Pyke's presentation on Expressiveness of Go
@prologic interesting that ruby is so low on the list, i find it the easiest to learn! hell i struggle with python more than ruby and i've been told that python is like ruby but better lol. maybe it's just my weird brain!
@prologic interesting that ruby is so low on the list, i find it the easiest to learn! hell i struggle with python more than ruby and i've been told that python is like ruby but better lol. maybe it's just my weird brain!