<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Never going to argue with that, unless they are doing Unix development. I<br>
bite though - what _would_ you recommend?<br>
</blockquote>
<br></div>
What would I recommend, for what? I guess I wouldn't argue with you or jedd that if you're going to be writing UNIX you're going to be wanting C!<br>
<br>
I'm fairly enamoured with C# on Mono. I think that's going to be my language/platform of choice. I say "going to be", because at the moment I'm pretty heavily involved with writing web apps in PHP. I'm happy writing web apps in PHP, by the way. Although it's all quite new to me, I'm enjoying the experience. PHP is a little brain-dead in parts, but it's functional. I have so much planned to do in PHP that I might not be finished for a few years. :P<br>

<br>
Unfortunately C# on Mono has a really sorry story for UI development in its buggy WinForms implementation. I think I'm going to stick with web-based UIs for the foreseeable future. I'd like to get back to writing web apps in C# (on Mono), but I'm a long way from there at the moment and there's no reason to believe I'll catch up any time soon.<br>

<br>
I think my current application is a great example of a system that *shouldn't* be written in C. I think if you're going to be doing the kind of "batch mode" "network sockets" "string processing" programming that I'm doing that you're better off picking a safer language. I guess python would be the typical recommendation, although there are others such as Thomas mentioned, e.g. OCaml.</blockquote>
<div><br>Cool - was curious just to know what you were coding in. I think the wonder of Unix is actually how little code you can get away with, using the right set of tools, although the trend seems to be away from clever constructs and to monolithic solutions (I blame Perl).<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Although, there is something mystical (and powerful) about it.<br>
</blockquote>
<br>
I think its aged remarkably well - what hasn't aged well is more the bits at<br>
the edge (APIs etc) and some of the assumptions about how it'd be used. It<br>
dates back to a time where the competition was assembler, not high level<br>
languages. Its also interesting to note the amount of C that isn't actually<br>
in C as such - the compiler directives.<br>
</blockquote>
<br></div>
Yeah, good point. I've always been a little intimidated by how much you need to know to compile a C program.<br>
<br>
Coming from a statically typed language like C# (or Java) into C is a scary journey. You lose all the safety that you've come to know and love, and this impacts heavily on the kind of design decisions you can make.<br>

<br>
I think the absolute failure of C is its approach to strings, it should have standardised a string structure that included the string length. And it probably should have done the same for arrays and included index bounds checking.<br>

<br>
I think I'm probably going to implement a FuckedString structure for my strings in C like the one that Spolsky dumps on.</blockquote><div><br>The real condemnation (for me) is around using libraries in C - even if you are a good C developer, you'll get a hell of a shock when you go to look at some APIs...<br>
<br></div></div>