229 karma · joined January 11, 2014
Have computer scientists switched to marketing or am I missing something?
If anything I would be very please if we got advanced exception catchers in C++. Recently I drooled over Ada exception handling capabilities: https://en.wikibooks.org/wiki/Ada_Programming/Exceptions#Exc...
Genuinely curious question - do you know about place where these controversial technologies would be discussed in a "better" way?
Although sometimes "I do not tend to make many of the mistakes that would be caught by the C++ type system" might be related to "how to use C++ type system so it would catch mistakes people tend to make".
https://arxiv.org/pdf/1502.02551.pdf
https://arxiv.org/pdf/1610.00324.pdf
I wanted to have some basic idea about hardware so I did some "research" (googling) and ended up giving a short informal talk. My slides with some links are here:
It's the same for any other mental load that could be offloaded to machine. Coding style? Don't demand people sticking to rules - use some formatter/prettyfier/linter. Well known and frequent bugs? At least try to use static analysis or write tests and run those with some sanitizer. Codebase too big/convoluted/... - use some tools (parsers, indexers, search) to get better insight. Just try use proper tools and machines.
IMHO it might eventually make sense to use other language/tech/whatever but the bar is quite high and it will quite probably take some serious sustained effort.
Some recommendations seem little bit like "don't make mistakes" but still I like it.
I was always puzzled by how unrelated metric used for hiring is to actual work at many companies. I don't mind algorithmic brainteasers - on the contrary I would absolutely love to solve such problems at work yet those seem to be scarce. I also don't mind other types of developer work - be it more research or architectural oriented or "just" coding.
But I am not happy learning something different for interviews every few years and then forgetting it over the course of next period of day to day work. Feels like a waste of time and is confusing in regards to what one would actually do in certain job.
Selling advertisement (tied to a "free" service) is mass market. My guess is power users are a) harder to capitalize on b) more demanding. There's plenty of low hanging fruit in general public so why bother?
Just hear the pain: https://news.ycombinator.com/item?id=13276351
And some of them are watching you with great interest.
I also agree that type system in C++ is not perfect and is rarely used in a sensible manner. Yet I would rather look for inspiration in functional statically-typed languages rather than in specialized "multi-paradigm" dynamically-typed ones.
http://clang.llvm.org/docs/Modules.html#problems-with-the-cu...
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppC...
As a day-to-day C++ practitioner I like it.
...Yet I am not fully convinced that the general idea of language evolution implemented as ruleset outside of the language itself is the way to go. Seems more like band-aid to me and made me start to think about concept of programming language's life cycle in context of Darwinian evolution - once either legacy compatibility burden is too big or that particular biotope of specific problems the language solves better than others vanishes/changes the language dies out.
My particular issue with C++ is that it's complexity, longevity and evolution made possible for widespread bad-practices as not every C++ developer evolved as much as the language itself and it's general public understanding. (Some current best-practices were simply not always widely known or accepted.) I would even go as far to say that most of existing C++ code is crap (at least from standpoint of today "modern" C++).
And that's why I am both eagerly looking to "next generation" being shaped up by people who has (hopefully) learnt from past mistakes and used by people who care (itching to give Rust a ride once it stabilizes just a bit more) and also occasionally digging in the history for possible gems that I might not able to see without my current experience (platonic weekends-only relationship with Haskell, Lisp being right there at top of my TODO list).
EDIT: Removed the sir.