Having a ton of features has been proven in many occasions to be counterproductive. Paradox of choice, higher learning curve, etc.
Having a ton of features has been proven in many occasions to be counterproductive. Paradox of choice, higher learning curve, etc.
I don't agree that Common Lisp has a higher learning curve than other languages. To become operational - Common Lisp is no more difficult to learn than other languages. Bind variables, conditionals, loops and a little arithmetic and you can start doing some damage. You can write procedural code, functional code, object oriented code - whatever your problem needs.
It's that Common Lisp has a LOT more "up" than other languages. It keeps going up and up as you learn about macros and CLOS and multiple dispatch and restarts and upwards. It's really neat discovering all the things that you realize you were missing from other languages - some things that they add over time with ever more complex and arbitrary syntax.
When you get tired of writing "for" loops and agonizing how to manage memory for the next fancy data structure you want to implement - dive into it - it's great. Common Lisp will still be there.
They are, if they use them enough.
Some body mentioned in this post that number of programmers from the 1980s has gone up from probably a million to 20 million or so.
What happened is that we had to lower the bar to entry, such that we now have many novices and a few experts. Most people want to just come in coast 9 - 5 and go home, so you have very few people who want to push the limits of their tools.
That's just your opinion.
>Having a ton of features has been proven in many occasions to be counterproductive. Paradox of choice, higher learning curve, etc.
Ok, let's see you need to get the numerical value of several big integrals. You have two choices:
a. Pen and paper plus calculator.
b. Computer with sophisticated computer algebra system
Learning curve in (b) is way higher. Alternative (b) is also way more productive.
Helicopters have also a steeper learning curve than cars.
>At least optional typing and macros are not considered to be universal benefits for programming.
So perhaps you don't know the benefits. Lisp Metaprogramming benefits become obvious after taking the time to learn them.
Optional typing dramatically increases execution speed, something that is very relevant and important in 2018.
I won't go into everything cause it would take way too much time, but I have to point one thing out:
> Optional typing dramatically increases execution speed, something that is very relevant and important in 2018.
As compared to what? I'm guessing your assumption was that I was thinking about purely dynamic languages? Not really, I was thinking about using static languages with type inference.
If you agree, then what is your point? That we should not use a powerful language because it is not popular? Or that features in popular languages are the only features worth having?
If you disagree, can you elaborate what exactly about Lisp metaprogramming do you not find powerful? That would make your arguments more concrete. Otherwise you are just going around in circles stating the same opinion over and over again which is really only your opinion that many of us don't seem to agree with.
Sure, you're sacrificing homoiconity and macros, but you get strong static typing and purity etc.