17 ms·
> overt dismissal, with a heavy moralizing tone that you should feel bad for even asking about the issue The attitude of Go community cannot be separated from
by camus2 9y ago
> overt dismissal, with a heavy moralizing tone that you should feel bad for even asking about the issue
The attitude of Go community cannot be separated from the patronizing tone of Go maintainers. In fact it stems directly from the people @ Google working on Go. All the bullshit "you don't need that with go"™ comes directly from Pike,Cox and co. It's fine to be opinionated, but just admit these are opinions instead of engaging into the bullshit they engaged in for years when dismissing this or that problem as irrelevant.
Pike said "Go design" is done. Except that a language which design "is done" is a dead one.
- treehau5 9y ago> Pike said "Go design" is done. Except that a language which design "is done" is a dead one. Guess C is done for.
- TJSomething 9y agoExcept they updated C in 2011 and they're already working on C2X. http://www.open-std.org/JTC1/SC22/WG14/www/docs/n2086.htm http://www.open-std.org/JTC1/SC22/WG14/www/docs/n2086.htm
- andrewprock 9y agoI think you're confusing stable with "done". The C language has been getting updates about once every 10 years: Original (~1970) K&R (~1980) ANSI C (~1990) C99 (~2000) C11 (~2010) I would not be surprised to see a C22.
- pebers 9y agoTo what degree are those being used though? Major projects (e.g. Linux, CPython) are still on ANSI C.
- astrange 9y agoAny code that declares variables in the middle of a function, // comments, or varargs macros is using C99.
- xyzzyz 9y agoLinux is definitely not on ANSI C, and CPython is on C99 starting from 3.6.
- simias 9y agoC99 took a while to be widely adopted mainly because some compilers where very slow on the uptake (I'm looking at you Visual C++) but now I would never consider using anything less than that for a new project. It's almost 20 years old! Many small quality of life improvements: stdint.h stdbool.h, inline, restrict, allowing variable declaration within the code, snprintf, variadic macros... Most of those were accessible through compiler extensions but having them in the standard means that you know it'll work everywhere on any compliant implementation. Linux definitely isn't conservative when it comes to the language, not only does it use modern features of the language but it even relies on GCC extensions and even sometimes on the compiler's optimizer to produce the correct code: https://unix.stackexchange.com/questions/153788/linux-cannot-compile-without-gcc-optimizations-implications https://unix.stackexchange.com/questions/153788/linux-cannot... I'm not super familiar with CPython but it also doesn't appear to limit itself to C89, see for instance this random file I opened: https://github.com/python/cpython/blob/master/Python/future.c#L23-L24 https://github.com/python/cpython/blob/master/Python/future.... You can see that `const char *feature` is declared in the middle of some code. It also uses "inline" in several places.
- pjmlp 9y ago> I'm looking at you Visual C++ They decided to ditch clang/c2 integration work, and are planning to actually fully support C99 and not only what is required by ANSI C++. https://www.reddit.com/r/cpp/comments/6mqd2e/why_is_msvc_usually_behind_the_other_compilers_in/dk3vu0z/ https://www.reddit.com/r/cpp/comments/6mqd2e/why_is_msvc_usu... https://www.reddit.com/r/cpp/comments/6mqd2e/why_is_msvc_usually_behind_the_other_compilers_in/dk40gx8/ https://www.reddit.com/r/cpp/comments/6mqd2e/why_is_msvc_usu...
- ryanplant-au 9y agoCPython switched to C99.
- treehau5 9y agoI think you are confusing getting updates with "design" Go gets frequent updates as well.
- pmarreck 9y agoI'm still sitting here shocked that a language where "err" (and the keywords that check around it) are used an order of magnitude more frequently than all other syntax in that language, has achieved this much popularity: https://anvaka.github.io/common-words/#?lang=go https://anvaka.github.io/common-words/#?lang=go
- logingone 9y agoI've described Go programs as often looking like a listing of things that could go wrong.
- jalfresi 9y agoIn my opinion and experience, that is exactly what programs are
- bboozzoo 9y agoUnless you're writing in Erlang, in which case you program the success path and 'let it crash' in a controlled manner.
- grogenaut 9y agoYou're assuming that it faithfully crashes in all error states as opposed to incorrectly continuing on it's merry way.
- tsuraan 9y agoHave you used erlang? Pattern matching is a big part of it, and pattern match failures always result in errors. So, if you have some function foo() that always returns ok or {error, Reason}, then in the "follow the happy path" style, you'd just have a line reading "ok = foo(),", and then if foo actually returns something else, you get a "crash". There's no assuming anything there, it's just the way the language works.
- rsc 9y agoThe second half of the "Introduction" section of the blog post explains what "done" meant and why.