@IceDread: man måste alltid hålla isär två dimensioner
statiskt typat vs dynamiskt typat, binär skala
starkt typat vs svagt typat, gradvis skala
Ruby, Python och Clojure är alla exempel på dynamiskt och väldigt starkt typade språk.
C#, Java och C++ är alla exempel på statiskt typade och starkt typade språk.
Go, Rust och Haskell är exempel på statiskt typade och extremt starkt typade språk
C är ett exempel på statiskt typat och svagt typat språk.
JavaScript och Perl är båda exempel på dynamiskt typade och väldigt svagt typade språk.
C++ är stort därför det faktiskt är enda rimliga valet om man har prestandakrav ihop med någon form av realtidskrav. Alla språk med s.k. "tracing GC" ("äkta" GC och inte någon form av referensräkning).
C är fortfarande stort av en rad skäl. T.ex. är det enda rimliga valet för OS-kärnor, alternativet är en delmängd av C++ där man skalat bort de delar som inte lämpar sig för OS-kärnor. Vissa mikrokontrollers kör "C++", men i praktiken är "C med nykelordet class" betydligt närmare sanningen.
Att C# lyckades (som förövrigt kom ut 5 år efter Ruby) är endast en effekt av att Microsoft stod bakom och de lade all sin vikt bakom denna plattform från start. Utan det stödet hade det blivit ett i raden av språk som finns men få använder. Inte för att C# på något sätt är dåligt, det har absolut ett bra språk, men på det stora hela sticker det inte ut på något jätterelevant sätt jämfört med andra språk som fanns innan.
Att så få språk lyckas är ju trots allt en konsekvens av att programspråket betyder rätt lite för slutresultatet. Bra programmerare skriver bra program i nästan alla språk de behärskar och dåliga programmera gör kattskit oavsett. Finns vissa specialfall där språk spelar roll, men oftast spelar plattformen större roll.
Tar man exemplet Rails (som jag som sagt aldrig använt, gillar Ruby som ett generellt RAD-språk) så är den enda egentliga kritik jag sett att plattformen inte är effektiv nog att hantera större projekt. Och då klarar man ändå sådant som github, så är nog rätt få människor som jobbar på plattformar som är för stora att inte kunna hanteras av Rails.
Angående jämförelsen. Det är inte bara lite sned, den är ju totalt felaktig givet vilka siffror man får på den "konkurrerande" plattformen, min 15 W TDP laptop presterar bättre än så med det jag skriver och har aldrig gjort ett professionellt NodeJS program (har i.o.f.s väldigt bra koll på flaskhalsar runt networking och borde därför rimligen inte göra de mest löjliga misstagen).
Det du skriver på sista raden befäster lite min bild av den typiska C#/.NET programmeraren: de gillar att framhålla C# förträfflighet men ofta visar det sig att man inte har någon relevant erfarenhet av speciellt många andra språk.
Försöker själv "tvinga" mig att lära mig minst ett nytt programspråk per år, ungefär till nivån att jag utan problem skulle kunna hoppa på ett konsult-gig där man använder språket med max en dags förberedelse.
Har aldrig förväntat mig att få jobba med språk som Haskell, Clojure eller Erlang. Men genom att lära sig dem får man perspektiv på språkdesign, man lär sig hitta andra vägar att lösa vissa problem. När man lärt sig 10-15 språk märker man också det gå allt fortare att lära sig nya språk, man lär sig vilka saker man måste lära sig för att förstå grundtanken med språket. Kort och gott, det gör en till en bättre programmerare oavsett vilket språk man råkar använda för tillfället.
Sedan ska aldrig säga aldrig. Har genom åren jobbat med en del språk, som t.ex. TCL, VB, ADA och ARM-assembler, som jag aldrig skulle gissat kunde vara relevant att ha koll på i förväg. Lite besviken att aldrig ha kommit i direkt kontakt med Cobol, är i.o.f.s. ett språk jag inte heller lärt mig så kanske lika bra det