Revolutionary Changes in Programming: Past, Present and Future

Click For Summary

Discussion Overview

The discussion centers around the evolution of programming languages and paradigms, exploring significant changes in the past, current trends, and potential future developments. Participants examine various programming languages, their features, and the impact of recent updates on programming practices.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant notes that the last major revolution in programming was object-oriented programming and questions whether recent updates in languages like C++ and Python are introducing significant new functionalities or merely housekeeping changes.
  • Another participant highlights Google TensorFlow as a recent development that, while primarily aimed at machine learning, can also be utilized for solving numerical partial differential equations in parallel.
  • A participant introduces Elm as a functional programming language with unique features like a time-traveling debugger, suggesting it as an interesting development in programming.
  • Discussion includes the advantages of using node.js for server-side development in JavaScript, allowing for seamless data sharing between client and server.
  • Several JVM languages such as Groovy, Scala, Clojure, and Jython are mentioned for their interoperability with Java and enhancements over traditional Java features.
  • The Processing IDE is presented as a tool that makes Java programming enjoyable and effective for prototyping interactive graphics.
  • Julia is discussed as a promising language that aims to outperform MATLAB, incorporating features like polymorphic type calls to enhance performance.
  • A participant references the rewriting of the Stockfish chess engine from an older version of C++ to a more recent one, indicating significant updates in its codebase.

Areas of Agreement / Disagreement

Participants express a range of views on what constitutes a "revolution" in programming, with no consensus on whether recent updates represent significant advancements or not. Multiple competing perspectives on the impact and significance of various programming languages and tools are present.

Contextual Notes

Some claims about programming languages and their features depend on specific definitions and interpretations of what constitutes a revolutionary change. The discussion does not resolve the implications of these updates or their relative importance.

Hercuflea
Messages
593
Reaction score
49
I'm just a casual/academic programmer. The last major revolution in programming (that I know of) was object oriented programming. But some of the latest developments (in C++) that can actually be used by everyday programmers that I can think of are things like smart pointers which were only really implemented in 2014. Python gets updated every few months to a new version. Are these updates bringing new ideas/functionality to the languages that programmers can use or are they mostly just housekeeping? Are there any big "revolutions" in the works with the same kind of magnitude as the change to object oriented programming?
 
Technology news on Phys.org
Another example: Google Tensorflow. It was recently released as a plugin for python. It is meant for machine learning, but it can actually be used to do numerical partial differential equations in parallel.
 
Elm is an interesting programming language which is primarily functional. It has the time traveling debugger which is quite cool. There are several videos on YouTube by the creator Evan Czaplicki.

https://en.m.wikipedia.org/wiki/Elm_(programming_language)

There's node.js where you can develop the server side of web apps in JavaScript so your web app can use one language for both client and server side which makes sharing data via json format seamless.

There's JVM languages like groovy, Scala, Clojure and jython that interoperate with Java and can use the many third party libraries. Groovy is like super Java whereas Scala fixes many Java architectural issues and Clojure and Jython are super lisp and Python that can work with Java libraries.

There's the processing IDE which makes writing Java fun. It has a lot of cool interactive Java graphics examples. It's also great for prototyping ideas too. See processing.org for more info.

There's Julia from MIT that seems on track to be a better MATLAB but with datatyping to speed calculations. It also takes a page from OO in that you can use different calling signatures on functions for polymorphic type calls i.e. The function does one thing when an art is an integer and another thing when it's a vector, see Julialang.org
 

Similar threads

Replies
65
Views
5K
  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 10 ·
Replies
10
Views
6K
  • · Replies 20 ·
Replies
20
Views
6K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 6 ·
Replies
6
Views
1K
  • · Replies 6 ·
Replies
6
Views
2K