195 Comments
- OGla, on 11/04/2007, -12/+121F# that.
- pantuky, on 11/02/2007, -8/+70I strongly agree with the premise that Microsoft is pushing F#. As a .NET developer, I can tell you I am seeing signs of this all over the place. One key point is that this piece didn't mention are these
1. Most of the evolution of the .NET platform in the past two releases has been a straight borrow from the Functional paradigm. Generics, lambda expressions, anonymous functions, anonymous types, type parametrization etc. all came from the functional paradigm. You might conclude that Functional programming has been on Anders' mind for some time now. I don't expect that to change.
2. The biggest problem we face today is parallelism. Common computers are going multicore at an alarming pace, and there is no reason to expect it to slow down anytime soon. Erickson solved their parallel problems with a functional language called Erlang. It works like hell. It works much better than imperative procedural OOPs approaches do in this regard. I think Anders is planning to solve Windows' parallel problems in a similar fashion, pushing F# as the solution. - ventralnet, on 11/12/2007, -13/+69They should make a programming language called CMaj7
- markbarks, on 10/30/2007, -2/+35What about Dmin? - the saddest of all programming languages
- inactive, on 10/25/2007, -1/+22Just remember not to go beyond G#.
- bigjimslade, on 11/03/2007, -4/+24Our team at work is using C# ontop of the .NET framework to build rich client apps. These are apps that the clients have very specific user interface desires, so we can't meet them with a thin client. We were all Java guys before and we've grown to love the .net framework as well as Visual Studio. It's really makes programming fun again - and fast.
- polaris878, on 10/25/2007, -1/+18Because you can use it for just about anything.
- Comatose51, on 11/02/2007, -4/+21It's a set of libraries and a runtime bytecode interpreter. Seriously. That's about all there is to it.
- shortarabguy, on 10/30/2007, -5/+22I thought the point was to increase functionality within the current platform... I mean, if I'm running the most functional platform on the planet and it costs about as much as the alternatives, most people will adopt the same platform as me, right? So then cross-platform compatibility would have just been an wasted resources in an effort to accomplish something which is ultimately pointless, right?
- Comatose51, on 10/25/2007, -1/+16Are you kidding me? Setting the clock back? I think most of the programming world is just finally realizing the potentials of functional programming. Both Ruby and Python are heavily rooted in functional programming. Things like lambda, anonymous functions, yield, closure, and continuation are all common concepts in functional programming. Microsoft finally noticed this trend and decided to catch the boat.
- sugarhigh4242, on 10/25/2007, -3/+17.NET is really about language independence. All .Net-compatible languages "compile" into a common opcode language interpreted at runtime. This allows .Net coders to seamlessly integrate C++, C#, VB, etc into the same project.
- seraph582, on 10/30/2007, -0/+13eek - functional programming is a mindf#ck when all you're used to is stuff like C, C++, Java, etc.
It's pretty awesome that MS is bringing a new iteration to the paradigm and giving it such a nice IDE, though! - natenovs, on 10/24/2007, -0/+13have you seen LINQ? It looks pretty interesting
http://msdn.microsoft.com/data/ref/linq/ - KnightWhoSaysNi, on 10/25/2007, -1/+13What is meant by .NET in this context is mostly the Microsoft Common Language Runtime (That's the virtual machine that runs C#, J#, VB.NET and Managed C++) and its accompanying libraries. You need the .NET framework to run .NET apps just like you need the Java runtime to run Java apps.
- lilbitmoreslyk, on 10/30/2007, -2/+14You have been programming for 14 years and you have never learned about LISP or Functional Programming? Either you're lieing about being in the industry for 14 years (which i doubt) or you just didn't pay attention in programming languages 101, and specialized in one language and never furthered your horizons.
- JQP123, on 10/25/2007, -1/+13.NET is a "managed", language independent, development framework and runtime environment for software. "Managed" means that a number of "value-added" services are provided to the application, such as memory management and error checking. It does not mean that code is "interpreted". The advantage is safety, security, and cross-language code sharing. The dis-advantage is a slight reduction in performance.
A shorter defintion, .NET is Java done right. It is a true "platform" with the ability to provide both hardware and language independence and is meant to supercede the operating system as the primary application programming interface. As an example of this, the Mono project offers a working implementation that runs on top of Linux.
Unless you're a developer, this probably doesn't mean much to you. - mrbandersnatch, on 10/24/2007, -0/+12My only experience with functional programming was with XSLT where I rapidly found that the functional concept of "no-side effects" would often make the difficult tasks easy but the easy tasks incredibly annoying. While this without doubt aids in parallelism (I was very excited by the idea of distributed transforms on complex documents) it did make XSLT often a chore to use when the tasks were mainly trivial.
Anyways, point being, while I will be looking with interest at F# for some tasks I doubt it would replace C#/VB.Net for most mainstream coding. - lilbitmoreslyk, on 11/03/2007, -2/+14I've always thought of it as like a giant code base/library that is used by many different programming languages (which are supported by it).
- malkir, on 11/03/2007, -0/+12You obviously have issues with reading comprehension then.
- yodaj007, on 10/30/2007, -1/+12This is interesting. I'm rather surprised by the difference in attitude between here and Slashdot. I don't think Error601 is trolling; the attitude he presents is commonplace on Slashdot. However, I don't think his comment is applicable in this case, especially since the F# language will quickly be supported by the Mono environment. This is just an instance of Microsoft trying to add extra value to the .NET platform. I think it's a long stretch that this is an effort to lock-in more developers to the Windows platform.
- ereg, on 10/25/2007, -3/+14Good move, especialy after the Fb program just scared and confused people
- JQP123, on 10/25/2007, -0/+11Not quite. It is actually a fairly well designed platform that allows a "big mess of languages" to work seamlessly together. If you want to see "design by committee", look at Java which is literally controlled by an "executive committee", no lie. And the results speak for themselves.
http://jcp.org/en/participation/committee - Error601, on 10/25/2007, -8/+18What? Do you know what functional programming is?
- darthtrevino, on 10/25/2007, -1/+9Functional Programming F#TW!!!
I loves me some functional programming, even my procedural code is written in a functional style. - offput, on 11/03/2007, -0/+8Just so you know, Ericsson stopped using Erlang in the 90's which is the whole reason it's available and open source now.
- eastshores, on 10/24/2007, -0/+8I was going to say that with new framework capabilities like LINQ, some of the requirements for utilizing parallel processes will be transparent to the developer, for instance LINQ's sorting algorithms will be aware of multi-processor systems and take advantage of that.
- jaypatrick, on 10/25/2007, -0/+8I read somewhere that XBox Live uses F# in lots of places: http://blogs.msdn.com/dsyme/archive/2006/11/22/thr ...
Bringing functional programming to the masses is a fantastic idea. My team has already started writing some prototype frameworks where the really low lever classes (which obviously need lots of concurrency and thus need messy threading code) are written in F#, with the higher level views/controllers written in C#. Given the inherent concurrency boost provided by functional languages, we've already seen A) much higher productivity and B) less threading errors. It's a good day to be a .Net developer. - inactive, on 10/25/2007, -1/+8It's one of the few good things that Microsoft ever did.
Especially if you're in the unfortunate situation of developing for a Microsoft-only platform. Not that it's bad, but there's just a lot of stuff I'd like to use (or learn to use) that I couldn't being enclosed in this single platform environment.
No longer gotta worry about crappy ASP, COM+, anything like that. - MCHampster, on 10/25/2007, -3/+10Wow, 2004 called. They want their comment back.
I can't believe I still see the whole "I don't really know what .NET is" comments. Seriously people, it's called reading. - sn1de, on 10/25/2007, -1/+8C is procedural, not functional. Functional programming is an entirely different bag. Go check out http://en.wikipedia.org/wiki/Functional_programmin ... and then come back to the discussion.
- yodaj007, on 10/25/2007, -0/+7I think the F in F# stands for Functional, not Fortran. Fortran is not a functional language, anyway.
- Jojotdfb, on 10/25/2007, -0/+7I've never had as many issues with Visual Studio being slow as I have had with Eclipse. Visual Studio is usualy snappy while Eclipse starts up and idles at 500 megs. How have you tuned your Eclipse install to speed it up?
- yodaj007, on 10/25/2007, -0/+7I've programmed in Scheme for years now and disagree with everything you said. Functional languages do not require mental gymnastics once you are used to them. They are not heavily biased toward math any more than procedural languages are. They are not formal logic. And finally, Microsoft is not forcing anything down our throats.
Stop trolling. - cmburns69, on 10/24/2007, -0/+7I think the point is that if it's intergrated with .NET, you can combine methods when necessary. If a certain task is better as a OO or procedural, don't use F#. It is IS better as functional, use F#, but don't limit yourself. (now THAT's a run-on sentence!)
- jejones, on 10/24/2007, -1/+7I can believe that it's been on their minds for some time; didn't Simon Peyton-Jones, author of an excellent Haskell textbook, go to work for Microsoft Research?
- mucnix, on 10/25/2007, -0/+6http://research.microsoft.com/fsharp/manual/quickt ...
Looks like its worth a look if you're a .NET guy - joe90210, on 10/30/2007, -4/+10you can't be serious..
another example of your monkey programmers being pumped out by the thousands - skywake, on 10/30/2007, -1/+7I wouldn't be surprised if this person said the same thing about the Procedural, OO and Logical paradigms also. "objects? WTF?, I think I'll stick with HTML" :P
- yodaj007, on 10/24/2007, -1/+7Agreed, though J# is more closely related to Java than C#.
- LargeTrout, on 10/24/2007, -1/+6And you're MY hero for explaining his explanation. Without both of these explanations I would still be scratching my crotch in abject confusion. Now I just need to find out what a functional programming language is...
- skywake, on 10/30/2007, -1/+6A code-monkey writes code in a programming language and is only as good as long as that language is used. A software developer writes software in the language that suits the application and can survive paradigm shifts. He isn't being a snob he is just being a realist, if you write "in a language" then you are basically screwed.
- Comatose51, on 11/03/2007, -1/+6I think you don't have much experience programming in general. Your statement that "Structural programming" is the heart of x86 is a load of BS because all languages get reduced to x86 instructions by compilers regardless.
The cliche statement about letting someone "touch the metal" is silly. Most C and C++ programmers don't "touch the metal". We don't mess with the registers nor do we specify any the memory location. Register allocation is a job left up to the compiler. The trend has been to save programmer cycles instead of CPU cycles. Optimizing for a specific piece of hardware is silly in most cases because it makes your code hard to maintain and not very portable. Most of the popular "interpreted" languages these days aren't interpreted in the same way BASIC was. They're first compiled in byte codes and then run. Doing that allows run-time profiling to happen and optimizations to happen based on the actual operation of the code as it is run. To compile them into native x86 instructions is trivial. You can do that with both C# and Python.
I could go on explaining how most functional languages are designed without side effects and thus can be parallelized in the fashion of map/reduce (one of the technologies behind Google) but I'm sure it will fly over your head. - lilbitmoreslyk, on 10/25/2007, -0/+5Functional programming has its place the reason i think most people like it is because it has a very logical sequence (functions in functions), in which the function calls can be evaluated and matched 1 to 1 i believe with their output. I think this makes it more determinisitic and more easily used in parallel computing.
- shortarabguy, on 10/24/2007, -2/+7Right, but hypothetically they're aiming for that. So why should they waste resources( human manpower) trying to make it compatible with everything else when they CLEARLY need to focus on making it more functional?
- lilbitmoreslyk, on 10/30/2007, -0/+5True, but you DO have a basic understanding of functional programming and LISP even if you haven't really coded in it. Just having that basic understanding and KNOWING IT EXISTS and the impact it had makes all the difference.
- offput, on 10/25/2007, -0/+5You keep using that word. I do not think it means what you think it means.
- natenovs, on 10/25/2007, -1/+6um AI benefits greatly from functional programming.
- fluxion, on 10/24/2007, -0/+5"touching the metal" to affect program execution is inherently non-functional in the sense that it's a side-effecting operation. There are hybrids however, Fortress is looking to replace C in the world of supercomputing and parallel computing (which will become very mainstream in the upcoming years). It's based on imperative design principals from Fortran, but syntactically similar to functional languages like ML and Haskell:
http://en.wikipedia.org/wiki/Fortress_(programming ... - natenovs, on 10/24/2007, -1/+6the .NET Virtual Machine runs Common Language Runtime assemblies. Basically, a .NET compiler takes C#, VB. C++, F#, IronPython, etc and compiles it to a CLR assembly. The assembly is run through a VM that works likes a Just In Time compiler, compiling tthe CLR isntructions to native instructions as needed.
in this case, they are just creating another language that will target the CLR. - Leadhyena, on 10/30/2007, -3/+8Ignore the comment about "cross platform compatibility"(I was also perplexed at that) and try to understand what he's saying. The Ars article mentions Nemerle (already implemented in .NET) and standard ML, but there's also Lisp and Erlang and Haskell. All of these are well-developed functional programming languages with solid roots. Applications already exist for these languages. Why reinvent the wheel? is a valid argument. Well, the key here is the MS in fact didn't reinvent the wheel, they are once again practicing E^3 (embrace, extend, extinguish). F# is essentially OCaml just rebranded, just like C# 1.0 was rebranded Java.
-
Show 51 - 100 of 194 discussions

What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official