Qualcuno ha commentato che "I clienti amano il software che soddisfa i requisiti e il budget". Bene, questo è vero, ma ha una certa influenza sul software lento, e questo, quasi per definizione, significa linguaggi di programmazione più lenti (e framework) e algoritmi e configurazione. Un linguaggio di programmazione lento è probabilmente la parte più importante di tutto quanto sopra semplicemente perché è una base dalla quale troverai più difficile cambiare. Se usi un DB Oracle e hai bisogno di più perf, puoi ottimizzare le tabelle / indice / ecc. Facile. Se hai un algoritmo scadente nel tuo codice, puoi scrivere un codice diverso. Se il tuo framework è lento, puoi sostituirlo - non è così facile ma è fattibile senza riscrivere tutto. Se la tua lingua è troppo lenta, devi praticamente ricominciare da capo.
Guarda Facebook per il fastidio con cui sono andati a fare in modo che PHP funzionasse abbastanza velocemente quando avevano bisogno di scalare.
Per il resto di noi, i "requisiti di performance non funzionali" sono spesso scritti in specifiche, in particolare per applicazioni web scalabili. Non riescono a soddisfare la "pagina deve essere visualizzata all'utente entro 2 secondi dalla richiesta" e si perde il contratto (o pagare penali). Quindi, sì, i clienti amano il software che esegue le richieste - e quelle richieste diranno che deve essere veloce (potrebbe non interessarti per quanto tempo gli utenti passano a fissare la clessidra, ma il cliente sicuramente lo fa - è un costo enorme).
Per un esempio, in un call center di grandi dimensioni mi è stato detto che avevano stabilito che per ogni secondo che si poteva risparmiare nel processo di presa di chiamata, 1 calltaker poteva essere 'ridimensionato'. Questo è denaro reale all'improvviso, e un enorme incentivo per i boss a ottenere software più veloce, efficiente e più utilizzabile.
C'è un sacco di tempo speso a preoccuparsi che i programmatori sfornino il codice il più velocemente possibile (e poi testare e refactoring di unità tutto il tempo, lol). Ho scoperto che questo non è un fattore tanto quanto la gente pensa che sia - se sei un esperto nella tua lingua, puoi codificarlo molto più velocemente rispetto a se sei inesperto. Quindi un esperto C ++ dev può scrivere codice più velocemente e più accuratamente di un debuttante sviluppatore PHP. Quindi penso che diventare un esperto sia più importante della scelta di un linguaggio "facile" ed è per questo che non mi piace il culto della "riscrittura nelle cose nuove e fresche" che sembra essere ovunque oggi.