14 ms·
> Programming with new languages comes with more compile time checking and linting, less chances to make simple stupid typo-like errors that take hours to debug
by jblow 9y ago
> Programming with new languages comes with more compile time checking and linting, less chances to make simple stupid typo-like errors that take hours to debug.
Most of the "old languages" did not have this problem. This was a product of the 90s when people built a bunch of stuff really fast without stopping to think about whether what they were building was really a good idea.
So, it's a couple of decades later, but that part of the 90s spirit is still in full force today, but there are many many more programmers. The logical conclusion is that the garbage dump being built today is way worse than the garbage dump built in the past, and that should scare you if you think typo debugging was bad.
- microcolonel 9y agoThese kids can't see the forest for the trees. All the software is getting slower and more incomprehensible, and they think it's getting better. P.S: Voting on HN does nothing to change anyone's mind. If you don't reply, you're basically just saying "nuh uh!".
- jblow 9y agoYeah, the fact that you are getting downvoted is proof that the average HN voter does not understand software.
- digi_owl 9y agoThe microcomputer kinda reset the clock on software development, as there was little co-mingling of mainframe people and microcomp people. And i can't help feel we had a similar reset with the iPhone intro, again because of a split between desktop people and mobile people.
- pshc 9y agoIf I understand your first sentence, I think it says there are "old languages" that are relatively devoid of footguns. If so, which languages?
- yjftsjthsd-h 9y agoI believe the standard example is Modula 2. Somewhat newer, but Ada is pretty great.
- jblow 9y agoJust about any old language, including C post-ANSI. The main relatively-heavily-used offenders are Lisp and shell scripts of various kinds. (And I think "oops, you made a typo, you don't find out until you try to run it and happen to ht that branch of code, oops that did not happen for three months, who knows what other bombs are sitting there waiting" is one of the primary factors in Lisp not gaining wider adoption.) I mean, C is less compile-time-checky than Pascal, but it is tremendously better than JavaScript in that regard. So is FORTRAN, etc, etc.
- lispm 9y agoUsing a Lisp compiler helps a bit. * (defun foo (alpha) (flet ((beta (bar) (+ alph bar))) (bet (beta 1 2)))) The Lisp compiler, here SBCL with its REPL, detects in this function above: * wrong number of arguments * undefined function * undefined variable * unused variable Lisp compilers have only been made available as late as 1962, so that might explain why Lisp has no wider adoption... ; in: DEFUN FOO ; (BETA 1 2) ; ; caught WARNING: ; function called with two arguments, but wants exactly one ; See also: ; The ANSI Standard, Section 3.2.2.3 ; (SB-INT:NAMED-LAMBDA FOO ; (ALPHA) ; (BLOCK FOO ; (FLET ((BETA # ; #)) ; (BET (BETA 1 2))))) ; ; caught STYLE-WARNING: ; The variable ALPHA is defined but never used. ; in: DEFUN FOO ; (+ ALPH BAR) ; ; caught WARNING: ; undefined variable: ALPH ; (BET (BETA 1 2)) ; ; caught STYLE-WARNING: ; undefined function: BET ; ; compilation unit finished ; Undefined function: ; BET ; Undefined variable: ; ALPH ; caught 2 WARNING conditions ; caught 2 STYLE-WARNING conditions FOO
- sgift 9y agoif(foo = bar) { ... }