Yes, these are all good points!  The resurgence of the 'virtual
machine' (JVM/.Net) is another major commercial  trend.  I am focusing
on the biggest concepts in commercial programming that need to be
taught to quant majors who are perhaps not fully motivated in learning
programming.  This is based on my experience of interviewing young
math/science/engineering majors lacking in basic programming skills.

As for future languages...

> After all, if diddling around with the language constructs itself was the
> silver bullet, we'd have invented it by now... a few 100 times. Have you
> checked how many new languages are popping up all over the place?
yes... the number of languages is intimidating, one could learn a new
language every month and never catch up!  it took 200,000 years to
invent the wheel, there could always be a silver bullet out there!
(=Ruby for web developers??)
http://en.wikipedia.org/wiki/List_of_programming_languages_by_category

For 'programming in the large' there does seem to be a weakness with
Java and other languages.  Perhaps its me but I have a difficult time
to get more than 1 conceptual layer of modules to work smoothly in
Java.  There are a few genius teams out there but around me I've seen
almost every large scale project with more than 10 programmers fail or
go into perpetual zombie state because of code complexity. There does
seem to be something fundamentally lacking in the languages for tasks
involving multi-dependency 'programming in the large' situations.

AST-based editing would be great and help make it more difficult to
program incorrectly.  The dream is to make it almost impossible for
the programmer to code bugs.  Java is a huge improvement over C++ due
to the elimination of memory bugs.  I think Scala is another small
step in the bug direction but perhaps not a big enough of a change to
see everyone switch over.  Scala function invocation is closer to
message passing as well which helps with concurrency.

The problem with creating modules that 'just work' is all the state
(version numbers,etc..) on both sides...so far no good concepts I've
seen to solve this problem.

Any languages or technology developments of interest in 'programming
in the large' situations?


On Jan 1, 6:16 am, Reinier Zwitserloot <[email protected]> wrote:
> This sounds great, but is basically nonsense. The history of programming
> language is a heck of a lot more complicated than this pretty but wrong
> picture that its been an ever increasing waltz from low-level to high-level
> in neat chunks.
>
> For example, there was a heck of a lot of functional programming going on in
> the 60s and 70s, and it all basically died off, only to resurge, a bit,
> today.
>
> Java was in some ways a step back, in others, a massive step forward. But in
> pure 'language tech', mostly a step back. The fact that java is easy to use,
> managed to convince hordes of programmers, and is still used today should
> tell us a little something about the value of mostly non-language related
> features such as garbage collectors.
>
> There are plenty of programming language designers of some renown, such as
> Josh Bloch, who consider multi-paradigm languages a bad idea.
>
> They may be right, or they may not be right, but certainly the notion that
> 'more features is automatically better / the future / progress' is simply
> not something that can be taken as self-evident.
>
> A few other minor nits: Some assemblers effectively have only 1 data type,
> but many don't. x86-64 has arguably at least 4 (8, 16, 32, and 64-bit words,
> and if you want to, you can pad this with the floating point stuff). There's
> already a language that effectively eliminates all mutable state (Haskell).
> Higher-level abstractions do not imply that this ends up being backed by
> 'gigabytes' of assembler code, and, in fact, language design has been moving
> away from 'compiling down' to the machine code level. Exhibit A: The JVM.
>
> What I'd really like to see in a new programming language is AST-based
> editing, a module system that 'just works' (including downloading from a
> DNS-esque peer-to-peer system of mirrors, and a full stack of strong crypto
> for signatures so I know what I'm downloading is the appropriate stuff. This
> would be a combination of build-time (i.e. maven) en runtime (i.e. OSGi),
> and far more in-depth than jigsaw), a fully pluggable compiler (i.e. where
> you can edit regexps in your code and the compiler will compile it down to a
> NFA/Thompson tree at compile time), and other stuff that mostly doesn't
> actually change the language any.
>
> After all, if diddling around with the language constructs itself was the
> silver bullet, we'd have invented it by now... a few 100 times. Have you
> checked how many new languages are popping up all over the place? Granted,
> its absolutely possible we just haven't found the right one yet, and it's
> also possible we have, and it just takes a while for it to gain the
> popularity we'd expect such a silver bullet to have, but I don't think
> that's going on.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to