views:

2370

answers:

49

What programming language do you wish would catch on? For me it is these domain driven languages that are useful for creating micro languages in an environment, such as Boo.

Please state the reason why do you think so in your replies.

+3  A: 

IronRuby

Karl Seguin
+4  A: 

C++ :)

Dan
C++ has caught on a long time ago, and is still in force.
stephenbayer
+7  A: 

Since I got some background in languages for "Big" tasks - Basic, Pascal/Delphi, C# - and for some specialized languages - SQL, Regex - I would next look at scripting languages that I could use within other languages - Boo, Lua, Python.

Of course you can (and people actually do) build "big" applications with Python, I am more interested in the aspect of adding a script interpreter to my C# app that allows to enable scripting/usermacros.

Other than that, F# looks interesting, because the whole concept of Functional Programming is kinda new to me and I have not yet decided if it's useful or not to me.

Michael Stum
+9  A: 

For a question like this to be useful, the people responding should give some reasons why they'd like that language to gain in popularity.

For instance, I'd like LISP to catch on so that we can stop hearing all the whining from LISP programmers about how it supported your favorite language feature thirty years ago.

Curt Hagenlocher
The whole "which dialect of LISP do I learn" thing is really off-putting, especially coming from the "batteries included" philosphy of Python (or even something more functional like R). I like functional languages, but I can make heads or tails of the CLISP / Scheme schism.
Gregg Lind
A: 

I said languages that you hoped would catch on. @Dan I don't think C++ counts.

Nick Berardi
This isn't a threaded discussion. If you want to respond to someone, leave a comment.
ryeguy
+2  A: 

A few months ago I was looking for a library for a specific task in Perl and couldn't find anything sized correctly. I happened across a library written in Lua and it was so perfect that I spent some time learning the language. There is something very pleasing about Lua. It's very simple but all the power is there. I admit I've not used it since but I wouldn't be upset if it and I crossed paths in the future.

jj33
+3  A: 

Our company builds in PHP, but we seem to have a heck of a time finding developers who have any sort of experience in PHP. We end up hiring people with experience in other languages and forcing them to play catch-up when they start. It definitely makes the learning curve longer and can get very frustrating.

As an extension to this, the basic principles of web development are missing from many of the applicants that we see as well.

Wally Lawless
+1. It's entirely possible to write high quality sites with PHP, but a harder to find the developers that can.
Alister Bulman
Doesn't PHP take like - two days to learn?
Ace
PHP itself is easy to learn, but often the guides encourage bad practices, so getting programmers to write GOOD code takes longer.
acrosman
It seems to be a language built to reward bad practices. Unfortunate, because it has a very low bar to entry!
Gregg Lind
PHP is a lot like the Go board game - can be learned in minutes, and you can get better at it over the years, but you can spend your life trying to write a good program for it and it'll still get 0wned by kids in minutes.
Ant P.
A: 

ASP.NET PHP

I made it up but wouldn't it be nice to have the best of both worlds. There are a range of features available from both which I would love to have in one framework.

GateKiller
You could havea read about Phalanger on the codeplex site, you'll be surprised that it's already happened :)
Gustavo Carreno
+4  A: 

Smalltalk

John Downey
+1  A: 

Python

Nick Masao
A: 

Because I know how highly it is thought of by Jeff and Joel, PHP :P

In reality I would love the chance to write some Objective C for what I do but I have not had the chance. Python however is a close second.

Teifion
A: 

ASP.NET

I'm a java desktop developer and i have never programed a real web application, except tiny aplications at home to test new technologies like Google Web Toolkit

Telcontar
+3  A: 

PIR

Well, not so much PIR itself, as the Parrot Virtual Machine for which PIR is the pseudo-assembly language. As a stack-based virtual machine designed from the ground up to handle a diversity of languages -- especially dynamically typed languages -- Parrot has great potential. Whether it will ever reach that potential depends greatly on whether the core developers can make Parrot feature complete and robust enough to handle real-world programming needs.

But I'd really like to see it succeed.

Bruce Alderman
+5  A: 

Inform or TADS, if only because interactive fiction (a.k.a. "text adventures") are an interesting yet under-appreciated game form.

Joey deVilla
If you like TADS, try PAWS the Python reinterpretation of it.
Gregg Lind
That would be an interesting question, what are the difference between TADS 2, TADS 3, Inform 6 and Inform 7, and why use one instead of another ?
edomaur
TADS is far more approachable for a normal programmer. Inform (especially 7) is more approachable for a prolog programmer and the non-programmer as the syntax is very English-like (and in a natural manner not at all like COBOL is English-like). AI folk should really investigate Inform 7 because text adventure writers deal with AI all the time.
jmucchiello
+3  A: 

It's not a language as such but Object Oriented databasesalways sounded like a good idea that never took off.

That said I have never used one myself.

John
A: 

Processing

Kevin
+4  A: 

Personally I would love to see Boo or some of the more custom domain languages catch on.

Nick Berardi
+33  A: 

D Programming Language

It's (C#)++ with extras features minus the massive runtime hassle and designed to be efficient to compile and optimize. Plus, it can link with and call C code objects directly without the need for an additional interface layer or binding.

Judge Maygarden
The correct answer to "Which language do you wish would catch on?" is D!
TM
It also has almost no useful documentation, two standard libraries in the main release, and no single 100%-functional compiler.
Steve Johnson
I do like D. Just needs better tooling.
grom
A: 

@ Power coder where do you work I'm looking for a new job, and I'm a long time PHP dev.

Joking.. Joking.. (I'm not realy looking for a new Job, I love being a freelancer.)

I wish people would stop giving PHP a hard time, but thats not the question.

PAL Script would be nice to catch on, then maybe there would be some documentation for it.

Unkwntech
A: 

IronRuby

Seconded. I'm lurking on their mailing list waiting for them to be able to implement .NET interfaces. It'll truly kick some ass when they get that going.

Orion Edwards
We have a scheme for seconding :) Why not just vote it up, and put a comment under it.
Gregg Lind
Because I posted this during the beta before the comment facility existed :-)
Orion Edwards
A: 

Intercal.

Maybe that's a bit sadistic but it would be glorious to watch people try to develop enterprise applications...

In all seriousness, I'd like to see D catch on.

eplawless
That, and LOLCODE.
Christian Vest Hansen
+22  A: 

Haskell because functional programming matters.

grom
Never heard of this language before... just downloaded the compiler, it reminds me of 'boo' a bit. Is there a good IDE for this? I do not get good code editing of a HS file in Visual Studio. :(
stephenbayer
OSCON 2007 - Simon Peyton-Jones - A Taste of Haskell Part I: http://blip.tv/file/324976
Marko Dumic
And yet, isn't their motto to "avoid success at all costs"? :)
Christian Vest Hansen
A: 

Prefix Dylan, the version of Dylan that was effectively Scheme plus the Common Lisp Object System.

Dylan is basically Common Lisp done right and without the self-consistency issues, because Dylan's entire language is built in terms of the object system. (Common Lisp isn't built entirely atop CLOS, so you have subsets of the language like the LOOP macro and sequences that are distinct from the object system.)

The "Pascal-like" infix Dylan is an abomination.

Chris Hanson
Considering the age and mostly abandoned status of Prefix Dylan, I'd say it was the abomination. There's something to be said for plain English over a plenitude of vague symbols.
The Wicked Flea
+2  A: 

+1 Iron Ruby.

I used to wish that Pascal and/or Ada would catch on more in the non-military and non-educational sector. I think I've overwritten all that old knowledge by now though.

In about five more years when Adabas and Natural get big again, and all the old guys have retired, then I'll make some serious coin.

tidge
+2  A: 

I would like to see a merger of static and dynamic type features in some language. Let's say it would be Lua with optional typing. The biggest problem I've faced with Lua for any medium/large application is there is no compile time guarantees. In C/C++ they often take the obvious bugs out, and you get some level of confidence about a code base once it compiles. Dynamic languages leave this to runtime.

Current world is either/or, or you do a merger with two languages, one with static checking and one without.

How do Python and Ruby support this; if you give types to variable names, are misuse detected already at compile time or only at runtime?

akauppi
You don't really "give" types to variables in Python and Ruby; you just bind a name to an object. But Python is strongly-typed, so incorrect types are caught at _runtime_.
mipadi
+40  A: 

I wish that Python would catch on in educational environments instead of Java. When many of my classmates took their first programming classes in Java, certain syntactical constructs got in the way of learning about programming rather than how to fight with Java syntax. Also, they all formatted their code terribly. Python gets out of the way when you don't want it, and can work the way a new programmer expects - code starts executing at the top of the file and goes down.

I also wish that Lisp would catch on because I think it's fun to code in Lisp, but I wouldn't want to force it onto anyone else.

Steve Johnson
Hear hear. I learned to code with Pascal and I've always found Java to be unnecessarily complex and painful.
kari.patila
Python would actually be great as beginner's class.. For OOP classes though, Java is hard to beat.
Ace
Nah, Common Lisp would be better for OOP than Java.
Svante
My school finally moved over to using python for the intro course rather than java, but after I'd graduated. Not sure how successful its been.
Sorry to disappoint you but learning Python in school still isnt totally idiot-proof. I am 18 now and my teacher decided to teach python at school while I already knew the language pretty well, and now in 12th grade most of the pupils still do stuff like for x in range(0, len(list)): foo(list[x]) :(
Patrick Daryll Glandien
Akrikos
@Harleqin: Are you serious?
Beska
Python is wrong for educational environments. Well, not wrong exactly. I'm just of the opinion that every programmer needs to have written their own linked list implementation at least once in their early education and when lists are primary language construct in a language (such as Python) it is hard to show the student the value of writing your own linked list code.
jmucchiello
jmucchiello, if that's your only gripe, then I'd say Python is great for education. Not only that, but since I wrote this, I actually have evidence! Here's a talk by a University of Michigan professor: http://pyohio09.blip.tv/file/2517416/
Steve Johnson
@jmucchiello: Python's lists are *not* linked lists, instead they are like C's arrays. You can definitely build a linked list in Python very much the same way as you would in C, C++, or Java, except much easier for the beginning student to both understand and use.
Roger Pate
Roger, that is my point. Someone who only knows Python doesn't really know what a linked list is or why it is useful. You obviously meant to say "except much easier for the beginning student to both misunderstand and misuse." A Python list will not have O(1) inserts in the front, middle and back like a real linked list. Python is great for people who program as part some other study as it enables them to do powerful things without really understanding it. For people whose discipline is programming/computing, they should not be shielded from the details in the way Python does.
jmucchiello
+1  A: 

I work in a Unix (Solaris) environment, so any improvement on my shell-fu will be welcome.

I would also like to work on Python or Ruby.

lamcro
A: 

Without any Doubt " IronRuby ". Its the best thing ever happened to me on the .Net Platform.

My request of Dynamic Language on .Net is finally heard.

+1  A: 

As soon as i have the time, i like to improve my C# or C++ skills. Preferably C#.

Gamecat
A: 

I would like to see Software AG's language, Natural, REALLY take off. You do not have to use ADABAS as a data base engine to reap the rewards of Natural, but they make a great pair!

guzzibill
+5  A: 

F#

It is a new functional language that is going to be a first class citizen like C# and VB.Net for the .Net framework. There's already a lot of momentum around it for only having CTP releases but hopefully it will catch on more as the support for it ramps up. More info here:

http://research.microsoft.com/fsharp/fsharp.aspx

Keith Elder
+9  A: 

Haskell

Haskell is one of the most mind-bendingly beautiful and clever languages ever devised. It's really opened my mind as a programmer.

Haskell has a long way to go before it has the library support to be truly useful. I'd love to see a usable, straightforward GUI library written in the functional idiom, and not just imported bindings using Haskell's Foreign Function Interface.

REBOL

REBOL is one of the most underrated dynamic languages around. Part of the reason for this is that its depth is not readily visible. When you look at Haskell code for the first time, you know you're getting into something new and interesting. But most REBOL code looks very straightforward and almost passé, so many developers miss its depth and its very unusual (but powerful) semantics.

In fact, I'm going to quote what I said above about Haskell, because it applies to REBOL as well:

REBOL is one of the most mind-bendingly beautiful and clever languages ever devised. It's really opened my mind as a programmer.

Dylan

I would have preferred Dylan as a prefix language (like CLOS), but even the infix version is head-and-shoulders above most other programming languages.

I understand OOP backwards and forwards, but one of my gripes about it is that in most OO languages, the entire interface to the class has to be defined beforehand. Not only that, but if you have an operation that affects more than one class, you have to make a decision about which class to make that operation a method of. Clumsy!

Dylan solves both of these problems, by allowing generic multi-methods, and allowing the definition of new methods on a class at any time, even if the class resides in another, already-compiled module.

Some of this may sound like Ruby, where you can add a method to an already defined class. The similarity is superficial. Dylan's ability to do this, and the machinery behind it, is much more powerful, but outside the scope of what I can describe here.

It may also sound like C#'s extension methods. Not so. Extension methods are syntactic sugar for ordinary static methods. They are a welcome addition to C# and I try to use them without overusing them. But new methods added to Dylan classes are first-class, real methods.

Some Others

Some other languages I love are Ruby, Lua, F#, Oz, and Erlang.

Gregory Higley
+1 for Dylan there.
Felixyz
+11  A: 

Erlang.

It's a functional programming language that has solved a lot of vexing problems with regard to distributed programming very elegantly. Light-weight processes coupled with a no shared state message passing based (actor) model for concurrency. Should have a very bright future in a multi-core world.

Yeah ! 99.9% uptime !!
Berzemus
99.9% uptime is not that much. http://en.wikipedia.org/wiki/Five_nines
Adriano Varoli Piazza
+6  A: 

Clojure - Dynamic functional programming for the JVM, with a focus on concurrency.

Christian Vest Hansen
+1  A: 

Python

Ahmed
+2  A: 

I wish Icon would catch on.

Icon has taken two features that are currently implemented in other languages pretty much "on-top" of the language and moves them down right inside the language.

The first is exceptions. Icon constructs can Fail rather than return a Value. Failure propagates up through expressions until something can handle it. A boolean expression is the simplest example of something that can Fail. (If it Succeeds, it returns the value of the expression to the right of the comparison.) Other language constructs and library functions can also Fail and this is used to drive a lot of how things are done in Icon.

The second is generators. The idea of back-tracking in an expression should be familiar to anyone who has used regular expressions. Well, Icon puts that facility in every expression. If an element Fails, then the expression can back-track to the previous generator and get the next value. Boolean logic is implemented as a generator. String search functions are generators. Loops are often done with generators. Many loops can be done implicitly with generators.

Couple that with dynamic typing and complex constructs as first class objects (strings, tables, hash-lists, ...) and you have a language capable of some very powerful logic in very succint expressions.

staticsan
I've used Unicon, a variant of Icon, and I was definitely unimpressed. It seemed more like a research-class language more than something to write a lot of code in.
Paul Nathan
How did it feel like a "research-class language"?
staticsan
+2  A: 

Factor - dynamic, stack based language

Common Lisp

Clojure

Programming languages should be simple and readable yet powerful. The languages I mentioned above offer those features.

Berlin Brown
+4  A: 

Ada

...and before you vote, ask yourself whether you have actually read anything about ADA! ;-)

BugSlayer
Upvated because I agree, but please edit to capitalize it properly: "Ada" (it was named after a person). It hurts my eyes to see it shouted like that.
T.E.D.
I thought he was referring to ADA, the American Dental Association. Ada can only catch on if a looser, less embedded focused, version of the language were released with a different name. :-)
jmucchiello
+14  A: 

Assembly Language. Seriously.

While I would never recommend that anybody should actually write any kind of real program in assembler, everyone who calls themselves a professional software developer should have a good understanding of it, and I think that's sadly lacking in the current rush to dynamic, interpreted languages.

Roddy
This is why credible 4 year institutions have a mandatory class in assembler (NCSU has one... and the lecturer teaching was the best comp sci _teacher_ at the school when I took it)
Akrikos
Pity that they're still using 8086 instead of a modern architecture.
"Pity that they're still using 8086 instead of a _sane_ architecture." FTFY
Adriano Varoli Piazza
Actually the useful thing about 8086 is the many different address and indirect address modes. Most modern architectures with their multitude of registers have limited indirect addressing. The 8086 architecture makes pointers (in C) much easier to understand (and vice versa).
jmucchiello
No, everyone who calls him/herself a professional software developer should have a good understanding of the little avenues of computer science that _I_ happen to be interested in.
Dan Finch
@Dan, It's not that assembler interests me - far from it - it's that coders who don't understand *anything* about assembler are IMO like architects who don't understand the properties of steel and concrete
Roddy
@Roddy: It seems Knuth agrees with you, as he has his own assembly in TAOCP, but learning the bytecode underlying something like Python, LLVM, or Java may provide the same educational experience with both a bit less pain and more practical application.
Roger Pate
A: 

I wish Eiffel was more popular. The Design By Contract methodology is just good practice so why not use a language where it's built in.

Here is a simple Hello World:

class
    HELLO_WORLD
create
    make
feature
    make
        do
            print ("Hello, world!%N")
        end
end
cciotti
Which part of this is "simple", exactly?
Gregg Lind
You're so clever Greg-g
cciotti
A: 

Pascal, even if its IronPascal.

I never quite understood why Anders would implement a Java clone when he could have had a Delphi clone. I know which one's better in every respect :)

gbjbaanb
+11  A: 

LOLCODE

This is how the code already sounds in my head...so it'd be a natural fit for me:

HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
    UP VAR!!1
    VISIBLE VAR
    IZ VAR BIGGER THAN 10? KTHXBYE
IM OUTTA YR LOOP
KTHXBYE
Webjedi
Definitely cute, but I can't mark as helpful here :-)
tekiegreg
Yes! I'm glad I scrolled the bottom of the thread to read this. We have to move it up.
Nathan Bedford
+1  A: 

I agree with Steve, I wish Python would catch on in early programming classes instead of Java or C++ because I think that the Python syntax makes sense to someone who has no programming experience. I think that intro classes should be taught in Python so that those taking the course to see if they are interested can get a grasp of the basic programming concepts before getting down and dirty.

Logan Serman
+4  A: 

Scala

For the Java programmers in particular it's great:

  • Functional Programming or Old-Skool Java Programming, which means you can think like a Java monkey now, learn FP as you get wiser
  • You can toss it in a .sh file for a bit of scripting (nowhere near as easy with java)
  • Have access to all Java code without funky redefinitions of your concurrency library - or, as I've read, "concurrency for adults"
  • Awesome use of XML, which gets you started of tossing things like SQL into the language itself instead of strings.
  • Not particularly slower than Java. Which is considered to be pretty fast these days.

As I kind of get Scala, I've completely removed all repetition in my code. It's actually remarkably easy. DRY is easy in Scala, in Java, it can be a major pain.

Tristan Juricek
+4  A: 

Scheme :)

leppie
+1  A: 

Objective-C, I love the fact that it's dynamic runtime gives you cleaner options in handling a task.

Rev316
+1  A: 

Forth - A small stackbased language. Link to wiki page

epatel
A: 

I'd like to see Delphi/Pascal catch on a bit more in academia.

BBetances
+1  A: 

I'd like C++ to catch up. Its fast, and it rocks. There have been libraries for almost everything in C++ these days, that you'd never have to get down to the basics. You get pre written code, just like Python, or any other very high level language, and you also get the flexibility and control of C++.

Things have become really easy these days in C++.

Sahasranaman MS