The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
1. The lounge is for the CodeProject community to discuss things of interest to the community, and as a place for the whole community to participate. It is, first and foremost, a respectful meeting and discussion area for those wishing to discuss the life of a Software developer.
The #1 rule is: Be respectful of others, of the site, and of the community as a whole.
2. Technical discussions are welcome, but if you need specific programming question answered please use Quick Answers[^], or to discussion your programming problem in depth use the programming forums[^]. We encourage technical discussion, but this is a general discussion forum, not a programming Q&A forum. Posts will be moved or deleted if they fit better elsewhere.
4. No politics (including enviro-politics[^]), no sex, no religion. This is a community for software development. There are plenty of other sites that are far more appropriate for these discussions.
5. Nothing Not Safe For Work, nothing you would not want your wife/husband, your girlfriend/boyfriend, your mother or your kid sister seeing on your screen.
6. Any personal attacks, any spam, any advertising, any trolling, or any abuse of the rules will result in your account being removed.
7. Not everyone's first language is English. Be understanding.
Please respect the community and respect each other. We are of many cultures so remember that. Don't assume others understand you are joking, don't belittle anyone for taking offense or being thin skinned.
We are a community for software developers. Leave the egos at the door.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
For what it's worth, the frenzied churn appears to be by far the worst in the web/mobile application arena. Desktop, system, and embedded development has been fairly stable in comparison. You can argue that stability comes from lack of interest or revenue (and you're probably right), but I don't mind it at all.
I envision being a web developer going for a job interview:
Interviewer: How much experience do you have with MetaXYZ framework version 2.0?
Candidate: Since it was only released a month ago, I've been working with it for a month.
Interviewer: How about version 2.15?
Candidate: I've not seen it.
Interviewer: It was released 47 minutes ago, while you were talking to our HR person. Didn't you take a look between questions?
To be fair I feel like this happens in interviews regardless. They'll use any arbitrary reason to trim down the candidate list.
Interviewer: So, here's the problem I'd like you to solve. It's a modified Traveling Salesman problem that doesn't require pure Hamiltonian cycles.
Candidate: Uhh, I'm aware this is most likely an NP-Hard problem since it's based on the TS problem and therefore has no known polynomial-time solution, but I don't have the algorithm memorized and there are a lot of edge case situations to consider. It'd take me longer than the time we have left to develop a proper algorithm since I'm not allowed to look up research papers.
Interviewer: Ahh, that's a shame.
Candidate: Hold on, has literally anyone in the organization even needed to use this algorithm in the past year or even five years? It's a relatively niche algorithm but a highly studied one, so any implementation I wrote would be inferior to the optimized algorithms available in research papers.
Interviewer: Nope. Anyways, thanks for your time.
Like can you imagine if someone asked you about Tries (yes, that's spelled correctly) or Bloom filters? And yes, this might be a little salt leaking out from a similar experience I had
For some reason this comment reminded me of The Poison Garden of Alnwick - where they have plants so toxic that touching them will kill you, but there's only one plant deadly enough to be locked in a cage...
1) builds binaries that need no additional runtime to be installed -- produces exe which runs natively. 2) Cargo packaging system is actually quite nice. 3) very C/C++-like so easy to learn, but I can already tell there is quite a bit of protection there so you don't shoot yourself in foot. 4)libraries are named similar to std c libaries so easy to find 5 Unit testing is built-in just decorate method with #[test] and you're ready to go. then run with $ cargo test --- AMAZING 6 syntax is very similar to Kotlin (which I know from Android dev) so at least there is some cross-over learning.
Types are like u64, u32 (unsigned), i32 (integer) f32 (float).
Made me laugh because it took me back to the days of hungarian notation[^] which was beat up by C# and VisualStudio and all the people said, "stop using hungarian notation!!" and I finally gave it up. Now, in Rust, it's kind of back. 😆🤓
Hungarian notation is fine for low-level types. The Rust names are even shorter than their analogues in C++'s <cstdint>. But it's an abomination for user-defined types and data in a type-checked language.
Types are like u64, u32 (unsigned), i32 (integer) f32 (float). Made me laugh because it took me back to the days of hungarian notation[^]
I don't see a connection between the type names you listed and Hungarian notation. The type names are simple, short, and yet meaningfully describe the type.
Hungarian notation on the other hand attempts to encode information about the value's type in the value's name. Microsoft adopted this as a standard, which caused a fair amount of the programming community to follow suit.
Personally I don't like it. The cardinal complaint is that if the type changes, then the value name should change with it. The problems with Hungarian notation are worse than an inconvenience, however. To my mind Hungarian notation violates principles like implementation hiding, since it exposes implementation details in the names. I also find that the prefixes are visual clutter and make the code harder to read. I have a body of code I maintain with hundreds of classes, all of whose names are prefixed by "cls". Utterly worthless clutter.
You mean you didn't like lpszWindowText (long ptr to null terminated string)???
Man, I know how to troll on CP, just mention Hungarian Notation.
I think back in the day when people printed out code to do code reviews (hahahahaha as if anyone prints code now or does code reviews) that Hungarian was kind of nice cuz you knew the type when you looked at it. But I'm glad it's gone too. Put me down for "Happy with the present situation of variable names." Just thought it was funny that the intrinsic types are a slight throwback to Hungarian.
Man, I know how to troll on CP, just mention Hungarian Notation
No kidding. That's almost as much of a blitzkreig in the forums as a brace style debate.
as if anyone prints code now
I will admit to occasionally printing code fragments. Most of the time lately it's to compare struct definitions against interface specifications. I've got one interface now that has these lovely C struct's in the interface spec. The only problem is the compiler being used forces 4 byte alignment, which isn't documented in the struct's. My corresponding definitions therefore have to insert pad bytes to make things line up.
A few years ago the Infernal Revenue Service accused my company of padding their R&D costs, and they wanted proof of the work we'd done. Part of that proof was supposed to be a listing of all versions of all software produced over the preceding five years. Said source code, copied to CD's (this was a while ago), occupied around 120 discs. We make commercial ink-jet printing systems, so we're good at figuring out how much paper will be needed for a job. We estimated a paper listing of the contents of those discs would have required a little over 9 rolls of paper, at 40,000 feet per roll. When we asked them where they wanted the 9+ rolls delivered (each weighing several hundred pounds, and about 5 ft in diameter), they backed off. Just to be a smart ass, I did print out a directory listing of each of the discs. The directory listing alone was an entire case of office paper (2000 sheets).
Oh, and not to brag, but we could have printed those 9+ rolls of paper in about 1 day. We ain't your mama's DeskJet.