What else are we getting wrong about programming languages?
I feel like what we are getting wrong is throwing the baby out with the bathwater... repeatedly.<p>Engineers love to engineer things.  Why do people invent new languages?  Sometimes it&#x27;s a company trying to do something new, or something hard in a different language.  Other times, it&#x27;s someone who enjoys languages making a new language, thinking they&#x27;ve finally solved all the &quot;hard problems,&quot; where &quot;hard problems&quot; is defined as problems they actually care about.<p>If you&#x27;re not making a programming language, you&#x27;re probably making a DSL or something on top of another programming language, so now you have the fun and quirks of two languages.<p>Instead, what if we had just a few programming languages, and made them more expressive?  We&#x27;d avoid problems with language incompatibilities, libraries, and other general impedance mismatches.<p>I chalk this up to a few of factors:
1) Your syntatic sugar is probably not as sweet as you think it is.  Many times, people claim something is easier to read or work with when it is merely easier for them, and different for others.  This causes confusion for people who aren&#x27;t used to that syntax.  Please stop trying to make boring code look interesting.  Boring code is the easiest to work with and fix.<p>2) Languages are hard, and working on a language is a lot harder than most people think.  Once your &quot;brilliant idea for a new language feature&quot; actually gets implemented, the more it does, the more likely it is to screw something up.<p>To quote Scottie: &quot;The more they overthink the plumbing, the easier it is to stop up the drain.&quot;<p>3) Because of #1 and #2, language development for major languages like python and C++ are slow.  People hate slow, and so they&#x27;d rather build something special for themselves, or try some new language, because it&#x27;s more fantastical.  If this is a project for fun, go for it.  But if this is for a business, people always constantly think some new tool is the silver bullet.  What actually happens is you end up hunting bugs up and down your stack, lack robust programming tools, and end up keeping up with breaking changes rather than using that new margarita machine.