gray hairs, mostly
Asklemmy
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
Eh, depending on what you like to program, C, C++, and Rust are often the only languages that will let you do certain things.
If your specialty can't be done efficiently or effectively with other higher level languages, then you would be justified in thinking of those languages as BS.
Just as a data scientist who specializes in quickly sorting and comparing data with Python or R would consider C, C++, and Rust to be awful tools for the job.
If you are not using a magnetic needle and a steady hand, can you even call yourself a programmer?
Real programmers use a butterfly.
In my opinion, C purists are people who REALLY need to wash their fucking dishes, touch grass and get some sunlight. They get too worked up because "all the important things are written in C", the important things being drivers, kernel and most basic stuff that OS needs.
Whenever one talks about performance, just reply with "use Assembly" and their argument is immediately invalidated. You can also mention networking, fault tolerance and how Erlang does a much better job than C or C++ could do, which is why "real adults with real jobs" created it in the early 90s
But mostly, it's ironic that they're becoming C-Conservatives, blaming the "hot new language" for bringing "the kids". You can read the same kind of logic and disdain for C programmers, from LISP programmers, in the Unix Hater's Handbook (1994)
Nah, I like using C for low level stuff, it balances that it's reasonably high level and procedural with pretty great performance, size and flexibility. ASM is faster, but you are slower when it comes to understanding someone else's work.
For projects that aren't size or performance sensitive, write it in python or whatever the fuck you like, idgaf.
Its BASIC with big boy pants on.
disdain for C programmers, from LISP programmers, in the Unix Haterβs Handbook (1994)
I'm definitely looking that up.
But we can all agree that JavaScript was a mistake right?
Not using a derivative of Scheme as originally planned was a mistake.
Have never heard of that, will have a goggle
They see the scale of high-level to low-level languages. They see that C is on the human-practical low end of this scale. They ascribe value to being on the low end of the scale. Tada! C is now objectively(TM) the best language!
My hammer has solved every problem I've thrown at it.
I thought you were supposed to throw the hammer at the nail
When all you have is a hammer, everything is a nail.
Be language agnostic and use the correct tool for the job.
It's crazy to me that people don't do this, once you've learned a few languages you can basically just pick up new ones (assuming they don't use entirely foreign concepts like Rust does)
Rust can be picked up the same way. I was in the situation you describe. Knew a dozen languages. Picked up rust and really enjoy it. It added a dimension to my thinking (ownership). I feel closer to the metal yet safe. That said, it still gets tricky with system design. Thatβs where itβs a lot harder due to ownership stuff. Just syntax wise itβs not bad tho
It might be because I'd never used C but I really struggled to pick up rust for a month or so until it stopped feeling like
Which foreign concepts do Rust use? The borrow checker/ownership is new but that's really the only thing that doesn't already exist in some other language.
The borrow checker checks literally that you don't take foreign things, so there is that.
The borrow checker, the way it handles exceptions and nulls, the way it handles stack/heap (possibly foreign to me because I've never done much on C), composition pattern instead of oop, probably more I'm forgetting
The borrow checker
This is indeed pretty unique.
the way it handles exceptions and nulls
This is really just the fact that Rust has sum types - but those kinds of types have been used in many functional languages (Haskell for example) for a long time.
the way it handles stack/heap
This is just the same as C and C++ and any other low-level language that requires you to distinguish between the stack and heap.
composition pattern instead of oop
I mean if you're only looking at OOP languages then this will be new, but functional languages have done this for a long time.
So yea, I think a big part of what makes Rust great is that it has managed to take these really, really good ideas from functional programming languages and made them work in a language that is not entirely functional. This leads to a perfect blend/best of both worlds with regards to OOP and functional programming :)
Yeah itβs just the borrow checker and ownership stuff that throws you for a loop. Particularly with large system design
I mean if you'll look after my kids for a couple of weeks I'm right with you.
This is the way
I think some people really like iso/iec standards while others find standards "annoying".
Honestly I don't trust these old, slow standards organizations to do well at designing programming languages.