Linked by MOS6510 on Thu 10th Jan 2013 23:25 UTC
General Development "For years I've tried my damnedest to get away from C. Too simple, too many details to manage, too old and crufty, too low level. I've had intense and torrid love affairs with Java, C++, and Erlang. I've built things I'm proud of with all of them, and yet each has broken my heart. They've made promises they couldn't keep, created cultures that focus on the wrong things, and made devastating tradeoffs that eventually make you suffer painfully. And I keep crawling back to C."
Permalink for comment 548488
To read all comments associated with this story, please click here.
Member since:

"I didn't say they [Algol 60, PL/I] were top quality, only better than C.

And here we go with the blanket statements again, asserted without proof.

Sure asserted without proof.

It is based on my understanding what a better language is, by looking at the epoch documentation that I had access to, during my degree.

For me, a languages that allow the developer to focus on the task at hand are always better than those that require them to manipulate every little detail.

Usually that detail manipulation is only required in a very small percentage of the code base.

In the end I guess it is a matter of discussing ice cream brands.

If you can't support your claims, don't make them. But before you dig into it, take a look at:

So any statements you present will most likely just express your personal opinions on the matter. Oh and I have an MS in CS, so I've heard them before (including "C sux", "C rocks" and "Let's code everything in Prolog").

And I one with focus in compiler design and distributed computing.

Usually static languages with strong typing don't allow for implicit conversion among types, forcing the developers to cast in such cases.

Overflow and underflow are also considered errors, instead of being undefined like in C.

Pointers and arrays are also not compatible, unless you take the base address of the array.

Enumerations are their own type and do not convert implicitly to numeric values, like in C.

Since 1989 C has had rigorous support for this kind of compartmentalization (.h interface files, .c implementation files) and virtually every single project I've ever laid eyes on has used it. Of course it's rudimentary, but there are higher constructs on top which provide most, if not all of the features you would expect.

Well let me quote another section of the article.

Languages that formally support the module concept include Ada, Algol, BlitzMax, COBOL, Component Pascal, D, Erlang, F, Fortran, Haskell, IBM/360 Assembler, IBM RPG, Java (packages are considered modules in the JLS), MATLAB, ML, Modula-2, Modula-3, Morpho, Oberon, NEWP, OCaml, Pascal, Perl, PL/I, Python, and Ruby.[citation needed] The IBM System i also uses Modules in CL, COBOL, and RPG when programming in the Integrated Language Environment (ILE). Modular programming can be performed even where the programming language lacks explicit syntactic features to support named modules.

Somehow I don't see C listed as a language that supports modules.

Sure you can do modular programming by separate compilation, but that is not the same as having language support for it. I have done it for years.

For example, in some languages that support modules, the compiler has builtin linker and is also able to check dependencies automatically and only compile required modules.

The types are also cross-checked across modules. In C,
some linkers don't complain if the extern definition and the real one don't match.

If your hands our bound by your customer, then I suspect you have other problems in your project, not just with the language.

In the Fortune 500 corporate world, usually there isn't too much developer freedom.

"To expert C coders, you mean.

Agree, it's probably news to you. GCC, for instance, supports -W and -Wall, both of which together activate lots of helpful static code analysis in GCC (unused variables, weird casts, automatic sign extensions, etc.).

I am aware of it.

As I answered in another thread, I have done C programming between 1992 and 2001, with multiple compilers and operating systems.

Since then, most of the projects I work on rely on another languages.

"Just stating my opinion.

No problem there - when you clearly state something as personal opinion, I have no problem. It's only the assertions and blanket statements that make my blood boil. We could probably understand each other over a beer much better than over the Intertubes.
" [/q]

Yeah, it would be surely a better way to discuss this.

Reply Parent Score: 3