Forum Overview
::
Rants
::
Re: Also (Mini-rant)
[quote name="Tansin A. Darcos (TDARCOS)"][quote name="Dangerous Dave"][quote name="Oom Shnibble"]A lot of universitied don't teach C/C++ or Pascal opting instead for Java or C#. This means they don't know how to clean up after themselves in code. This is bad. I also do not like Garbage Collectors. They are dark fucking magic that are not to be trusted. Yes, I know that this attitude is akin to some medieval distrust of black cats or some shit but I choose to be irrational about this. Especially since a lot of developers don't know that they need to dispose of unmanaged resources in C#. [/quote] Yeah, but we can't keep introducing students to programming via Pascal. It has zero real-world applications.[/quote] You really think so? C and C++ have dreadful string processing routines. I don't know Java or C# well enough to comment but I'm not sure if they do provide as good a set of string processing routines as Pascal does, and I'll bet that if they do, the reason they do is they moved to Pascal-style strings (length is a prefix at the start of the string as opposed to a string being a block of characters ending in a zero byte). I'll spot you any odds that a Pascal application to manage text - especially, say, text searching and text manipulation such as done by word processors and text processors and formatters - will do the job with less trouble, be easier to maintain, and can be written, debugged, tested and implemented faster than one written in C or its derivatives. C (and the derivatives) just happen to be sexier and have more people interested in them. But Pascal is still going to be a better choice for a number of application environments where someone looks at the work to be done and sees where the advantages are vs. other languages. I also find it unmitigated gall that says that a university only teach programming languages that are work-relevant as opposed to ones that might allow you to learn how to think better and improve your skills as a programmer. Universities are not supposed to be technical colleges, they should teach more than how to make enough money to pay for three squares a day and a mortgage every month. They should teach you how to think creatively and to see other ways to solve a problem. If the C language had been designed correctly to take off some of the dangerous and bad constructs it could have been a far better language. And the bastard language from hell that C++ is might never have been the kind of kluge that it is. I can think of a couple of things: making identifiers case sensitive was the worst possible idea to come along in programming history. Programming is hard enough as it is and requires keeping a lot of things in ones head, now we add to this the idea that you can misspell a variable not only by having the wrong letters, but by the case of the letters even if not misspelled. And the use of the equal sign as automatically being an assignment operator is another example of sheer insanity. There is no possible legitimate reason to put an assignment in an IF statement. Thus the construct <b>if a=5 </b> which is generally valid in other languages, always ends up making a equal to 5. Which is probably not what was desired. No other language has ever had an equal sign in an expression used to assign a value. FORTRAN didn't because it used .EQ.; BASIC didn't because it knew that the only time an = means assignment is when there's a variable on the left; PASCAL got around the problem by using := for assignment, so = always means comparison. Other languages had no problem. C (well, and its derivatives) is the only language that requires == to indicate a comparison. It goes back to the days when memory was expensive and you had to find ways to simplify the compiler, and segregating assignment from comparison is one way to do it. [quote name="Dangerous Dave"]I sincerely hope Assembler is still required and first, but keeping things at C for a while is acceptable. You can at least get a job if you've been taught C for four years.[/quote] As noted, with places moving to C# and Java, they're not teaching Assembler either. I think someone once said that C was the first portable assembly language. A lot of the constructs C has translate directly to what would normally require assembly code to implement. As with Object Pascal compilers, most C compilers include a mode to enter assembly language where one has to implement something you can't do in the high-level language (usually either hardware related or requiring extreme speed, such as the direct use of assembly for doing math-intensive work such as graphics or encryption). [/quote]