back to article Microsoft stealth launches 'historic' programming language

Launching a new language is easy - getting it used is hard. The combination of existing code and existing skills is a strong barrier to adoption, and even excellent languages like Ruby and Python have struggled to break out of their niches. What hope is there for F#, the new language that Microsoft has sneaked into Visual …

COMMENTS

This topic is closed for new posts.
  1. amanfromMars 1 Silver badge

    Quantum Leaping into a Known Unknown, AI.

    I have a very specific question of F# ...... Is it a Turbulent Tempest Tangent ...... Envisaged and Provided for Beta Intelligent Development in Intelligence Deployments, which would really sock it to Search Engine Pretenders to Microsoft's Crown?

    The spooky thing with that question is, that now that it is asked, is it so.

  2. VS Dude
    FAIL

    "F#IL?"

    Once again, Microsoft misses the mark(eting) etiquette. Don't they know how people will instantly mock this new "F#" name? <shaking head>

    1. David 49

      Maybe it is aimed at grown-ups...

      ... you know, the type of people who do serious things for a living, like work in finance and scientific HPC space. The type of people who actually evaluate on substance rather than a passing resemblance to an already boring (and hopefully receding) web meme.

    2. LinkOfHyrule

      F#ail

      LOL = FAIL;

      Even though Microsoft are a a bunch of corporate evils, they do make me laugh when they try to do marketing. Should of called it G flat. Or maybe that's the name for some new google language?

      1. A J Stiles
        Coat

        Should HAVE

        Should HAVE, not should of.

        Anyway, the "G flat" name is taken for the GNU clone of F#.

    3. Fynbarr
      Thumb Down

      Mocking? Evidence, please.

      @ VS Dude

      Why will people mock F# because of its name? I've been keeping my eye on this new language for quite some time now and not once have seen any sign of people doing this. Got any hard evidence?

  3. Quxy
    Thumb Down

    Another language doomed to be stuck in Windows?

    So, with apologies to Gosling, F# is "sort of OCaml with reliability, productivity and security deleted"?

    But seriously, it's undoubtedly the case that some of the stuff coming out of Microsoft research is pretty good. That's a pity, as the rest of the computing community isn't going to pay a lot of attention to it until Microsoft stops slapping patent protection all over everything.

    1. Sean Timarco Baggaley
      Stop

      Patents are a civil problem.

      Microsoft—like any US-based corporation—are obliged to work within the US' legal framework. If that framework offers clear incentives for registering patents and defending them (which it does), then that's what's going to happen.

      Or do you seriously believe that *any* corporation enjoys paying vast armies of lawyers? They're not cheap, and they're more commonly a business *expense*, not a source of profits.

      YOU—the People—are entirely responsible for the laws your government creates. Including those built around patents, trademarks, copyrights and other forms of IP. Don't like it? Change the government to one which is more to your liking.

      And no, you don't get to whine about The System: either get *involved*, start your own party, or shut the f*ck up. If you're not willing to fight for it, why the hell should others fight on your behalf?

      As for F#: good on Microsoft. It's a good move on Microsoft's part. They're a dev-tools and dev-tech company first, and they're usually very good at it.

      What concerns me a little is Hejlsberg's assertion that he wants to add Functional elements to C#. One of the key advantages of .NET is that you can use multiple .NET-compatible languages in your projects, so you can choose the best one for each module. The worst thing you could do to C# is turn it into a jack of all trades—you'll end up with yet another C++.

      Keep it clean. Keep it simple. Keep it focused. Let F# do the functional stuff. As long as C# and F# code can co-exist in the same projects, there's no need to nail bits of the latter into the former. That way lies C++.

      1. I didn't do IT.
        Alert

        Re: Get involved

        "And no, you don't get to whine about The System: either get *involved*, start your own party, or shut the f*ck up. If you're not willing to fight for it, why the hell should others fight on your behalf?"

        Unfortunately, any "involvement" you participate in will be used by the people who *ACTUALLY MATTER* to either support their viewpoint or deride an opponent's.

        I agree with you: Unless you have the *MONEY* to play the game *NO ONE* will fight on your behalf. So, "shut the f*ck up", bend over and let "The System" have its way with you.

        Upshot: Its not a matter of being willing to fight for "it" - Its a matter of being able to *AFFORD* "it".

    2. Torben Mogensen

      Re: Another language doomed to be stuck in Windows?

      This is, indeed, a problem with .NET languages: They are all tied so strongly to the platform that they are of little or no interest outside this. In principle, this isn't much different from the JVM languages: Java, Scala, Clojure, JavaFX, etc., except that JVM is much more light-weight than .NET and, consequently, much more widespread.

      I use functional languages (SML and Haskell mostly) almost daily and see them as being much easier to use than imperative or OO languages (which is why I find it a shame that so many are trying to retrofit OO into functional languages). I find it positive that functional languages are becoming more common (F#, Scala, Clojure, etc.), but I would have liked to see strong adoption of a functional language that is not tied to a specific platform, in particular not to a platform that is inherently OO, so you are forced to use OO libraries, which is kludgy when you work in a functional language.

      1. Anonymous Coward
        Anonymous Coward

        Functional

        "I would have liked to see strong adoption of a functional language that is not tied to a specific platform"

        Like javascript, you mean?

        Hey, I'm just saying.

    3. Anonymous Coward
      Gates Horns

      RE: Another language doomed to be stuck in Windows?

      I wouldn't say "doomed", I'd say "designed".

      MS seem to think that if they make up their own languages then that will ensure developers stick with their platform. Where they're not making up their own languages, they're stealing other languages and adding MS cock-fuddery to ensure that learning the MS version will not prepare you for the real version.

      "F#" is just the latest of these, previously we've had J++ and C#. (to name just two). Their C++ left a lot to be desired as well. Try writing a command line program (ie the classic "Hello World" example). Can't be done. Nice one MS.

      I expect this new buffoonery will die on it's arse too.

  4. ratfox

    Conciseness

    Maybe it's me, but conciseness does not mean readability, or even fast development. E.g. Perl can be very concise too

  5. Marco van de Voort
    Thumb Down

    hours, not lines

    Sigh, when do the language advocatists realize that programs are measured in time (to create them, better include debugging too) and not in number of lines or their density?

    Harddisks are large nowadays.

  6. CT

    How do you pronounce it?

    Seriously. F sharp or F hash or something else

    1. Mister Cheese
      WTF?

      /Title

      F-pound ?

      1. A J Stiles
        Boffin

        It'd only be F£ if you were using an ancient British 7-bit terminal.

        Why *did* we use 35 for the £ sign anyway, and not the obvious 36 (the dollar sign)? (Except Acorn and Sinclair who used 96, and Commodore who used 92.)

  7. Will Godfrey Silver badge

    Hmmm

    Maybe I'm just getting cynical in my old age, but I smell another lock-in vector rather than anything 'New & Improved' (TM)

  8. Anonymous Coward
    Thumb Down

    Functional Programming

    ...is only in theory a good idea. In real programs, the functional approach performance of a single thread is much worse than the best possible imperative program (C/C++, Ada, Fortran, Pascal, ALGOL).

    If a single F# thread yields 1/10th the performance of a single C++ thread, it is difficult to argue in favour of F#. You would need 10 CPUs with F# just to match a single CPU running a C++ program.

    The reason for this inefficiency is tightly coupled with the advabtages of functional programming - the lack of memory modifications. Where you need a single variable in C you might need thousands of successive copies in F#. Your cache is being flushed by that and your memory might not fit the problem.

    My guess is that ALGOL-style languages adapted to multiprocessing will deliver the best performance. Currently, effective use of multiprocessors means C++, which certainly is far from perfect.

    The Sappeur language aims to provide a much more robust multithreading type system and general memory safety assurances without losing the efficiency of ALGOL-type languages:

    http://sappeur.googlecode.com

    (BSD licensed)

  9. amanfromMars 1 Silver badge

    Virtual Reality Solutions and Creation Department

    "The question: how to get that message through to Microsoft's marketing department?" ..... A new Functional Parallel Core Terrain Team with Championing Drivers will Deliver the Message and Mission Messages for Microsoft making the Marketing a Doddle for Supported Platforms.

    And that is a Head Honcho call and Foreign Innovative Business Model Purchase decision, defining a Head Honcho's Fitness for Future Greater Purpose?

  10. DanX
    Thumb Up

    For science!!! ?

    I spent along time learning how to use Fortran 77 in the 90's for battling with data and modelling and the like for my undergraduate degree in physics. I've no idea why we used such an old version of the software (I suspected 2 reasons money, and the fact that Fortran 77 was pretty good) We were also taught C++, but never really shown how to use it.

    May be this F# will break some ice in the world of science?

    If its easier to write fast code, then its got to be a good thing? I'm no longer in the science world, but its always intresting to find out whats going on.

  11. Anonymous Coward
    Anonymous Coward

    Hmm

    I like the slide demonstrating how code can be condensed in f# vs c# which is full of comments and other random formatting. Hell c# code is so 'code by numbers' nowadays it wouldn't take a lot of code to do the same, but thats not what they are trying to get across eh?

    I'm not saying f# is bad, hell, I like functional languages, just think that slide is slightly dishonest!

    1. DPWDC

      Comments and line breaks

      I thought the same thing, was going to post it but as you already did I'll jump on your band wagon.

      Anyone thats actually going to use the language would spot that straight away, that slide would only appeal to project managers.

  12. Anonymous Coward
    FAIL

    Anders Hejlsberg

    Anders Hejlsberg is a great man - Turbo Pascal and Delphi were ahead of the market at the time of their release.

    However, he invented J++, so his enthusiasm for F# migh be seen as a kiss of death. Windows only = Fail

  13. Daniel 1

    Sounds a highly jargon-compliant little niche

    Not that it is not a good idea (or that good ideas don't tend to spawn their own jargon); it's just that jargon-compliant technologies, at Microsoft, tend to either languish in obscurity (because the rest of the company haven't a clue what to do with them, or what the problem they are designed to address even looks like, and therefore suspects them of being a conspiracy), or they aquire geek-trophy-bride status, and become smothered in layers of mediocrity, as the managers of failing projects rush to learn the new jargon, without ever understanding what any of it means.

    'Failing Project' arises reborn as 'Failing Project#': fully jargon-enabled, within the new paradigm.

    If the marketing department ever gets hold of it, all that will result, is that it will be further buried in endless guideline documents, spelling out exactly whether (and in which context) it is permissible to writhe the 'F' in lowercase, and what proximity, the '#' should be written, relative to '.NET'.

    Any real merit will then have become obscured beneath rotting heaps of bogocity, and real technologists will disregard the new clothes without a second glance. The people already doing that sort of work, just carry on using the tools they have, and F# ends up joining 'COBOL .NET' in the back of the cupboard.

  14. John Smith 19 Gold badge
    Go

    Sounds impressive.

    But

    It will only run on Windows

    It will presumably use the Windows common language runtime (or whatever its called) so its performance and parellizing ability will be closely linked to how well that handles these issues.

    If this thing's core target market is finance its mathematical functions had better be rock solid or will they be more in line with Excel EG 1 divided by 3 =?

    When you have developed your latest financial derivative instrument model how will it scale up? Is windows Server good enough to hack high performance computing?

    Personally I foresee a nice little market developing for people with this language and financial modeling experience once some banks have dug themselves in deep to using it and realize they have been locked into MS yet again.

    1. pan2008

      Windows Vs Unix

      I used Unix for 6 years before jumping to Windows platform and never looked back. Except for now when I am forced to use Unix again. What a pain in the ar*e. Going back to vi was like some bad dream. Unix was developed in the 70's and whatever you say you can't change that. I can't talk scientifically about the performance of the Windows Server vs Unix but I never had problems with Windows servers, and the tools you get the monitor performance are amazing. In fact it was our rubbish solaris that got corrupted recently. If you are talking about Finance and real systems, check which system in the TPC.ORG

      http://www.tpc.org/tpce/default.asp

      holds the record for the fastest Order management system (a typical Finance system). it's SQL Server running windows . Don't forget what the LSE is using, SQL Server and .NET. And if you tell me that it failed once so what. I'll take that any time, 1 failure in 5 years.

      1. Darrgh
        FAIL

        Bad example

        Really, really bad example, since the LSE are now switching away from Windows and TradElect, not only because of the serious stability issues, but also since it never came close to achieving the required performance.

        1. pan2008

          bad example

          I didn't know that, however looking into the deal it makes more business sense that technical sense when they can buy some cheap sri Lankan company and therefore own the platform and everything all for 15million. The original deal was an outsource deal, outsourcing doesn't always work well, as you have 2 competing parties. They want to go down to 0.4ms from 2.5ms presently, good luck to them.

          The point I tried to make was that Windows can run LSE and has done so for the past few years, not many people know that. (even on SQL Server 2000!) The big failure in 2008 was never been blamed on the system officially (not that I am rulling it out) but also happened under extraordinary circumstances with the lehmans collapse etc. Also as with anything and we know cause we many people here are technical, a good implementation or a bad implementation doesn't the platform is a success of failure. On the LSE the implementation was a success cause it made the system much more powerful than it used to be and it works well.

          As for the tpc-e why other companies don't take it? Maybe cause they can't beat it yet. TPC-C is not in the main page anymore http://www.tpc.org/, cause it's easy to cheat on it, read the oracle story on the net. It will probably become obselete soon. That's why they bring more up to date tests like the tpc-e. Still it doesn't mean much, what is means is that windows servers and OS like SQL Server are at the top of the field.

      2. Anonymous Coward
        Anonymous Coward

        Ha

        It's amusing how you cherry pick your "facts".

      3. Anonymous Coward
        Anonymous Coward

        Re: Windows Vs Unix

        Not sure where that suddenly came from. The discussion was about lock-in with F# then you sudden launch into an attack on how rubbish Unix was and the corruption on Solaris. If you're going to condemn Solaris can you be specific. Sounds like a WUM ( or a M$ employee ) to me !

        One failure in 5 years? Errrrmmmm, I can think of at least two that made the press.

        Also the LSE is moving off their Windows implementation..........................

      4. Kevin Bailey

        This is someone having a laugh surely...

        I was thinking it was the usual Floundering Amateur conning his employers - but the bit about the LSE points to it being a troll. LSE didn't just fail once.

        From Wikipedia:

        'For Microsoft, LSE was a good combination of a highly visible exchange and yet a relatively modest IT problem[14]. After suffering extended downtime[15][16] and unreliability the LSE announced in 2009 that it was planning to dump Microsoft and switch to Linux in 2010'

      5. Steve Todd
        FAIL

        Unix is somewhat off topic

        but I've no idea what pan2008 has been smoking. TPC-C top ten? All Unix or Linux running Oracle or DB2 databases. TPC-H top ten? When it comes to databases of decent sizes (>= 1000GB) Windows/SQL Server can't manage better than 9th place (and comes nowhere at >= 3000GB). The only reason that they top the TPC-E benchmarks is that no-one has bothered submitting results using the big iron (it's not a really heavyweight benchmark test so why should they). The really heavy duty stuff in finance is built upon Unix/Oracle/DB2 as Windows/SQL Server just doesn't have the performance and fault tolerance that is required.

        Unix does not have to be a command-line driven throwback. Apple OS X is a Unix derivative, and people don't talk about that being free of eye candy and user hostile. There are likewise some pretty decent GUI shells on Linux and Solaris. The big iron tends to assume that you're employing people who know what they're doing to manage them (having spent multiple millions are you REALY going to skimp on staff wages). Think about the intended audience before complaining about an OS.

  15. heyrick Silver badge

    F-hash (or F-sharp if you prefer)?!?!?

    It's a frigging language, not a musical note.

    Maybe, just maybe, we ought to go back to giving languages actual names instead of seemingly random letters followed by punctuation that is supposed to enhance the cool-factor.

    I, for one, await the launch of the O$#!+ programming language. :-) But until then, I remember Cobal, Fortran, BASIC, Ada, and everything else that at least had a real name.

    1. OffBeatMammal

      names

      I kinda agree... C++, C# and the like are a pain to say and use in a sentence.

      funnily though in the example only Ada was a real name (and that was just in historical deference) - the others were acroymns (COmmon Business Oriented Language, Beginner's All-purpose Symbolic Instruction Code, FORmula TRANslation etc)

      frankly though it's all been downhill since VB4

  16. Anonymous Coward
    Anonymous Coward

    Natural behaviour...

    Microsoft has little to gain by pushing F# actively. That can be left to the functional programming enthusiasts, who are relatively few in number but very keen indeed. Education, too, can be left to the authors of books and online tutorials. By including F# in Visual Studio, Microsoft is seeking to avoid negative consequences rather than expecting any particular positive results.

    1. Charles Manning

      Can't leave it to them

      You can't leave it to the functional programming people. Most of them are so seriously lacking in social skills they can barely speak, let alone convince people of the benefits of a language.

      These odd-ball languages tend to end up being used by odd-ball people. Most love the idea that their language is close to impossible to use. For a flavour of what I mean, go look at comp.lang.apl.

  17. Anonymous Coward
    Anonymous Coward

    F#

    MS-Fortran?

  18. Anonymous Coward
    Thumb Down

    @For science

    Fortran will for all practical purposes be a better high-performance language than F#, Scala or any other functional or managed language. Only if your processing jobs are trivial you will use something else than Fortran, C++, Pascal or Ada. Fortran compilers can optimize scientific "number crunching" codes significantly and it is the best way to use current hardware.

    This is amazing, taking into account that FORTRAN is one of the very first languages. So much to the progess in this field.

  19. Anonymous Coward
    Stop

    Sounds exactly the same as Erlang

    ... except Erlang has been around for years, is solid as a rock, multi-platform and completely free.

    However I expect F# will give you a GUI environment where you can write "code" by dragging and dropping icons.

  20. Colin Barfoot
    Happy

    Death to OO!

    On arxiv, at my last look, there were two articles on software maintenance. Most of the issues in software development revolve around understanding what other people have written. I also see that F# uses the same anal whitespace scheme as Haskell. Could not the researchers have addressed these instead of beguiling themselves with its terseness? Somewhat ironically Haskell was a classic software failure: not meeting requirements. Shouldn't Dr Jones avoid making the same mistake twice?

    Declarative and procedural languages do not mix. I've been to two interviews where people were trying to get rid of Boost because it produced unmaintainable code. Don't do it! Personally, I find it difficult to switch "modes".

    Having said all that I welcome any functional language. Anything's better than iffy rubric of OO.

  21. Anonymous Coward
    Joke

    Small mercies

    At least they'll have to stop at G#, there being no H note on a piano.

    1. Anonymous Coward
      Anonymous Coward

      @Small mercies

      Unless, of course, you are a German speaker where B is what, in the English speaking world is referred to as B flat and H is B. Caused me no end of trouble when I first jammed with German musicians!

  22. olli

    twenty years ago...

    ...the functional language Erlang started to be used for industrial strength programming.

    But a GUI toolkit is probably a good idea.

  23. amuzed
    Welcome

    Lordy. This place makes slashdot look clever.

    So many dumb comments...

  24. Sentient
    Pint

    It's not only marketing

    It's also hard for most developers who are used to OO. Also it's not as if most developers are bored, doing nothing, waiting for a new language.

    So what I guess will happen is that some devs play with it during free time write some .NET assemblies and incorporate those in bigger programs.

    Programming languages should not be pushed by marketing, they need to be adopted by developers.

  25. Brian Miller

    F# not a silver bullet

    A few years ago I worked with a fellow who is a language guru (he is the technical advisor for a book on Haskell). He showed me Haskell, and I showed him JSP (Jackson Structured Programming) methodology. I commented, "It looks like someone took JSP and made a language out of it." After a while of perusing JSP, he told me, "Brian, I think you're right!"

    I don't have any confidence in modern education to produce graduates who can function as actual computer programmers or software engineers. Proven techniques are not taught, and "new" languages must be introduced which *force* the programmer to use good techniques and concepts. If the programmer is taught a range of language-independent techniques, then we don't have to resort to goofy languages to implement a good solution.

  26. Anonymous Coward
    Anonymous Coward

    Sliding...

    Is there somewhere we can get a legible version of the slide?

  27. BlueGreen

    @various

    first and foremost @Sean Timarco Baggaley: "And no, you don't get to whine about The System: either get *involved*, start your own party, or shut the f*ck up. If you're not willing to fight for it, why the hell should others fight on your behalf?"

    Well said!

    @Torben Mogensen: "This is, indeed, a problem with .NET languages: They are all tied so strongly to the platform that they are of little or no interest outside this" & "...strong adoption of a functional language that is not tied to a specific platform"

    IME the biggest gains is the paradigm. You need the language to support them but the underlying ideas are where the real value lies. Once you've 'got' FP, there are plenty more you can get unlinked to windows.

    @ratfox: you're right, I've seen some horrible abuses of FP, but there is an underlying smoothness too.

    @Marco van de Voort: you can (if you're capable) wrap up more functionality with functional stuff so simplifying conceptually and reducing lines - both reduce bugs and speed development. This is from experience.

    @jlocke: FPs are *models* of computation; you specify what but that doesn't mean they have to do it that way - "The reason for this inefficiency is tightly coupled with the advabtages of functional programming - the lack of memory modifications" - Modifications are certainly permitted in the implementation if they do not modify the semantics of your program. MODEL != IMPLEMENTATION, always. Performance still is an issue though, I grant (IME).

    @Colin Barfoot: "Somewhat ironically Haskell was a classic software failure: not meeting requirements." - eh? what requirements were these? AFAIK it was an experimental lang for trying stuff out. As such it seems to have succeeded beautifully.

    Further: "Declarative and procedural languages do not mix" - if by declarative you mean functional then that's rubbish. I've mixed them easily and confortably (when the facilities are supported by the language) and can switch back and forth easily - and I'm no FP expert.

    FWIW my main 'functional' language has been javascript recently. I can build all the necessary stuff out of it easily and while performance sucks that's not a problem for me because it's used as glue.

    I'm *no* FP expert but I do like it and would get excited. But it's MS, a platform I've found I want to abandon.

  28. Anonymous Coward
    WTF?

    New language?

    The first book on this language was released in May 2007 by apress - that's almost 3 years ago. Microsoft themselves had talks on F# at TechEd later that same year. I suppose in programming language terms that could be considered new, but in general terms?

    As to the "it only runs on Windows" crowd, did Mono just vanish? You can run F# applications on Mac and Linux happily under Mono.

    1. Anonymous Coward
      FAIL

      Mono? Seriously?

      You must be joking.

      Go and write an application using .net then try to sell it to Unix/Linux/Mac users. Just don't cry when they pick a competing application written in faster, platform independent code which runs natively on their systems instead.

      Mono, heh.

  29. Nat Pryce

    Wonderful

    The fact that a language descended from ML is a supported part of VS is great news. Yes, ML code is succint compared to C#, but it is that way because the language doesn't require you to write loads of unnecessary guff to help the compiler writer, you just concentrate on what you want done.

  30. Yet Another Anonymous coward Silver badge

    @Functional Programming

    CPU is cheap, coders are expensive - especially in the complex data/maths field.

    Writing an mpeg decoder to be embedded in a DVD player is probably not going to use F#, neither is an N-body simulation of a galaxy collision.

    As the business logic layer as a way of coding the rules for which financial instruments we can sell to US resident from an offshore trust in the last quarter of a tax year - then this is a better solution than C++ or SQL.

    1. Anonymous Coward
      Anonymous Coward

      Better than SQL?

      "As the business logic layer as a way of coding the rules for which financial instruments we can sell to US resident from an offshore trust in the last quarter of a tax year - then this is a better solution than C++ or SQL."

      Or Cobol, which is previous financial language. Somehow I don't see this ever replacing Cobol.

      You could also argue that it's definetely worse than SQL because in it, that kind of operation is just one statement as by default SQL operates on set of variables. F# isn't.

  31. No Use for A Name

    well there is also mythryl

    ...for the linux uber-nerd crew suffering the functional itch and wanting to be part of a new and emerging parole stemming from the ml/ocaml branch: http://mythryl.org/

  32. Dave Ashe
    WTF?

    Have you seen any F# code?

    Looks like a cross between COBOL and BASIC.

    (from wikipedia):

    * Async workflows sample (parallel CPU and I/O tasks) *)

    (* A very naive prime number detector *)

    let isPrime (n:int) =

    let bound = int (System.Math.Sqrt(float n))

    seq {2 .. bound} |> Seq.exists (fun x -> n % x = 0) |> not

    (* We are using async workflows *)

    let primeAsync n =

    async { return (n, isPrime n) }

    (* Return primes between m and n using multiple threads *)

    let primes m n =

    seq {m .. n}

    |> Seq.map primeAsync

    |> Async.Parallel

    |> Async.RunSynchronously

    |> Array.filter snd

    |> Array.map fst

    (* Run a test *)

    primes 1000000 1002000

    |> Array.iter (printfn "%d")

  33. amanfromMars 1 Silver badge

    Seek and ye shall Find, Ask and IT shall Answer.

    "Is there somewhere we can get a legible version of the slide?" ..... TheJonB Posted Monday 19th April 2010 15:31 GMT

    You can catch the whole show here, TheJonB ........ http://www.slideshare.net/lgayowski/taking-functional-programming-into-the-mainstream-eclipse-summit-europe-2009

  34. Tom 7

    An historic language!

    Give it a couple of weeks before you call it history - some of its features are still used by the cognoscenti - but not the lock-in.

  35. Robert Carnegie Silver badge

    Part of history. Right.

    Like when we belatedly upgraded to SQL Server 2005, and found that SQL Server Management Studio brought us "project" and "solution" management features. So of course you look online to find the latest news about how to use these features, and the answer: don't. Because next version after the one you're looking at, there they are, gone. Or at least, going.

    Part of history.

  36. Joseph Haig
    Gates Horns

    F#?

    F# is a fourth higher than C#, so perhaps this is Microsoft's version of Forth.

    Alternatively, F# is an augmented fourth higher than C, an interval sometimes called the devil in music, so perhaps this is an subtle hint regarding Microsoft's plans for a new version of C.

    The image seems appropriate.

  37. Anonymous Coward
    Anonymous Coward

    @YAAC

    "CPU is cheap, coders are expensive - especially in the complex data/maths field."

    I could list you a ton of applications that do complex math, including finance and need FORTRAN or C/C++ because CPU throughput matters.

    If F# or C++ makes a difference 100000 CPUs versus 1000 CPUs, the decision is simple. This kind of problems do exist in many fields like quant finance, engineering simulation, physcis, chemistry, intelligence (think NSA, GCHQ, BND, DSD etc).

    Or think of this: Either you need 2 CPUs to process a RADAR data stream of 200 Mbit/s or use 200 CPUs to do that. The latter option means that you missile will weigh 4000kg instead of 300 kg. And will be pretty useless because you can only mount it on a tank, but not on a fighter plane.

    C/C++, Delphi. Ada and FORTRAN are alive and kicking. They will do so in 50 years time, I am sure.

    1. sT0rNG b4R3 duRiD

      agree mostly

      "I could list you a ton of applications that do complex math, including finance and need FORTRAN or C/C++ because CPU throughput matters."

      c or some derivative of it or simile of it, I can imagine will always exist, so long as CPU's remain somewhat similar to what they are now (ie have a machine code and hence and an assembly language, and an architecture that encourages this family of languages). I guess there are other possible architecture schemes, like the inmos transputer etc... but well, unfortunately they did not catch on too well at the time. Who knows...

      But I kind of think imagining delphi will survive 50 years is stretching it. :)

      F# ... Will be interesting to see. I don't know much about ocaml, but it'll be interesting to mess with this in VS, when I have the time. Looks like a lot more fun than that java/C# thing anyways.

  38. Anonymous Coward
    Thumb Down

    As doomed as other MS-proprietary languages

    "That said, it deserves more attention because of its suitability for the concurrent programming that has become necessary in order to take advantage of today's multi-core systems."

    Microsoft marketing droid talking, isn't it. Bullshit-detector is blinking furiously anyway.

    F# has only one purpose in this world: To keep people from ever learning anything outside Microsoft world: Vendor lock-in. This so called programming language will never be seen outside of current MS-systems and if it doesn't sell well, it will vanish in Next Version(TM).

    What's the point of using a lot of effort to learn something which can't be used for anything?

    Like C#, doomed from the birth.

    1. pan2008

      C# doomed?

      What are you talking about? Have you ever searched any job's website for C#? You will see .net figuring at the top of the most desirable skills, just give it a try or even better learn C# you may land a job.

      1. Kevin Bailey

        I wouldn't bet the farm on .NET

        If you're on a website and it seems really slow or fails to respond look in the address bar and you'll generally see the address ending in .aspx.

        (This might be harder to spot in future if .NET programmers start using the bolted on MVC stuff).

        As I'm looking around the there are plenty of sites which fail me because they are too slow which is because they are using .NET. For example, Friends Reunited switched to .NET - and is now dying slowly. I tried to buy something on a .NET e-commerce site the other day - and it timed out during the purchase - so I bought elsewhere.

        It'll be slow - but I predict .NET will not be around in ten years time.

        1. pan2008

          aspx??

          Perhaps you should check why ryanair switched to asp.net or easjet the same? Or should I mention national express too? Have you noticed that the most sophisticated consumer websites use it? Take marketsupermarket.com many of the insurance companies and the lot. Take trustnet.co.uk another excellent example. Or myspace.com? A bad implemenation can cause many issues, it doesn't mean the technology is wrong. Java is slow fact!!

          1. Kevin Bailey

            Please don't post rubbish

            Ryanair.com - Linux/PHP I'm afraid.

            http://toolbar.netcraft.com/site_report?url=http://www.ryanair.com

            Easyjet is on ASP - which is not .NET

            Myspace uses Linux/Akamai to handle the load - as does Microsoft's own website. And it looks like the site uses Cold Fusion as well as .NET

            http://uptime.netcraft.com/up/graph?site=www.myspace.com

            Trustnet? Who?

            As for Moneysupermarket.com - only one section out of about 10 on moneysupermarket.com uses .NET - the utilities section.

            Please, please please - go to college and learn about IT before posting and wasting our time having to correct your wild unresearched guesses.

            1. Anonymous Coward
              FAIL

              Ditto @Please don't post rubbish

              In the first guys defence.

              RyanAir - try booking a ticket (you know the part thats not just a plain old HTML page)

              http://www.bookryanair.com/SkySales/FRSelect.aspx

              Makes perfect sense to have a mixture - cheap linux hosting for the basic front page - .Net for the more interesting to code parts.

              Not even gunna bother with the rest of the links. Your argument falls at the 1st hurdle. I guess you dont actually work in business, so either you're a student, or work in education. As the rest of the guys and gals have mentioned - try looking for a job, .Net is not a rare skill to have, or the jobs would be paying alot more.

              1. Kevin Bailey

                Ha ha ha

                Didn't bother with the rest of the links my arse! You DID try them and saw I was right. How desparate are you? Sorry to point out the obvious - but readers only have to check for themselves to see who's right.

                So out of the list - only Ryanair use *some* .NET - and it's only used for one small part of their site cos I can only see the booking system using .NET - not the villa, hostels car hire etc etc etc

                And they use Linux to handle the front page/heavy load. Makes sense as that's what Microsoft do as well.

                Hardly a ringing endorsement for .NET.

                Thanks for helping to prove my point about how .NET is not the best idea for professional websites.

                Me, a student - I wish! My time doing IT at college finished fifteen years ago - and I've been working as a programmer ever since. In fact, I had to spend ten months once working with .NET. I won't even bother going into the enormous problems with portability.

      2. Anonymous Coward
        FAIL

        Huh?

        Of course you'll see lots of job openings for those with C# experience, the considerably larger number of C++ jobs are filled quickly but those few outfits clueless enough to hinge everything on C# struggle to find competent and experienced programmers, therefore the advertisements remain up for longer.

        If you want a job without too much competition then learn C#, if you want a much greater choice of jobs then stick with C++.

      3. Alan Bourke
        WTF?

        C# doomed then is it.

        Anyone who says C# is doomed really needs to take a look at the jobs marketplace.

  39. Anonymous Coward
    FAIL

    Voting is irrelevant nowadays

    "YOU—the People—are entirely responsible for the laws your government creates. "

    Bullshit. Every government has always more ears to those who bought the power for them than voters. And voting won't change that at all.

    Do _you_ see significant difference in amount of corruption in labour or tories?

    I don't, they are like two boots, you can't tell which is more corrupted.

    1. steve 44
      Coat

      Evil boot twin

      "they are like two boots, you can't tell which is more corrupted"

      I can tell which one of my boots is more corrupt, it's the one with the goaty beard.

  40. Mikel
    Pint

    Did we need another programming language?

    Succinct? APL. Durable? C. Fast? Assembler. Efficient? Get a better programmer.

    Once upon a time I collected programming language proficiencies like my children now collect Pokemon. I was proficient in over forty before I lost interest. Snobol app with functions in C, Pascal and Assembly? Sure, been there, done that. The lessons I learned? Over 90% of the operations occur in the libraries. The programming language is just a convenient grammar for accessing the libraries. 90% of the performance lies in selecting the correct algorithm and applying it correctly. Poor programmers find the correct algorithm sometimes accidently, but the incidence is rare. 90% of the longevity involves "absurd limit theory". 90% of security involves checking your inputs. I learned some stuff about hardware problems too: 90% of the time it's the cables.

    I taught programming for a while. It turns out you can't teach creativity and curiosity. Either you have them or you don't.

    A bad programmer is as likely to produce good code as a poor photographer is to produce a good photo. These things happen by accident, but new powerful tools allow an amature photographer to take many hundreds of of photos, some few of which may be worth looking at. If you need good efficient code the first time and every time, you need good people to write it. The thing is, you're not going to spend a lot of time debugging a photo.

    A good programmer starts with a basic understanding of Turing, of Wirth, and the other giants found in the pre-1978 communications of the ACM. He's one with the hardware - exploring the intricacies of its nature and exploring its limits through Assembly and machine code - but he's not mature until he accepts that it's a machine and the underlying machine will change with time. He doesn't do it because he sees some profit in it, but because he's CURIOUS. He sees the development of programming languages in a grand arc, from the partly mechanical machines of yesteryear to subjective interpreters of tomorrow. He knows that every extra step - every data structure that doesn't scale - every unchecked input is his ticket to a forgotten history. He's as passionate about perfection in his mythical creations as any great author.

    All great young programmers can be difficult to deal with because they have control issues. Their creations must obey them. This is perhaps the source of their social problems: the machines become interesting because they can be made to do what you want if you command them properly. As a young programmer gains proficiency, he loses humanity until social skills become a debugging task that's NP hard. This can be worked around by associating him with the right geek girl. At least that's what worked for me.

    Oh, and you user interface geeks that eat up 70% of the development budget? You're creatives. You don't count. Your work will be forgotten in the next version.

    One last other thing I figured out: there are some primitive basics. The first thing I always look at when considering a new language: what are the libraries written in? What of the OS? The compiler, does it compile itself from code written in that language, and will it compile itself to a new hardware platform with appropriate assistance? Can it be cross-compiled to create an operating system for a new and different machine? Answer these questions and you'll know whether the language designers were serious about creating something real, or if their goal is a script accellerator. You'll be about where Kernighan an Ritchie were in 1978.

    So... this new F# language? Not interested. When it's compiled with a compiler written in it that runs on an OS written in it and can cross-compile that to a new platform that will boot that OS, load that compiler and compile the necessary apps, maybe then.

    1. pootle
      Gates Halo

      Woooo Meta Geek alert!

      (takes one to know one)

    2. Pirate Dave Silver badge
      Pirate

      Holy shit

      That was entirely well said, Mikel. Bravo. Thanks for putting into words what a lot of us old-timer programmers feel.

      Only thing I'd add is to point to VisualBASIC 3 and say "That's where it went wrong." VB3 allowed the Business School grads to think they were programming when all they were really doing was gluing other people's VBXes together and drawing pretty pictures. (but then, I guess something similar could also be said about DBAs). And "programming", at least in the popular Microsoft universe, has been mostly downhill since then.

  41. raving angry loony
    Gates Horns

    Meh

    Meh. Yet another tool in Microsofts lock-in toolkit. Another tool that, if it gets used, locks people into Microsoft's platform permanently, with no hope of ever being able to do any cross-platform or platform independent work. Another tool that helps Microsoft's continuing "any means is OK" monopoly campaign, whether those means are illegal, unethical, or just downright sleazy. Another tool that makes programmers into an extension of Microsoft marketing.

    So fuck you Microsoft, hope you choke on it.

  42. Anonymous Coward
    Go

    @sT0rNG b4R3 duRiD , DELPHI

    There is now the Lazarus Clone around:

    http://en.wikipedia.org/wiki/Lazarus_(software)

    And even if Embarcadero, OtherStrangeNamedCorp or whoever owns Delphi in 50 years will be gone, I am sure Lazarus or its successor will be around.

    It really is a very good piece of software - not as perfect as Delphi but still very good. And the PASCAL language is much better than the Bell Labs hairballs C and C++. Also it has a proper name remembering the french mathematician Blaise Pascal.

  43. Yet Another Anonymous coward Silver badge

    @jlocke

    That's why i said it wouldn't be used for NBody simulations - even C# isn't going to replace Fortran or C++ for this.

    I was responding to the why "function programming" question - it lets you write complex rules simply. In fact LISP is used in radar system, you don't use it for the solution to the phase unwrapping in multi beam or phased-array - but you do use it for the "business rules" in modern tracking systems.

    eg. If targets flight plan looks like a commercial airliner, and we are near a commercial airline route and it hasn't made any turns with the dynamics of a fighter then it's probably an Iranian Airbus not an F15 so don't shoot it down - all these are much easier to code (and change) in a functional language than in C/assembler.

  44. disgruntled yank

    "He's one with the hardware"

    Or, as Dogbert, says, he has achieved Nerdvana.

  45. Anonymous Coward
    Joke

    F#...

    ...or G-flat?

  46. mr_greedy

    Wooo

    Mikel, are you my favourite Computer Science lecturer from uni?

    :)

  47. Bill_Gates_NOT!
    Pirate

    R.Warwick

    If that's the grading system then I can't say it's doing too well. Good luck you need it.

This topic is closed for new posts.

Other stories you might like