The Artima Developer Community
Sponsored Link

Weblogs Forum
What would it take for a new language to impress you?

44 replies on 3 pages. Most recent reply: Nov 7, 2005 11:24 AM by MJ Stahl

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 44 replies on 3 pages [ « | 1 2 3 ]
Tom Biuso

Posts: 2
Nickname: technotom
Registered: Jul, 2005

Re: What would it take for a new language to impress you? Posted: Aug 1, 2005 7:52 PM
Reply to this message Reply
Advertisement
I would be impressed if a new language were accepted by everyone else. Then, I'll use it.

Jeff Moss

Posts: 2
Nickname: zardinuk
Registered: Aug, 2005

Re: Using English-like programming language Posted: Aug 1, 2005 11:18 PM
Reply to this message Reply
Well I really don't have as much to gripe about as some of the others, only gripe I've had in the last few months is I'd like to see optional type checking and multimethods added to ruby, the languages I use are pretty much just how I'd like them, true. The english-like language would be an experimental attempt at some sort of pseudo-AI. If the computer was programmed in english, it should be able to understand any english I throw at it. Instead of spitting out vague errors, it should be able to figure out what it needs and ask me. If I were to ask "What is half the speed of light?" and it didn't know what the speed of light meant, but it did know what half meant, it asks "What is the speed of light?" I think it would be possible to eventually unleash a beast like that on the internet and have it turn all the random talk, like you and I are having right now in this forum, into concepts in memory that the computer can understand. If it knows what time, numbers, money and corporations are, then it can figure out how many dollars google is making in any year. If it knew volume measurements and petrolium data, it can how many gallons of gas are consumed by automobiles every year. If someone asks the computer "IF google's annual profit were spent on gasoline, how many days would be paid for?" and a number pops out of your program. In that case it may be easier to speak in english. Whats the same thing in Ruby? Corporation.find('Google').annual_report.profit / Energy.find('Gasoline').current_price_per_unit('Gallons') / Energy.find('Gasoline').daily_consumption('Gallons'), actually you would probably start with g = Energy.find('Gasoline'). It really doesn't make as much sense for an application who's purpose is to compute these things to be programmed in a standard computer language.

Rohith V

Posts: 1
Nickname: rohith
Registered: Aug, 2005

Re: What would it take for a new language to impress you? Posted: Aug 2, 2005 2:52 AM
Reply to this message Reply
A good IDE which works out of the box is a must. Syntax colouring, formatting, code collapse. But making an IDE like eclipse is too much to use. It takes a huge learning curve. It shouldn't become Yet another language without enough *library support*. It should be easy to install. Auto update service is good to have.

Can we do something to stop switching between doc and programming windows ? I am tired of javadoc and netbeans. Something more intutive would be good. Something like doc collapse bar.

Mike Capp

Posts: 11
Nickname: mikecapp
Registered: Aug, 2005

Re: What would it take for a new language to impress you? Posted: Aug 2, 2005 1:50 PM
Reply to this message Reply
(Apologies if this appears twice; it seemed to get swallowed by Shub-Loginprompt the first time.)

0. [Prerequisite] A clearly defined target audience or niche. If you're aiming to replace language Foo, explicitly state your understanding of a) what problems Foo used to solve, and b) why your language solves them better than Foo or any of the other Foo-replacements. If you're only aiming to replace Foo for a subset of Foo's usage domains, say so. It saves a lot of grief in the long run.

1. [Prerequisite] A usable implementation, meaning AT LEAST a compiler/interpreter and minimal library. Languages without this tend not to get anywhere, partly because there's no incentive to look at them and partly because there's nothing like real usage for flushing out language bugs. I think this is the #1 reason why Walter Bright's D is getting so much attention (in relative terms, for a new language), even though it violates my point 0 by dropping some of C++'s strongest features and by being uncomfortably close to C#.

2. Least surprise, in many areas. C++ obviously violates this at the language level. I don't know Lisp, but gather that it's very easy to fall off a performance cliff for non-obvious reasons.

3. Build common patterns into the language, rather than forcing them to be endlessly reinvented on top. Iterating should be trivial. Robust RAII should be trivial.

4. Interop; a new language needs to be fairly compatible with something to get traction. For Heron, this probably means easy calling of and from C, since C's ABI is the unofficial lingua franca for unmanaged code.

5. I don't agree with the others who have demanded an all-singing all-dancing IDE right from the start, but the "usability" of the language should certainly be considered. Concrete example: there have been a number of suggestions for C++0x to allow class member function syntax when calling free functions taking a single argument of that class. Utterly pointless on the face of it. But a real boon to users, because they no longer have to remember which functions are members and which aren't, and they can type "myobj.$COMPLETION_KEY" in their IDE to get usefully filtered suggestions.

Christopher Diggins

Posts: 1215
Nickname: cdiggins
Registered: Feb, 2004

Re: What would it take for a new language to impress you? Posted: Aug 3, 2005 6:27 AM
Reply to this message Reply
I just wanted to say thank you to everyone has contributed to this thread. It seems that the most popular subjects are tools and libraries. This is definitely going to help guide Heron development.

Jordan Zimmerman

Posts: 23
Nickname: jordanz
Registered: Jul, 2003

Re: What would it take for a new language to impress you? Posted: Aug 3, 2005 12:44 PM
Reply to this message Reply
Something I'd really like to see in a new language is dynamic inheritance. I would like to be able to change the base class (within reason) of an object at runtime. The only way to do that in Java/C++ is with the proxy pattern but this has limitations: it's not possible to send method calls to the outer envelope object from the inner proxy.

Michael Feathers

Posts: 448
Nickname: mfeathers
Registered: Jul, 2003

Re: What would it take for a new language to impress you? Posted: Aug 3, 2005 1:06 PM
Reply to this message Reply
> Something I'd really like to see in a new language is
> dynamic inheritance. I would like to be able to change the
> base class (within reason) of an object at runtime. The
> only way to do that in Java/C++ is with the proxy pattern
> but this has limitations: it's not possible to send method
> calls to the outer envelope object from the inner proxy.

You should take a look at Io (http://www.iolanguage.com). It uses prototype-based differential inheritance. All you have to do is change an object's prototype slot and you've effectively changed it's class.

Werner Schulz

Posts: 18
Nickname: werner
Registered: May, 2005

Re: What would it take for a new language to impress you? Posted: Aug 3, 2005 6:11 PM
Reply to this message Reply
From a long gripe list about current languages:
a) No reserved keywords (it can be done!),
b) Don't overload keywords (how many meanings to static?),
c) Be restrictive with the initial meanings of concepts, relax later rather than the other way round; it will save us a lot of grief later,
d) Design-by-contract a la Eiffel rather than the abominable assert,
e) Proper implementation of parametric polymorphism (aka generics, templates)
f) Get language experts to help developing a consistent language!
g) Implement/introduce mathematical concepts as correctly as possible like fields, groups
h) Don't abuse/violate mathematical terminology (C++ vector!),
i) Consistent notation [Class.new(...) vs Java/C++'s new Class(...)],
j) Flexible indexing of arrays as in Fortran, not everything starts at Zero!
etc etc.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: What would it take for a new language to impress you? Posted: Aug 4, 2005 11:54 AM
Reply to this message Reply
What Keith said plus:

Add in Smalltalk programming tools, let me code in the debugger, make changes, and incrementally try again.

Really, I think Smalltalk is really close to the ideal language. Adding optional type annotation and type inferencing would be great.

Support for first class closures is a must.

Allow me to augment existing classes in the system dynamically. Look at <a href="http://gerbil.org/tom/">TOM's</a> runtime for this. Also, support <a href="http://www.cse.ogi.edu/~black/publications/TR_CSE_02-012.pdf">traits&l t;/a>

Above all, programs must be live, manipulateable data. Enough of the pointless separation of source and executable. Unify them. If all you're going to build is a traditional compiler on some syntax, I'm not at all moved. Ditto for script interpreter.

Curt Sampson

Posts: 21
Nickname: cjs
Registered: Mar, 2004

Re: What would it take for a new language to impress you? Posted: Aug 4, 2005 11:30 PM
Reply to this message Reply
Just another vote for stuff that's already been mentioned here: type inference, first-class functions, first-class closures, minimal syntax (if your language has a syntatical "if" statement, you've gone wrong), ability to easily build DSLs (domain-specific languages) hosted within the base language, etc. Also, support for different models of dealing with memory would be cool, i.e., being able to declare that this heap over here is g/c'd, but this other area here is under your full control in a byte-by-byte way. (This is probably essential for doing kernel programming in the language.)

If you're reasonably familiar with Smalltalk, Scheme and Haskell, and have done some low-level OS coding, you can probably figure out well enough what you need. If not, I'd advise getting familiar with all of that before starting in on a new language. Otherwise you'll probably end up with something like Ruby, which is a marginal improvement over many other things that are around, but overall a failure as a good new language.

Alex Herz

Posts: 9
Nickname: softcore
Registered: Aug, 2005

Re: What would it take for a new language to impress you? Posted: Aug 16, 2005 12:34 AM
Reply to this message Reply
What I really need for the future would be a language that allows to easily create multi threaded applications without having to deal with race conditions etc at the atomic level using mutex etc. This stuff is nasty to write, easy to get wrong and a nightmare to debug..well..you know it. In future we will have to handle even more concurrend threads running on a cell or similar hardware.

ALex

Michael Stover

Posts: 28
Nickname: mstover
Registered: Jul, 2005

Re: What would it take for a new language to impress you? Posted: Aug 16, 2005 7:31 AM
Reply to this message Reply
> What I really need for the future would be a language that
> allows to easily create multi threaded applications
> without having to deal with race conditions etc at the
> atomic level using mutex etc. This stuff is nasty to
> write, easy to get wrong and a nightmare to
> debug..well..you know it. In future we will have to handle
> even more concurrend threads running on a cell or similar
> hardware.
>
> ALex

My sentiments exactly. I like the look of dataflow languages (ie Erlang, Mozart-Oz). Check it out.

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
Reply to this message Reply
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).

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: What would it take for a new language to impress you? Posted: Aug 23, 2005 11:29 PM
Reply to this message Reply
> 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.
>
> I think that the area where the most impressive things
> could happen is in the tools.

I think that is a very good summary of the situation. Too many languages coming through are just variants on the existing mainstream languages. Perhaps an extra construct here or an extra idea there but apart from that there's no real innovation in them.

MJ Stahl

Posts: 2
Nickname: mjstahl
Registered: Nov, 2005

Re: What would it take for a new language to impress you? Posted: Nov 7, 2005 11:24 AM
Reply to this message Reply
A friend and I were just talking about this very topic today during lunch. The list that I have compiled below stems from me not being smarter than the average bear so I need quite a few tools to help me better reason about the software I am looking at. So ultimately the two things I look for in a language is readability and reasonability and the below list hints at what features go into making readibility and reasonability easier (though this is not a complete list).

static typing
referentially transparent
eager evaluation (but lazy evaluation is very handy)
pre and post conditions (ie, guards, Design By Contract)
parametric polymorphism

Many of these 'wants' are available in quite a few of the popular functional languages, but it seems not one of them has all features on my list *sigh*.

-M.

Flat View: This topic has 44 replies on 3 pages [ « | 1  2  3 ]
Topic: Functions as Classes: Where did I steal it from? Previous Topic   Next Topic Topic: The Trouble with Searching for Open-Source Code


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2017 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us