Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Microsoft To Allow Code Contributions To F#

Soulskill posted about 7 months ago | from the also-debating-renaming-it-to-hashtag-F dept.

Microsoft 100

An anonymous reader writes "The F# programming language team has been providing source code releases for years, but all contributions to the core implementation were internal. Microsoft is now changing that. They've announced that they'll be accepting code contributions from the community for the core F# language, the compiler, library, and Visual F# tools. They praised the quality of work currently being done by the F# community: 'The F# community is already doing high-quality, cross-platform open engineering using modern tools, testing methodology and build processes. Some particularly active projects include the Visual F# Power Tools, FSharp.Data, F# Editing Support for Open Editors, the Deedle DataFrame library and a host of testing tools, web tools, templates, type providers and other tools.' Microsoft is actively solicited bug fixes, optimizations, and library improvements."

Sorry! There are no comments related to the filter you selected.

Please, find a better name. (5, Funny)

Tablizer (95088) | about 7 months ago | (#46662265)

I got in trouble with Personnel for suggesting we "F# our stack".

Re:Please, find a better name. (0)

Anonymous Coward | about 7 months ago | (#46662475)

I got in trouble with Personnel for suggesting we "F# our stack".

^^ That's funny right there.

Re:Please, find a better name. (-1, Flamebait)

Chris Mattern (191822) | about 7 months ago | (#46664343)

I got in trouble for discussing porting a co-worker's code when I said, "We should F# her C#".

Re:Please, find a better name. (0)

Anonymous Coward | about 7 months ago | (#46664835)

You didn't say that. You are a liar. LIAR!!!!!!!!!!!!!!!!!!!!!!!

Please do our work for free! (5, Insightful)

Anonymous Coward | about 7 months ago | (#46662281)

When they discontinue F# in five years, you can link back to this with an "I told you so."

Re:Please do our work for free! (0)

Anonymous Coward | about 7 months ago | (#46662547)

So, every opensource project out there died in 5 years?

Re:Please do our work for free! (0)

Anonymous Coward | about 7 months ago | (#46662937)

Umm, no.

Not every .... MOST (0)

Anonymous Coward | about 7 months ago | (#46666555)

Most open source projects become abandonware after about 6 months after the single developer get tire of maintaining the source or completed the semester.

Only the big projects backed by corporate $$$$ survive.

Re:Please do our work for free! (1, Insightful)

Anonymous Coward | about 7 months ago | (#46662637)

People like you are all the same.. Piss and moan when MS keeps their code locked, piss and moan when they open-source it..

WAHHHH

Re:Please do our work for free! (0)

Anonymous Coward | about 7 months ago | (#46664837)

You'd piss and moan too if you had a full on neckbeard scratching your shoulders and collar bone all the time.

Re:Please do our work for free! (1)

nhat11 (1608159) | about 7 months ago | (#46692389)

Yup +1 if I had it lol

Re:Please do our work for free! (1, Interesting)

bondsbw (888959) | about 7 months ago | (#46662663)

Microsoft is closed source. Slashdot hates.
Microsoft goes open source. Slashdot hates.

Re:Please do our work for free! (2)

Opportunist (166417) | about 7 months ago | (#46663279)

Timeo Danaos et dona ferentes

Re:Please do our work for free! (1)

mendax (114116) | about 7 months ago | (#46667569)

Translation: I fear Greeks bearing gifts.

A reference to the Trojan horse.

Re:Please do our work for free! (1)

Opportunist (166417) | about 7 months ago | (#46668895)

If that really needs explaining, this is not the /. anymore that I once knew and loved.

Re:Please do our work for free! (0)

Anonymous Coward | about 7 months ago | (#46662927)

It doesn't matter if they discontinue it in their own products, the source will always be available and it's out of their control if anyone wants and will use it.
it'll be supported as long as you want to use now, regardless of what Microsoft decides.

F# isn't going away (1)

tangent (3677) | about 7 months ago | (#46666375)

Not much chance of that. F# just hit #12 on the Tiobe Index, up from #69 this time last year:

http://www.tiobe.com/index.php... [tiobe.com]

F# Seven years ago, and in five years time (3, Insightful)

Javaman59 (524434) | about 7 months ago | (#46667071)

I got into F# seven years ago, when it was just a research project and looked more like OCaml than a .Net language.

By 2010 it had become fully integrated into .Net, and was part of the Visual Studio standard install.

By 2014 it had evolved into a complete language with its own killer-features and it had spawned a large community, with blogs, tutorials, books and sample code. There are several significant third party add-ons, and numerous high profile adopters.

In five years time, rather than F# disappearing, it is more likely that it will be the preferred language of many developers and shops, and the early adopters will be thankful for our extra years of experience.

As for me, I'm thankful not just to have it on my CV, but because it helps me build better apps for WinRT, the web (with ASP.Net MVC) and Android. The root advantage of it being a functional language in the .Net world will always be its main attraction to developers, but its aggressive development by the F# team and widespread support increase its value. This latest strategic move (of opening it to open-source contribution) will accelerate its progress.

I expect that in five years time, or, hopefully, just two, I won't have to mix F# (for the model) with C# (for the UI) for WinRT and ASP.NET MVC.

I'll link back to this in five years with "I told you so". I'll still be Javaman59 then.

>> Not much chance of that. F# just hit #12 on the Tiobe Index, up from #69 this time last year:

Yep. The sooner you get into it, the better off you'll be in five years time.

Re:F# isn't going away (1)

Raenex (947668) | about 7 months ago | (#46668163)

Tiobe is notoriously inaccurate. If it just that high, it was probably due to a change in their dodgy methodology.

Re:F# isn't going away (1)

Raenex (947668) | about 7 months ago | (#46668227)

If it just that high

That should read "If it jumped that high.

Weird (0)

Anonymous Coward | about 7 months ago | (#46662355)

What corporation is this and what have you done with Microsoft?

Re:Weird (3, Interesting)

lgw (121541) | about 7 months ago | (#46662717)

Microsoft has a new boss. I'm not taking this as a sign of the new direction yet, but we should expect MS to change. Ballmer was all about the status quo (and the chair-lobbing, and the monkey dance). No reason to expect the new guy to be the same.

Re:Weird (1)

Richard_at_work (517087) | about 7 months ago | (#46662797)

With the recent changes, almost all of those in actual control of Microsoft have a significant and continuing coding history, so it really is a case of Microsoft going back to grass roots.

Re:Weird (3, Interesting)

lgw (121541) | about 7 months ago | (#46662853)

Let's just say I'm hopeful, but skeptical. What I want is to use VS and C# to make cross-platform .NET apps (PC, android, iThingy) in an officially-supported way. You can do that with third-party commercial products today, and that's neat, but for MS to step up and back projects like Mono with patent indemnification and other official "it's not ours, but we fully support it" blessing would be a new world, and a happy one.

Re:Weird (1)

shutdown -p now (807394) | about 7 months ago | (#46664349)

Did you miss the major announcement about official partnership with Xamarin a month ago or so?

Re:Weird (1)

lgw (121541) | about 7 months ago | (#46664535)

Yes, I sure did! Have a link by any chance? That would be awesometacular in awesome sauce, or some similar form of squee.

Re:Weird (1)

Rinikusu (28164) | about 7 months ago | (#46665395)

Re:Weird (1)

lgw (121541) | about 7 months ago | (#46665699)

Thanks!

Re:Weird (1)

shutdown -p now (807394) | about 7 months ago | (#46678091)

Here [slashdot.org] is the official press release.

Here [slashdot.org] is the official press release.">Here is the continuation of that story from the Build conference two days ago.

Re:Weird (0)

Anonymous Coward | about 7 months ago | (#46667927)

You can't use VS on other platforms, but the next version of the C# compiler, codenamed Roslyn, was just open sourced with the Apache license. You will not only be able to run the compiler on other platforms, but you'll be able to customize it as well.

Keep in mind that the bar for MS to accept your patches is rather high, though.

dom

WTF# (0)

Anonymous Coward | about 7 months ago | (#46662357)

is it?

Wow ... just why? (3, Interesting)

buchner.johannes (1139593) | about 7 months ago | (#46662399)

"let" statements -- really?
And the selling feature is list comprehension? Looks like they are trying to go into Haskells direction.
Testimonials say it's better than C# for data analysis?
Well, that train has left the station, with R, Python (and Julia) being available. This can not be won by languages, but with high-quality statistics / visualisation / machine learning libraries.

License is Apache v2 by the way.

Re:Wow ... just why? (1)

BasilBrush (643681) | about 7 months ago | (#46662711)

"let" statements -- really?

Why not? It makes sense to do something different so as not to confuse binding with assignment or comparison. Wait, you did realise it wasn't assignment, didn't you?

Re:Wow ... just why? (4, Insightful)

TheRealMindChild (743925) | about 7 months ago | (#46662715)

Evaluating the merits of a language within 5 minutes, a brief article, and personal bias... seems legit

Re:Wow ... just why? (1)

Xest (935314) | about 7 months ago | (#46683367)

I especially liked the bit about Python, because I mean why would you want an extremely fast JIT compiled language with the best in class IDE that is Visual Studio when you can have Python's relative sluggishness and notepad? (yes I'm being facetious before someone tells me you don't have to use notepad for Python).

Seriously, people need to stop thinking Python is the solution to everything ever. Python is great, and is perfect for replacing crap like PHP because Python is so much better, but F# does many things much better than Python and has it's own niche areas where it simply just outclasses Python.

I wouldn't ever even compare Python and F# because their use cases are just too different.

Re:Wow ... just why? (1)

bondsbw (888959) | about 7 months ago | (#46662733)

It's essentially a port of OCaml. It is intended to be somewhat compatible with OCaml, hence the "let".

F# adds features like .NET compatibility, units of measure, computation expressions, and... well, GIYF.

Re:Wow ... just why? (1)

tangent (3677) | about 7 months ago | (#46666593)

F# is a "port" of Ocaml in about the same sort of way as C# is a port of Java.

Familial resemblance, yes. Compatibility, definitely not. And as with C# and Java, the gap widens year by year.

IMHO, F# is a vast improvement on Ocaml.

Re:Wow ... just why? (1)

bondsbw (888959) | about 7 months ago | (#46666703)

Tomayto, tomahto.

F# was originally designed to be somewhat compatible. That goal has obviously faded but the point remains: it has its roots in OCaml and its current syntax draws from it.

But I agree that F# is better in many ways

Re: F# and Ocaml compatibility (1)

tangent (3677) | about 7 months ago | (#46666983)

Are you aware of even one substantial program that builds without changes under both Ocaml and F#? I'm not.

Re:Wow ... just why? (4, Informative)

PylonHead (61401) | about 7 months ago | (#46662735)

I haven't looked at it for a while, but it's basically Microsoft's version of OCaml which is an objected oriented ML variant, (and a very slick language with a long development history).

I'm not really seeing it catch on either, but OCaml's sweet spot was writing fast code that dealt with very complex data structures. It enforced static typing, but used type inference to figure out what the types of variables were. It has powerful operators for assembling and splitting up data structures that let you write very concise code that was checked at compile time for correctness.

It is somewhat similar in flavor to Haskell (although it's probably wrong to say they're going in Haskells direction.. more that they have common ancestors).

Re:Wow ... just why? (1)

Rinikusu (28164) | about 7 months ago | (#46665425)

Interest is apparently at an all-time high, especially with a lot of 'alpha geeks' trying to revive functional programming (clojure, for example). However, I'm not seeing that translate into actual jobs although I imagine it'll be a grassroots "we're a microsoft .net shop, we want to explore functional style programming in our particular domain, let's give it a shot" or a shop that's just starting up with little legacy codebase or PHBs to get nervous about new technologies. I know the financial industry is also having a look at it, especially shops where OCaml is in play. I'd like to add F# to my toolkit, as well, not for any reason other than professional curiosity.

Not OCaml, Haskell or SML at most. (0)

Anonymous Coward | about 7 months ago | (#46665771)

Says the man who has never used OCaml.
If you don't have to explicitly cast integers to floating point to operate them with floating points you're not using OCaml, also if you don't need explicitly different arithmetic operators for each numerical type you're also not using OCaml, if the compiler and interpreter give you different opinions about your code, guess what? you're not using OCaml.

Re:Not OCaml, Haskell or SML at most. (1)

PylonHead (61401) | about 7 months ago | (#46709109)

Your comment is so bizarre that I almost think you must have attached it to the wrong post.

I programmed in OCaml for many years.

Yes, there is no automatic type conversion in OCaml. I certainly never said there was. Some people see this as a feature (you know exactly what you're dealing with at all times), some as an issue (you have to write tedious conversions that some languages handle for you).

Yes, there are different arithmetic operators for different numeric types. It's a little bizarre when you're used to other languages, but once you get used to it it's not an issue.

Most of my code was compiled so I didn't experience issues with compiled vs interpreted.

It certainly had a few rough edges here and there, perhaps because the community was not as large as more mainstream languages. They probably would have been ironed out if the language had really taken off.

Sums it up (1)

Javaman59 (524434) | about 7 months ago | (#46667139)

I'm not really seeing it catch on either, but OCaml's sweet spot was writing fast code that dealt with very complex data structures. It enforced static typing, but used type inference to figure out what the types of variables were. It has powerful operators for assembling and splitting up data structures that let you write very concise code that was checked at compile time for correctness.

I use F# daily for the Model (and ViewModel) in WinRT and ASP.NET MVC. Your list of advantages (from OCaml) are exactly the ones which I enjoy.

In a nutshell: "... let you write very concise code that was checked at compile time".

What F# adds, mostly, is the .Net libraries, Visual Studio support, and redistribution to any .Net host. F# has added some cool features (particularly Type Providers).

Re:Wow ... just why? (1)

bondsbw (888959) | about 7 months ago | (#46662747)

Also, I don't know that list comprehension is the "selling feature". It's a feature, no doubt, but F# has quite a few tricks up its sleeves that are much more impressive than that.

Re:Wow ... just why? (1)

Anonymous Coward | about 7 months ago | (#46666641)

Type providers [microsoft.com] are pretty nice.

Re:Wow ... just why? (1)

pr0fessor (1940368) | about 7 months ago | (#46662833)

I was kind of under the impression that C# was best used for simple applications with a short lead time, especially in an all windows enterprise environment.

Re:Wow ... just why? (2)

BitZtream (692029) | about 7 months ago | (#46663651)

All .NET languages are more or less equal as they ALL go through the same back end and share the same runtime.

Unless your in an embedded world where garbage collection isn't acceptable or something like that, they .NET world is capable of just about any task, gaming being one of them. Runtime speed is not an issue unless you need real time hard limits.

There's the .net compact framework for embedded devices and interacting with real time components as needed. .NET is really what Java wishes it was.

Re:Wow ... just why? (1)

Medievalist (16032) | about 7 months ago | (#46664619)

.NET is really what Java wishes it was.

Uh... difficult to read regardless of your milk tongue?

Re:Wow ... just why? (0)

Anonymous Coward | about 7 months ago | (#46663033)

I hadn't heard of Julia, it looks nice. You're absolutely right, though, the critical thing for data analysis is the libraries. Speed isn't even that important for many cases. The time savings come from having a good selection of libraries so that you don't have to roll your own code. Right now I'm on MATLAB, but periodically I take a look at Python to see if it'll make a viable alternative. For what I'm doing at the moment it's still not quite there yet. In addition, moving to Python right now would mean re-writing too much code to make the move worthwhile.

Re:Wow ... just why? (1, Informative)

Anonymous Coward | about 7 months ago | (#46663401)

"let" statements -- really?
And the selling feature is list comprehension? Looks like they are trying to go into Haskells direction.
Testimonials say it's better than C# for data analysis?
Well, that train has left the station, with R, Python (and Julia) being available. This can not be won by languages, but with high-quality statistics / visualisation / machine learning libraries.

License is Apache v2 by the way.

I'm not sure why let statements would surprise you so much in a functional language, it's pretty standard construct for value binding. You also make it sound like this is something Microsoft just came out with. F# has been around since 2005.

Re:Wow ... just why? (1)

Paradigma11 (645246) | about 7 months ago | (#46663619)

In my experience 90% of the code is defined by ADT (Discriminated Unions), Records and Pattern Matching in a static type system. The rest is nice but not essential.

Re:Wow ... just why? (1)

bluefoxlucid (723572) | about 7 months ago | (#46684491)

Sounds like they're trying to copy Python, but mash some Bash in there.

Pronunciation (4, Funny)

Princeofcups (150855) | about 7 months ago | (#46662471)

I always thought that # was pronounced "rap." Now I see that it should be pronounced "uck."

Re:Pronunciation (1)

funwithBSD (245349) | about 7 months ago | (#46662567)

Silent R.

Fap Fap Fap.

Re:Pronunciation (0)

Anonymous Coward | about 7 months ago | (#46665473)

rap would be the single player version, uck would be the multi-player version ;D

Minchin (0)

Anonymous Coward | about 7 months ago | (#46662497)

I like playing in F major, but I like coding in F#

Re:Minchin (1)

Opportunist (166417) | about 7 months ago | (#46663329)

Too bad it's not G#. I'd have a very bad "a minor" joke that doesn't quite work out now.

Ah well. Maybe with the next incarnation of the language.

pardon my ignorance (1)

cute_orc (2911555) | about 7 months ago | (#46662529)

Please pardon my ignorance. Is it what I think it is? I mean "F*** Sharp" or something like that.

Re:pardon my ignorance (1)

Anonymous Coward | about 7 months ago | (#46662581)

It is something Microsoft is pissing away money on when they should be giving it to me in dividends.

It is F# (1)

funwithBSD (245349) | about 7 months ago | (#46662559)

Don't F'ing cut yourself.

Ignorant, wicked & self-destructing mass (0)

Anonymous Coward | about 7 months ago | (#46662587)

"When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd." (Dennis Ritchie)

Wake up.

Re:Ignorant, wicked & self-destructing mass (1)

kthreadd (1558445) | about 7 months ago | (#46668267)

C# is not related to C just because the name is similar.

What happened to C#? (1)

hawguy (1600213) | about 7 months ago | (#46662689)

Is C# so broken that they need to replace it? What advantages does F# offer over C#? Will F# replace C#? Or is F# just an open source iteration of C#?

Re:What happened to C#? (0)

bob_super (3391281) | about 7 months ago | (#46662731)

Let me elevate the question: why do we need yet another programming language? (insert oblig XKCD here)

Outside of not being on anyone's resume but necessary for that next job (with 10 years experience, of course), what is the benefit of F# ?

Re:What happened to C#? (1)

firewrought (36952) | about 7 months ago | (#46664891)

Let me elevate the question: why do we need yet another programming language?

Because we're nowhere near figuring out how to best express ourselves to computers for the wide variety of problems we wish to solve and the large diversity of skill-sets and backgrounds we wish to solve them with.

In this example, F# solves the problem of "how do we do statically-typed functional programming (a la OCaml and Haskell) in a way that integrates with the .NET ecosystem?". C# doesn't solve that problem because you can't do nearly enough type theory [wikipedia.org] . OCaml doesn't solve that problem because it's not vendor-supported and it's not designed from the ground up with the .NET platform (and the existing base of C# programmers) in mind.

While I share your unstated assumption... that it seems like there are too many half-baked programming languages instead of a few really good ones, I also think Microsoft deserves credit (much as I hate to say it) for recognizing the need to focus on platforms (like .NET) instead of languages. Of course, then they go and do the whole WinRT thing... :-\

Re:What happened to C#? (2)

BasilBrush (643681) | about 7 months ago | (#46662737)

F# is a functional programming language. C# is an imperative programming language.

It's like the difference between a spreadsheet and a programmable calculator.

Re:What happened to C#? (1)

thestuckmud (955767) | about 7 months ago | (#46667589)

F# and C# are both multi-paradigm languages, and are both built on top of the CLR type system. Functional style is more natural in F#, but C# has first class functions (and lambda), too. F# has loops and assignment, but nothing as powerful/abuse-inviting as the C-style for loop. Neither approach is the one true style.

If you believe the proverb, "library design is language design" [from Bell Labs? Was it Stroustrup?], then F# is a much different language from other ML variants as it has native access to Dot Net/Mono libraries.

Re:What happened to C#? (0)

Anonymous Coward | about 7 months ago | (#46662751)

C# is a fully OO imparative language, whereas F# is a functional language. Two different worlds, if you ask me, and I highly doubt F# could dream of replacing C#, even by only looking at usage numbers alone.

Re:What happened to C#? (3, Informative)

lgw (121541) | about 7 months ago | (#46662783)

There are many CLR languages. C#, Visual Basic, "managed C++", and F#, to name a few. They all use the same "bytecode" (well, managed C++ is a weird hybrid), and can use the full .NET libraries.

F# is a functional language, so it's quite appealing to those who fap to the lambda calculus. C# is great these days for the rest of us. It finally caught up to the basic lisp functionality a few years back with LINQ (Java still hasn't), and it's nice to work in. Sure, it's odd to use "Select" and "Aggregate" instead of "map" and "reduce", but it works nicely.

Re:What happened to C#? (1)

Opportunist (166417) | about 7 months ago | (#46663391)

managed C++ is more like something that is in constant pain and begging you to kill it quickly whenever you look at it. I feel its pain. I had to use it. I often felt the urge to put it out of its misery.

Re:What happened to C#? (3, Interesting)

lgw (121541) | about 7 months ago | (#46663481)

Managed C++ is absolutely wonderful for one narrow purpose: to marshal between the managed and unmanaged worlds. The .NET marshaller blows goats, but writing your own shim to transfer between .NET and STL classes is easy, runs quite fast, and (unlike the marshaller), can actually be debugged.

I can't imagine using managed C++ for anything else though. Eesh.

Actually, Java has caught up (0)

Anonymous Coward | about 6 months ago | (#46716979)

With Java 8 (just released), you have 'map', 'filter', 'reduce', etc. as part of the library updates to correspond with the new lambda support.

Re:What happened to C#? (1)

Opportunist (166417) | about 7 months ago | (#46663373)

Umm... you can sell a ton of new books teaching it. And you can force people to upgrade their Visual Studio because they thought they got everything they need in VS2010.

Maybe some other advantages are there, but you'd have to ask MS themselves what else is in for them.

Re:What happened to C#? (1)

MouseTheLuckyDog (2752443) | about 7 months ago | (#46665519)

F# is an implementation of the OCaml programming language developed to work with .Net. Other then .Net F# has no relation to C#.

OCaml is a variant of the ML programming language, one of the core core functional programming languages.Functional languages are languages that have no mutable state. However they do have work arounds. The idea is that many of the bugs that happen in many program come from interactions with the state. So eliminate the state and you eliminate the bugs. The problem is though, that the things you want want programs to do ( such as placing orders, making reservations, etc ) involve state. So what you've done in the end is, built up a lot of machinery to handle the simlest part of the problem.

Re:What happened to C#? (1)

tangent (3677) | about 7 months ago | (#46666571)

F# and Ocaml are pretty different, actually. They share about as much familial resemblance as C# and Java, or C++ and Objective C:

- The default "light" syntax in F# does away with most of the semicolons and other noise required in Ocaml

- The OO facilities are entirely incompatible

- The standard libraries are almost entirely different; there's only a tiny bit of overlap

- The mere fact of F# being a .NET language has many practical effects on the language, down to strange implementation details like what it means to rotate an 8-bit integer right by 8. F# and Ocaml do not do the same thing! F# differs because it behaves like C#, whereas Ocaml behaves like C in this regard.

- Ocaml has separate operators for integer vs floating point arithmetic; F# overloads the traditional set, though like Ocaml, F# won't let you implicitly mix integer and FP arithmetic

I could go on, but suffice to say, knowing one only gives you a bit of a leg up on learning the other.

Re:What happened to C#? (1)

tangent (3677) | about 7 months ago | (#46666479)

It typically takes about 60% of the number of code lines to accomplish something in F# as with C#.

Don't take it from me. Go to the MSDN library page for any given .NET API, scroll down to the Examples, and compare the F# and C# versions. (Not all pages have F# equivalents for the C# examples, but an impressive number do.)

It's no mystery why that is so. F# is highly expressive and doesn't require much boilerplate.

You can mix an F# library into a C# "solution" (urp), so the next time you need a new class or module in a .NET project, I challenge you to write it in F#. You might just get hooked. If not, learning an FP language changes how you think about software, in a good way, even if you never use a pure FP language again.

I also find that correct F# code is more obviously correct than equally correct C# code. It just seems to snap into focus at some point. This might be due to the mathematical rigor of pure FP, or it might just be another benefit of its expressive syntax.

Great news for (some) programming language fans (5, Interesting)

ndykman (659315) | about 7 months ago | (#46662719)

If you had told me back more than a decade ago that Microsoft would be supporting a commercial version of a language based on ML, OCAML and Haskell, I'd shook my head in complete disbelief. But, here we are, and this is great news as it allows for more engagement from the Haskell and other functional programming communities.

F#, like it's other ML-based dialects, is amazing for solving certain problems in a expressive and concise manner. Of course, it's a powerful language that can leads to abuses. And, don't get me wrong, the additional constructs for full .Net interoperability complicate the language a bit compared to Haskell. But, it is still a joy to use when you can.

Frankly, if there was local F# work, I'd jump on it in a heartbeat. I've even considered trying to convince a couple of local shops to give it a try for some advanced projects.

Re:Great news for (some) programming language fans (1)

mrchaotica (681592) | about 7 months ago | (#46662895)

Frankly, if there was local F# work, I'd jump on it in a heartbeat. I've even considered trying to convince a couple of local shops to give it a try for some advanced projects.

  1. 1. Get a job at any old .NET shop
  2. 2. Slip some F# into the codebase when nobody's looking
  3. ...
  4. N. Profit! (Or "get fired" -- I'm not sure which)

Re:Great news for (some) programming language fans (1)

Rinikusu (28164) | about 7 months ago | (#46665453)

... i'm actually planning on doing this soon, just as a comparison between development methodologies.

Re:Great news for (some) programming language fans (2, Insightful)

Princeofcups (150855) | about 7 months ago | (#46662921)

If you had told me back more than a decade ago that Microsoft would be supporting a commercial version of a language based on ML, OCAML and Haskell, I'd shook my head in complete disbelief. But, here we are, and this is great news as it allows for more engagement from the Haskell and other functional programming communities.

F#, like it's other ML-based dialects, is amazing for solving certain problems in a expressive and concise manner. Of course, it's a powerful language that can leads to abuses. And, don't get me wrong, the additional constructs for full .Net interoperability complicate the language a bit compared to Haskell. But, it is still a joy to use when you can.

Frankly, if there was local F# work, I'd jump on it in a heartbeat. I've even considered trying to convince a couple of local shops to give it a try for some advanced projects.

You haven't been in the business long have you. Ever heard of embrace and extend?

Re:Great news for (some) programming language fans (0)

Anonymous Coward | about 7 months ago | (#46663411)

Embrace and extend what? F# and the CLR are objectively superior to any of the current ML implementations and Microsoft Research already pays for most Haskell development.

Re:Great news for (some) programming language fans (1)

ndykman (659315) | about 7 months ago | (#46664887)

But what would F# really displace? Haskell's not going away just because F# exists. If anything, it'd probably just add more potential users and contributors to the project. I think Microsoft is just trying grow the community around these kinds of languages, and there are real signs that F# is a healthy community at this point.

The nice thing about F# is that it is at the point that you can get past "well, that's just an academic thing you learned in school" conversation and try to talk about why it makes sense for a given problem. It's a hard sell, but it's not impossible.

I don't see how the insight in quoting the old "embrace, extend and extinguish" mantra here (besides playing to the home crowd). I really don't see how it applies in this case. I really doubt that Microsoft is trying to take over Haskell. Especially given how many researchers in MS research work on the project as well.

Re:Great news for (some) programming language fans (1)

PhrostyMcByte (589271) | about 7 months ago | (#46663743)

F#, like it's other ML-based dialects, is amazing for solving certain problems in a expressive and concise manner ... it is still a joy to use when you can.

Can you give some examples? Many C-based languages have benefited by gaining strong functional aspects. With that, I haven't really found a reason to use a functional-focused language.

A while ago I decided to dedicate a month to coding in nothing but F# (my usual choices are C++ or C#) in attempt to find the areas they really kick-ass in, and just couldn't land on anything. There are some rare circumstances that I found it to be useful, but I just didn't find it compelling enough to warrant applying elsewhere. I'd never done functional programming before, I'm fully aware a month isn't long enough to master anything, but usually it's enough to discover if something has a really cool, earth-shattering aspect about it. So I'm honestly interested here -- what did I miss?

Re:Great news for (some) programming language fans (2)

Bryan Ischo (893) | about 7 months ago | (#46663929)

There is a crowd of people who think that being able to write a Fibonacci function is fewer characters is the ultimate goal of computer languages. ML and its derivatives are basically this.

That's a pretty insulting statement, I know, but I've suffered through having to read through enough ML code in my day to know that it and its derivatives are not languages that encourage accessible code. They encourage a certain economy of expression that's actually antithetical to maintainable code.

That's my opinion anyway.

Re:Great news for (some) programming language fans (1)

thoth (7907) | about 7 months ago | (#46664387)

This whole comment doesn't even make sense.

The Fibonacci examples at Rosetta Code are all longer for Ocaml than C, iterative and recursive.

And are you implying ML "encourages economy of expression that's actually antithetical to maintainable code"... but C doesn't? Seriously?

Re:Great news for (some) programming language fans (1)

Bryan Ischo (893) | about 7 months ago | (#46664769)

Yes, that's what I'm saying, and it does make sense.

The whole point of alot of the features of these languages is that they allow eliding the structure and type information that makes code readable.

C doesn't allow you to elide type information or structure.

Yeah, it has shortcuts for some frequently used operations that can be abused, for sure. And it's certainly possible to write unmaintainable code in any language.

All I'm saying is that there is a crowed of language developers who seem to think that eliding details is the holy grail of language features. And the proof is usually how small and "elegant" something like Fibonacci can be implemented.

OCaML is the only language I have ever experienced where I was told by other developers that I cannot expect to understand the program by reading the code - I have to run it in a development environment where the IDE can tell me type information and other stuff not obvious from the source.

Re:Great news for (some) programming language fans (2)

thoth (7907) | about 7 months ago | (#46664047)

If you replace "functional" with "object oriented" and went back in time 20 years ago, your dismissive, skeptical attitude would have fit right in that era as well.

As in: many languages have benefited by gaining object-oriented aspects, haven't found a reason to use an object-oriented language, nothing compelling enough to apply elsewhere, fully aware that a month isn't long enough to master anything but it were cool and earth-shattering then it would obviously manifest.

Sure, maybe the functional hype machine is cranked a little high, but what are you expecting - a concise summary of the years of improvements knowledge, experience in software development and language research, summarized and tailored to highlight the personal benefits to your workflow?

I would suggest picking up a few books and investing more than one month in figuring anything out. Start with the functional support in a language like Python (https://docs.python.org/2/howto/functional.html). Code stuff up one way and then in another. Basically unless you actually invest some effort you won't believe what somebody comes along to tell you.

Re:Great news for (some) programming language fans (1)

PhrostyMcByte (589271) | about 7 months ago | (#46665525)

If you replace "functional" with "object oriented" and went back in time 20 years ago, your dismissive, skeptical attitude would have fit right in that era as well.

I think you've misread my comment, or perhaps I've not expressed my position well enough. You're speaking like I've dismissed functional programming. I haven't. In fact, I really love it! The parts of it that have bled through into the more imperative/OO-focused languages, like C#'s LINQ and your Python example, are phenomenal and a joy to use.

So, here it is again: not saying functional is bad. Certainly not being dismissive or skeptical of it. I'd just like to see what compelling features haven't yet bled through. What makes pure functional or even just mostly-functional languages useful, that isn't yet in other languages? What is the killer feature, the killer problem they can still solve way easier?

If a good, experienced programmer dives deep into a language for a month and doesn't surface with anything compelling, how much more time should they spend? I'm not looking to master F#, I'm looking for a reason to master F#.

Re:Great news for (some) programming language fans (1)

shutdown -p now (807394) | about 7 months ago | (#46664397)

Try writing a compiler in it, and you'll quickly see what it is good for.

The main thing of interest there is actually ADTs and pattern matching on them. For some tasks (often ones involving trees), this leads to very concise yet natural code.

Re:Great news for (some) programming language fans (1)

ndykman (659315) | about 7 months ago | (#46664921)

Beat me to it, but walking an expression tree is a great example.

Re:Great news for (some) programming language fans (1)

Anonymous Coward | about 7 months ago | (#46663757)

F# has been around for a decade.

F###! (-1)

Anonymous Coward | about 7 months ago | (#46662877)

Microsludge has a new programming language. Well F#! That's one heck of a name for a language. When needing a support request from a help desk, they send in their request:
Microsludge support people: RE: F#ing language support.
> I can't get this F# language to work properly.
I don't know if its the OS tossing up blue screens or the F# language.
Thanks, developer.

MS's perspetive has changed? (1)

kbigdelysh (2712503) | about 7 months ago | (#46663575)

Good to hear that Microsoft is moving toward open-source. It seems high-level management's perspective has changed. I have played with F# and loved it especially because of its type-inference feature and the fact that you don't need to put curly braces (it's like python in that regard).

Yawn (0)

Anonymous Coward | about 7 months ago | (#46664241)

Still a .NET ecosystem lockin, no matter how you slice it. This announcement could be better phrased as "MS finally realizes the community is already doing their job but for free, has decided to officially let them do it".

Re:Yawn (1)

shutdown -p now (807394) | about 7 months ago | (#46664411)

F# officially supports Mono.

Re:Yawn (1)

RightSaidFred99 (874576) | about 7 months ago | (#46664867)

Still waiting for that painful downside to ".NET Lock-in" all you dweebs keep claiming. After over a decade..nope, still haven't seen it. Maybe it'll be in a few more years, right?

Re:Yawn (0)

Anonymous Coward | about 7 months ago | (#46673073)

Because silverlight works so well under Linux and BSD......

Re:Yawn (1)

RightSaidFred99 (874576) | about 7 months ago | (#46685795)

Lol, who gives a shit about that?
Check for New Comments
Slashdot Login

Need an Account?

Forgot your password?