I agree with this. I also know plenty of full stack engineers who are superior in both domains to the so-called specialists.
Hubris, much?
Clojure seems too high level for SICP. Scheme was a perfect fit because of how simple it is and how few language features or data structures it contained. You had to build everything yourself, which was kind of the…
Primarily because the people who decide salaries are themselves managers.
They pretty much are as without sequencing you can only do the most trivial thing (a single IO action). Most interesting programmes are going to need at least two IO actions.
Premature optimisation ... Getting a good idea is usually harder than getting the tech right. Being able to quickly make prototypes is the most important thing in a start up. FYI I'm not a "brogrammer". I work at a…
Not sure how that's relevant. Anyway it's a logical fallacy "appeal to popularity".
I worry that we're gradually moving towards a society that sees privacy as neither a right nor something desirable to an innocent individual.
PHP is pretty popular ...
Or you could use a library explicitly designed with these considerations in mind, that offers the same powerful, familiar combinators, with resource safety and speed. e.g., Machines in Haskell:…
If we assume the operations we're talking about take time linear in proportion to the list, you've just gone from a * n time to b * n time, where b > a. Both of these are still O(n) in Big O notation, which drops…
Not that it particularly matters whether we're talking about C++, as it's rather tangential, the original essay by Richard P. Gabriel that coined the term "Worse is Better" talks about C++…
Sure ... but if a loop is effectively doing a map, a filter, and a bunch of other operations all at once? It's a lot quicker to figure out what's going on if it's been written with combinators (once you're familiar with…
Paul explains fairly well why he thinks C++ is a good example of "worse is better", including quotes from the language designer to that effect. I think when you get to more complicated (or at least alien) abstractions…
It's not really a different approach. You had to write a lot of vanilla loops in C, too.
All loops encode simple logic? I don't think that's true. Either way, a very good reason for not using loops is to make code more readable. If I see a loop I have to run it inside my head to figure out what the intent…
I think it depends on what you're working on. If the software is completely designed and the desired outcomes known from the beginning then up front planning and processes are probably helpful. But this is such a small…
It's a nature vs nurture argument. I think Paul believes certain programmers have some innate quality that means they're magnitudes better than others. As it's innate it's not related to culture. As in you could give…
How can you access Python and Perl libraries? However you feel about the JVM, it has led to adoption of Clojure, meaning if you're in a big city you have a chance of finding a job doing it. Not many jobs exist where you…
Racket is so different it's basically a different language, so I'm not really talking about that. I do know Chicken and Guile have more advanced library support than the Scheme I worked with on SICP, but neither has as…
Consider Scala or Clojure. You'll be able to leverage the same libraries you've been using in Java (pretty trivially), while having access to a completely new way of thinking (functional). I personally prefer Scala as I…
It's definitely possible to learn things from those languages. But languages that are trendy today (at least from my experience in the London job market) - Clojure and Scala - are really amazing, too, and have a lot of…
I agree with this. I also know plenty of full stack engineers who are superior in both domains to the so-called specialists.
Hubris, much?
Clojure seems too high level for SICP. Scheme was a perfect fit because of how simple it is and how few language features or data structures it contained. You had to build everything yourself, which was kind of the…
Primarily because the people who decide salaries are themselves managers.
They pretty much are as without sequencing you can only do the most trivial thing (a single IO action). Most interesting programmes are going to need at least two IO actions.
Premature optimisation ... Getting a good idea is usually harder than getting the tech right. Being able to quickly make prototypes is the most important thing in a start up. FYI I'm not a "brogrammer". I work at a…
Not sure how that's relevant. Anyway it's a logical fallacy "appeal to popularity".
I worry that we're gradually moving towards a society that sees privacy as neither a right nor something desirable to an innocent individual.
PHP is pretty popular ...
Or you could use a library explicitly designed with these considerations in mind, that offers the same powerful, familiar combinators, with resource safety and speed. e.g., Machines in Haskell:…
If we assume the operations we're talking about take time linear in proportion to the list, you've just gone from a * n time to b * n time, where b > a. Both of these are still O(n) in Big O notation, which drops…
Not that it particularly matters whether we're talking about C++, as it's rather tangential, the original essay by Richard P. Gabriel that coined the term "Worse is Better" talks about C++…
Sure ... but if a loop is effectively doing a map, a filter, and a bunch of other operations all at once? It's a lot quicker to figure out what's going on if it's been written with combinators (once you're familiar with…
Paul explains fairly well why he thinks C++ is a good example of "worse is better", including quotes from the language designer to that effect. I think when you get to more complicated (or at least alien) abstractions…
It's not really a different approach. You had to write a lot of vanilla loops in C, too.
All loops encode simple logic? I don't think that's true. Either way, a very good reason for not using loops is to make code more readable. If I see a loop I have to run it inside my head to figure out what the intent…
I think it depends on what you're working on. If the software is completely designed and the desired outcomes known from the beginning then up front planning and processes are probably helpful. But this is such a small…
It's a nature vs nurture argument. I think Paul believes certain programmers have some innate quality that means they're magnitudes better than others. As it's innate it's not related to culture. As in you could give…
How can you access Python and Perl libraries? However you feel about the JVM, it has led to adoption of Clojure, meaning if you're in a big city you have a chance of finding a job doing it. Not many jobs exist where you…
Racket is so different it's basically a different language, so I'm not really talking about that. I do know Chicken and Guile have more advanced library support than the Scheme I worked with on SICP, but neither has as…
Consider Scala or Clojure. You'll be able to leverage the same libraries you've been using in Java (pretty trivially), while having access to a completely new way of thinking (functional). I personally prefer Scala as I…
It's definitely possible to learn things from those languages. But languages that are trendy today (at least from my experience in the London job market) - Clojure and Scala - are really amazing, too, and have a lot of…