Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am currently learning the two languages F-Sharp and Scala. These two languages are, in my opinion, both quite comprehensive to grasp. Nonetheless, what seems to make Scala and F-Sharp similar, is that both of them try to offer a conglomeration of programming paradigms (OO, functional), in order to solve real-world tasks and to make them applicable as general-purpose languages.

While both languages seem to get the most attention in academia, there is comparable little mention of their usage in commercial software projects.

Considering the different platform philosophies behind these two languages, which is -in your subjective opinion- more promising to become widely used for commercial purposes in the near future?

share|improve this question

migrated from stackoverflow.com Jul 5 '11 at 12:45

This question came from our site for professional and enthusiast programmers.

    
1. It is called F# (except in file names and urls, because # has a different meaning there). 2. SO doesn't appreciate opinion questions, you should ask questions like this in Programmers. Someone will probably move it for you this time (I can't). –  Ramon Snir Jul 5 '11 at 9:08
    
What a helpful reply! Thank you! –  Lord Flashback Jul 5 '11 at 9:12
add comment

4 Answers

up vote 6 down vote accepted

I wouldn't say that Scala and F# are getting the most attention in academia - Scala may be getting more than F# (because of its advanced type system), but they certainly get a lot of attention in the "real-world" too. Take a look at the F#/Scala events at SkillsMatter.

If you look at talks from Scala eXchange, talks from Functional Programming eXchange and the upcoming F# tutorials, you can get a good idea about the areas where Scala and F# have a lot to offer. Scala is very interesting for concurrent and distributed programming thanks to the Akka framework and F# is attractive for asynchronous programming (and using that for concurrency) and will offer great features for data access in the future version.

In general, I don't think that asking which of the languages is more "promising" makes sense. They both offer similar features. More importantly, they target different platforms and people generally choose the platform first. Those who want to use real-world functional language and don't use .NET/JVM can choose based on the problems they want to solve and the availability of libraries.

share|improve this answer
add comment

Scala doesn't sound like academia to me.

F# doesn't smell of academia either.

share|improve this answer
3  
What do they "smell" for you? –  Lord Flashback Jul 5 '11 at 11:40
add comment

I know F# has been accepted in the financial sector. I remember awhile ago Don Syme (the main creator of F#) posted on his blog that Credit Suisse was hiring F# programmers. I think the nature of F# (at least, have little to no experience with Scala) lends itself more to internal applications or niche software. I don't think that it is likely that you'll go out and see shrinkwrap software that was written in F#.

share|improve this answer
1  
It has gained a foothold there, but not more. The vast majority of software developed right now in finance is C++/C#/Java. –  quant_dev Jul 5 '11 at 13:16
add comment

Most programming languages these days are multiparadigm, one way and another.

Functional languages like the ones you mention, have been for a while, but, today are a "trend" or "hype".

C#, VB.NET, Delphi, Java: altought very object oriented, are a combination of other paradigms.

For example, Usage of "modules" or "namespace" ist considered not a paradigm by itself, or part o the procedural paradigm. Have you seen a C / C++ / PHP program without namespaces ? Its complicated.

In conclution, a lot of applications you have in your PC or web, its already "Multiparadigm", even if there is a main paradigm, like Object Orientation in Java or Functional Orientation in F# ...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.