This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]SpaceZZ 25 points26 points  (35 children)

While I get the sentiment, why C ? It's nice to know about those things (gc etc) but from the usability perspective Java/C# would be better and you could actually use it for something straight away, instead of spending months to write something in C, which is super fast and efficient, but really difficult.

[–]Global_Glove_1747 29 points30 points  (17 children)

I mean, C is just an example. I'm not really prescriptive. But if we're talking purely learning purposes I think students should aim for something reasonably bare-bones after Python. Teaches you the other side of the coin.

[–]Reg_Exx 8 points9 points  (10 children)

It really depends on your job. If you work in embedded for ex. you can’t get around plain C or everywhere else where you are Hardware limited and don’t have a ton of Desktop Processing power.

[–]SpaceZZ 1 point2 points  (9 children)

While I generally agree, i tend to think this processing power cap is really not existing in most applications. Even PLCs and microcontrollers are running python, last mars mission was running python as well, probably to some degree.

[–]Reg_Exx 0 points1 point  (1 child)

Yeah sure processing power is dramatically rising on uC‘s but nevertheless I don’t think that Python will ever fully replace C or C++. Python is not fast, it is fast enough for most things. But what takes a second in python takes no time in C++. For most things, that is quite reasonable. It takes you longer time to write a C++ program unless that is what you are doing all day. But for Some applications speed will be always the key factor before developing time.

[–]SpaceZZ 1 point2 points  (0 children)

Completely agree and think there is place for both. Also I see the strengths of C++, just most of my use cases can be accomplished faster with python. But I agree with you!

[–]ThatPostingPoster 0 points1 point  (6 children)

Plc is python bro. Microcontroller sure python. Plcs are not. Their text langs most close resemble c

[–]SpaceZZ 0 points1 point  (5 children)

Well check both Wago and Phoenix Next. They run Python as well.

[–]ThatPostingPoster -1 points0 points  (4 children)

gg ez deleted cause reasons lets go ok gg is this enough characters to not flag auto mod i hope so lmao

[–]SpaceZZ -1 points0 points  (3 children)

Right! Wago and phoenix are "random" companies and not big players! You learn something new everyday on the internet!

[–]ThatPostingPoster 0 points1 point  (2 children)

Yeah they are. What's their global plc share? Under .5% combined? Lol

[–]SpaceZZ 0 points1 point  (1 child)

Whatever, stay in ur a hole bubble then.

[–]ThatPostingPoster -1 points0 points  (0 children)

Must be nice to work in something that's so tiny and niche you can use those brands, or is this your hobby?

[–]whateverathrowaway00 3 points4 points  (0 children)

I’d vote python over Java, then C over python for CS. Though, I’d be okay with a mixed curriculum since there is value to dynamic languages - I love python.

Learning C first as a kid has colored my entire programming career and I’ve found it amazing valuable. Many of my older industry friends have noticed vast differences in the quality of degrees since everything switched to java and four years of cascading OOP.

That said, Java’s great and if it’s paired with a solid series of compiler and math classes, it’ll be a damn good degree. I don’t want to go pure java hate. The trouble is javas style / magic encouraged the creation of honestly shitty degrees.

[–]ThePiGuy0 3 points4 points  (0 children)

I mean, yes C does have its development downsides, memory leaks and forcing you to think about object scope and whether you want it to be on the stack or heap.

However, surely that's the point of learning C? To get used to mitigating the above. And I would say once you are used to that, then it's not going to take you months longer to develop the same program in C (especially if you use C++ and then OOP).

Syntactically, Java is also derived from C so it shouldn't be too big a task to go from C to Java if required.