In quale lingua è attualmente in corso la programmazione? Cinque promettenti linguaggi di programmazione con un brillante futuro

Gli antipiretici per i bambini sono prescritti da un pediatra. Ma ci sono situazioni di emergenza per la febbre, quando il bambino ha bisogno di medicine immediatamente. Quindi i genitori si assumono la responsabilità e usano farmaci antipiretici. Cosa è permesso dare ai bambini? Come abbassare la temperatura nei bambini più grandi? Quali farmaci sono i più sicuri?

  • Traduzione

Se dividiamo i linguaggi di programmazione per popolarità, sono divisi in tre livelli. Il primo livello include linguaggi tradizionali come Java, JavaScript, Python, Ruby, PHP, C#, C++ e Objective-C. Sebbene alcune delle principali lingue stiano svanendo, è meglio conoscerne una o più se vuoi essere in grado di trovare facilmente un lavoro.


Le lingue di secondo livello stanno cercando di entrare nel mainstream, ma non ci sono ancora riuscite. Hanno dimostrato il loro valore creando comunità forti, ma non sono ancora utilizzati dalla maggior parte delle aziende IT conservatrici. Scala, Go, Swift, Clojure e Haskell sono le lingue che classificherei di secondo livello. Alcune aziende utilizzano questi linguaggi per i singoli servizi, ma l'adozione diffusa è rara (ad eccezione di Swift, che sta iniziando a superare Objective-C come lingua principale per iOS). Go e Swift hanno buone possibilità di passare dal secondo livello al primo entro i prossimi due o tre anni.


La maggior parte delle lingue del primo scaglione sono saldamente radicate nelle loro posizioni. Pertanto, la perdita di una lingua da una posizione di leadership richiede una notevole quantità di tempo ed è molto difficile per una lingua di secondo livello entrare nel primo.


Le lingue promettenti in questo articolo appartengono al terzo livello e stanno appena iniziando a farsi strada. Alcune lingue rimangono nel terzo livello per molti anni senza guadagnare popolarità, mentre altre irrompono sulla scena in appena un paio d'anni. Come, ad esempio, le lingue di cui parleremo nell'articolo.

Lingue promettenti: perché queste cinque?

I cinque linguaggi di programmazione di cui parleremo sono nuovissimi (è possibile che ne sentirai parlare per la prima volta) e hanno chiaramente ottime possibilità di sfondare nel secondo livello nei prossimi 2-3 anni. Forse un giorno una di queste lingue sarà in grado di premere le lingue del primo scaglione.


Ecco perché queste cinque lingue sono state scelte per questo elenco:


Elm sta guadagnando popolarità nella comunità JavaScript, principalmente tra coloro che preferiscono la programmazione funzionale, che è in aumento. Come TypeScript o Dart, Elm viene trasferito in JavaScript.


Rust è un linguaggio di programmazione di sistemi destinato principalmente a nicchie che utilizzano C e C++. Pertanto, è sorprendente vedere che la popolarità di questo linguaggio sta crescendo più rapidamente tra gli sviluppatori web. Questo fatto ha più senso quando scopri che il linguaggio è stato creato da Mozilla, che voleva offrire un'opzione migliore agli sviluppatori web che devono scrivere codice di basso livello e allo stesso tempo essere più performanti di PHP, Ruby, Python o JavaScript. Rust è stata anche votata come la migliore "tecnologia più amata" nel sondaggio degli sviluppatori StackOverflow del 2016 (il che significa che la maggior parte degli utenti vorrebbe continuare a utilizzare la lingua).


Kotlin è in circolazione da circa cinque anni, ma proprio quest'anno ha raggiunto la versione 1.0 pronta per la produzione. Sebbene non abbia ancora raggiunto la popolarità di Scala, Groovy o Clojure - i tre linguaggi più popolari e maturi (senza contare Java) sotto la JVM - si distingue da molti altri linguaggi JVM e sembra pronto a prendere il suo posto tra i leader di questo gruppo. . La lingua ha avuto origine in JetBrains (creatore del popolare IntelliJ IDEA IDE). Quindi è progettato con particolare attenzione alla produttività degli sviluppatori.


Crystal è un altro linguaggio che spera di portare le prestazioni del programma di livello C nel mondo di alto livello degli sviluppatori web. Crystal è rivolto alla comunità di Ruby perché la sua sintassi è simile, e talvolta identica, a Ruby. Il già elevato numero di startup Ruby continua a crescere e Crystal può svolgere un ruolo chiave nell'aiutare a portare le prestazioni di queste applicazioni a un livello superiore.


Anche Elixir ha preso ispirazione dall'ecosistema Ruby, ma piuttosto che cercare di apportare vantaggi simili al C, si concentra sulla costruzione di sistemi altamente accessibili e reattivi, ad es. ciò con cui i critici dicono che Rails ha problemi. Elixir ottiene questi vantaggi con Erlang VM, che ha una solida reputazione fondata su oltre 25 anni di successi nel settore delle telecomunicazioni. Phoenix (il framework web per Elixir), insieme a un ecosistema ampio e fiorente, conferisce a questo linguaggio un ulteriore fascino.


Ora dai un'occhiata a come quattro di queste cinque lingue stanno scalando la scala della popolarità (basato sui dati di StackOverflow e GitHub):




Ognuna di queste lingue vanta una community appassionata e la propria newsletter settimanale. Se stai pensando di imparare una lingua giovane con interessanti possibilità per il futuro, leggi le brevi presentazioni per ciascuna di queste cinque lingue, scritte da appassionati e leader esperti nei rispettivi ecosistemi.

Olmo

Elm è un linguaggio di programmazione funzionale incentrato sull'usabilità che compila codice JavaScript ad alte prestazioni. Puoi usarlo, anche insieme a JavaScript, per creare interfacce utente sul web. I principali vantaggi di Elm rispetto a JavaScript sono l'affidabilità, la facilità di manutenzione e l'attenzione alla programmazione divertente. Più specifico:

  • Nessuna eccezione di runtime: Il codice Elm ha una reputazione mai lanciare eccezioni in fase di esecuzione. Per niente come "non definito non è una funzione".
  • Il leggendario compilatore grazioso: Compilatore Elm spesso lode per le segnalazioni di bug più utili tra i concorrenti. "Se si compila, di solito funziona e basta" è una credenza comune, anche dopo un importante refactoring. Ciò rende i progetti Elm di grandi dimensioni molto più facili da mantenere rispetto ai progetti JS comparabili.
  • Versioni semantiche: elm-package applica automaticamente le versioni semantiche. Se l'autore del pacchetto tenta di apportare modifiche sostanziali all'API senza aumentare il numero di versione principale, elm-package lo rileverà e rifiuterà di pubblicare nuova versione pacchetto. Nessun altro gestore di pacchetti noto applica il controllo delle versioni semantico in modo così affidabile.
  • Veloce e funzionale: Elm è un linguaggio funzionale puro che non garantisce mutazioni o effetti collaterali. Questo non solo fornisce una grande scalabilità per il codice Elm, ma aiuta anche a rendere l'interfaccia utente dell'applicazione più veloce di React, Angular o Ember .
  • Strumenti potenti: elm-format formatta il codice sorgente secondo lo standard della comunità. Niente più discussioni sulle convenzioni di codifica. Basta premere il pulsante "Salva" nel tuo editor e il tuo codice diventa bellissimo. elm-test viene fornito con batterie per supportare sia i test unitari che i test casuali. elm-css ti consente di scrivere codice Elm che viene compilato in un file CSS, in modo da poter condividere il codice tra la tua applicazione e i fogli di stile per assicurarti che le tue costanti non perdano mai la sincronizzazione.

Il codice Elm può anche interagire con JavaScript. Cioè, puoi iniettarlo in piccole dosi nel tuo codice JS e puoi ancora utilizzare l'enorme ecosistema JS e non reinventare la ruota.

Kotlin

Kotlin è un linguaggio tipizzato staticamente che si concentra su JVM e JavaScript. Kotlin è nato dall'esigenza di JetBrains, che era alla ricerca di un nuovo linguaggio per sviluppare il suo toolkit (che era principalmente scritto in Java). Qualcosa che avrebbe consentito loro di utilizzare la base di codice esistente e allo stesso tempo risolvere alcuni dei problemi che aveva Java. E sono le soluzioni a queste insidie ​​comuni incontrate durante la scrittura di software che hanno definito gran parte delle caratteristiche di Kotlin.

  • Concisione: ridurre la quantità di codice standard richiesto per esprimere determinati costrutti.
  • Versatilità: creare un linguaggio adatto a qualsiasi tipo di applicazione industriale, sia essa web, mobile development, desktop o server.
  • Sicurezza: lasciare che il linguaggio gestisca alcune delle insidie ​​comuni relative a problemi come eccezioni di riferimento nullo.
  • Interazione: consentire al linguaggio di interagire con le basi di codice, le librerie e i framework Java esistenti, consentendo un'adozione incrementale e trarre vantaggio dagli investimenti già effettuati.
  • Strumenti: JetBrains crea strumenti e li rende basati sulla convinzione che molte attività di routine possono essere automatizzate e portare a uno sviluppo più efficiente e produttivo. Pertanto, il linguaggio dovrebbe consentire facilmente l'uso di strumenti ausiliari.

Kotlin è stato, e sarà sempre, concentrato sul pragmatismo, alla ricerca di problemi comuni che incontriamo spesso quando scriviamo codice e cerchiamo di aiutarli a risolverli. Questo scorre come un filo rosso attraverso varie funzionalità del linguaggio, come ad esempio:

  • Null sicuro per impostazione predefinita: I tipi Kotlin non sono annullabili per impostazione predefinita, il che evita fastidiose eccezioni di riferimento/puntatore nullo.
  • Delegazione di prima classe: la capacità di delegare la funzionalità di un membro della classe a una funzione esterna, che facilita il riutilizzo e migliora la composizione.
  • Accordi: un insieme di convenzioni che consentono di scrivere codice espressivo, aprendo la strada a un DSL fortemente tipizzato che migliora la leggibilità e semplifica il refactoring.
    html ( head ( title (+"codifica XML con Kotlin") ) body ( p (+ "This is some HTML" ) ) )

Kotlin 1.0 è stato rilasciato a febbraio 2016 dopo oltre cinque anni di sviluppo e test approfonditi in progetti reali. Attualmente ci sono oltre dieci prodotti JetBrains che utilizzano Kotlin. Viene utilizzato anche da aziende come Amex, NBC Digital, Expedia e Gradle.


Per ulteriori informazioni, visitare kotlinlang.org


Questa sezione è stata scritta

1. Quando si sceglie un linguaggio di programmazione per un progetto, la scelta è tra due lati: scegliere un vecchio strumento collaudato o un linguaggio nuovo, bello, funzionale, ma poco testato e quindi inaffidabile. Qual è la cosa più intelligente da fare in questa situazione? Quali sono i rischi di ogni decisione e come affrontarli?

Igor Zilberg, Testa intelligente
È necessario scegliere gli strumenti in base all'adeguatezza del compito e alla presenza di un team esperto che abbia familiarità con gli strumenti selezionati. I rischi quando si lavora con nuovi strumenti sono ridotti al minimo dalla ricerca, dalla creazione di prove di concetto e dal coinvolgimento di consulenti esperti. Le nuove tecnologie dovrebbero essere costantemente esplorate, ma applicate solo se sono più adatte a un compito particolare.

Alexander Makarchuk, qb
Per il business il concetto di “bella lingua” non esiste. Puoi scommettere su una nuova lingua non testata solo se è garantito che darà al progetto qualche USP speciale che i clienti possono sentire e, soprattutto, vogliono pagarlo. Se questa condizione è soddisfatta, puoi scegliere una nuova lingua, ma dovrai accettare tutti i rischi ad essa associati.

Grigory Nikonov, Actis Wunderman
Certo, dipende dal progetto e dalla maturità della lingua stessa. Se il progetto lo consente, o se l'uso del linguaggio è una condizione necessaria e sono disponibili le necessarie biblioteche di argomenti, allora è del tutto possibile consentire l'esperimento. I rischi sono evidenti: "insidie" in cui puoi inciampare a metà. Ridurre al minimo questi rischi è anche ovvio: se possibile, condurre ricerche prima dell'inizio del progetto e assicurarsi che, come minimo, ci sia un supporto attivo per la lingua nei forum o dal produttore.

, AVV
In questa materia, tutto dipende dai tempi e dal budget del progetto. Se entrambi sono molto limitati, allora qualsiasi ricerca non è giustificata e può portare grossi problemi, fino al completo fallimento del progetto.

Alessio Fedorov, "Compagne di classe"
La risposta dipende molto da quanto tempo impiegherà il progetto. Se si tratta di un piccolo progetto personalizzato che deve essere fatto rapidamente, consegnato e dimenticato, allora puoi scegliere quello che vuoi. Se questo è un grande progetto da anni, allora è meglio scegliere tecnologie collaudate per le quali puoi assumere il numero di specialisti di cui hai bisogno. Per stimare quanti specialisti in una particolare tecnologia ci sono nella tua regione, è sufficiente utilizzare qualsiasi servizio ragionevole, ad esempio LinkedIn o HeadHunter. E poi devi considerare i requisiti non funzionali: carico, sicurezza, tolleranza ai guasti, ecc.

2. Quali sono i fattori essenziali che garantiscono che la lingua possa e debba essere usata nella produzione?

Igor Zilberg, Testa intelligente
Nessuno e niente dà garanzie in questo mondo. Facciamo affidamento sulla nostra esperienza e sulle migliori pratiche comuni.

Alexander Makarchuk, qb
Ci sono tre segni principali che indicano che l'uso di una lingua particolare è redditizio e sicuro. In primo luogo, la presenza di una comunità "viva" in questa lingua, in secondo luogo, la presenza di casi di successo e, in terzo luogo, il supporto della lingua da parte dei grandi fornitori.

Grigory Nikonov, Actis Wunderman
La presenza di biblioteche e framework di argomenti "maturi", una comunità online attiva che offre consigli sulla risoluzione dei problemi, l'assenza di recensioni negative sulla stabilità e sulle prestazioni dell'applicazione finale.

Alexey Persianov, Mikhail Parfenyuk, AVV
I fattori sono la comunità di una determinata lingua, il numero di progetti implementati, il numero di sviluppatori e così via. Il rilascio alla produzione di un prodotto in un linguaggio nuovo e grezzo nasconde grossi problemi con il supporto.

Alessio Fedorov, "Compagne di classe"
Una garanzia formale può essere supportata solo da un contratto. Se esiste un fornitore serio (ad esempio, Oracle, SAP, IBM) che garantisce, ad esempio, che la sua tecnologia sarà supportata per i prossimi 10 anni e un contratto di supporto appropriato è stato firmato con questo fornitore, in linea di principio , puoi considerarlo una sorta di garanzia . Il problema è che di solito è molto costoso e la qualità del supporto dei grandi fornitori è solitamente disgustosa.

Pertanto, nel mondo l'anno scorso ha adottato un'altra pratica: l'open source. Se hai uno strumento open source (linguaggio, framework, database o altro) con codice open source, questo ti dà una certa garanzia che se un bug viene trovato improvvisamente in questo strumento, in casi estremi puoi correggere questo bug con il tuo proprie risorse mani. È questa proprietà delle soluzioni open source che considero la chiave del business di oggi.

3. Come agire se uno sviluppatore o anche più sviluppatori propongono un cambiamento nel linguaggio di programmazione, ma la situazione mostra che il loro entusiasmo non è supportato da requisiti aziendali adeguati per la tecnologia?

Igor Zilberg, Testa intelligente
Gli sviluppatori non impongono requisiti aziendali. Le aziende li forniscono. Tuttavia, il business dipende dalla qualità del codice scritto dagli sviluppatori. Pertanto, se gli sviluppatori vogliono utilizzare una tecnologia che chiaramente non è adatta a risolvere un problema aziendale, allora gli sviluppatori devono essere convinti o modificati. Adeguato ed esperto sviluppatore è in grado di comprendere i requisiti aziendali e applicare ad essi la soluzione più appropriata. Non abbiamo avuto questi problemi. Nella nostra pratica accade più spesso il contrario: il cliente, invece di formulare requisiti aziendali, influenza la scelta della tecnologia (spesso a scapito dell'implementazione dei propri requisiti).

Alexander Makarchuk, qb
Se il passaggio a una nuova lingua non è supportato da argomentazioni tangibili e non promette seri vantaggi per il progetto, allora non è necessario. Ma, ovviamente, questo deve essere spiegato agli sviluppatori in modo che il team non abbia l'impressione di non ascoltarlo.

Grigory Nikonov, Actis Wunderman
Attenersi a una politica conservatrice e non cambiare la lingua senza una buona ragione. Ci sarà sempre un altro progetto per provare una nuova lingua.

Alexey Persianov, Mikhail Parfenyuk, AVV
Puoi incontrare gli sviluppatori a metà strada solo nel caso di un progetto interno, o se è scritto per formare il team. In questo caso, i rischi di fallimento sono minimi e, in caso di fallimento, l'esperienza utile viene trasmessa al futuro. In caso contrario, l'azienda non apprezzerà il perfezionismo degli sviluppatori.

Alessio Fedorov, "Compagne di classe"
Innanzitutto, ci si dovrebbe chiedere qual è la logica dell'idea di cambiare la lingua. Cosa darà? Quali sono i pro e quali i contro? Qual è il costo di tale transizione e quali sono i tempi? Quali sono i rischi?

Se le risposte che ricevi ti soddisfano dal punto di vista lavorativo, vai avanti. Se non sei soddisfatto, devi cercare di trasmettere agli sviluppatori i motivi per cui li rifiuti.

4. Quando vale il costo del passaggio da una lingua all'altra?

Igor Zilberg, Testa intelligente
Non è possibile stimare i costi del cambio di piattaforma e i vantaggi associati al di fuori del contesto del progetto. Tale decisione può essere presa solo sulla base di un approccio consapevole all'interno di un particolare progetto e non sulla base di opinioni o regole "universali".

Alexander Makarchuk, qb
Quando ciò comporterà un profitto tangibile, sia diretto che indiretto per l'emergere di un nuovo USP nel progetto, che renderà il prodotto più competitivo.

Grigory Nikonov, Actis Wunderman
Nel caso in cui l'uso di un nuovo linguaggio consenta di ottimizzare in modo significativo l'intera catena di vita dell'area disciplinare: dalla progettazione, sviluppo e test di un'applicazione all'implementazione e successivi aggiornamenti e miglioramenti dovuti alle proprietà del linguaggio e dell'ecosistema circostante esso.

Alexey Persianov, Mikhail Parfenyuk, AVV
Quando il supporto linguistico viene interrotto, e allo stesso tempo il numero di specialisti sul mercato tende a zero. O se perdi completamente la vecchia squadra senza la possibilità di salvare la tecnologia. Quando il profitto della lingua sarà maggiore del costo della sua transizione.

Alessio Fedorov, "Compagne di classe"
Quando tu e i tuoi colleghi avete risposte chiare alle domande di cui sopra.

5. Pensi che ci sia una separazione consolidata dell'uso delle lingue per determinati compiti? Se sì, come lo vedi esattamente? Può apparire o esistere già un linguaggio che cambierà la situazione e attirerà la maggior parte degli sviluppatori?

Igor Zilberg, Testa intelligente
Naturalmente, ci sono alcune applicazioni tipiche per piattaforme diverse (non lingue). Ad esempio, Java e .NET per applicazioni o servizi aziendali relativamente grandi. Node.js per il multithreading e la messaggistica. Non elencare tutto. Tuttavia, questi confini sono molto, molto sfumati e dipendono anche dalla regione. Negli USA, ad esempio, un'esperienza di utilizzo, "moda" e ambiti tipici di applicazione delle piattaforme leggermente diversa dalla nostra.

Alexander Makarchuk, qb
Da un lato c'è una divisione ben consolidata delle lingue per applicazione, ma dall'altro i fattori regionali e di prezzo sono abbastanza importanti: il costo di inserimento della tecnologia, il supporto, ecc. Per quanto riguarda l'emergere di nuovi linguaggi, qui è necessario notare una cosa del genere. Negli ultimi anni il livello di comunicazione è cresciuto notevolmente ei linguaggi di programmazione, infatti, sono sempre gli stessi. Forse è la prossima rivoluzione nel campo delle comunicazioni che comporterà tecnologie di sviluppo completamente nuove.

Grigory Nikonov, Actis Wunderman
In linea di principio, esiste una tale divisione: C e C++ sono tradizionalmente utilizzati per lo sviluppo di basso livello, Java e C# sono considerati linguaggi generici adatti per un'ampia gamma di attività dalla logica aziendale alle applicazioni mobili. Python, Ruby e PHP sono rivolti principalmente allo sviluppo web, JavaScript - alle applicazioni browser. Non credo che ci saranno cambiamenti drastici in quest'area, anche se la moda per i linguaggi e i framework a volte cambia - ora, ad esempio, il linguaggio Go sta iniziando a guadagnare popolarità.

Alexey Persianov, Mikhail Parfenyuk, AVV
Sì. Alcune cose sono implementate meglio in diverse lingue per via della velocità di lavoro e della facilità d'uso, ad esempio nei progetti PHP, per via della "lentezza" del linguaggio, puoi implementare una chat in Node o un aggregatore in Java - il risultato sarà migliore.

Ogni anno, ogni nuovo linguaggio riceve gli allori dei "migliori" e attira gli sviluppatori, ma finora le posizioni dei linguaggi collaudati sono probabilmente incrollabili. Tutto è possibile in futuro.

Alessio Fedorov, "Compagne di classe"
La maggior parte dei moderni linguaggi di programmazione a noi noti sono multifunzionali, ovvero possono prendere decisioni molto diverse.

Per quanto riguarda un nuovo linguaggio, sì, un linguaggio del genere potrebbe apparire, ma, a causa dell'inerzia piuttosto forte del settore, non credo che nei prossimi 5 anni qualcuno spingerà Java e C / C ++ fuori dal piedistallo. Se scegli una specie di "cavallo", allora scommetterei su JavaScript. Oggi assistiamo a un'enorme crescita nel settore in tutto ciò che riguarda JavaScript. I quadri nascono come funghi dopo la pioggia. Il clamore su Internet attorno a questa tecnologia è enorme. Vediamo dove porta tutto.

6. Un programmatore deve essere DevOps (possedere le competenze di un programmatore e di un amministratore di sistema)? Cosa fare con il fatto che la maggior parte dei programmatori si rifiuta di sviluppare competenze e si assume responsabilità in quest'area?

Alexey Persianov, Mikhail Parfenyuk, AVV
Per configurare l'ambiente, di solito usano i servizi di un amministratore di sistema. Ma, probabilmente, ha senso che la persona che scrive il codice sia in grado di impostare il sito per l'esecuzione ottimale di questo codice. Ciò consentirà di risparmiare tempo e costi.

7. Dovresti usare i microservizi nei tuoi progetti?

Alexey Persianov, Mikhail Parfenyuk, AVV
Non esiste una risposta definitiva, ma la nostra risposta è sì. Certo, possono aggiungere molti problemi, ma aiuteranno anche a risolverne molti. Ad esempio, grazie ai microservizi, diverse parti dell'applicazione possono essere scritte in diversi linguaggi di programmazione, è possibile ridimensionare le parti caricate dell'applicazione, ecc.

8. Uno sviluppatore dovrebbe essere in grado di lavorare con un'ampia gamma di moderne tecnologie e linguaggi web?

Alexey Persianov, Mikhail Parfenyuk, AVV
Negli ultimi anni il front-end ha fatto un enorme passo avanti, mentre lo sviluppo in linguaggi lato server non è così evidente. Lo sviluppatore, ovviamente, deve conoscere le basi delle aree correlate, ma è impossibile essere un guru delle lingue server e client, ognuno deve fare le proprie cose ed essere un vero professionista in esse.

Titolo della relazione

Linguaggi di programmazione moderni e loro utilizzo

Autore del progetto

Struttura del progetto

● Schema di classificazione del linguaggio di programmazione

● Classificazione dei linguaggi di programmazione

● Panoramica dei linguaggi di programmazione

● Risorse utili

Schema di classificazione del linguaggio di programmazione

Classificazione dei linguaggi di programmazione

programmazione procedurale- è un riflesso dell'architettura von Neumann del computer. Un programma scritto in un linguaggio procedurale è una sequenza di comandi che definiscono un algoritmo per la risoluzione di un problema. L'idea di base della programmazione procedurale è l'uso della memoria per memorizzare i dati. Il comando principale è l'assegnazione, con l'aiuto del quale viene determinata e modificata la memoria del computer. Il programma converte il contenuto della memoria, cambiandolo dallo stato iniziale a quello risultante.

Esistono tali linguaggi di programmazione procedurale:

 Il linguaggio Fortran è stato creato nei primi anni '50 del XX secolo per la programmazione di problemi tecnici e scientifici;

 Cobol - creato alla fine degli anni '60 del XX secolo per risolvere i problemi di elaborazione di grandi quantità di dati archiviati su vari supporti dati;

 Algol (1960) è un linguaggio di programmazione avanzato multiuso. Ha introdotto per la prima volta i concetti di "struttura a blocchi di programma" e "allocazione dinamica della memoria";

 A metà degli anni '60 del 20° secolo è stato creato un linguaggio di programmazione specializzato per principianti: BASIC. È caratterizzato da facilità di sviluppo e disponibilità di strumenti universali per la risoluzione di problemi scientifici, tecnici ed economici, nonché compiti, ad esempio giochi.

Tutti i linguaggi sopra elencati erano focalizzati su diverse classi di problemi, ma erano, in un modo o nell'altro, legati a una specifica architettura di computer.

 Nel 1963-1966 è stato creato il linguaggio universale multiuso PL-1. Questo linguaggio è adatto per lo studio e la pianificazione di processi computazionali, la modellazione, la risoluzione di problemi logici e lo sviluppo di sistemi software.

 Il linguaggio Pascal (PASCAL) (1968-1971) è il più popolare linguaggio di programmazione procedurale per PC, che è ancora utilizzato con successo. Il linguaggio Pascal si basa sull'approccio dal compito generale allo specifico (più semplice e di volume più piccolo). I principi fondamentali che Pascal possiede includono: a) la programmazione strutturale, che si basa sull'uso di subroutine e strutture dati indipendenti; b) Programmazione top-down, quando il compito è suddiviso in compiti semplici e risolti indipendentemente. Quindi la soluzione del problema originale viene costruita completamente dall'alto verso il basso.

 I linguaggi di programmazione procedurale includono il linguaggio ADA (1979), che prende il nome dal primo programmatore, Ada Lovelace, figlia di Byron. Si distingue per la modularità dei design.

 Anche il linguaggio C (primi anni '70) appartiene ai linguaggi di programmazione procedurale. La sua versione originale è stata pianificata come lingua per l'implementazione sistema operativo Unix invece del linguaggio assembly. Una delle caratteristiche del linguaggio C è che le differenze tra espressioni e istruzioni vengono appianate, il che lo avvicina ai linguaggi di programmazione funzionale. Inoltre, il linguaggio C non ha il concetto di procedura e l'uso dei sottoprogrammi si basa sul concetto di funzione, che può combinare le capacità di una procedura. Da un lato, in base all'insieme delle strutture di controllo e delle strutture dati, può essere classificato come un linguaggio di alto livello e, dall'altro, dispone di un insieme di strumenti per l'accesso diretto alle unità funzionali di un computer, il che significa che può essere utilizzato come linguaggio operativo.

Programmazione orientata agli oggetti (OOP)è un metodo di programmazione in cui gli elementi principali dei programmi sono oggetti. Nei linguaggi di programmazione, il concetto di oggetto è implementato come insieme di proprietà (strutture dati specifiche di un dato oggetto), metodi per elaborarle (subroutine per modificarne le proprietà) ed eventi a cui un dato oggetto può rispondere e che, come una regola, comportano una modifica delle proprietà dell'oggetto. La combinazione dei dati e delle relative procedure di elaborazione in un oggetto è chiamata incapsulamento ed è uno dei principi più importanti dell'OOP.

Un altro concetto fondamentale è la classe. Una classe è un modello da cui è possibile creare un particolare oggetto programma, descrive le proprietà e i metodi che determinano il comportamento degli oggetti di questa classe. Ogni oggetto specifico che ha la struttura di questa classe è chiamato istanza della classe.

I successivi principi più importanti dell'OOP sono l'ereditarietà e il polimorfismo. L'ereditarietà prevede la creazione di nuove classi basate su quelle esistenti e consente alla classe discendente di avere (ereditare) tutte le proprietà della classe madre.

Il polimorfismo significa che gli oggetti nati hanno informazioni su quali metodi dovrebbero usare a seconda di dove si trovano nella catena.

Un altro importante principio dell'OOP è la modularità: gli oggetti contengono una definizione completa delle loro caratteristiche, nessuna definizione di metodi e proprietà deve trovarsi al di fuori di esso, questo rende possibile copiare e implementare liberamente un oggetto in altri.

I linguaggi di programmazione più moderni sono C++ e Java. Dalla metà degli anni '90, molti linguaggi orientati agli oggetti sono stati implementati come sistemi di progettazione visiva, in cui la parte dell'interfaccia di un prodotto software viene creata in modo interattivo, con poca o nessuna scrittura di istruzioni di programma. I sistemi di progettazione visiva orientati agli oggetti includono Visual Basic, Delphi, C++ Builder, Visual C++. La lingua VBA (Visual Basic for Application) è la lingua delle applicazioni di Microsoft Office (Excel, Word, Power Point, ecc.). VBA segue la sintassi di base del linguaggio e le regole dei linguaggi di programmazione Basic - dialetti, consente di creare macro per automatizzare l'esecuzione di determinate operazioni e GUI utente, integrazione tra diversi prodotti software.

Linguaggi di programmazione dichiarativi

Questi includono linguaggi di programmazione funzionali e logici. La programmazione funzionale è un modo di scrivere programmi in cui l'unica azione è chiamare una funzione. La programmazione funzionale non utilizza la memoria come luogo in cui archiviare i dati e pertanto non utilizza variabili intermedie, istruzioni di assegnazione e cicli. Il concetto chiave nei linguaggi funzionali è l'espressione. Un programma scritto in un linguaggio funzionale è una sequenza di descrizioni di funzioni ed espressioni. L'espressione viene calcolata riducendo il complesso al semplice. Tutte le espressioni sono scritte come liste. Lisp (LISP, LIST Processing) è stato creato nel 1959 come prima lingua. Questa lingua consente di elaborare grandi quantità di informazioni testuali. La programmazione logica è programmazione in termini di logica. Nel 1973 è stato creato il linguaggio di intelligenza artificiale Prolog (PROLOG) (Programmazione in Logica). Un programma Prolog è costruito da una sequenza di fatti e regole, quindi viene formulata una dichiarazione che Prolog cerca di provare con l'aiuto delle regole. Il linguaggio stesso cerca una soluzione utilizzando i metodi di ricerca e corrispondenza che sono incorporati in esso. I programmi logici non sono molto veloci, poiché il processo della loro esecuzione si riduce alla costruzione di catene di ragionamento dirette e inverse con vari metodi di ricerca.

Panoramica dei linguaggi di programmazione

assemblatore

I linguaggi di programmazione per computer sono divisi in 2 gruppi principali:

1) lingue di basso livello;

2) linguaggi di alto livello.

I linguaggi assembly sono linguaggi di basso livello. Hanno preso il nome dal nome del programma di sistema Assembler, che converte i programmi sorgente scritti in tali linguaggi direttamente in codici di istruzioni macchina. Le parti qui sono dichiarazioni e il risultato dell'assembly è una sequenza di istruzioni macchina.Il linguaggio assembly combina i vantaggi di un linguaggio di istruzioni macchina e alcune caratteristiche dei linguaggi di alto livello. L'assembler offre la possibilità di utilizzare nomi simbolici nel programma sorgente e salva il programmatore dal lavoro noioso (inevitabile quando si programma nel linguaggio delle istruzioni macchina) nell'allocare memoria del computer per istruzioni, variabili e costanti.

L'assemblatore consente la stessa flessibilità e il pieno utilizzo delle capacità tecniche del computer, nonché il linguaggio delle istruzioni della macchina. Il traduttore di sorgenti dell'assembler è più semplice del compilatore richiesto per un linguaggio di programmazione di alto livello. È possibile scrivere un programma in linguaggio Assembly che sia efficiente in termini di dimensioni e tempo di esecuzione come un programma in linguaggio macchina. Questo vantaggio è assente nelle lingue di alto livello. Questo linguaggio è spesso utilizzato per la programmazione in tempo reale di sistemi, processi tecnologici e apparecchiature, garantendo il funzionamento dei sistemi informativi e di misura. Tali sistemi di solito richiedono elevate quantità di memoria della macchina occupata. Spesso il linguaggio assembly viene integrato mediante la formazione di macro, ciascuna delle quali equivale a un intero gruppo di istruzioni macchina. Tale linguaggio è chiamato linguaggio assemblatore di macro. L'uso di blocchi "costruiti" di papavero e avvicina il linguaggio assembly a un linguaggio di alto livello. Assembler è un linguaggio dipendente dalla macchina, ovvero riflette le caratteristiche dell'architettura di un particolare tipo di computer

Pasquale

Il linguaggio di programmazione Pascal è stato sviluppato da Nicholas Wirth, professore al Dipartimento di Informatica del Politecnico Federale Svizzero, nel 1968 come alternativa ai linguaggi di programmazione esistenti e sempre più complessi come PL/1, Algol, Fortran. L'intenso sviluppo di Pascal ha portato alla comparsa già nel 1973 del suo standard sotto forma di messaggio rivisto, e il numero di traduttori da questa lingua nel 1979 ha superato 80. All'inizio degli anni '80, Pascal ha ulteriormente rafforzato la sua posizione con l'avvento di Traduttori MS-Pascal e Turbo -Pascal per PC. Da quel momento, Pascal è diventato uno dei linguaggi di programmazione più importanti e ampiamente utilizzati. È essenziale che la lingua sia andata da tempo al di là dell'ambito dell'interesse accademico e strettamente professionale e sia utilizzata nella maggior parte delle università dei paesi altamente sviluppati non solo come strumento di lavoro per l'utente. La caratteristica più importante di Pascal è l'idea incarnata della programmazione strutturata. Un'altra caratteristica essenziale è il concetto di struttura dei dati come uno dei concetti fondamentali.

Le ragioni principali della popolarità di Pascal sono le seguenti:

La semplicità del linguaggio consente di padroneggiarlo rapidamente e creare programmi algoritmicamente complessi.

I mezzi sviluppati per rappresentare le strutture di dati offrono la comodità di lavorare con informazioni sia numeriche che simboliche e bit

La presenza di metodi speciali per la creazione di compilatori da Pascal semplificò il loro sviluppo e contribuì all'ampia diffusione del linguaggio

Le proprietà di ottimizzazione dei compilatori di Pascal consentono di creare programmi efficienti. Questo è stato uno dei motivi per cui Pascal è stato utilizzato come linguaggio di programmazione dei sistemi.

Il linguaggio Pascal implementa le idee della programmazione strutturata, che rende il programma visivo e offre buone opportunità di sviluppo e debug.

Denis Ritchie, dipendente di Bell Labs, ha creato il linguaggio C nel 1972 mentre lavorava con Ken Thompson come strumento per l'implementazione del sistema operativo Unix, ma la popolarità di questo linguaggio ha rapidamente superato i confini di un sistema operativo specifico e di attività di programmazione del sistema specifiche. Attualmente, qualsiasi strumento e sistema operativo non può essere considerato completo se non include un compilatore C. Ritchie non ha semplicemente inventato la C dalla sua testa: il linguaggio B sviluppato da Thompson è servito da prototipo. Il linguaggio di programmazione C è stato sviluppato come strumento per programmatori pratici. In accordo con ciò, l'obiettivo principale del suo autore era creare un linguaggio conveniente e utile sotto tutti gli aspetti.

C è uno strumento per programmatori di sistema e consente di approfondire i meccanismi più sottili di elaborazione delle informazioni su un computer. Sebbene il linguaggio richieda un alto grado di disciplina da parte del programmatore, non è rigoroso nelle pretese formali e consente formulazioni concise.

C è una lingua moderna. Comprende quelle strutture di controllo raccomandate dalla teoria e dalla pratica della programmazione. La sua struttura incoraggia il programmatore a utilizzare la progettazione top-down, la programmazione strutturata e lo sviluppo graduale dei moduli nel proprio lavoro.

C è un linguaggio potente e flessibile. La maggior parte del sistema operativo Unix, dei compilatori e degli interpreti per Fortran, Pascal, Lisp e BASIC sono scritti con esso.

C è un linguaggio conveniente. È abbastanza strutturato per supportare un buon stile di programmazione senza essere vincolato da limiti rigidi. In un certo senso, il linguaggio C è il più versatile, perché oltre a un insieme di strumenti inerenti ai moderni linguaggi di programmazione di alto livello (strutturalità, modularità, alcuni tipi di dati), include strumenti per la programmazione quasi a livello di assemblatore. Una vasta gamma di operatori e strutture richiede al programmatore di essere attento, accurato e di avere una buona conoscenza del linguaggio con tutti i suoi vantaggi e svantaggi.

Il linguaggio C++ è apparso nei primi anni '80. Creato da Bjarne Stroustrup con l'obiettivo originale di salvare se stesso e i suoi amici dalla programmazione in assembly, C o vari altri linguaggi di alto livello.

Secondo l'autore del linguaggio, la differenza tra l'ideologia del C e del C++ è approssimativamente la seguente: un programma C riflette il “modo di pensare” del processore, mentre C++ riflette il modo di pensare del programmatore. Rispondendo ai requisiti della programmazione moderna, C++ si concentra sullo sviluppo di nuovi tipi di dati che corrispondono più pienamente ai concetti del campo di conoscenza prescelto e ai compiti dell'applicazione. La classe è un concetto chiave in C++. La descrizione della classe contiene una descrizione dei dati richiesti per rappresentare oggetti di questo tipo e un insieme di operazioni per lavorare con oggetti simili.

A differenza delle tradizionali strutture C e Pascal, i membri della classe non sono solo dati, ma anche funzioni. Le funzioni membro di una classe hanno accesso privilegiato ai dati all'interno degli oggetti di quella classe e forniscono un'interfaccia tra quegli oggetti e il resto del programma. In un ulteriore lavoro, non è assolutamente necessario ricordare la struttura interna della classe e il meccanismo delle funzioni integrate. In questo senso, l'aula è come un dispositivo elettrico: poche persone conoscono il suo dispositivo, ma tutti sanno come usarlo.

Il linguaggio C++ è un linguaggio di programmazione a oggetti, l'ultima tecnica per la progettazione e l'implementazione di programmi, che è probabile che nel decennio in corso sostituirà la tradizionale programmazione procedurale. L'obiettivo principale del creatore del linguaggio, il Dr. Bjorn Stroustrap, era quello di dotare il linguaggio C++ di costrutti che rendessero possibile aumentare la produttività dei programmatori e facilitare il processo di padronanza di prodotti software di grandi dimensioni.

L'astrazione, l'implementazione, l'ereditarietà e il polimorfismo sono proprietà essenziali di C++, che lo rendono non solo universale come il C, ma anche un linguaggio a oggetti. Fortran Fortran è un linguaggio ampiamente utilizzato, soprattutto tra gli utenti che fanno modellazione numerica. Ciò è dovuto a diverse ragioni:

L'esistenza di ingenti fondi di programmi Fortran applicati accumulati negli anni, nonché la presenza di un numero enorme di programmatori che utilizzano efficacemente questo linguaggio;

La presenza di efficaci traduttori Fortran su tutti i tipi di computer e le versioni per varie macchine sono abbastanza standardizzate e il trasferimento di programmi da macchina a macchina di solito non pone grandi difficoltà;

Il focus originale di Fortran sulle applicazioni fisiche, matematiche e tecniche; in particolare, ciò si è manifestato nel fatto che per lungo tempo è rimasto l'unico linguaggio con un tipo complesso di variabili integrate e un ampio insieme di funzioni integrate per lavorare con tali variabili.

Nell'ultimo periodo si è formata una nuova metodologia e filosofia di programmazione. Dall'inizio degli anni '70 Fortran è stato oggetto di meritate critiche. Nel 1977 fu adottato un nuovo standard linguistico, Fortran-77. Ci è voluto molto tempo per creare un nuovo standard, ma ora possiamo già considerare che il suo sviluppo è stato completato e il nuovo standard Fortran-90 ha iniziato a entrare nella pratica degli utenti Fortran. Solo su macchine come il PC IBM, ci sono diversi traduttori come Watfor, Lap-Fortran, ecc. Ma i più diffusi su macchine di questo tipo sono varie versioni del traduttore Fortran-77. Rilasciato nel 1990, il traduttore MS-Fortran 5.0 è quasi completamente conforme allo standard Fortran-90. La maggior parte delle principali applicazioni scientifiche e tecniche sono scritte in Fortran per via della sua portabilità e stabilità, e anche per le funzioni matematiche e trigonometriche integrate. Una parte integrante e aggiuntiva di qualsiasi programma applicativo Fortran è una libreria grafica estesa che consente di utilizzare vari dati grafici e immagini.

Il linguaggio è stato creato principalmente nel 1975 - 1980 a seguito di un grandioso progetto intrapreso dal Dipartimento della Difesa statunitense per sviluppare un unico linguaggio di programmazione per i cosiddetti sistemi embedded (ovvero i sistemi di controllo in tempo reale per complessi automatizzati). In primo luogo, avevano in mente i sistemi di controllo di bordo per le strutture militari (navi, aerei, carri armati, missili, proiettili, ecc.). Pertanto, le decisioni prese dagli autori di Ada non sono da ritenersi universali. Devono essere percepiti nel contesto delle caratteristiche dell'area disciplinare prescelta. La lingua di Ada è nata a seguito di un concorso internazionale per progetti linguistici tenutosi nel 1978-1979. I partecipanti hanno dovuto soddisfare requisiti piuttosto severi e dettagliati sviluppati sotto gli auspici del Dipartimento della Difesa degli Stati Uniti. È interessante notare che tutte le lingue che hanno raggiunto gli ultimi round di questa competizione erano basate su Pascal. A questo proposito, Ada può essere provvisoriamente caratterizzato come un Pascal sviluppato tenendo a mente i cinque requisiti di base di cui sopra. Allo stesso tempo, gli autori hanno seguito principalmente il percorso di espansione di Pascal con nuovi elementi. Il risultato è un linguaggio molto più complesso.

cobolo

Il cobol è un linguaggio relativamente antico, sviluppato principalmente per la ricerca economica. Il linguaggio ti consente di lavorare in modo efficace con una grande quantità di dati, è pieno di varie capacità di ricerca, ordinamento e distribuzione. Informazioni sui programmi Cobol basati sull'uso diffuso di lingua inglese, si dice che siano comprensibili anche a chi non parla Cobol, poiché i testi in questo linguaggio di programmazione non necessitano di commenti particolari. Tali programmi sono chiamati autodocumentanti. Altri vantaggi di Cobol sono solitamente attribuiti alla sua struttura. I compilatori abbastanza potenti di questo linguaggio sono sviluppati per i personal computer. Alcuni di essi sono così efficaci che un programma sottoposto a debug su un personal computer può essere facilmente trasferito su computer mainframe.

Elencando i contro, non si può fare a meno di ricordare che su Cobol si possono programmare solo i più semplici calcoli algebrici. Per i calcoli di ingegneria, questo linguaggio non è adatto. Un altro motivo che in una certa misura ostacola lo sviluppo della lingua è la presenza negli Stati Uniti di un comitato di settore appositamente creato che sviluppa standard monitorati da una commissione governativa. Come sempre accade in questi casi, le aziende di sviluppo software non hanno fretta di adattare i loro pezzi ai rigidi requisiti della commissione, non c'è competizione di versioni e alla fine perdono la diffusione del linguaggio

PL/1 è stato sviluppato nel 1964-1965 da IBM. PL/1 è uno dei linguaggi universali, ovvero consente di risolvere problemi di diverse aree: calcoli numerici, elaborazione testi, problemi economici, ecc. In termini di capacità, si sovrappone a linguaggi come Fortran, Algol-60 (creato per calcoli numerici), Kobol (per problemi economici), anche se per una serie di ragioni PL/1 non poteva sostituire questi linguaggi.

PL/1 contiene tutte le costruzioni di base caratteristiche dei cosiddetti linguaggi di alto livello, nonché una serie di strumenti specifici utili per la programmazione pratica. Il linguaggio assomiglia a un costruttore con un gran numero di dettagli: l'utente deve solo padroneggiare quelle parti del linguaggio che sono praticamente necessarie per lui. Le sue istruzioni sono abbastanza capienti, il che spesso rende possibile scrivere un programma in modo più compatto rispetto ad altri linguaggi. Un programmatore che conosce PL/1 può facilmente padroneggiare qualsiasi altro linguaggio della stessa classe o di una classe simile.

Allo stesso tempo, PL/1 presenta anche una serie di carenze che rendono difficile l'apprendimento e l'uso della lingua. I principali sono i seguenti. In primo luogo, ci sono molti mezzi che si duplicano a vicenda; In secondo luogo, i programmi non sono completamente indipendenti dalla macchina.

Modula

Si può considerare che la storia del linguaggio Modula inizia nel 1980, quando Niklaus Wirth, uno dei più importanti teorici dell'informazione, noto alla maggior parte degli informatici principalmente come il creatore del linguaggio Pascal, pubblicò la descrizione di un nuovo linguaggio di programmazione, che chiamò Modula. A differenza del Pascal, inteso come linguaggio per l'insegnamento della programmazione, Modula è stato fin dall'inizio un linguaggio per programmatori di sistemi professionisti, continuando le migliori tradizioni del suo predecessore e arricchendole con nuove idee che soddisfano tali requisiti per i linguaggi di programmazione come struttura , modularità e possibilità di espansione. Come molti altri linguaggi di programmazione, Modula ha subito un'evoluzione, durante la quale il suo nome originale è stato cambiato in Modula-2. Contemporaneamente allo sviluppo del linguaggio Modula sono stati creati nuovi compilatori per esso, tuttavia nessuno di essi poteva competere con le migliori implementazioni dei linguaggi Pascal e C, ad esempio quelli sviluppati da Borland. In questo periodo di transizione per il linguaggio Modula sono state considerate le migliori le implementazioni realizzate da Logitech, che, per caratteristiche, hanno perso contro Turbo Pascal e Turbo C. Solo nel 1988, dopo che il sistema Top Speed ​​è apparso sul mercato americano, Modula-2 ha preso il suo giusto posto tra i linguaggi procedurali destinati alla programmazione di sistema. Diversi fattori hanno contribuito alla crescente popolarità del sistema Top Speed: un ambiente operativo comodo e, inoltre, facilmente modificabile, un compilatore veloce e un linker selettivo. Ma la cosa più significativa si è rivelata che i programmi creati si distinguevano per l'alta velocità e non occupavano molto spazio di memoria.

DI BASE

BASIC (Basic - Codice di istruzione simbolico per tutti gli usi per principianti - "codice di istruzione simbolico universale per principianti"). Un diretto discendente di Fortran e tuttora il linguaggio di programmazione più popolare per personal computer. BASIC è apparso nel 1963 (sarebbe difficile nominare l'autore, ma il merito principale nel suo aspetto appartiene senza dubbio agli americani John Kemeny e Thomas Kurtz). Come ogni vantaggio, la semplicità del BASIC andava a scapito della strutturazione, specialmente nelle prime versioni; inoltre, BASIC non consentiva la ricorsione, un trucco interessante che consente di scrivere programmi efficaci e allo stesso tempo brevi.

Sono stati sviluppati potenti compilatori BASIC che forniscono non solo un ricco vocabolario e prestazioni elevate, ma anche la possibilità di programmazione strutturata. Secondo alcuni programmatori, le versioni più interessanti sono GWBASIC, Turbo-Basic e Quick Basic.

Un tempo, la comparsa di Quick Basic segnò la nascita della seconda generazione di sistemi di programmazione BASIC. Ha fornito la possibilità di programmazione modulare e procedurale, creazione di librerie, compilazione di programmi già pronti, ecc., Che lo hanno portato al livello di linguaggi di programmazione classici come C, Pascal, Fortran, ecc. Inoltre, a causa della mancanza di uno standard linguistico BASIC ufficiale, sotto forma di Quick Basic è diventato lo standard de facto. I leader indiscussi tra le varie versioni di BASIC furono Quick Basic 4.5 e PDS 7.1 di Microsoft, apparsi alla fine degli anni '80.

Liscio

Il linguaggio Lisp è stato proposto da J. McCarthy nel 1960 e si concentra sullo sviluppo di programmi per la risoluzione di problemi non numerici. Il nome inglese di questa lingua - LISP è un'abbreviazione dell'espressione LIST Processing (elaborazione di elenchi) e sottolinea bene l'area principale della sua applicazione. Il concetto di “lista” si è rivelato molto capiente. Sotto forma di elenchi, è conveniente rappresentare espressioni algebriche, grafici, elementi di gruppi finiti, insiemi, regole di inferenza e molti altri oggetti complessi. Gli elenchi sono la forma più flessibile di rappresentazione delle informazioni nella memoria del computer. Non c'è da stupirsi, quindi, che un linguaggio pratico progettato specificamente per la gestione degli elenchi abbia preso rapidamente piede.

Dopo l'avvento del Lisp, vari autori hanno proposto una serie di altri linguaggi algoritmici incentrati sulla risoluzione di problemi nel campo dell'intelligenza artificiale, tra cui si possono notare Planner, Snobol, Refal, Prolog. Tuttavia, ciò non ha impedito al Lisp di rimanere il linguaggio più popolare per risolvere tali problemi. Nel corso di quasi quarant'anni della sua esistenza, sono comparsi numerosi dialetti di questa lingua: Common LISP, Mac LISP, Inter LISP, Standard LISP, ecc. Le differenze tra loro non sono fondamentali e si riducono principalmente a una leggermente diversa insieme di funzioni integrate e alcune differenze nella forma dei programmi di notazione. Pertanto, un programmatore che ha imparato a lavorare su uno di essi può facilmente padroneggiarne un altro. Il grande vantaggio di Lisp è il suo orientamento funzionale, ovvero la programmazione avviene tramite funzioni. Inoltre, una funzione è intesa come una regola che abbina gli elementi di una certa classe con gli elementi corrispondenti di un'altra classe. Il processo di abbinamento stesso non ha alcun effetto sul funzionamento del programma, solo il suo risultato è importante: il valore della funzione. Ciò rende relativamente facile scrivere ed eseguire il debug di sistemi software di grandi dimensioni. La chiarezza dei programmi, una chiara delimitazione delle loro funzioni, l'assenza di effetti collaterali complicati durante la loro esecuzione sono requisiti obbligatori per la programmazione di compiti logicamente complessi come i compiti di intelligenza artificiale. La disciplina nella programmazione diventa particolarmente importante quando non una persona ma un intero gruppo di programmatori sta lavorando al programma.

Il linguaggio di programmazione Lisp è progettato principalmente per l'elaborazione di informazioni simboliche. Pertanto, è naturale che nel mondo della Lisp i numeri giochino ben lontani dal ruolo principale. I principali tipi di dati in Lisp sono chiamati "atomo" e "coppia di punti".

Prologo

Un linguaggio di programmazione logica è progettato per rappresentare e utilizzare la conoscenza su una determinata area tematica. I programmi in questo linguaggio sono costituiti da un certo insieme di relazioni, e la sua esecuzione si riduce alla derivazione di una nuova relazione basata su quelle date. Prolog implementa un approccio dichiarativo, in cui è sufficiente descrivere il problema con l'aiuto di regole e affermazioni su determinati oggetti. Se questa descrizione è sufficientemente accurata, il computer può trovare autonomamente la soluzione richiesta.

Oggetto PAL

Object PAL è un potente linguaggio di programmazione. Object PAL è un linguaggio di programmazione visuale orientato agli oggetti, guidato dagli eventi. Al livello iniziale della funzionalità di Object PAL, è possibile eseguire operazioni sui dati, creare menu speciali e gestire la sessione di immissione dati. Gli eventi in Object PAL generano comandi che imitano l'effetto dell'uso interattivo di Paradox. È possibile automatizzare le attività eseguite di frequente, nonché eseguire azioni su tabelle, moduli e report che non erano disponibili durante il lavoro interattivo. Inoltre, Object PAL fornisce tutte le funzionalità di un linguaggio di programmazione completo in ambiente Windows. È possibile utilizzare Object PAL per creare sistemi completi che implementano un sistema di menu personalizzato, un sistema di guida e tutti i tipi di convalida dei dati. In Object PAL, puoi archiviare il tuo lavoro in una libreria di collegamento dinamico a cui è possibile accedere da più moduli. Inoltre è possibile stabilire collegamenti con altre librerie dinamiche contenenti programmi scritti in linguaggi come C, C++ o Pascal.

Object PAL può essere utilizzato come strumento per la creazione di programmi standalone. Puoi scrivere un'applicazione Windows completa ed eseguirla in Paradox.

Object PAL supporta lo scambio di dati dinamico sia come client che come server. Inoltre, Object PAL supporta il motore di documenti compositi come client. Oltre a quanto sopra, è possibile includere strumenti multimediali nell'applicazione fornendo all'applicazione in esecuzione effetti sonori e di animazione.

L'implementazione di Borland del linguaggio dBase è un felice ibrido di orientamento agli oggetti e programmazione tradizionale. Ha consentito la creazione di sistemi utilizzando la progettazione di oggetti e l'uso di tecniche di elaborazione dei record convenzionali. Il grande risultato dell'azienda Borland è stato quello di combinare con successo tecniche di programmazione a oggetti e procedurali. La prima versione per Windows offriva all'utente lo strumento a oggetti più potente sul mercato del software di database. Ti consente di creare nuove classi di oggetti che hanno le proprietà di ereditarietà, incapsulamento e polimorfismo. Consente inoltre di programmare questi oggetti utilizzando i tradizionali comandi dBase, ideali per la gestione di semplici database tabulari. Tutto ciò offre un innegabile vantaggio: per eseguire la transizione alle tecniche di programmazione a oggetti senza troppe difficoltà, la transizione è complicata, ad esempio, come in Paradox DBMS.

Il linguaggio Java è nato nell'ambito di un progetto per la creazione di software avanzati per vari elettrodomestici. L'implementazione del progetto è stata avviata nel linguaggio C++, ma presto sono sorti numerosi problemi, il modo migliore per affrontarli è stato quello di cambiare lo strumento stesso: il linguaggio di programmazione. È diventato ovvio che era necessario un linguaggio di programmazione indipendente dalla piattaforma che consentisse di creare programmi che non avrebbero dovuto essere compilati separatamente per ciascuna architettura e che avrebbero potuto essere utilizzati su processori diversi con sistemi operativi diversi. Il linguaggio Java era necessario per creare prodotti interattivi per Internet. In effetti, la maggior parte delle decisioni architetturali prese nella creazione di Java sono state guidate dal desiderio di fornire una sintassi simile a C e C++. Java utilizza convenzioni quasi identiche per la dichiarazione di variabili, il passaggio di parametri, il passaggio di operatori e il controllo del flusso di codice. Java aggiunge tutte le buone caratteristiche di C++.

Tre elementi chiave che si uniscono nella tecnologia del linguaggio Java

Java rende le sue applet disponibili per un uso generale: applicazioni di rete attive piccole, robuste, dinamiche e indipendenti dalla piattaforma che sono integrate pagine web. Le applet Java possono essere personalizzate e distribuite ai consumatori con la stessa facilità di qualsiasi documento HTML.

Java libera la potenza dello sviluppo di applicazioni orientato agli oggetti combinando una sintassi semplice e familiare con un ambiente di sviluppo robusto e facile da usare. Ciò consente a un'ampia gamma di programmatori di creare rapidamente nuovi programmi e nuove applet.

Java fornisce al programmatore un ricco set di classi di oggetti per astrarre chiaramente molte delle funzioni di sistema utilizzate in windowing, networking e I/O. La caratteristica fondamentale di queste classi è che forniscono astrazioni indipendenti dalla piattaforma per un'ampia varietà di interfacce di sistema.

Linguaggi di programmazione per reti di computer

I linguaggi di programmazione per le reti di computer vengono interpretati. Gli interpreti per loro sono distribuiti gratuitamente e i programmi stessi sono nel codice sorgente. Tali linguaggi sono chiamati linguaggi di script.

Perl è un linguaggio interpretato creato dal programmatore Larry Wall per l'elaborazione di testi e file di grandi dimensioni e sta per Practical Extraction e Report Language (linguaggio per l'estrazione pratica e il reporting dei dati). Con Perl, ad esempio, puoi creare uno script che apra uno o più file, elabora le informazioni e scriva i risultati.

Perl è un linguaggio adattato per elaborare file di testo arbitrari, estrarre da essi le informazioni necessarie e inviare messaggi. Perl è utile anche per scrivere vari programmi di sistema. Questo linguaggio è facile da usare, efficiente, ma è difficile dire che sia elegante e compatto. La sintassi delle espressioni Perl è vicina a quella di C. La ricorsione può essere di profondità arbitraria. Sebbene Perl sia in grado di scansionare file di testo, può anche gestire dati binari. Perl consente di utilizzare espressioni regolari, creare oggetti, inserire parti di codice Perl in un programma C o C++ e consente inoltre di accedere ai database, incluso Oracle.

Con l'invenzione del World Wide Web, Perl si è rivelato un ottimo modo per comunicare con i server Web attraverso la Common Gateway Interface (CGI), un'interfaccia di comunicazione comune. I comandi Perl possono facilmente ottenere dati da un modulo HTML o da un'altra fonte ed eseguire alcune azioni su di esso.

Lingua PHP(1995-1997) ha accesso al database ed è utilizzato dai creatori di siti dinamici in tutto il mondo.

Lingua tcl/tk(fine anni '80) è costituito da potenti comandi progettati per funzionare con oggetti astratti non tipizzati e consente di creare programmi con un'interfaccia grafica.

Lingua VRML(1994) è stato creato per organizzare interfacce tridimensionali virtuali su Internet.

Lingua XML. Dal 1996 è in corso il lavoro per creare un linguaggio universale per la struttura dei documenti. Può diventare un sostituto del linguaggio HTML.

Conclusione

Risorse utili

La recensione di Isili

Dov'è il rapporto?

Recensito da Ranifka

Re: Dov'è il rapporto?
Tutto sarà :D

Feedback da Shamagulova Elite

Recensito da Alexander Mishin

Ottimo rapporto. Ho imparato molto sui linguaggi di programmazione.

Feedback di Alexander Morozov

Naturalmente, mi piacerebbe vedere un rapporto o almeno una presentazione in qualche modo.

In un mondo che cambia dinamicamente, quando solo ieri le professioni rispettate si trasformano nel nulla, molte persone cercano qualcosa da fare nella vita, in modo che sia interessante e rilevante per il tempo presente e allo stesso tempo redditizio. Molto spesso queste ricerche portano alla programmazione: i bravi programmatori anche nella CSI guadagnano migliaia di dollari, hanno molto tempo libero, la possibilità di lavorare da remoto e hanno possibilità di crescita professionale.

Oltre a questi vantaggi, la programmazione è anche diversa in quanto per padroneggiarla non è necessario passare anni a pulirsi i pantaloni nelle università. Qui tutto è deciso dall'autoeducazione, Internet ha tutto il materiale necessario per uno studio autonomo di successo in qualsiasi linguaggio di programmazione: lezioni di testo, lezioni video, istruzioni, consigli di professionisti esperti e altro materiale didattico. In questo modo, puoi facilmente padroneggiare le moderne tecnologie di programmazione e trovare un lavoro davvero dignitoso.

Ma prima di metterti al lavoro, devi rispondere a una domanda importante per te stesso: quali moderni linguaggi di programmazione saranno rilevanti nel 2017, su quale di questi dedicare tempo e fatica? Molto dipende dalla risposta corretta qui: la complessità e la velocità del processo di apprendimento, la soglia minima per accedere all'attività reale e ulteriori prospettive di carriera.

Aree di programmazione e linguaggi promettenti per il 2017

Per decidere su un linguaggio di programmazione specifico da studiare (uno o più), devi prima rispondere alla domanda: in quale area della programmazione una persona vorrebbe lavorare. Le aree più popolari e in rapido sviluppo sono ora:

Tecnologie di programmazione web. Creazione di siti Web, servizi online e servizi bancari, negozi online, pagine di destinazione per aziende e simili: tutto questo fa parte della programmazione web. Sempre più persone sul pianeta stanno diventando utenti di Internet, sta diventando sempre più veloce ed economico, anche persone di età matura e avanzata stanno diventando utenti attivi della rete. Nel 2017 questa tendenza si sta solo intensificando e il tetto del suo sviluppo non è ancora visibile. Pertanto, è molto utile imparare i linguaggi di programmazione relativi a Internet. Di seguito verrà presentato un elenco dei più popolari;

Programmazione per gadget: smartphone, tablet, smartwatch, occhiali per realtà virtuale e altro ancora. Questo è anche un campo di attività molto interessante e in rapido sviluppo. Miliardi di persone in tutto il mondo usano gadget, leggono notizie, guardano video, ascoltano musica e fanno molte altre cose su di essi. Tutte queste caratteristiche elettroniche sono possibili grazie ad un ben scritto Software. Spesso costa molto di più del dispositivo fisico stesso. La programmazione in questo settore è ora molto redditizia. Vale la pena notare che qui vengono utilizzati più spesso linguaggi di programmazione di alto livello.

Quale lingua scegliere

È impossibile dire quale lingua sia la più moderna. Molti di loro sono usati molto ampiamente e attivamente. Ma se stiamo parlando di linguaggi di programmazione promettenti, allora i seguenti possono essere definiti i migliori:

  • Giava. Il linguaggio di programmazione più versatile e diffuso con il quale puoi sviluppare sia applicazioni per computer che gadget, soprattutto per Controllo Android Sistema operativo. Ha una sintassi chiara, apprende abbastanza facilmente e velocemente, i primi programmi in Java possono essere scritti già poche settimane dopo l'inizio della formazione. La caratteristica principale che lo rende molto promettente è l'utilizzo per la programmazione Android, che ora si sta sviluppando molto rapidamente;
  • C#. Un'ottima opzione per una persona che vuole dedicare le proprie attività alla scrittura di programmi per sistemi informatici. È il linguaggio C Sharp (C#) che è la base su cui vengono scritti la maggior parte dei programmi per varie piattaforme e servizi di Microsoft. Con esso, puoi sviluppare applicazioni Web utilizzando .NET e Azure, nonché programmi direttamente per Windows, varie applicazioni aziendali e molte altre cose. Ci vuole un po' di lavoro per capire C#, ma alla fine ripaga;
  • PHP. Se il tuo compito è scrivere script di alta qualità e modelli interattivi per risorse Internet o essere l'amministratore di un server, che ora è un'occupazione molto redditizia, PHP lo farà il modo migliore realizzare tale aspirazione. I moderni linguaggi di programmazione semplicemente non possono fare a meno di questo rappresentante. Impara abbastanza velocemente e facilmente: se studi PHP con attenzione e regolarmente, dopo 2-3 anni puoi fare domanda per un'ottima posizione e uno stipendio adeguato.

Naturalmente, questo è tutt'altro che una descrizione completa delle lingue e della loro classificazione, ma anche un elenco così piccolo è abbastanza per scegliere un campo di attività buono e promettente per te stesso.

Una revisione completa dei moderni linguaggi di programmazione potrebbe richiedere troppo tempo, ma non è così necessario, poiché vale la pena ricordare la cosa principale: una persona che parla correntemente almeno una lingua sarà sicuramente in grado di trovare il suo posto in il campo della programmazione. E la conoscenza di una di queste lingue sarà sicuramente sufficiente per guadagnare bene e risolvere problemi interessanti.

Sono trascorsi quasi 60 anni dalla comparsa del primo linguaggio di programmazione di alto livello Fortran nel 1957 e non sorprende che la programmazione sia andata molto avanti in così tanto tempo. Ci sono nuove tecnologie, nuovi concetti e paradigmi di programmazione e, naturalmente, nuovi linguaggi. Di norma, la creazione di un linguaggio di programmazione è guidata dalle esigenze dei tempi: i nuovi compiti spesso richiedono nuovi strumenti per risolverli, che faranno un lavoro migliore dei loro predecessori. A questo proposito, ogni anno compaiono diversi nuovi linguaggi, che incorporano tutto il meglio che è stato accumulato in decenni di programmazione pratica e allo stesso tempo portano qualcosa di nuovo. Alcuni dei linguaggi di programmazione più interessanti che sono apparsi abbastanza di recente, ma si sono già dimostrati strumenti potenti e moderni per lo sviluppatore, saranno discussi in questo articolo.

Veloce

Un linguaggio gratuito per uso generale creato da Apple per lo sviluppo di iOS e OS X. Il linguaggio è compatibile con Objective-C, che consente di utilizzare entrambi i linguaggi in un unico programma. Lo sviluppo del linguaggio è iniziato nel 2010 sotto la guida di Chris Lattner, capo dello sviluppo di Apple. Swift ha preso in prestito idee da molti linguaggi esistenti in varie direzioni: dal C++ all'Haskell. L'introduzione ufficiale della lingua è avvenuta nel giugno 2014, insieme a un manuale di 500 pagine per il suo utilizzo. Puoi lavorare su Swift nell'ambiente di programmazione Xcode 6 per iOS. La versione 3.0 della lingua aggiunge il supporto per Linux.
Il linguaggio ha preso molto da Objective-C; allo stesso tempo, si posiziona come più sicuro e veloce. Secondo le assicurazioni degli sviluppatori, il codice in Swift funziona 1,5 volte più velocemente di un codice simile in Objective-C.

Hack

Linguaggio sviluppato da  ; sembra PHP. Il codice hacker viene eseguito su una macchina virtuale speciale che supporta anche PHP. Il linguaggio è aperto - I codici sorgente Hack sono aperti a chiunque voglia partecipare al suo miglioramento. Sebbene il linguaggio sia basato sul noto PHP, gli sviluppatori sono riusciti a creare uno strumento completamente nuovo e altamente affidabile per la creazione rapida di siti Web e altre applicazioni. Il risultato ha impressionato così tanto   che tutti i progetti dell'azienda sono stati trasferiti su Hack, un fatto che parla da sé.

Giulia

Nuovo linguaggio per i calcoli matematici. La sintassi del linguaggio è stata influenzata da Matlab e da altri linguaggi matematici, ma ci sono anche differenze significative. Il linguaggio stesso è scritto in C e C++; Il codice del programma del linguaggio viene eseguito sulla macchina virtuale LLVM, per la quale Julia è dotata di un compilatore JIT. Grazie alla compilazione è stata raggiunta un'elevata velocità di lavoro applicativo, paragonabile ai programmi scritti in C++.
Il linguaggio supporta il calcolo distribuito, l'overloading delle funzioni e il parallelismo del codice. Il compito principale di Julia: lavorare con una grande quantità di calcoli mantenendo prestazioni elevate. Per questi scopi, al linguaggio è stato aggiunto anche il supporto per il cloud computing. Oltre ai problemi puramente matematici, utilizzando Julia è anche possibile creare programmi generici.

Dardo

Un linguaggio creato da Google in sostituzione di JavaScript. A causa di alcuni "difetti fondamentali" del linguaggio JavaScript che non possono essere corretti, si è deciso di creare un nuovo linguaggio per la programmazione web. Allo stesso tempo, la lingua doveva essere creata il più possibile simile a quelle esistenti, in modo da semplificare la transizione e l'apprendimento per i principianti. Attualmente, i programmi Dart vengono eseguiti in due modi: attraverso macchina virtuale Dart VM e traducendo in JavaScript. In futuro, Dart dovrebbe sostituire JavaScript come linguaggio universale per la programmazione web.

Digita Script

Un altro linguaggio che si posiziona come sostituto di JavaScript. Lo sviluppatore del nuovo linguaggio è stato il famoso Anders Hejlsberg, autore di Delphi, C# e Turbo Pascal. Type Script è un linguaggio aperto che è retrocompatibile con Java Script. Il compilatore converte il codice Type Script in JavaScript, che viene quindi eseguito dal browser. A differenza di JS, il nuovo linguaggio supporta tutte le funzionalità della programmazione orientata agli oggetti, oltre a collegare i moduli. La compatibilità di Type Script e JavaScript consente di utilizzare il codice JavaScript esistente nei nuovi progetti di Type Script, comprese le popolari librerie JS. C'è il supporto per il paradigma di programmazione generico.



Sostieni il progetto - condividi il link, grazie!
Leggi anche
regole del gioco del combattimento di galli regole del gioco del combattimento di galli Mod per Minecraft 1.7 10 ricette per guardare.  Ricette per creare oggetti in Minecraft.  Armi in Minecraft Mod per Minecraft 1.7 10 ricette per guardare. Ricette per creare oggetti in Minecraft. Armi in Minecraft Scellino e sterlina: l'origine delle parole Scellino e sterlina: l'origine delle parole