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.
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.
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.
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.
I said languages that you hoped would catch on. @Dan I don't think C++ counts.
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.
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.
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.
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.
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
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.
Inform or TADS, if only because interactive fiction (a.k.a. "text adventures") are an interesting yet under-appreciated game form.
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.
Personally I would love to see Boo or some of the more custom domain languages catch on.
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.
@ 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.
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.
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.
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.
+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.
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?
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.
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.
As soon as i have the time, i like to improve my C# or C++ skills. Preferably C#.
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!
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:
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 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.
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 other languages I love are Ruby, Lua, F#, Oz, and 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.
Clojure - Dynamic functional programming for the JVM, with a focus on concurrency.
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.
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.
Ada
...and before you vote, ask yourself whether you have actually read anything about ADA! ;-)
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.
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
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 :)
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
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.
Scala
For the Java programmers in particular it's great:
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.
Objective-C, I love the fact that it's dynamic runtime gives you cleaner options in handling a task.
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++.