18 ms·
Wrapping Up 2021. Leaving C++
- turminal 5y agoIt's interesting that the author doesn't like the complexity of kubernetes, but it appears they love complexity in the languages they use.
- tonetheman 5y agoThe Jai comment in the article is funny.
- artemonster 5y agoI think it reflects the opinion of the masses about Jai quite well :)
- cableshaft 5y agoYeah no kidding. I understand not wanting to deal with nonstop support issues on releasing it, but just release it with a big "SOLD AS IS" warranty sticker on it, throw up a forum, and let the community help itself on it while you go back to making your game and ignore people who DM you about it.
- feffe 5y agoI think Jonathan may have a bit of OCD himself and don't want to release something imperfect. This is meant as a tongue in cheek comment. Don't get offended anyone!
- gameswithgo 5y agoWhat is the context of Bjarne being disgusted? Just years of arguing?
- CraigRo 5y agoHe's generally avoided polemicists in my experience.
- barrkel 5y agoI think the author was insinuating that Bjarne didn't like their appearance (author seems some flavour of trans).
- nomorecommas 5y ago> trans Oh, if that's the case: https://github.com/tulip-lang/tulip https://github.com/tulip-lang/tulip > I need your help! Especially if you are queer/trans, disabled, a woman, and/or a person of color, and in that case especially if you think you don't know anything about compilers. So there are niche languages for everyone. I had hoped Tulip would go somewhere, but after so long I lost interest.
- lfowles 5y agoMakes me wonder if I've too strongly tied my career to a specific language. However, right now it's not that I'm specifically a C++ programmer, just that the industry (gamedev) is largely C++. I'm sure in for it if that shifts out from under me before I find stable employment though....
- Jyaif 5y agoThe C++ programmers will just switch to C++ 2.0, aka Rust. It's not a big leap.
- einpoklum 5y agoSure we will. Just like we switched to C++ 2.0 aka Java.
- smitty1e 5y agoI keep waiting for the announcement that some propeller-head has implement the Rust borrow checker as a template metaprogram, with the caveat that nothing larger than "Hello, world." compiles within a month.
- nyanpasu64 5y agoGoogle tried and failed, and they didn't even try to model reborrowing (a hidden gotcha in Rust): https://docs.google.com/document/u/1/d/e/2PACX-1vSt2VB1zQAJ6JDMaIA9PlmEgBxz2K5Tx6w2JqJNeYCy0gU4aoubdTxlENSKNSrQ2TXqPWcuwtXe6PlO/pub https://docs.google.com/document/u/1/d/e/2PACX-1vSt2VB1zQAJ6...
- smitty1e 5y agoFor one quick read, that was a well-written exposition. In short, the type system in C++ just can't quite fully express the requirements. What I didn't see Google do in that article was trot out any template metaprogramming artillery: https://www.boost.org/doc/libs/1_78_0/?view=category_metaprogramming https://www.boost.org/doc/libs/1_78_0/?view=category_metapro...
- amelius 5y ago> I discovered that I not only have OCD but OCPD, a personality disorder. If you’ve ever had a conversation with me where I just couldn’t let something go because it was wrong or incorrect and it bothered me, now you know why. Sounds like about half of the people on internet fora.
- yholio 5y agoLuckily, now we have an alfabet soup of conditions that can cover any obtuseness, quirkiness and non-conformity of your personality. People are no longer told "your are so and so, try to not be that way any more", people now "have" conditions and, while drug treatments usually exists, it requires a lot of compassion from the rest of us.
- thomasfedb 5y agoPersonality disorders are generally not able to be effectively treated with medications. That's not to say that doctors don't ever try, but there's very limited evidence to support it.
- bluGill 5y agoPersonality disorders have been treated with therapy in many cases. What is the main reason for a label: to get the right treatment. People will never be "normal", but they can live in and deal with society, something they would have failed with even 30 years ago.
- yholio 5y agoCome on now, you can't really believe that someone who "just couldn’t let something go because it was wrong or incorrect and it bothered" them - would have failed to live in and deal with society 30 years ago.
- bluGill 5y agoFor some definition of failure. Ever read a really old book - something from the 1800s? Ever listen to your old family stories? There are many variations of "Larry, he never leaves the farm". We have no idea what might be wrong with Larry, but it is clear there must have been a lot of people who failed to fit into society. We also know that are variations, in some cases Larry would leave the farm but only for specific and controlled situations because that is all he could handle. Obvious she is getting out, but it is highly likely with some help she could function a lot better.
- indymike 5y agoMaybe worry less about languages. All through my career I've seen remarkable applications written in languages people heaped derision on, or were less than perfect in some way or the other.
- junon 5y ago> Maybe worry less about languages Why should someone who contributes to the development of the language specs themselves "worry less" about languages?
- indymike 5y ago> Why should someone who contributes to the development of the language specs themselves "worry less" about languages? Why not spend time solving different problems and then go back to languages? Why must one dedicate their life to a single field of expertise? The author was doing devops (with golang and kubernetes - the article is worth a read just for his take on kubernetes) work and said it was more rewarding than his work with C++.
- junon 5y agoWho said their only interest was languages?
- smitty1e 5y agoI sincerely hope that the author finds joy. Great things come from those unwilling to settle. But the Kubernetes riff was telling: when using a cloud provider, so much of the system management is provided. When we insist on DIY, we get to DIY. So maybe settling a bit here and there isn't catastrophic.
- FabHK 5y ago“The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.” ― George Bernard Shaw, Man and Superman
- RcouF1uZ4gsC 5y agoI always hate that quote. Much of the misery and suffering in the world also comes from the unreasonable man. Every tyrant is trying to adapt the world to himself. Every stalker is trying to adapt the world to himself. Every poacher is trying to adapt the world to himself. Every vandal is trying to adapt the world to himself. Many a murderer is trying to adapt the world to himself. Every person demanding Ivermectin to treat Covid is trying to adapt the world to himself. Trump spread the lies about the 2020 election trying to adapt the world to himself. In addition, the reasonable man is also adapting the world to himself. Every time you turn on the air conditioning or heat, you are adapting the world to yourself. Every human is trying at some level to adapt the world to himself while also recognizing that some things are easier to change than others. In addition, many of our greatest advances came from people who knew how the world worked and carefully pushed change along 1 dimension. Every scientist with a ground breaking discovery appreciates the fundamental laws of nature and works within those constraints. The quacks forever making perpetual motion machines are trying to adapt the world to themselves without realizing the constraints.
- turminal 5y ago> But the Kubernetes riff was telling: when using a cloud provider, so much of the sustem management is provided. Way too much for most usecases out there. And if you don't understand it, you can't fix it when it breaks.
- nairboon 5y ago> I simply have to accept that there is nothing out there for me. That I will be miserable as long as I continue to work in tech, and that nothing will ever bring me joy in this space ever again. And I have the C++ committee to thank for this. How did the C++ committee cause this?
- junon 5y agoDid you read the article? They've fought the committee for years. It's a huge problem the C++ committee is known for.
- smus 5y agoThat doesn't answer the question. A language committee not implementing changes someone wants cannot be and is not the source of someone else's life-long misery. I with the author the best in finding a more sustainable and healthy way of constructing meaning
- otabdeveloper4 5y ago
- MontagFTB 5y agoThis is an inflammatory comment that doesn’t add much to the conversation. Care to revise it?
- otabdeveloper4 5y ago
- mysterydip 5y ago> The last 10 years of my life writing C++ in a professional context were a complete waste of time that I will never get back. I have nothing to show for it. I don't get this part. The language you write something in has little to do with how useful the software is. I've had years writing fulfilling software, and years where I was just spinning my wheels.
- wott 5y agoIt seems to be one of those nowadays numerous people who invest a great part of their time into programming 'communities' to the point it becomes a defining point of their life, instead of just considering the underlying tool... a tool (or one hobby) among others. It often ends this way.
- mysterydip 5y agoInteresting. The only time I've been part of a programming community (really just forums/discord) is when the language was tied to a platform, like gamemaker studio. Everything else I've just... used.
- junon 5y agoThe author contributed to the spec. They have very strong opinions about language design. If you don't, fine, but don't drag down and dismiss those people who are on the front lines creating the tools you use.
- _y5hn 5y agoIt's just the author acknowledging all the code written belongs to some company or organization, and often, can't even be used as a showcase. It was work for money, plain and simple, but may become a hard sell later. However, it's not necessarily true. Working with large codebases, working on language design questions, committees, everything grows experience that can be used later. It's just not clear now how, as requirements and work in other companies or in FOSS may be very different than that C++ development. The author mentions Go as a positive experience. If the ego could be left at the door, Go could be a good language to make a new home in. Either that or Haskell, though with much more investment in all layers. The language and tooling can have very much to say for overall development and maintenance. Also architecture and design matters, as well as changing requirements. It's all very simple or complicated, depending on unknowable X-factors that often need to be decided up-front.
- exitcode0 5y agoYou will always be welcome in the Ada++ community : ) http://www.adapplang.com/ http://www.adapplang.com/
- ncmncm 5y agoI got as far into the tutorial as "Ada++ requires variable declarations to be made in a specific area called the declarative part", said "that's stupid" (actually out loud), and abandoned it. Then wrote this. (You're welcome.) Even C ditched its separate section for variable declarations.
- exitcode0 5y agoThe advantage of declare blocks would be the structure they provide - both in terms of understanding how much memory usage a subprogram can have in branching scenarios, but also as a way of showing the programmer possible areas where the problem might be better broken up into smaller pieces. Note that within these declare blocks you may also declare new types and further subprograms - something which cannot be done within the body of a C function. Imagine the possibilities there : )
- pyjarrett 5y agoI understand how it can be frustrating, but it can also be super helpful. I'm not super familiar with Ada++, but in Ada all declaration areas are the same. You can declare anything (types, functions, variables, tasks i.e. threads, or even full packages) in any declaration area. This is actually somewhat powerful in being able to write everything locally and then refactor it out to where it belongs. Writing tasks in declarations is interesting because they operate like C++ jthreads, so the related block of statements won't exit until all threads complete. You can get around this by detaching work by using allocators, but that's more advanced.
- Atomskun 5y ago[flagged]
- tester756 5y ago> Imagine needing to announce your "departure" from a community. Nothing weird about this.
- spyremeown 5y agoYep. The whole "if you wanted to know why I was an ass to your, it's bc of OCD" argument is bullshit. That's not an apology, that's an excuse, and there aren't many of those to justify treating people badly.
- blitz_skull 5y ago
- hobo_mark 5y agoI routinely follow cppcon videos and the only ones I cannot make it through are those from the author of this post, exactly because of this attitude.
- jonway 5y agothis is just from wikipedia for context: "Obsessive–compulsive personality disorder (OCPD) is a cluster C personality disorder marked by an excessive need for orderliness, neatness, and perfectionism." Comports with this in my opinion. Having known some people who were called "Type A personalities" who tend to be great at metrics and goals but not always so great emotional intelligence. Narcissism is common etc. This is the kind of person who will fixate on an uncleaned toilet or rattle in their car for weeks, losing sleep. Recalling one person I've known with these traits, she sounds a lot like this person. After a couple of decades and seeing her raise a family has convinced me she is indeed Human, if she had gotten therapy things would be a lot different. She's much more pro-social, though she also didnt really maintain her friendships but she definitley never had a career with walls of compiler warnings to ignore. That might have killed her. Closing her blog, Izzy expresses a deep frustration and lack of any derived meaning from what she had viewed as her purpose (c++ I suppose) as well as a general feeling of isolation. If you are feeling some shadenfreud about this for some reason, its clear she is very unhappy. It doesnt seem particularly rational to view languages this way. My impression is that this person is probably in distress and depressed. If this were my friend I would be making phone calls. Izzy: Good luck, lady. C++ is hard, but so is life. Keep looking for that purpose. If you happen to read here, I suggest volunteering at an animal shelter. Just working on something less demanding and quite possibly more rewarding is a great therapy break, as you've found from your Ops position. You are well positioned to tackle this. [] - https://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_personality_disorder https://en.wikipedia.org/wiki/Obsessive%E2%80%93compulsive_p...
- dilawar 5y agoMay be look at Nim.
- adamnemecek 5y ago> A lack of default arguments, a lack of basic arity overloading, a lack of variadic generics, all make me not want to write Rust. I'm sorry but these are such superficial problems. I don't need overloading (arity or otherwise) since Rust kind of has overloading thanks to the traits. Variadic generics might be necessary since C++ doesn't have a good macro system. But Rust does so you achieve it that way.
- junon 5y agoRust has an abysmal macro system that cannot be properly tooled for.
- ogogmad 5y agoI guess this is why macros aren't the be-all end-all solution to problems in language design: It's difficult to construct tooling around them. It could be argued that "functions" are a form of programming language extension that are friendlier to tools. For programming-language fascinated beginners, this could be a good way of motivating "functions" as a language feature.
- junon 5y agoI agree, and I would love to see more exploration of this in non-toy programming languages for sure.
- gefhfffh 5y agoCan you explain how variadic generics are solved by traits, please?
- hzhou321 5y agoIt appears that the mean, the language and tooling, has become everything, and the end, the software or the program or the results, has been reduced to nothing.
- dm270 5y agoThrowaway. Having worked in the same company as the author I have to say that I highly respect their work for the c++ language, the continuous effort it takes bringing those abstract concepts into the standard, many not understanding them easily but eventually benefiting from them as an end user. As a distant colleague it was hard to judge their influence on the codebase though. They do have a reputation in the c++ community but it always felt like I didn't see their footprint in our system (as in meaningful PRs) and that they had very strange working hours, strong opinions and preferred working on unrelated semi-personal projects. I wonder if there was any language and community they'd feel comfortable in.
- quietbritishjim 5y agoIt's great to hear that the author got a diagnosis for their condition (I hope that "condition" is not too unsuitable a word). I'm not very familiar with such things, but I can imagine that could be an important first step to understand and mitigate it. But it seems to me that they're still some way off from understanding their condition. They characterise it as having "extremely high standards" or not being able to tolerate things that are "wrong or incorrect" as well as others. But, from the rest of the post, it sounds like the real issue is something else: where there are genuine engineering trade offs to be made, they get fixated on a single aspect at the expense of any others. When a decision has two or more dimensions to it (e.g. syntax cleanliness vs backwards compatibility, or language flexibility vs simplicity), then someone fixated on a single dimension is always going to be unsatisfied by the decision of someone who tries to make a careful balance. One result of this is that their language to describe their situation continues to problematic. If you disagree with someone, then it's fair to say "sorry, I disagree, I guess aspect X is more important to me whereas aspect Y seems more important to you". But it's unhelpful to say "sorry, I guess I just have trouble tolerating how wrong you are".
- mgaunard 5y agoMost good programmers have OCPD. I think the more serious problem with that person is the lack of awareness of their own narcissism.
- diamondo25 5y agoIsn't this exactly like that "god complex vs imposter syndrome rollercoaster" meme? First you think you know nothing, then you feel like the best of knowing something, but then another thing happens that you know nothing of, etc. I don't think this should be straight up attributed to narcissism. Just "doing your very, very best to get things perfect" is not a trait of a narcissist. Better yet, they usually say they are, but have 0.0 credibility of doing that, and will try to disprove any hint that would, basically, hurt their ego or image.
- dragonwriter 5y ago> Most good programmers have OCPD. No, they don't. Attention to detail isn't OCPD.
- JediPig 5y agoWarning Vulgar ahead When I left C++, I felt like, I finally decided to quit rubbing one off with diamond sand paper.
- chrsig 5y agoThis is the correct feeling. I write some c++, as well as some amount of code in other languages. I wouldn't consider myself part of the cpp community. c++ is hands down the most frustrating to deal with, and leaves me asking why I'm doing it to myself. The answer is, of course, that there are some things that're really only possible in c and c++...and however much I'd typically prefer to just do something in c, c++ has a way of luring you in with the promise that it'll be just a bit more ergonomic and safe....And it is, kinda. But sometimes it feels like the entire cpp community is one giant case of self induced Stockholm syndrome...They wont change the fundamental things that make it difficult. On the flip side, there seems to be some fetishization of incidental complexity. I have the impression that many in the community pride themselves on how smart they must be to work with such a difficult language, without considering that there could be a language that's significantly easier to use with the same benefits. Or using that difficulty as a gatekeeping mechanism to insulate the community from the less-smart. I'll posit this: c++ isn't hard, it's just frustrating because you need to parse incomprehensible error messages, or seemingly arbitrary limitations, or have some ridiculous number of overloads... And then the naming that they decide on in committee...I'm gonna pick on `std::unordered_map`. The name describes it based on what it is not. The reason it's named that is naively, just because `std::map` was already taken by a tree implementation. I don't know why they couldn't have chosen something like `std::hash_map`, or something. The template parameters declare a hash _functor_ is necessary...so the reasoning that you might have an unordered map implementation that doesn't use hashing is up in smoke... ...I'll stop there, because I could probably keep going for quite some time. My point is that c++ isn't hard, cpp is dumb. It's dumb because it makes some of the simplest things contorted into ordeals.
- af78 5y ago> I don't know why they couldn't have chosen something like `std::hash_map` According to Herb Sutter the name `hash_map` (or `hashmap`) had already been taken by some C++ standard library implementation that shipped a class with this name in the std namespace: http://www.gotw.ca/publications/mill20.htm http://www.gotw.ca/publications/mill20.htm
- ferdowsi 5y agoThe author seems depressed and is displacing their frustrations onto a programming language. A programming language isn't going to bring you real joy, that can only come from within.
- deleted 5y ago[deleted]
- ncmncm 5y agoRule Number One: The ISO C++ Standard Working Group is not the source of your life dissatisfaction. Neither is your current choice of programming language (unless it's Java). The WG isn't even one group. It is just a lot of people drawn together to work on what will end up one thing, the next Standard. And then another. Any impression of coherency is illusory.
- viktorcode 5y agoI find it strange that the author treats spending time with a language as a personal sacrifice. If that's the case, maybe quit programming altogether? No matter what you work on, language or a piece of software, if you think you are sacrificing part of yourself, just stop. It's not worth it.
- deleted 5y ago[deleted]
- ezekiel68 5y agoBack when there was an in-person conference named "SD West" (usually held in San Jose or Santa Clara, California), I used to attend occasionally. I met Bjarne there on multiple occasions, including one time in a hallway between sessions. We talked like people do. I believe I asked him what he though of Qt as a cross-platform C++ GUI solution (this would have been around 2005). He gave me his honest opinion and we discussed one or two other subjects and then went to our separate sessions. He's just a regular guy who is (or, at least, was ) very approachable in such a context. BTW, I'm not "anybody" in those circles. Just another software engineer among many.
- einpoklum 5y ago> I have ... extremely high standards for everything ... it causes me extreme distress ... to have to deal with things that are less efficient ... That's somewhat of a curse when it comes to (most) software engineering, but doubly so for languages like C++ which: 1. Have many decades of baggage (40 + C's baggage from before). 2. Have backwards compatibility and non-breakage as one of their goals. 3. Are not designed by a single person or unified entity, but by a committee representing a diverse array (excuse the pun) of interested parties. 4. Have a slow evolution process which favors consensus and partial and gradual adoption of ideas. Such a language will inadvertently fail to satisfy the author's sensibilities and expectations. He is certain to get frustrated about issues with the language which don't get addressed, proposals which come up and languish for years and years, limited changes which seem half-assed, etc. - and that's even without being active in the circles around the standards committee. That's as far as the language is concerned. --- I can't speak to what people in those circles are like personally; I've never been in touch with any of them except barely with one or two (and one was nicer while the other not so much). But I can certainly relate to developing a dislike for a programming language because you've seen "how the sausage is made" and have an aversion to it. ---- > I’ve sadly burnt all of my energy the last 10 years on C++. I've had this happen in other initiatives in my life. You want to give something your all, really take it forward, you have good ideas, which people even recognize, if pressed, as such - but it's like you're trying to push an elephant in one direction or another (or an Ent, I guess). It just won't budge, and when you try to hard you get chaffed at best and injured at worst. And there's often zero recognition of your effort.
- nyanpasu64 5y agoI agree with the comment, other than that the author is (approximately) a woman, and it's incorrect to refer using "he".
- einpoklum 5y agoHmm... ok, but I couldn't tell from the article, and the website's name is "izzy", which I mistook for a male name. I can no longer edit my answer though.
- notacoward 5y agoFYI: the author is named Isabella and AFAICT uses female pronouns. In light of that, the amount of "he" and "him" in the comments so far seems a bit excessive. EDIT: it looks like a lot of those comments have been cleaned up or deleted since I first made this comment. Thank you.
- digitalsin 5y ago
- coddle-hark 5y agoIt’s xe/xyr according to the linked Twitter profile.
- notacoward 5y agoI stand corrected. The first source I found was https://cppcast.com/guest/imuerte/ https://cppcast.com/guest/imuerte/ which uses she/her. I guess it has changed over time. In either case, male pronouns (or "this guy" in one still-extant comment) are incorrect and seem like the result of stereotyping or opposition to modern gender reality.
- coddle-hark 5y agoYour use of she/her seems like the result of stereotyping trans people. Everybody loses when we play this game. You can’t expect people to hunt down the preferred pronouns of everyone that writes an article before discussing said article. Your comment is no more substantive than comments correcting spelling or grammar, it’s just noise and doesn’t contribute to the discussion.
- notacoward 5y ago> You can’t expect people to hunt down the preferred pronouns of everyone that writes No, but I think it's perfectly reasonable to expect they'll look at the name at the bottom of the article and use the most likely matching pronouns instead of assuming male because it's tech. If that turns out to be incorrect at least it's an honest mistake, not a stereotype. "You can't expect" is just an excuse for not making any attempt to respect people's wishes in this regard, and IMO counts as transphobia.
- nuclx 5y agoGet over language fetishism.
- its_bbq 5y agoI met Izzy a few times at cppcon and always came away impressed. I have basically the same thoughts about the c++ community -- it burns people out and it's filled with a ton of negativity and ego and it's very hard to get anything done. While I was at Google I spent some time trying to push for some sort of codes of conduct after a colleague of mine had a reasonable proposal ripped to shreds in email groups with all sorts of inappropriate sexist and personal attacks. I got absolutely nowhere. Don't get me wrong, there are many good people there pushing for positive change but the amount of inertia in that scene is just staggering. I'm glad you got out and decided to do something more meaningful with your talent, Izzy
- will4274 5y ago> email groups with all sorts of inappropriate sexist and personal attacks. Do you have a link to the mails / mail archives? I guess I don't typically see that conduct from the C++ community - be interesting to see what I'm not noticing.
- bluGill 5y ago>inappropriate sexist If this was internal Google communication as it sounds then you should go to HR about sexist communication, if that doesn't get results then go to the victim and encourage a lawsuit against the company
- ncmncm 5y agoHint: HR is not your friend. HR's primary job, overriding all its other jobs, is to spy on you on behalf of corporate. Second is to save the company money on lawsuit payouts. The only saving grace is that, sometimes, a low-level HR functionary has not got the memo that this is their primary job, and might actually do something helpful. The primary job of the Director of HR, an the other hand, is always simple corruption, graft, kickbacks, as much of it as they can manage to keep track of. It does no good to try to hire one who won't; they didn't get into HR not to. So, if you think your HR director seems not to, it just means they are playing a deeper game, one probably more harmful to you and the company.
- mwattsun 5y agoSince the author is open up front about their OCD issues, this talk immediately came to mind. It's a bit of an elaborate tongue-in-cheek joke, but I found it personally helpful for thinking about why a choose a language. Pervert in this context does not mean sexual deviancy. In the Lacanian sense, a pervert is a person who enjoys being a vessel of the rules. The Pervert's Guide to Computer Programming Languages - SXSW https://www.youtube.com/watch?v=mZyvIHYn2zk https://www.youtube.com/watch?v=mZyvIHYn2zk The Pervert's Guide to Computer Programming Languages Psychoanalysis and Software What are the issues with selecting a programming language? • Which programming language should we choose? - Just saying: 'use the right tool for the job' begs the question • Why are there over 1000 programming languages? • How do we critique a programming language? • Why do language designers create new programming languages? • Rational reasons • Maximize expression while modeling: • a specific problem • a broad range of problems • Psychoanalysts: "Many decisions are not rational" • Programming language choice can be rational, non-rational, or a mix • Use Jacques Lacan and Slavoj Zizek's critical theory • Critique non-rational decisions • Discover ulterior motives (ours and others) • Explain the diversity of language options Jacques Lacan • French psychoanalyst and philosopher • Extremely cryptic • Preoccupied with desire and enjoyment • Popularized the mirror image, the Big Other, and the triad of the Imaginary. the Symbolic. and the Real • Believes all humans fall into the three basic mental structures of psychosis, perversion, and neurosis Why the 'Pervert's Guide'? • Based on the Pervert's Guide to Ideology by Slavoj Zizek • Pervert is a person who enjoys being a vessel of the rules. • Zizek calls the analyst's method of discourse the pervert's discourse • The analyst sits in the position of the object of desire for the subject. • The analysand projects his or her ideals onto the analyst (transference) • When we analyze programming languages we are operating in the analyst's (i.e. pervert's) discourse.
- mwattsun 5y agoI re-watched it since I am once again thinking about programming languages 17:15 "Slavoj Zizek likes to say that obsessional activity is doing something in order to do nothing" which to me sounds like pursuing a goal without ever wanting to achieve it, liking the pursuit more. 41:10 C++ is an obsessive language So by this measure, Izzy Muerte developed a effective strategy for themselves, since they are a self-described obsessive working in an obsessive language and says they wasted 10 years of their life on C++ while accomplishing very little. So, success? I laughed at this point at 34:55 "Closure is what I call the ultimate perversion language" because Rich Hickey comes across to me as a subversive disciplinarian (no offense intended)
- xbar 5y agoThe author is having a human experience, but I do not find it relatable. I do appreciate her high-level comments on non-C++ languages as amusing and accurate complaints.
- pezzana 5y ago> 2021 was not too kind to me. I discovered that I not only have OCD but OCPD, a personality disorder. Then later... > I simply have to accept that there is nothing out there for me. That I will be miserable as long as I continue to work in tech, and that nothing will ever bring me joy in this space ever again. And I have the C++ committee to thank for this. It sounds like the author has made a self-diagnosis, and is not currently seeking treatment with a licensed therapist. There is no language around addressing the disorder, and plenty of blaming external forces. If so, it might be worth exploring the option of therapy.
- pyjarrett 5y ago> So what is out there for me, if not C++ or Rust? Ada. I write C++ professionally and used Rust for about a year, but don't use it anymore. In many ways, Ada feels like a much simpler implementation of the C++ feature set. The language lets you focus on intent, while still having a lot of control. Yes, Ada's still alive and kicking, it has a package manager, documentation generator, parsing/semantic analysis library, and a language server. There's been a *massive* modernization push over the last year of the ecosystem. If you download Alire, you can install the FSF GNAT toolchain and get set up super easily. Some of the older parts of the GNAT tools are showing there age, but they're already there and the ecosystem is significantly better than you'd expect. Regarding multi-platform support, I routinely swap between Linux and Windows testing things out. > A lack of default arguments, a lack of basic arity overloading, a lack of variadic generics, Ada features are opt-in, and you use what you want. It has default arguments, arity overloading, and destructors when needed (with Controlled types). Interfacing with C is super easy, as is bringing in compiler intrinsics. Generics (compile-time templates) are a little weird because you can instantiate an entire package (namespace) with types/functions. They can also take other packages as parameters or you can just write a singular generic function. However, it's missing compile-time ops, variadic generics, and move semantics. - https://learn.adacore.com/ https://learn.adacore.com/ - https://alire.ada.dev/ https://alire.ada.dev/ - https://pyjarrett.github.io/programming-with-ada/comparison.html https://pyjarrett.github.io/programming-with-ada/comparison.... - https://www.adaic.org/advantages/ada-202x/ https://www.adaic.org/advantages/ada-202x/
- Quekid5 5y ago(Veering a bit off-topic, forgive me.) Is there any non-proprietary Ada/SPARK implementation? I've heard some good things about Ada/SPARK, but DDG hasn't been much help in finding out if there's any non-proprietary implementation of SPARK of decent quality.
- pyjarrett 5y ago> Is there any non-proprietary Ada/SPARK implementation? Yes, it's now available as part of GNAT. The integration in GNAT Studio is good and lets you prove a single line or entire file in the IDE. I mostly write Ada for my projects and have only dabbled in SPARK. It's super interesting, but also ridiculously hard. I don't have any formal training in this, but to me, I found it at least as on par with C++ template metaprogramming in terms of difficulty.
- sys_64738 5y agoThe English punk band the Clash answered this succinctly: Should I stay or should I GO.
- Koshkin 5y agoWell, when I look at Go's mascot, the only thing that comes to mind is, "When a man's gotta go, a man's gotta go..."
- casuaobserv 5y ago
- junon 5y ago
- pjmlp 5y agoFully agree, without people like her the committee only gets poorer.
- quietbritishjim 5y agoI read the whole article before posting my comment (which is currently top voted, at least it looks like that to me, so maybe that's what you're objecting to). It's quite possible I've missed something, or a lot of things, but your comment isn't helpful determining that... You just said to read the whole thing again. Ok, but what specifically have I got wrong?
- junon 5y agoWhat gave you the impression I was directly referring to your comment?
- quietbritishjim 5y agoWell, nothing in your comment gave me the impression you were referring to anything in particular. But I was honestly trying to understand what your point was. Really, it just comes across as unspecific rant, so I think I was being pretty generous.
- junon 5y agoWhat in my comment is "unspecific"? Most of the comments here are speculating about the author's mental state, claiming they must have self-diagnosed this issue (which isn't true), or that they just need to find another language to write apps in (missing the point they were an active contributor to the spec and cared deeply about this language). Very few of them are actually addressing the content of the article itself, instead dismissing the author as either insignificant to the cause or just being whiney, etc. I have quite a few comments here pointing that out to people. If you didn't get much worth out of my comment, or if it was obvious, perhaps you weren't the intended reader.
- titzer 5y agoConsider it an opportunity to branch out to new languages and new ways of thinking. It's good to take a step out to fresh air and take off the reality distortion field helmet that goes with any community of people invested in a particular way of doing things--and I mean that in a broad way, not just technology. I spent close to a decade doing and thinking about things primarily from a JVM-centric point of view. I wrote C for a number of years, I wrote Java for a number of years, then C++, and worked on JavaScript VMs. Let me tell you, all those communities have their distortion fields. There are zombies of all kinds! (heh) I have my own, custom distortion field. It's good to escape and see things from multiple different perspectives. You should feel hopeful! Lots of other things are cool and fun!
- deleted 5y ago[deleted]
- refresherd 5y ago"This year continued with folks I’ve known for years just dropping out of contact. Calls unanswered, messages unread, numbers disconnected, emails unanswered." This left me sad. A piece of unsolicited advice from someone who maintains friendships well (I hope!) When you slip up socially, like making an awkward comment - did you do it because you just don't care? Or were you trying to make a well-received comment, and you're just less adept at socializing than you'd like to be? My guess is that socializing just isn't your strength. But I'm sure you're well intentioned! Very few people try to do things because they want to be stupid. And it hurts when people assume that you're bad at socializing because you somehow want to be bad at it - that isn't true! But here we have a thing that you're good at (efficient C++) and yet you've made some assumptions about others that feel the same. You "...have to deal with things that are less effecient because someone just didn’t give a damn." Do you think it's really because the people involved don't care? Perhaps they're bad at it. More likely, they have different things they're optimizing for than efficiency. But whatever the reason, the least likely reason is that they don't care about doing things well. Even people who struggle with something typically want to do it well. I think the OCPD is one thing - but the thing I would work on fixing first is to just assume the best out of others. Friends will drop out of touch with people who consistently assume the worst of them. You need empathy - few people are trying to do the wrong thing. They are doing the right thing given a different set of values; rarely, they're doing the wrong thing because they're incapable. But almost never are they doing the wrong thing out of a preference for not doing the right thing.
- synergy20 5y agoI actually like C++, it is not perfect for sure but it's getting better, plus the famous "there are only two kinds of languages: one that nobody uses, one that many complain". In the end there is really no alternative, in fact there is none. I could not find a language to replace c++ myself in practice, so I will keep using it all the way.
- ncmncm 5y agoThis is it. Izzy could abandon all C++ committee work, like the other 4 million C++ programmers, and just use the language to get work done and accomplish goals. Maybe publish a library or two in Boost that might take off, and finally be pushed into the Standard by appreciative users. Abandoning a productive language because of not getting enough of your proposals accepted looks pretty sour-grapesy, so to speak. Almost everybody who got anything into a Standard got only one thing in.
- codr7 5y agoI used to feel mostly the same about all programming languages out there, all I could see was flaws. Then I started designing my own languages and was forced to admit that flaws are inevitable, and every time you start over again trying to fix them new ones emerge as a consequence of the changes. Better to appreciate the strengths of each language. The same mindset can be applied to anything including other people; no one is perfect, better to appreciate the aspects you like. That doesn't mean allowing others to treat you badly, just not focusing on imperfections. And once you do, magic happens, because you will automatically stop focusing on your own imperfections as well which is a much nicer way to live. That doesn't mean stop improving, just not beating yourself up for being what you are.
- csmpltn 5y agoIt must be frustrating to propose a bunch of ideas, cultivate and advocate for them, only to never see them acknowledged or accepted by the standards committee over the course of years. That being said - let's get real about this. Simply coming up with a bunch of ideas for improvements is not enough. Neither is being vocal about it on Twitter, or giving talks at a convention. Gaining the community's support and acknowledgment is key here. That you feel something is an "improvement" doesn't mean others see it that way. Same for "faults" and "imperfections". This isn't the community's fault, or Bjarne's. This is the reality of working in a team. On a language used by millions of engineers around the world, which powers every facet of our modern society.
- mgaunard 5y agoEspecially for committee work, it's quite clear once you go there that what matters is being sponsored to attend regularly and build up relationships so that you can get experienced people on your side. People on the committee are not sufficiently good to just accept a proposition based on technical merit alone. The whole thing needs to be made accessible and easy to digest, and preferably integrate well in what others want to do. It's political work, which is tedious and frustrating. Some people are good at this (especially if they can figure out a way to integrate that into their career), but for most people, it's just a waste of time and effort.
- digitalsin 5y agoGood lord, the amount of self importance, ego, and whiny idiocy in this post is astounding. People not accommodating what you consider are high standards cause you physical pain? Seriously?? SERIOUSLY? Since you're doing work for cancer research, maybe go see how people with cancer have pain compared to what you apparently feel when someone doesn't comment their code to your standards you nitwit. You're not special or important, get over yourself.
- mmargerum 5y agoI enjoy writing code in objC/Pascal/Go/JS/Lisp/Swift. They all have their beautiful parts IMO. Funny the one I enjoy the least is the most modern: swift. Xcode and platform lock in may have a lot to do with that though.
- zozbot234 5y ago> A lack of default arguments, a lack of basic arity overloading, a lack of variadic generics, all make me not want to write Rust. I'm not sure how serious this is, TBH? I mean, Rust does have macro syntax that supports all of these things (as seen e.g. in println!() and format!() ), and there are pretty solid engineering reasons to avoid those features within the basic workings of the language. I'm pretty sure most Rustaceans would argue that Rust is quite probably Doing the Right Thing here.
- ducaale 5y agoWhy do you think Rust not supporting variadic generics is the right thing?
- zozbot234 5y agoBecause Rust is not C++?
- ducaale 5y agoWouldn't variadic generics make working with tuples of any length easier[1], as const generics did for arrays? If that is the case, then I don't see how Rust not being C++ matters in this case. [1] https://docs.rs/tuple_list/latest/tuple_list/ https://docs.rs/tuple_list/latest/tuple_list/
- nyanpasu64 5y agoIn my experience, Rust's multiple named functions is usually (not always) more clear than multiple function overloads, and practically always better than constructor overloads (you'll never convince me that std::vector's constructors are sane). However (IIRC) I wish it was possible in Rust to abstract over arity, in the case of function forwarding and tuple overloading.
- tialaramex 5y agoI'd certainly like to be able to write std::cmp::max(a, b, c, d) and find the maximum of the four parameters. But even when I most want that, I certainly don't want it enough to use C++
- mgaunard 5y agoWhy do people even bother with standards committees for library features? Just write your own libraries, no one is stopping you. Also, it looks like this person doesn't even write C++ professionally. Looks like that's the problem. C++ is a practical language for practical people solving practical problems, not for idealists.
- Matthias247 5y agoI won't comment on the rest of the blog post, but I can fully relate to this point: > Despite using golang, working with the absolute impenetrable monster that is kubernetes, taking on a helpdesk like on-call experience for one week at a time tending to configuration files over code, and not touching C++ at all, I feel more rewarded in my work than I ever did writing any amount of C++ in my entire life. I actually experienced the same in the last couple of years. Doing ops work, and sometimes really tiny code changes which still help to improve a product and get recognized by people can feel really rewarding. Standardization work or any kind programming language / library development sometimes not that much (and that is independent of C++). I think the reason for this is that in ops/support/etc environment one is working towards a known goal, which is well understood by people (peers, customers). If the goal has been reached everyone is happy, and one will likely get positive feedback. And even on the road towards the goal people will understand why it's important to get something done and help to get to the goal. E.g. code changes might not have to be perfect in order to get merged, and there might not be an extreme amount of bikeshedding. Working on fundamentals can be different: In a setting like a standard library working group often a variety of people come together which do not share the same goal, and where goals are also not necessarily "customer driven". Instead of that, people more often have their personal goals they want to achieve, and they have their own set of motivations for it. This makes it harder to get buy-in from others. Goals are also not that quantifieable (like "fix a crash" or "improve latency by 10ms"), which makes it additionally harder to argument why something is important or less important.
- santoshalper 5y agoMy experience as a career software engineer is so different from the author's that is genuinely amazes me that the spectrum of experiences is so broad as to encompass both of us. I have built software for over 25 years, in at least 30 languages/frameworks/toolchains. While I certainly believe some are stronger than others, and certainly more fit for specific purposes, I have never really given a shit about the languages or the tools and have always been able to make them work and build the product. Looking back, none of my joy, happiness, or satisfaction has come from the languages or tools themselves, but from the products I built using them and who was helped by those products. Perhaps in 2022, Isabella should work on caring less about the means and more about the ends of engineering. There are so many important, valuable things engineers can do when we stop fetishizing the tools and start focusing on the outcomes.
- chmod600 5y agoIt sounds like the author is spending too much time way up in the hights of abstraction and needs more concrete things to work on. For instance, writing more programs -- I bet there are a lot of programs where you don't even really need variadic generics (or was it generic variadics?). Don't get me wrong: I appreciate that people spend all this effort to design and evolve languages. But you need to ground yourself in concrete practice for many reasons, including your own sanity. Disclaimer: I don't know anything about the author aside from what's in the article.
- Brian_K_White 5y ago"hates implicit behavior" and "lacks arity overloading" both sound refreshingly sane to me. default arguments? I have to agree that one is hard to justify. It's not merely convenient but also does no harm that I can see, even specifically in the context of rust's special mandates. Then again it's also not a huge problem either, and maybe a good thing for rust's special goal, that you always have to supply default values when calling rather than when declaring. Not knowing this person beyond this bit of text, I come away thinking I too would probably not want to adopt many of their ideas and would be another one of the many people they are "disappointed" by for that. I do not buy their parting shot "... and I have the C++ committee to thank for this."
- ralphc 5y agoCan someone explain this sentence to me? "In fact, WG14 makes WG21 look like tech’s Che Guevera."
- rurban 5y agoWG 14 is C, WG 21 is C++. You are probably aware of the pace of evolution in the C language. Nothing happens, and if it's a horror show. The maximally take the easiest thing from C++, but usually the worst.
- flohofwoe 5y agoOn the other hand, the advantage of the glacial pace of change in the C standard is that the language hasn't been ruined yet. One of the most important tasks of the committee should be to say "no", even if that's not a popular thing to do. The right place for experiments in the C ecosystem is outside the standard, in libraries and language extensions.
- ncmncm 5y agoC started out ruined. But ate the world anyway. The C++ committee says "no" overwhelmingly more often than not. That is much of what Izzy was complaining of. Izzy got more stuff into C++ than 99.99% of others who tried. Ze spread zerself too thin pushing too many things. It is a major achievement to get one thing in.
- rurban 5y agoThey should have said no to Unicode identifiers with C11. They have now a big security mess. They should have adopted u8 instead if wchar.
- overstaffed 5y agoIt seems to me like this person needs help, and I hope they get it. I hope they have friends or family in their life that can convince them to get the help they need.
- Shorel 5y agoThe lack of any mention of D-lang disturbs me. Surely Izzy is a very informed person on language design and can have at least some opinion about it.
- pjmlp 5y agoIt is no surprise, after 10 years of Andrei's book, while the language has progressed a lot, it keeps being a programing language for enthusiasts still soul searching for a market. The community is quite nice though.
- otherlangs 5y agoAs someone with health and burnout issues who cares about correctness and fell out of love with C++ some time ago (but hasn't really gotten into Rust or Zig) I feel like I can sympathize a bit with Isabella. In my case my employer terminated me 2 months ago following an ischemic attack. I had been neglecting my health and working an unsustainable schedule since 2020. Now my family is helping me make lifestyle changes I need. The experience made me rethink my work priorities. Correctness is important to me but I'm less interested in solving the same correctness problems I've solved for many years in imperative languages like C++, Go or Java when statically-typed functional languages like Haskell offer the promise of preventing many of those problems . So now I'm teaching myself Haskell. It's not easy but I'm learning a lot and it's helping me understand other languages better as well. I hope my next employer shares similar views about correctness and functional languages.
- fit2rule 5y ago
- lenkite 5y agoIzzy, please write your own language! We need more competitors to Rust and C++. (Zig is too low-level). It would be great if you could make it a type-safe LISP!