Live data from Hacker News

Learn C

medium.com

121–130 of 182 posts

Re: Learn C

#121
post #115
post #21

Earlier quoted context omitted.

Was there any study done to the (un)reliability of C? I know for a fact practically every piece software I use is programmed in either C or C++. The sole exceptions are Anki and Gentoo's portage system, both Python. And I'm pretty sure the reason portage is so extremely slow is because it is in Python (I've checked, it's not I/O-bound). And Anki is some very unreliable software. In fact, give me a single big desktop…

In fact, give me a single big desktop software project made with a language that is not C or C++. I find your requirements odd and vague (why big? why desktop?), but speaking just for myself: Eclipse, jEdit, CyberDuck -- all written in Java. I use plenty of applications written in C and C++ too, of course; but I think that's largely due to (1) inertia in the application development industry, and (2) it took a while f…

My parent's post said C was bad and software shouldn't be written in it. So I retort by talking about desktop software because this is an area where C and C++ rule supreme.

I specified big because big software projects carry more merit. A calculator written in your favourite language might be pretty handy, but it doesn't show your language can be used for real software. I use some Python scripts, but I don't see it in a lot of serious applications, apart from the dead slow portage and Anki, which is the most buggy software on my machine.

I don't think inertia is a real factor. Most software I use is brand spanking new. Google Chrome, to give an example, is barely five years old! Most of the other software I use is from the GNOME project, which has seen a major rewrite with GNOME 3 about two years ago, where they could have chosen to write it in a high-level language. Yet practically all of it is still in C, with a Javascript layer for the Shell (which I both love and loathe).

And speed is interesting. It might be due to old compilers/interpreters, bad programming habits or oldness, but all non C/C++/C# software I have ever used, was dead slow.

Re: Learn C

#122
There is no doubt that learning c & assembly language, help programmer to understand higher level languages better, even though they will not use c or assembly in their real work.

Re: Learn C

#124
post #50

Please don't. Learn Delphi, Free Pascal, Modula-2, Ada, Oberon(-2),... and see how it is possible to have down to the metal strong typed languages with native compilers. Then understand that C and C++ ubiquity is an historical accident due to the way UNIX spread across the industry.

Accident? C did exactly what it was designed to do; allow UNIX to spread to other architectures.

Re: Learn C

#125
post #30
post #23

For anyone who hasn't browsed through Peter Seibel's "Coders at Work," one of his subjects is Fran Allen...it's kind of funny because I do agree that learning C has been valuable to the high-level programming I do today (but only because I was forced to learn it in school). But there's always another level below you that can be valuable...Allen says C killed her interest in programming...not because it was hard, but…

I think she might have given up on programming a bit prematurely. The pendulum has obviously swung completely the other way with high level languages like Haskell pushing forward compiler optimization, and JIT VMs pushing forward in other directions. It's actually an exciting time for "smart compilers".

There is no pendulum swing - Haskell remains a niche - C and its off springs are still mainstream. Have you ever checked statistics?

http://www.tiobe.com/index.php/content/paperinfo/tpci/index....

http://www.langpop.com/

C still remains the only accessible low level language to do systems programming. C compilers have been optimizing for long.

Re: Learn C

#126
post #98

Earlier quoted context omitted.

What a victim complex. If someone is debating that we should stop using C, and I ask for software not written in C, it's obvious that I'm looking for contemporary software. And the reasoning that every software is "C" because it needs to do system/library calls would be ludicrous, and to provisionally accusing me of that is insulting. I've done some research myself, and there are some interesting and big projects in…

Bingo Card Creator, by our very own patio11 (Patrick Mckenzie) is written in Java.

I thought Bingo Card Creator was a Ruby on Rails app...

Re: Learn C

#127
post #11
post #4

This is a fair point, but it brings to mind another point I didn't really understand till the last couple of years. Learning about how compilers work is just as important. Building a small lisp compiler was a life-changing experience for me in terms of going one level deeper, as much as understanding C was. For those who've never written lisp before, the reason I recommend a lisp compiler is that lisp compilers are t…

I totally agree; actually a small, incomplete Scheme interpreter (which may be used to develop a lisp compiler later on) can be easily created in few hours (depending on used language) [0], without any prior experience. It's surely not as deep learning experience as building a compiler, but I think it's still worthwhile. [0] http://norvig.com/lispy.html

http://en.m.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48...

Write yourself scheme in 48 hours (with haskell). Great learning experiance!!

Re: Learn C

#128
> You’ll realize that Object Orientation is not the only way to architect software.

I don't think C is really the way to learn this lesson - try a functional programming language to really get a feel for an entirely different programming paradigm.

Re: Learn C

#129
post #126

Earlier quoted context omitted.

Bingo Card Creator, by our very own patio11 (Patrick Mckenzie) is written in Java.

I thought Bingo Card Creator was a Ruby on Rails app...

That's the webapp. The original software is a desktop version, and patio11 wrote it in Java as far as I know.

http://www.kalzumeus.com/2006/06/28/the-sorrows-of-java-prin...

Re: Learn C

#130
post #121
post #115

Earlier quoted context omitted.

In fact, give me a single big desktop software project made with a language that is not C or C++. I find your requirements odd and vague (why big? why desktop?), but speaking just for myself: Eclipse, jEdit, CyberDuck -- all written in Java. I use plenty of applications written in C and C++ too, of course; but I think that's largely due to (1) inertia in the application development industry, and (2) it took a while f…

My parent's post said C was bad and software shouldn't be written in it. So I retort by talking about desktop software because this is an area where C and C++ rule supreme. I specified big because big software projects carry more merit. A calculator written in your favourite language might be pretty handy, but it doesn't show your language can be used for real software. I use some Python scripts, but I don't see it i…

Nobody is doubting there's plenty of great software written in C. That doesn't mean we should choose C for all the new software we write, though. I'm sure one will find slow and unreliable code written in C if they look hard enough..
Post reply on HN