# Declaring the Future of Programming

DevFeed: [Declaring the Future of Programming](<https://devfeed.tech/articles/declaring-the-future-of-programming-33356.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2011/01/09/declaring-future-of-programming>)

Published: 2011-01-09T00:00:00Z

Content type: opinion

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [C](<https://devfeed.tech/topics/c.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [imperative](<https://devfeed.tech/tags/imperative.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [sql](<https://devfeed.tech/tags/sql.md>)

## AI overview

The article argues that programming languages have gradually favored declarative syntax over imperative instructions and predicts that this trend will continue. It contrasts machine code, assemblers, C and C++ with SQL, where programmers describe the desired result while the database system determines how to produce it.

## Source excerpt

Programming languages have developed significantly over the past several decades. I hypothesize that this development has tended more towards declarative syntax than imperative. The future of programming languages will only become more declarative in the years to come.In the beginning was machine code. Programmers wrote programs by stringing together arcane byte codes of instructions and parameters. Programs were getting pretty hard to read so they made assemblers so you could write instructions in plain text, complete with comments. An assembler program would process the source code and turn each instruction into it's equivalent machine code. This is imperative programming at its most pure state.When the first C compiler was written it immediately became popular because the programmer only had to declare what should happen in the program and the compiler would generate the necessary machine code to make that happen. Hence why you can write a C program that can be compiled for Linux, Windows and Mac with zero changes to the source code. However, C and C++ are still imperative languages in most other aspects because the thought process is still very much a "do this, now do this, now do this" algorithmic sequence of instructions.Query LanguagesThe hallmark of declarative languages thoughout history is probably SQL (referring strictly to set operations here). In SQL you describe the result set and let the DBMS decide the best way to produce that result set. For instance, consider this query:select p.FirstName, p.LastName, a.AccountNamefrom Person pinner join Account aon p.PersonId = a.ResponsiblePersonwhere a.IsActive = 1order by p.FirstName, p.LastNameFirst we describe the columns that we want (this actually happens last, if you want to be technical). In the from clause we say what tables we want information from and specify how we want them matched up using the on clause of the join. In the where clause we specify what criteria for the rows that we want to show and i