Live data from Hacker News

The next wave of programming languages

radar.oreilly.com

41–50 of 87 posts

Re: The next wave of programming languages

#41

In that list, Clojure is the language that excites me the most. It's a modern, pragmatic Lisp ready for the multiprocessor world. You can do a lot worse than trying it out if you haven't already.

Lot of people claim that STM in Clojure is the big reason to use it. To me it's been a lot simpler:

a) I want some macros to use for JVM-based projects

b) I like using Emacs + SLIME (it's the best development environment, period).

Unfortunately the noise of Rails fanboys migrating to it with their usual laundry list of complaints ("no IDE support", "no good web framework") is annoying. I have nothing against Ruby in general (in fact I really like the language) and Rails in specific (I know people who love it), but the whole reduction of programming languages to merely web frameworks is a setback for software engineering. That mindset has now been spreading: not only is it impossible to hear about Ruby without "Rails" mentioned next to it, it's now common to hear "Python/Django" and "Scala/Lift".

Web is just a UI layer, a fairly mundane and boring part of an application. Lisp has very little to show for these sorts of applications, but has a lot to show for more science/engineering intensive ones. You hear all the time about webapps being re-written into PHP and other blub languages, but the community is interpreting it as a setback for the languages (and an argument in favour of using blub from the start) rather than the fact that advanced language features make really little difference for web development.

Re: The next wave of programming languages

#42
The dynamic/compiled distinction needs to go away. Combine a simple syntax with very rapid compilation with LLVM, Type Inference, and very advanced emulator-based debugging, and there would be no need to have anything like Smalltalk/Perl/Python/Ruby any more. Instead of dynamic Duck Typing, you'd have Go's version, with auto-magic help from type inference. The emulator-based debugger could subsume many of the capabilities granted by a VM and enable the freewheeling runtime monkey-patching that can be leveraged for the same jaw-dropping ingenious debugging available in many current dynamic langs. This last component would be the hardest to implement.

(Cue the Haskell guys so they can point out how they're most of the way there already.)

Re: The next wave of programming languages

#44
post #14

Interesting languages not on the list: * io : http://www.iolanguage.com Clean, minimalistic, prototype based OO. * Reia : http://wiki.reia-lang.org Ruby-like syntax on Erlang's VM * Curry : http://www-ps.informatik.uni-kiel.de/currywiki Functional logic language : Prolog+Haskell. * Oz/Mozart : http://www.mozart-oz.org Multi-multi paradigm language, includes constraint based programming. Some of them are not necessari…

Reia is currently my wet dream language, similar to Ruby, and does concurrency(buit on top of BEAM for Christs sakes). And then you read the small print and learn that it's not available as a download. : Can't wait until it's ready though.

The repo is available at http://github.com/tarcieri/reia

Is it just too unusable right now?

Re: The next wave of programming languages

#45

Earlier quoted context omitted.

I suspect it matters very much what is on that screen. Music videos and action movies are practically designed for people with ADHD. Many video games are the same way. On the other hand, there are some high quality documentaries and prerecorded college lecturers will not hav ethe issues you describe and as an avid (though very bad) GO player I personally feel that there is very little difference between playing on a…

Designed for, or designed to induce?

Let's stop throwing around the word ADHD. It encourages people who just don't have the discipline to focus to give themselves an excuse, while lessening the perception of the problems for people who are actually debilitated by it.

There's no media-driven conspiracy to alter your mind. There has been an evolutionary trend to favor the animal who could quickly notice the approaching bear versus the animal too intent on its task. Conversely, human evolution has needed intense concentration to drive innovation in things like tool development, construction, and art.

There's media that caters to both. WIth action-packed movies and games thriving on quick attention-shifting, and grinding-based MMO's relying on the ability of players to do repetitive tasks for hours on end.

One could give the same attention-reducing arguments against books and for oral stories. That said, you shouldn't just make a blanket statement against all screen media. Teach your kids how to discriminate between what's good for them and what's not.

Re: The next wave of programming languages

#46
post #34

Earlier quoted context omitted.

I don't know how you're using the word "concentration" here, but playing an FPS (for example) usually demands that you pay attention to something new every few seconds, and definitely does not encourage lengthy focus or sustained thought. I think tends to be even more true for console games than games in general. In any case, I doubt it's so much that video games are detrimental and more that you ought to have a hobb…

Maybe something like UT or CS, where it's all over in 3 minutes, that's true. I remember being a kid and playing games like Tomb Raider where you would have to really think and work hard to unlock puzzles. Even games that offered you the opportunity to just fly through them usually had some form of deeper gameplay. For instance, SF Rush was all about things flashing by really fast, but the real challenge was to colle…

The main difference here is between action and puzzle games. I personally disliked the pure puzzles because they felt too restrictive. Large-scale strategy games like simcity were a better fit for me. The same pattern shows up in my coding. I really don't like simple puzzles, but love challenges where I feel like I'm building something, not just solving it.

Re: The next wave of programming languages

#47

The dynamic/compiled distinction needs to go away. Combine a simple syntax with very rapid compilation with LLVM, Type Inference, and very advanced emulator-based debugging, and there would be no need to have anything like Smalltalk/Perl/Python/Ruby any more. Instead of dynamic Duck Typing, you'd have Go's version, with auto-magic help from type inference. The emulator-based debugger could subsume many of the capabil…

The dynamic/compiled distinction needs to go away

dynamic / compiled are orthogonal.

CL is dynamic and gets compiled as you enter in the REPL.

Re: The next wave of programming languages

#48

The dynamic/compiled distinction needs to go away. Combine a simple syntax with very rapid compilation with LLVM, Type Inference, and very advanced emulator-based debugging, and there would be no need to have anything like Smalltalk/Perl/Python/Ruby any more. Instead of dynamic Duck Typing, you'd have Go's version, with auto-magic help from type inference. The emulator-based debugger could subsume many of the capabil…

Can you expand on this a bit?

Re: The next wave of programming languages

#49

In that list, Clojure is the language that excites me the most. It's a modern, pragmatic Lisp ready for the multiprocessor world. You can do a lot worse than trying it out if you haven't already.

I was playing with Clojure this last weekend, and so far have enjoyed it. I ran through a dozen or so project euler problems, but am now looking for something that takes longer than 10 lines of code to complete. HN, what other projects do you do to familiarize yourself with a new language?

Write a game. ASCII Tetris or Pac Man or Space Invaders would be fine. Whether that is a simple afternoon activity or a somewhat epic undertaking might tell you something about the language.

Re: The next wave of programming languages

#50
post #14

Interesting languages not on the list: * io : http://www.iolanguage.com Clean, minimalistic, prototype based OO. * Reia : http://wiki.reia-lang.org Ruby-like syntax on Erlang's VM * Curry : http://www-ps.informatik.uni-kiel.de/currywiki Functional logic language : Prolog+Haskell. * Oz/Mozart : http://www.mozart-oz.org Multi-multi paradigm language, includes constraint based programming. Some of them are not necessari…

Google Go looks interesting too.

http://code.google.com/p/go/

"Go is an expressive, concurrent, garbage-collected systems programming language."

Already in production on some internal projects.

Post reply on HN