O que poderia ser a programação do futuro. Um novo visual
As pessoas estão sempre interessadas no futuro. Sou um ser humano, um programador humano e estou interessado no futuro da programação. Em Habré / Geektimes, artigos semelhantes já foram encontrados, e também na rede foi possível desenhar muito sobre esse assunto. Hoje, dou minha lista de possíveis inovações em programação nos próximos 10-20-50 anos. No post, você encontrará uma análise comparativa das causas e necessidades do surgimento das linguagens de programação atuais e uma descrição das possíveis causas do surgimento de novas linguagens e ferramentas. A palavra-chave aqui é necessidade, uma vez que a causa gera necessidade em si mesma.Antecedentes históricos do surgimento de línguas
No começo, quero dar uma tabela de pré-requisitos para o surgimento e a popularização das linguagens de programação atuais, a lista mais geral:Língua | Razão / Necessidade |
Montador | O surgimento dos primeiros computadores, a necessidade de humanização dos códigos de máquina |
C | O aumento no número de variedades de computadores e suas arquiteturas. A necessidade de montador universal. |
C ++ | O desenvolvimento de interfaces de usuário. A necessidade de humanização e estruturação do código do programa C. |
Java | O declínio da Sun, o desenvolvimento da web. A necessidade de interação interativa usuário-navegador. |
C # | Popularização de Java, problemas atuais de desenvolvimento de software para plataformas Microsoft e Web. A necessidade da Microsoft de ter sua própria pilha de tecnologia. |
Javascript | - Netscape - . - . |
Objective-C | Apple- . Apple . |
PHP/Ruby/Whatever | . -. |
Your Language | ??? |
O que não está abaixo é uma análise científica profunda dos conceitos dados. Mas há uma descrição dos motivos para o surgimento de novas linguagens ou ferramentas, como na tabela acima.Computador quânticoA primeira coisa que vem à mente é a mudança de era dos computadores semicondutores com os quânticos. As capacidades terão uma ordem de magnitude diferente, as tarefas que a tecnologia quântica permitirá resolver também mudarão os limites da imaginação dos programadores. As primeiras linguagens para um computador quântico já estão sendo criadas; é seguro dizer que, à medida que a tecnologia se desenvolve, novas linguagens aparecerão, provavelmente com base nas atuais.AIO crescimento do uso da IA nas condições cotidianas afetará e já está afetando as ferramentas do desenvolvedor e a estrutura do PL Vamos levar os assistentes de voz pelos telefones. Ou, por exemplo, converse com inteligência artificial. Ou, se a IA evoluir para o nível em que irá escrever programas? Neste último caso, parece provável que apareça uma linguagem especial na qual a IA possa facilmente desenvolver programas com base nos requisitos.Novos dispositivosO lançamento dos iPhones marcou a popularização do Objective-C. É possível que o dispositivo muito popular da Corporation X já esteja sendo desenvolvido, o que marcará a popularidade da linguagem Y. Talvez seja o Tesla?Desastres globaisPode acontecer que, Deus permita, haverá um cataclismo ou guerra global, que mudará fundamentalmente os próprios métodos de interação entre pessoas e máquinas. Pode-se presumir que a Internet, se houver, também retornará às suas raízes e não será mais tão onipresente. No caso de uma guerra global, será necessário militarizar os carros. Onde, em primeiro lugar, não haverá tanta facilidade de uso quanto cálculos e confiabilidade. A partir do qual se pode supor que linguagens semelhantes a OOP desaparecerão em segundo plano, dando a palma para linguagens de computação como R, Fortran. Talvez seja uma simbiose, como algum tipo de R ++ ou Fortran ++.Descobertas em FísicaA ciência não pára, a pesquisa está sendo conduzida em todas as áreas e qualquer uma delas pode se tornar dominante para as pessoas. O que acontece se as pessoas puderem manipular o espaço e o tempo? O que acontece se abrirmos a quinta dimensão ? Máquina do tempo? Será óbvio que o software para mover-se no espaço precisará ser escrito em algo novo, adaptado a grandes quantidades de dados. Falando imenso, imagino os volumes de galáxias e universos, isso é apenas dentro da imaginação. Qual será esse idioma? Obviamente, orientado para computação paralela, infraestrutura de rede, processamento e visualização de dados.Novas maneiras de interagir com dispositivosControle por voz, controle por gestos, dispositivo de entrada baseado em gestos, controle de pensamentos por computador. Já é, continua sendo a tecnologia para se tornar popular.
Ferramentas
As ferramentas são uma classe separada de necessidades de um programador. Sem eles, o progresso é impensável, assim como a linguagem não pode estar sem um instrumento.Programação visualNão faz muito tempo, as tentativas de criar ferramentas de programação visual não podem ser contadas . E frequentemente, e se não sempre, essas ferramentas tropeçavam na incapacidade de exibir o número de peças necessárias para resolver o problema de forma visual. O próprio autor tentou criar uma ferramenta semelhante, pelo qual ele recebeu fi ignorante dos colegas. A maioria comparou quanto tempo é necessário para criar um programa visualmente e quanto eles estão gastando agora. O que o segundo método sempre ganhou. Mas ainda estou convencido de que, ao empacotar soluções encontradas com frequência de forma visual e ao organizar um repositório centralizado dessas soluções, você pode contornar a necessidade de retornar constantemente aos detalhes, ler o código.Geradores de interface Já existemhá muito tempo, mas por que eles não têm flexibilidade? E a cada novo formulário ou layout, você ainda precisa fazê-lo manualmente, anotando cada atributo e marca? Tomemos, por exemplo, LightSwitch . Uma ótima ferramenta, mas adequada para uma gama muito estreita de tarefas. A interface que é gerada a partir dos dados.sempre clichê. É muito difícil personalizá-lo de alguma forma, o que reduz seu uso à inserção de formulários e dados CRUD. O autor há muito sonha com essas soluções:- Geração de formulário (WinForms, WPF, Swing, WinAPI) com base em dados
- Geração de interface nativa baseada em PSD
Isso já existe? Ou estou mal?Programação por toque (voz, gestos, toques)Imagine futuros programadores agitando as mãos ativamente e dizendo em voz alta "feitiços"em novos idiomas. Francamente, eu, como programador, sou muito estrangulado pela incapacidade de mostrar emoçõesenquanto escrevia código. Todos os dias, batendo silenciosamente na clave, me torno um robô sem emoção, baseado nopensamento e no cálculo. Entrando no mundo real após essas sessões de codificação, tenhodificuldades reais em me comunicar com as pessoas e expressar emoções. Gente, é hora de sermos mais expressivos!Programas de geradoresDesenvolvimento de software de fábrica , geradores de software. Sim, tudo isso é, mas não é amplamente utilizado. Por quê? Podemos jogar uma pedra no jardim de carros-chefe que criam ferramentas de desenvolvimento, mas podemos dizer que o jogo não vale a pena a vela, mas o resultado do trabalho. No entanto, não vejo a programação do futuro sem um repositório de soluções prontas e um gerador de programa baseado nele.
Previsão
Concluindo, gostaria de fazer uma previsão para o futuro:- Adaptação e expansão de idiomas existentes a novas condições
- Criando um repositório centralizado de soluções chave na mão
- Geração de interface e programa
- Programação visual e por toque baseada em gestos e voz
- Ah sim, aqui está o que mais eu gostaria. Documentação comparativa de linguagens e estruturas, onde você sabe como o método é
implementado na linguagem X, e o serviço mostraria sua implementação na linguagem Y. Por analogia, teríamos dominado todas essas estruturas mais rapidamente.
Source: https://habr.com/ru/post/pt383543/
All Articles