4 ms·
When does it BEGIN and END ?
by chinabot 4y ago
When does it BEGIN and END ?
- raverbashing 4y agoI wonder how much of those quirks (before autocomplete existed) were determinant in a language going down in usage While you typed that a C developer could already have written a memory violation bug, think of the productivity increase C might not have been effectively better (Pascal strings were better) but it had a feeling of increased productivity
- timbit42 4y agoI think the main reason the Wirthian languages lost was firstly that Pascal wasn't designed for real world use. It was designed as a teaching language, although many implementations, such as Turbo Pascal, extended it to make it useful for real world use. This allowed C to gain popularity in spite of it being unsafe and lacking strong typing. Modula-2 came next and it was a huge improvement over Pascal but Ada came out within two years and stole Modula-2's thunder. Oberon came out even later but Ada was pretty big by that time and Oberon didn't get much use. By the mid to late 80's, Ada was the most popular language, even more popular than C and C++, for a couple of years. But then C++ overtook it. Why? Because computers were slower back then and people didn't want to give up any cycles to safety. After all, no one was online yet so security wasn't a huge concern. I think the verbosity of Ada also hurt it. In those days, most programmers hadn't taken typing courses. Then the US military relaxed the requirement to use Ada and it declined, but is still in use in applications today requiring high safety such as at NASA and air traffic control systems. NASA is using it in the Artemis programs.
- timbit42 4y agoIt began with ALGOL and it ended with Pascal because Modula-2, Ada and Oberon got rid of BEGIN except one in each PROCEDURE after variable definition and before the code begins. In Pascal, an IF statement looked like this: IF <cond> THEN BEGIN <true block> END ELSE BEGIN <false block> END END But Modula-2 and Oberon look like this: IF <cond> THEN <true block>; ELSE <false block>; END And Ada looks like: IF <cond> THEN <true block>; ELSE <false block>; END IF;