Live data from Hacker News

Ask HN: The future of programming languages?

news.ycombinator.com

11–20 of 57 posts

Re: Ask HN: The future of programming languages?

#11
I think (hope?) that the next wave in hacking will be understanding programming paradigms better as hackers - the specifics of language choice will probably matter a little less. I like the idea of languages that support multiple paradigms internally (e.g., you can embed logic programming into your functional programming language). A while back I spent some time reading Concepts, Techniques, and Models of Computer Programming and I wish I had found this book earlier in my career. I probably wasn't ready for it though.

This aspect of software development was largely missing from my formal educational experience in programming language paradigms.

What I am trying to do now is develop a better "taste" for what is "easy" using one programming paradigm compared to another. I'd ultimately like to have a better problem to paradigm mapping internalized. I've toyed with the idea of putting together a seminar or undergrad course to do flesh this out.

The elephant in the room is more market based - what programming languages will someone pay you to use in the future? We already have a number of interesting programming languages. But when you do your job search these days, I see a small number of large buckets. The .Net/CLR C# world, Java in the enterprise, Ruby (really the Rails framework, but even so), and a strong side of the data storage backend of your choice (RDBMs or NoSQL or sexps - kidding on that, pg keeps our own forum in files full of sexps).

Re: Ask HN: The future of programming languages?

#12
Topics that I think will be important:

  - Functional Programming
  - Logic Programming
  - Managing asynchronicity
  - Managing concurrency / Managing state
  - Pruning bad directions in OO (see the first two)
  - Type Systems
  - Virtual Machines
Languages/technologies that I would look at more closely given these are Haskell, Scheme, Prolog, Clojure, Qi, LLVM. I love JS but as far languages go, I would not look there for new ideas. At best I see it becoming a fantastic compile target.

I also don't see Haskell and Clojure being particularly specialized. They are very general purpose and suitable for tackling any kind of programming problem - simple to complex, JS on the other hand is a language with a very specific focus.

I don't see the importance of being able to read and understand C/C++ diminishing anytime soon as those languages are intimately tied to our operating systems.

EDIT 2: I added Type Systems above. I think Haskell has shown the power of an expressive type system. However it has it's problems. I look forward to see the distinction between languages w/ strong type systems and those without being abolished. Languages should support turning the type system on and off - see Qi. Type systems also should allow the typing of a much richer set of values - Qi's sequent calculus types is eye-opening in this regard.

EDIT: I'm opinionated about this, but the constant announcement of new languages that simply continue the traditional stateful OO paradigms (perhaps tacking on a couple of syntactic niceties or a crippled static type system) seem like complete dead ends.

Re: Ask HN: The future of programming languages?

#13
post #9

Earlier quoted context omitted.

The good news is that computers seem to be fast enough to allow game developers to work in less than speed-optimal languages, so long as they are willing to accept some stylization. Consider Minecraft, easily the hottest indie title in years, and it's written in straight-up Java. (As far as pure numerical computation is concerned, Java is actually a pretty good match for C++ these days, but 3d graphics remain a fairl…

Game developers don't only use it for speed. Mainly for portability. With c/c++ they can make (portions of their) code run on xbox/ps3/nintendo wii/ds/iphone/whatever.

Very true.

Syntax doesn't really matter in terms of performance - what matters is compiler optimizations. Theoretically someone, if they had a mind, could optimize a Python compiler to run just as fast as C (or at least as fast as a non-statically typed language can run).

With that in mind, perhaps some sort of modification to the JVM (or a competing VM that isn't controlled by Oracle) that provides an aggressively raw metal code would be an ideal future - the advantages of whatever language you want to use + speed and portability would be awesome.

Re: Ask HN: The future of programming languages?

#14
I for one wish that implementations of future languages provide the following features a) Some extension mechanism for the language like clos etc, where hooks are provided for executing code. b) Code walkers c) Documentation about the internals. I dont mind the language implementation being a tad slower because of simplicity but in the core has to be grokkable and extensible by the end programmer.

Existing languages suffice for most easy problems. For the hard problems that ive been tackling lately ive wished I could overcome some logical impedance between what I am doing and the language in a sane way. A few examples where additional flexibility would help a) Opengl is a state machine. Being able to take the graph of my program and write assertions that critical setup functions are called before other GL functions would help detect invalid logical states. b) Before, after functions (which exist in lisp) would be nice. EDIT: c) Being able to say -> for all objects in in my program that match this criteria, do something. Essentially -> for x in criteria(primitives(program)) do foo.

EDIT: A common thread to all the times I feel trapped as a programmer is when I have a knowledge of the meaning of my program which I want to express, or perhaps a question about its existing implementation which I would like answered. Many languages lack the introspective power to help me as a programmer to tackle these situations. Others simply make it inconvenient to do so.

Re: Ask HN: The future of programming languages?

#15
post #13
post #9

Earlier quoted context omitted.

Game developers don't only use it for speed. Mainly for portability. With c/c++ they can make (portions of their) code run on xbox/ps3/nintendo wii/ds/iphone/whatever.

Very true. Syntax doesn't really matter in terms of performance - what matters is compiler optimizations. Theoretically someone, if they had a mind, could optimize a Python compiler to run just as fast as C (or at least as fast as a non-statically typed language can run). With that in mind, perhaps some sort of modification to the JVM (or a competing VM that isn't controlled by Oracle) that provides an aggressively r…

LuaJIT (http://luajit.org/) performs quite well. While I can't say it'd be impossible, optimizing Python similarly would be much harder - Lua's tiny implementation and tendency to do everything in terms of a small and orthogonal group of concepts means it has far less that needs to be optimized. Python is pretty hairy in comparison.

Lua seems to have a similar advantage over Javascript, as well. LuaJIT beats Javascript V8 by a wide margin (http://shootout.alioth.debian.org/u64/benchmark.php?test=all...). It's not like Javascript implementers lack resources, either. LuaJIT is the work of one person.

Re: Ask HN: The future of programming languages?

#16

Decades ago, lots of programming languages were created that hardly anybody knows now, including some that would definitely be considered very specific, research-oriented, etc. This isn't really a new thing. See for example Jean Sammet's _Programming Languages: History and Fundamentals_. Edit: Bergin & Gibson's _History of Programming Languages, Volume 2_ is pretty good, too, but that one covers more recent languages…

Thanks for the references. I just wanted to take this opportunity to thank you in general for the high quality of your posts.

Re: Ask HN: The future of programming languages?

#18
post #16

Decades ago, lots of programming languages were created that hardly anybody knows now, including some that would definitely be considered very specific, research-oriented, etc. This isn't really a new thing. See for example Jean Sammet's _Programming Languages: History and Fundamentals_. Edit: Bergin & Gibson's _History of Programming Languages, Volume 2_ is pretty good, too, but that one covers more recent languages…

Thanks for the references. I just wanted to take this opportunity to thank you in general for the high quality of your posts.

Thanks. My academic background is in historical research, so I take references pretty seriously. :)

Re: Ask HN: The future of programming languages?

#19

Mandatory: http://paulgraham.com/hundred.html And the... result: http://arclanguage.com/

Arc was criticized when it came out for being basically a few macros on top of Scheme. I don't think that's a valid criticism. I don't know if Arc is the hundred-year language, but whenever the hundred-year language does come out, it might easily be some carefully-chosen macros on top of Scheme, macros that help write other useful macros.

Re: Ask HN: The future of programming languages?

#20
I don't know how the future of programming language will be, but I hope functional programming will take over the world, more and more people will try to prove their algorithms are correct (with Coq, for exemample) and cool type systems like System F or Dependent Types will be used more.
Post reply on HN