I swore an oath to myself: I will never use a language that I will not be able to fully and well implement without wasting half of my life. This holds true for C and Scheme but not for Common Lisp (probably) and surely not for C++.
Name:
Cudder !cXCudderUE2016-04-30 14:13
Ditto for trying to put as many of those OMG NEW C++11/16/17/1337 features/libraries/templates/whatever into the code just for the novelty of it. "I read about X somewhere, let's use it!" I've seen what could easily be done in a single C function call turn into a 5-layer-deep nested template instantiation that creates a few dozen intermediate objects and winds its way through just as many method calls... before making that very same C function call itself.
Name:
Anonymous2016-04-30 17:03
>>5 The question (as per >>3) was which C++ features are shit. Other languages are free to do them well.
>>13 Fuck off, Cudder. You don't know jack shit about anything you ever bring up.
Name:
Anonymous2016-04-30 18:04
>>12 What a stupid oath. How long would it take you to invent and build the car you ride on? The airplane you fly on? The computer that runs your code? So why the fuck are you still using those things? You need to go live in the woods where everything, from your hut to your spear and axe will be fully and well built by fucking yourself, mister NIH.
>>15 This argument is stupid since I do not program my car nor the airplane I fly on. Moreover, making a shitty cpu is not that difficult for a single person. The reason to program only on languages you can implement is that you will never be locked out of your programs and you will always be able to have your programs running in your own system.
Name:
Anonymous2016-05-02 6:37
I hate it. Boost this, Qt that. This is exactly the Java-mentality shit I want to not have. .. Who needs self-reliance when you can not.
Name:
Anonymous2016-05-02 7:24
>>28 If you can't build a basic, naïve working implementation of any mentioned language in a week or two max, you fail as a programmer.
Name:
Anonymous2016-05-02 8:42
>>28 You're the one who's stupid, not the argument. But I'll try to spell it out for you.
I do not program my car nor the airplane I fly on
Exactly. So why do you want to program the language you use? Why the double standards?
you will never be locked out of your programs and you will always be able to have your programs running
What do you do not to get "locked out" of your car (i.e. cannot use it)? You drive to a gas station, or to repairs, but do you get out a wrench and proceed to make repairs of you own? I would you're not that dumb. So if it's OK for you to pay someone to take care of your car, why is it not OK to pay someone to implement your language on any platform you desire? Hell, some implementations are even free. There is absolutely no more reason to make your own implementation of the language you use than to build the engine of the car you ride.
Boost. I thought I would never have to touch that again. I was wrong.
Have to integrate Microsoft's Xbox Live SDK for iOS and Android into our project, and low and behold it's using Boost. Why does Microsoft have to fuck everything up?
Name:
Anonymous2016-05-05 7:28
>>39 Microsoft likes Boost because it does what they need.
Name:
Anonymous2016-05-05 8:38
>>39 It's "lo and behold," you degenerate illiterate.
>>39,41 It's a reddit quality idiom either way, just like "Enter React.js".
Name:
Anonymous2016-05-05 17:58
Boost is just a natural, cancerous extension of the tentacle monster called STL.
C++ gives rise to powerful abstractions, which come at a high cost - as Linus called it, "spooky action at a distance". This is why a lot of people have agreed to treat it all as a black box, to even keep track of it all. Custom standard libraries are impossible for readable code, as potential audience would have to learn everything that happens underneath from scratch.
Note that OO itself isn't the devil, it's the sheer complexity of low level C++ you're forced to use with C++ OO.
This prompts contrarians to NIH their shit. To stop that, STL and Boost were invented. Have you ever worked with STL/Boost "free" codebase? Those tend to have NIH stdlibs just straight broken and ill conceived. Of course STL has its plan9 unicorns too ("better, but the predecessor is good enough so we use that") - for example QT, or even WTF.
Third route is to just treat C++ as C with classes and ignore most of its problematic features (references, scoped destructors, templating, operator overloading...) so that rules stay basically the same as with C - code can be read more or less intuitively, top down, procedural fashion, with minimum of hidden side effects. Then C++ becomes a convenient syntactic sugar.
If you want less broken OO language for system programming, just use something designed with that in mind. Go, Rust...
No, C++ gives rise to very constrained abstractions. The way you abstract and the tools you use to do so are railroaded by the fear of computational cost of the C++ designers. The only way to get anything semi-abstract out of it is with the template explosion of STL and Boost, or large amounts of manually added runtime code. I would not call this "powerful" in comparison to the rest of the field.
Agreed. The frankenmonster C legacy is somewhat unfortunate, in combination with weird degrees of freedom to accomodate it. However what else is actually out there integrating with C, directly at semantic level, ie not as mere FFI.
>>45 Crystal is really cute, owing much to orthogonal design of ruby OO. Still in its infancy, also needs a proper GC (or even better, rc).
Already using it to port some slow ruby tools.
Name:
Anonymous2016-05-05 21:53
>>46 What C++ did with C hardly qualifies as integration, but its particular brand of integration was not as much a mistake in the particular instance of C++ as it was in general. The question is not "What else integrates™ C?" — it's "Why the hell would I want to integrate™ C?". If you want something that is fundamentally different from C, don't mix it with C, full stop.
Name:
Anonymous2016-05-05 22:12
If you want something that is fundamentally different from C, don't mix it with C, full stop.
Yet binding generator libraries consistently try (sometimes poorly). Ever had to deal with boost-python?
Clearly there is some demand to directly bridge code. LuaJIT-like FFIs are somewhat popular for this reason, as it exposes direct view of C namespace to the host language without need to actually re-declare the import C arity/structs using some special, host-specific facilities. Sadly this works only on clear ABI boundaries. If you want macro support, you have to pull in the whole shebang and stay syntactically compatible, just like C++ does.
>>48 Binding generators are no languages and macros in an API are shit for exactly this reason. What the fuck are you even talking about?
Name:
Anonymous2016-05-06 15:19
Forget about binding to libraries, every major OS and almost all minor OSes expose their system API in C, and assume an application-side libc dependency. That's the fundamental bullshit about computing.
Name:
Anonymous2016-05-06 19:36
>>50 People are stuck with C because the majority of today's PL researchers focus on ``lambda calculus with $type_system'' instead of creating better languages for programmers to use.
Name:
Anonymous2016-05-07 14:16
| Crystal is really cute, owing much to orthogonal design of ruby OO.
I'm using it to implement some algorithm for project euler. It's pretty fun compare to C/C++