A arquitetura atual de computadores pede para que os aplicativos estejam preparados para utilizar mais de um núcleo de processamento. Este trabalho verificará se o modelo de programação atual, i.e. orientado a objetos, permite que os programas façam bom uso desta arquitetura, evidenciando possíveis motivos para procurar alternativas para acompanhar a evolução arquitetural. Trará uma breve explanação da história das linguagens de programação, contextualizando os motivos que levaram o mercado até o paradigma orientado a objetos. Através destes motivos e da evolução da arquitetura, será feita uma projeção sobre algumas razões que poderão fazer com que o estilo de programação atual seja substituído. Serão abordados os conceitos de concorrência e paralelismo que se tornam cada vez mais necessários com esta nova arquitetura. Esta abordagem será feita no modelo atual, em Java, e, trazendo como uma possível alternativa, o ponto de vista do modelo funcional puro e de avaliação preguiçosa, mais precisamente na linguagem Haskell.
The current architecture of computers calls for applications to be prepared to use more than one processing core. This paper will verify if the current programming model, i.e. object oriented, allows programs to make good use of this architecture, showing possible reasons to seek alternatives to accompany the architectural evolution. It will bring a brief explanation of the history of programming languages, contextualizing the reasons that led the market to the object-oriented paradigm. Through these reasons and the evolution of architecture, a projection will be made on some reasons that may cause the actual style of programming to be replaced. It will examine the concepts of concurrency and parallelism that are becoming more necessary with this new architecture. This examination will be made in the current model, in Java, and bringing as a possible alternative, the point of view of the functional model of pure and lazy evaluation, specifically in the Haskell language.
La arquitectura informática actual requiere que las aplicaciones estén preparadas para utilizar más de un núcleo de procesamiento. Este trabajo verificará si el modelo de programación actual, i.e. orientado a objetos, permite que los programas hagan un buen uso de esta arquitectura o si es necesario buscar alternativas para seguir la evolución arquitectónica. Traerá una breve explicación de la historia de los lenguajes de programación, contextualizando las razones que condujeron al mercado al paradigma orientado a objetos. Con base en estas razones y en la evolución de la arquitectura, se hará una proyección sobre algunas razones que podrían hacer que se reemplace el estilo de programación actual. Se abordarán los conceptos de concurrencia y paralelismo, que se hacen cada vez más necesarios con esta nueva arquitectura. Esta aproximación se realizará en el modelo actual, en Java, y, trayendo como una posible alternativa, en el modelo funcional puro y de evaluación perezosa, más precisamente en el lenguaje Haskell.