Programmers.SE ha un sacco di domande sui programmatori principianti che chiedono se devono usare una lingua specifica o un'altra nel loro lavoro quotidiano, o se devono imparare una lingua o un'altra. Queste domande vengono rapidamente chiuse e quando ricevono risposte, quelle risposte sono di tipo:
Use what is best for a specific project.
Ci sono linguaggi che non possono essere ragionevolmente utilizzati per alcuni tipi di progetti. Ad esempio, sarebbe strano usare Assembly per creare un sito Web dinamico, o usare PHP per creare una ricca applicazione Windows desktop o usare Ruby per creare un videogioco con accelerazione hardware.
Ma in generale, funziona la regola "Usa ciò che è meglio per un progetto specifico?
- Se creo un'applicazione desktop aziendale semplice, come posso dire che per questa app aziendale, C # non è affatto adatto, mentre Java è la scelta migliore?
- Se creo un normale sito web di piccole o medie dimensioni, come posso dire che devo usare C # / ASP.NET MVC su Ruby on Rails?
Confrontando le lingue tradizionali, sono tutte molto simili . Scelgo C # su Java perché non conosco molto bene Java; Scelgo ASP.NET MVC su PHP perché secondo me , PHP fa schifo; Scelgo PHP su ASP.NET MVC quando i miei clienti hanno un server Web che esegue Linux. In tutti i casi, ogni volta che devo scegliere, considero:
- le mie competenze nelle lingue tra cui scegliere,
- lingue che personalmente desidero e utilizzo,
- requisiti hardware e software (ovvero difficoltà a distribuire il sito Web Java o Ruby on Rails su un server che ha già un supporto per PHP),
- Preoccupazioni legacy e di interoperabilità.
Significa che non ho una vasta conoscenza in parecchie lingue? Cosa succede in altre aziende? Esiste una vera scelta, per ogni progetto, della lingua che è la migliore in un caso preciso? come si potrebbe fare una scelta in una situazione in cui le lingue tradizionali sono così simili?