Alex Stojan
Posts: 95
Nickname: alexstojan
Registered: Jun, 2005
|
|
Re: What would it take for a new language to impress you?
|
Posted: Aug 23, 2005 9:50 PM
|
|
This question is a bit ambiguous. Are we talking about a general purpose programming language, or a language good for creating GUI based apps that need to interact with a database, or a scripting language, or a language for symbolic computation, etc? Anyway, I assume we're talking about a general purpose programming language, like C++.
Most replies to this question seem to be based on personal experiences and preferences of the repliers and the kinds of applications they mostly work on. I think that to incorporate all these "impressive" constructs in a language would not be very feasible, at least not in a way lots of people seem to desire. A language that would DIRECTLY support features usually found in languages like LISP, C, Smalltalk, C++, Python, Ruby and others would probably require a manual of thousands of pages. What is feasible is for a language to provide a sufficient number of lower-level constructs on which higher-level abstractions could be built. Such a language would allow construction of all sorts of useful and efficient libraries that would provide a framework for a variety of programming styles on which various kinds of applications could be built. Of course, every language that provides such a great flexibility is complex simply because of all the relationships among its various constructs, but the problems we're facing today are complex too - they cannot be solved by simple tools.
I think that the area where the most impressive things could happen is in the tools. Various tools could use the same language to support different needs, like tools for specifying software architecture or class/object relationships.
I think the language closest to my ideals is C++, not that it's perfect (but what does it mean for a language to be perfect anyway?). It's a language that supports multiple styles of programming - it directly supports certain programming styles, namely OOP, generic programming, data abstraction and procedural programming, while others can be supported through combination of basic language constructs (see boost.org for very useful and interesting C++ libraries).
|
|