Hi HN, I'm super stoked to share a passion side project that two friends and I have been working on for the past few months - Karaoke Nite.
This is something that we wanted for a while for ourselves and we got tired of waiting and decided to just build it ourselves. We just released v0.1 as a webVR app with multiplayer avatars and after chatting with some initial users, we decided to move towards a web app with face cams instead for v0.2; people want to see their friends' faces!
If you have any feedback or ideas, please let us know!
Hi, it's Sonny from Codecademy. Super awesome to see that this made it to the front page of HN. Here are a few questions that didn't quite make it to the original Codecademy blog post (written for our learners):
---
What’s your perfect Saturday?
Have a slow breakfast, do a bit of work – maybe writing. Maybe visit the grandchildren. Run a few miles. Eat a good dinner out with friends. Settle in for the evening with a good book.
---
How was the 2019 C++ Standards meeting in Germany?
It was a rather good meeting. The venue was great and we voted out a “Committee Draft” for review by the national standards bodies. There is now a feature freeze.
In February 2020, we’ll have the final vote C++20. It was a lot of work and there were 220 attendees – a new record.
C++ is going to be great!
---
What are some of the C++20 updates that you are especially excited about?
- Modules – to improve code hygiene and significantly speed up compilation.
- Concepts – to simplify generic programming by allowing precise specification of a template’s requirements on its arguments.
- Ranges – to finally be able to write sort(v) rather than sort(v.begin(), v.end()), to get more general sequences, and more flexibility and better error messages through the use of concepts.
- Coroutines – to get simpler and faster generators and pipelines, simplifying asynchronous programming.
- Dates – being able to efficiently and elegantly manipulate calendars; e.g., weekday{August/1/20/2019}==Thursday.
- jthreads and stop tokens – threads that joins on scope exit (doing proper RAII) and a mechanism for terminating them if their result is no longer needed.
These changes – and many smaller ones supporting them – are major in the sense that they will fundamentally change the way we program and think about our designs.
C++20 will be as big an improvement over C++11 as C++11 was over C++98. It will change the way we think about writing our code. I said “C++11 feels like a new language.” I will be able to say the same about C++20.
Our code will become smaller, simpler, run faster, and compile faster.
---
What newer languages or language paradigms are exciting to you?
I don’t easily get excited and the field of languages doesn’t really develop all that fast when you keep an eye on it.
Most changes are incremental and re-emerge repeatedly in different languages with minor differences. I think the word “paradigm” is overused and misused. If it means any more than “my latest bright new idea”, we don’t see a new paradigm every decade. Maybe object-oriented programming, generic programming, functional programming, and machine learning. That took 50+ years.
I tend to look for techniques that can be widely used. Over the last decade or so, my main work has focused on generic programming and compile-time evaluation. Maybe this will feed into a static reflection mechanism for C++ over the next few years. I like the idea of functional-programming-style pattern matching and did a bit of research on that in the previous decade.