Been learning Erlang, which brought the following question to mind:
What do SO users consider an under-appreciated language/platform ... and what are their reasons?
Semantics, Syntax, Usability, Deployability, Scalability ... whatever. Which language/platform do you think should be more widely deployed, developed, or more popular than it is?
(subjective yes, but I hope interesting for people looking to dive into new things)
Lua [1]. Despite its incredible power-to-weight ratio and good string library, it still seems to be viewed as a niche language, useful perhaps for gaming or embedded software, but not mainstream. Yet it's a wonderfully powerful, general-purpose language good for scripting, string processing, and (some kinds of) functional programming. It beats heck out of Perl or Python and can give Ruby a run for its money!
[1] http://www.lua.orgDelphi.
You can make a powerful windows app in few clicks without even writing anything. Was my first real language but I had to abandon it just because nobody needs it...
Javascript for sure - considering how much it's capable of, possession of some language feature implementations (thinking of prototyping and closures specifically) to make others jealous, and considering it's competitors it gets far too little respect.
I firmly blame IE for this.
There's no platform that's more under-appreciated than the Ecere SDK [1].
It was created by a guy in ##programming on freenode, its official channel is #ecere on the same network.
He's been working on it for years, it just never got noticed.
Don't be deceived by its website's old look; it's really amazing, you can find examples of it along with a sample code here [2].
I hope you guys like it. GB
[1] http://www.ecere.com/Probably VisualBasic. Generally disliked by everyone and considered "childish", although I regularly hear it is not that bad.
Modula-2. Its grammar fit on a single page.
PHP seems to get slated at every opportunity.
It definitely has its issues, but on the plus side, it is quick, easy to get started with and has a fantastic community.
I realise that although under-appreciated by Programming guru's, it is definitely over-appreciated by newbies.
Linux. Too many big companies don't use it purely because they are used to Windows, and "open source is a bad thing".
For platforms, at the risk of sounding trendy - OSX/Cocoa is terribly underused/underrated. As a long time linux user/developer I can say that "once you've had Mac, you'll never go back." It's really just slick and does what you'd want and expect and does it well and intuitively.
Add in things like Core and Quartz graphics (and composer) and it's just a field day for any geek looking to create good looking, good functioning software. I believe this plays a big part in why Mac apps, though fewer, are often higher quality than on other platforms. They're a joy to write, and the development environment almost demands quality by association. The learning curve, which you'd expect to be pretty big, is actually not bad at all.
PS: I am not an Apple fanboy(girl), I've used Macs since OS/9 (in anticipation of OS/X) and before that I owned a real live NeXT Cube (which is probably in my garage somewhere now). So nyah.
it contains everything that Bash has, but better, and 4-5 years earlier, and also even more things, that Bash doesn't have.
http://antirez.com/articoli/tclmisunderstood.html
And along with Tcl is its widget toolkit Tk which is also equally misunderstood.
The Glasgow Haskell Compiler [1].
I was recently working through the SIPC book/course and discovered that scheme is actually really nifty. After a lot of reading and futzing, I came to the conclusion that functional languages in general seem to be very underrated. I'm still on the fence about Prolog. :)
I was actually thinking along this exact topic, myself, but didn't think of how to phrase it well.
Also ObjC, plain old fashioned C, and Perl (everybody used to love Perl, but it's just so unfashionable these days... it's still good for what it always was good for, notably unix administration scripting, among others).
I was always enamored with Cocoa's FoundationKit. I really enjoy programming in Objective-C, and I often wish I could do so on other platforms. I know it's too much to ask that ApplicationKit, the GUI component of Cocoa, be usable on other platforms, but it'd be cool if I could at least write command-line apps in Cocoa on other systems. GCC can compile Objective-C sources, of course, so we just need a decent cross-platform Objective-C framework to make this wish a reality.
I know there's GNUstep, but it's not quite up to par with FoundationKit (and there are quite a few differences between each, too).
Perl.
1) People who never seriously used it complain it's unmaintainable. (I've seen good Perl & bad Perl. I've also seen good C++ & bad C++. Yes, you can write maintainable Perl.)
2) People who never created scalable applications complain it can't scale. (It scaled pretty well for My Yahoo, Ticketmaster, Overture, etc.)
3) People think it's dead. Perl 6 continues to enforce that notion & is a major disaster, but Perl 5 has plenty of innovation [1].
[1] http://www.iinteractive.com/moose/There is an awesome functional programming language called Clojure [1] which is really easy to setup, learn and get writing great applications with it. I've only been playing about with it after watching a PeepCode screencast [2] about it, but it seems like a really powerful tool and I'm really enjoying learning it. It runs on the JVM, so it's easy to run and deploy.
Functional Programming is a completely different style from the procedural lanuages we are all used to - and it's great to open new doors and learn new skills!
[1] http://www.clojure.orgAda [1] - "Ada is strongly typed and compilers are validated for reliability in mission-critical applications, such as avionics software."
[1] http://en.wikipedia.org/wiki/Ada%5F%28programming%5Flanguage%29OCaml [1], which has features like object-oriented layer, type inference, functional and so on, and it's effcient as well. But it's just not so popular as it shoule be.
[1] http://caml.inria.fr/ocaml/Maybe a mention of
My 2p. Maybe not all logical choices, but some things just catch my eye.
Assembly language on the Amiga. Combine a great little multitasking kernel and elegant OS with the wonderfully orthogonal 68000 instruction set. Truly fun and powerful.
Forth, especially for Mobile apps.
Also Adobe Flex, as great as it is, it's still underused.
I'll put in ColdFusion. I'm not a big ColdFusion developer or fan but during the time I used it, it seemed like a very easy to use technology.
Although it's rapidly gaining more mainstream acceptance, I feel that Python is still a bit of an underused platform. "Enterprise-y" companies shy away from it because of a combination of "there's no one to sue" and "nobody ever got fired for choosing .Net/Java."
Among smaller startups, it just doesn't seem to be as "sexy" as Rails or sometimes even .Net.
Picolisp [1] is so many kinds of awesome I don't even know where to begin. It embodies the original Lisp idea with total equivalence of code and data, yet is trivial to interface to C libraries. It has a small kernel, an integrated database and a web toolkit.
Yet there is a pure core implementation with the language ONLY if you want to embed the language in your own application. It is MIT/X11 licensed.
There is a Java implementation. A very friendly community.
[1] http://picolisp.com/5000/-2.htmlIBM iSeries (previously AS/400 and currently System i). It's not a platform that I love, but it's a platform that I've worked with my entire professional life, and I've come to appreciate its reliability, security, and performance. I believe a lot of conservative companies that are willing to shell out the dough for Oracle-based solutions would do just as well or better (and for less money and less headache) with an iSeries.
It's also not (quite) as stodgy and backward as most people (who have heard of it but not used it) think. While it is best-suited for DB2 applications written in RPG, I find time to make use of the iSeries port of Python [1], for example.
[1] http://stackoverflow.com/questions/752349/has-anyone-here-tried-using-the-iseries-python-portUnlambda [1], OISC [2] and Piet [3].
[1] http://www.madore.org/~david/programs/unlambda/I think the comments under Wayne's discussion prove the bias against .NET and make no real argument about why the .NET Framework is underrated. Sure, .NET seems to be a clone of Java on the surface, but when you take into account the many language improvements and rapid updates of the framework, it's far better to develop for the Java. More importantly, the .NET Framework is still in the process of maturing. We are just now starting to see quality open source frameworks being developed for the platform (keep in mind that Java has been around twice as long, and has had much more traction because it was so universally used).
And about Mono. I'm sorry, I love the .NET Framework, and I love Linux. But I can't imagine ever using Mono as the platform for my applications on Linux. If you are going to develop for Linux, there are just too many compelling platforms to use that integrate so much better (Python for one). Mono is always going to be the sidekick, always behind in development, and never quite as rich as the .NET Framework.
And for Jess, what's wrong with Visual Studio? I would say it's arguably one of the best IDE's out there, and I use Eclipse, among others.
Mono [1] is seriously underrated. It takes the technical prowess of .NET and decouples it from the Windows platform. You can create (I am not talking about porting .NET apps, but NEW stuff) awesome programs and run them on OSX, Linux and Windows. (Yes, Mono has a Windows port.)
Even iPhone apps can be made with Mono, and yes, OK with the App Store too [2].
And don't talk about the political stuff surrounding Mono, that is just an unfortunate fact of life. I am talking about platform beauty.
[1] http://www.mono-project.com/Main_PageThe .NET Framework. If it had an Apple or Penguin stamped on it, I think people would trash it a lot less. I wish I heard more compelling arguments more often for not using it other than "It's Microsoft, that's why."
It's not perfect, but any stretch of the imagination, but it's a pretty compelling platform for software development.