Perché usare un linguaggio di livello superiore? [chiuso]

0

Una domanda che viene posta molto è "Perché usare linguaggi di basso livello se puoi codificare in linguaggi di alto livello più facilmente (e spesso in modo tardo)?". Penso che le risposte siano abbastanza dirette, trattandosi principalmente di problemi di efficienza.

Tuttavia, pongo "Perché usiamo i linguaggi di alto livello in primo luogo?". Oltre al fatto che un linguaggio di livello superiore è più facile da codificare e quindi meno soggetto a errori, mi piacerebbe sentire alcune opinioni sul perché utilizziamo linguaggi di alto livello.

Consideriamo in particolare un esempio di qualcuno che viene pagato per imparare una lingua e poi sviluppare qualcosa in esso. Qui sarebbero diventati ugualmente competenti in qualsiasi lingua scelta (ad esempio C vs Python). In quanto tale, perché non dovrei favorire l'efficienza e la potenza di C nel suddetto esempio?

    
posta Daniel Porteous 10.06.2016 - 12:38
fonte

4 risposte

26

"Besides the fact that a higher level language is easier to code in and therefore less error prone"

Penso davvero che questa sia una ragione abbastanza buona da sola. Se non hai motivi convincenti per lavorare in un basso livello di astrazione (come prestazioni, conoscenza del team, ecc.), Non c'è motivo di farlo. Se tutto quello che vuoi è un caffè, allora vuoi dire al barista "Voglio un caffè", non "Voglio che tu faccia tre passi a sinistra, stendi le braccia, raccogli i fagioli, metti il macinino dentro , premi il pulsante per macinarli [...] "e così via. Non migliorerebbe il prodotto finale (anzi, in alcuni casi peggiorerebbe perché il barista è probabilmente molto più bravo di te a fare il caffè).

Le lingue di alto livello ti incoraggiano a pensare di più sul dominio del problema e meno sulla piattaforma di esecuzione. C'è meno cerimonia, quindi puoi dedicare più tempo a cose che ti danno davvero un valore.

    
risposta data 10.06.2016 - 12:48
fonte
3

Soldi. Gli sviluppatori più economici, le velocità di sviluppo più veloci e meno bug equivalgono a più soldi.

Portabilità. molti linguaggi di alto livello ti consentono di scegliere come target diverse piattaforme fuori dagli schemi. I linguaggi di basso livello come C richiedono sforzi significativi eseguiti su piattaforme multiple.

Addestramento. Puoi addestrare uno sviluppatore in Python in un giorno, mentre qualcosa come C ++ impiega molto più tempo.

Framework e librerie molte librerie buone e utili sono disponibili solo per i linguaggi di alto livello. Se non vuoi scrivere il tuo, devi usare un linguaggio che funzioni con il framework.

Manutenzione Meno linee di codice da mantenere significano meno bug e una formazione più rapida di nuovi assunti.

Questa risposta presuppone che stiamo parlando dei popolari linguaggi di alto livello, dove questi punti si applicano.

    
risposta data 10.06.2016 - 14:07
fonte
1

I linguaggi a leva più elevati sono per definizione più facili da imparare, eliminano molte delle complessità della programmazione di livello inferiore come la gestione della memoria. Oltre a questo, dall'esplosione della potenza dell'hardware, è molto più economico ottenere un processore più veloce o più RAM in una macchina che paghi le ore di sviluppo con un linguaggio di programmazione più complesso.

    
risposta data 10.06.2016 - 12:46
fonte
0

Una cosa importante da considerare è che una volta che una lingua è "sistemata", gran parte di essa viene impostata su pietra. Un sacco di tempo e risorse sono spesi a fare software in quella lingua. E in molti casi, una volta che il software è terminato, è fatto e rimane solo una piccola manutenzione da fare.

Non puoi vendere: "hey devi cambiare tutto il software che hai creato perché abbiamo introdotto le funzionalità moderne x e y".

Basta dare un'occhiata a python: python 3 ha rotto un sacco di cose che funzionano in python 2. E poiché molti negozi hanno investito così pesantemente in python 2 non hanno fatto il passaggio. Potresti anche considerare Python 3 un nuovo linguaggio che assomiglia molto a python 2.

Guarda il dramma della retrocompatibilità di Visual Basic, tutto doveva essere riscritto, più volte se vuoi rimanere aggiornato.

In sostanza, se vuoi "aggiustare" il tuo linguaggio di scelta e liberarti di tutti i punti deboli e introdurre alcune caratteristiche forti ... l'unica opzione è quella di creare una nuova lingua.

    
risposta data 10.06.2016 - 15:07
fonte

Leggi altre domande sui tag