Note: This blog post transferred from my OLD BLOG and was originally posted in 2008.
Fascinating expert panel discussion in PDC 2008 about the future of programming from some of the leading programming languages experts in the world. How programming will be affected by a number of fundamental changes occurring like many-core machines, cloud computing, and more. What’s the biggest challenges that face the industry.
The Panel’s Speakers:
|PDC 2008: The Future of Programming Languages|
A principal researcher and the founding manager of the Research in Software Engineering area, at Microsoft Research Redmond, USA. Wolfram’s research concerns the practical application of formal methods. At Microsoft, Wolfram co-lead research projects on language design and runtimes (the AsmL, Cw, TPL projects), software testing (the Pex, SpecExplorer, and nModel projects), software analysis and verification (the Spec#, Vcc and Hypervisor project), and lately on model-driven engineering of applications for the cloud (formula and bam).
An Assistant Professor at the University of Colorado. Jeremy’s areas of research include generic programming, programming language design, and compiler optimization. Jeremy received a Ph.D. at Indiana University in 2005. His thesis laid the foundation for the constrained templates feature in the next C++ Standard. Also while at Indiana, Jeremy developed the Boost Graph Library, a C++ generic library for graph algorithms and data structures.
PDC 2008: The Future of Programming Languages
- Gilad: In today’s programming languages you can’t do the “What If” Experiences easily
- Douglas: In late 1950 there was some work on a new concept called automatic programming, the idea behind this concept was programming is hard and we just need a higher level way to specify what need to be done and the computer can write the program for you; The result of this work was “Fortran”!
- Douglas: Programming is so hard and we keep pushing to some place that’s not so hard, but eventually that become programming too!
- Jeremy: Modeling is always inherently a higher level of abstraction than programming, and it doesn’t have to be.
- Anders : Our Brain is a pattern recognizer, and syntax is one of the patterns that we feed in.
- Gilad: The smaller the issue the more people discuss it.
- Douglas: We’d like to think of the process of programming language design is scientific process or at least engineering process, but it’s really all about fashion!
- Douglas: The success of programming language has more to do with fashion than the quality of the ideas behind them, i think that’s unfortunate but i think that’s real.
- Wolfram: If you actually getting older you care more about the inner values of things and don’t care so much about the outer interface.
- Jeremy: As Humans we are coming up with new notation, new abstractions, and new languages all the time. So in some sense i think when you are trying to limit that you get weird things happening.
- Jeremy: I think we are really hurting ourselves by not allowing a full programming languages extensions.
- Anders: With C# 3.0 we build a DSL called LINQ.
- Anders: I think enterprise apps today live and die by meta programming, but pretty much every app we write has some form of code generation.
- Wolfram: meta programming on the operating system level is really really a bad idea, you don’t want to open the box.
- Gilad: Meta programming is all about one program manipulate another, Reflection is about the program manipulating itself.
- Gilad: It’s very important that you don’t live in this close worlds, and ideally has this kind of IDE that support multiple languages and let them interoperate.
- Anders: Frameworks and IDEs in the terms of the learning efforts these days totally important than the languages. but that doesn’t mean that the languages is not important, they just occupy a different position in the eco system.
- Wolfram: I think that languages and may be even the libraries doesn’t really matter so much, what you really want to see is “What’s the problem you wanna solve”, and then based on the problem you pick right languages, libraries, and IDEs.
- Wolfram: Pick the language and IDE that is appropriate for your domain, and don’t stick to a language and use it for everything you wanna do.
- Anders: If you looked at database system they are much more restricted on what operations you can apply to data.
- Anders: Completely functional programming languages are outlaw of program side effects.
- All the Speakers: Languages should be designed by dictators not by the comities!
- Douglas: The community that uses a language is like a business, so when the language is small, experiment, and adult is like a startup. And startup is allowed to do crazy things, but once the community gets big its like a big company, And big companies have to be stagy, though it might want to claim it’s kind of innovative but it really can’t, it has to have constraint on its ability to innovate because if it gets wild it will through itself a part.
- Douglas: The more people you have using the language, the less licenses we should have in modifying that language.
- Anders: I think it’s crazy to say every language should be static all the way down, or we should toss types. Neither are correct, it’s somewhere in between.
- Jeremy: What we need is a gradual type system that lets you mix between real dynamic typing where the checks happen at runtime vs static typing where you actually have the checks.
- Douglas: A few years ago dynamic languages were defiantly out of style, today they in. Sounds like Fashion to me.
- Anders & Douglas: Learning lots of new languages is good for you, if you program mainly in one language. It makes your mind think in different way and this always help you.
I think this is a very interesting, informational, yet very funny discussion you must see if you are in the software industry.
Hope this Helps,