Slashdot Mirror


Inside Microsoft's New F# Language

robyn217 writes "There's a new language being formed in the bowels of Microsoft. Recently I got word that the language F# (pronounced F Sharp) is nearing workable stages at Microsoft Research. So, I went in for a look-see. What I found was an interesting blend of imperative (Java, C#) and functional languages(it's ML-based, too!). It looks pretty enticing to me from a computer science perspective, but I'm not sure it would fly in the professional market. I can see the ease of development that a language loosely based on ML would bring, but I can't see coders switching over in droves since it's a tough learning curve." Our previous story on F#.

606 comments

  1. That's how I feel about most Microsoft languages by The+Lord+of+Chaos · · Score: 5, Funny

    F#ing Visual C++
    F#ing VB.
    F#ing Win32 API

  2. It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 4, Informative

    It's OCaml for the .NET CLR. Not a new language. Nothing to see here. Move along.

    1. Re:It's OCaml for the .NET CLR... by Zeinfeld · · Score: 3, Insightful
      It's OCaml for the .NET CLR. Not a new language. Nothing to see here. Move along.

      Yes, but the problem with most ML implementations is that they are academic toy languages. You can't do anything useful with them because you can't connect them to real I/O and if you can you can't distribute the code as noone else has the environment.

      Adding the dotNET classes to ML means you have a real programming environment for a functional language.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    2. Re:It's OCaml for the .NET CLR... by Junks+Jerzey · · Score: 3, Informative

      Yes, but the problem with most ML implementations is that they are academic toy languages. You can't do anything useful with them because you can't connect them to real I/O

      In all honesty, what are you talking about? You can pick up OCaml right now and I/O is just fine. Period.

      if you can you can't distribute the code as noone else has the environment

      So everyone has to use C forever and ever?

    3. Re:It's OCaml for the .NET CLR... by arkanes · · Score: 5, Insightful
      There's a signifigant inertia to overcome with the acceptance of any new language. One of the barriers is the creation of a useful runtime, porting that runtime to common platforms, keeping it supported, etc. There's a whole bunch of languages out there, but probably 90% of applications are written in less than a dozen of them (Java, VB, C, C++, Delphi... am I missing anything else major?).

      One way to overcome that inertia is to provide bindings for your niche language against a major runtime - like compiling it to Java bytecode, or, in this case, IL.

      Now, .NET has it's own inertia to overcome, but because it's Microsofts baby, it has alot of advantages that the language/runtime that Joe Programmer makes doesn't have.

      This is interesting for a couple other reasons - it's been reported before that it should be easy to port functional languages to .NET - and that it's apparently hard to have them compile to Java (I don't know crap about functional languages, I'm just parroting here), so here's the proof of that. Also, like it or not, .NET is very big and is being very heavily pushed by the single most influential company in IT - and if you're a fan of functional languages, I don't see how this is a loss for you or why you're bitter about it.

    4. Re:It's OCaml for the .NET CLR... by Zeinfeld · · Score: 2, Informative
      In all honesty, what are you talking about? You can pick up OCaml right now and I/O is just fine. Period.

      Yeah, yeah and you could write programs in ANSI Pascal, problem was you could not do it without a lot of hassle.

      Under dotNET there are no second class languages (well apart from C++), they all can access the same runtime. That is a major advance. OK you could write to the Java bytecode but anything other than Java will always be a second class language in that environment.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    5. Re:It's OCaml for the .NET CLR... by esarjeant · · Score: 2, Interesting

      Check out the TIOBE Programming Community Index -- the current language frontrunner is Java, although the combination of C/C++ would be considered dominant.

      Your 90% list is probably more like Java, C/C++, Perl and VB...

      --

      Eric Sarjeant
      eric[@]sarjeant.com

    6. Re:It's OCaml for the .NET CLR... by Lozzer · · Score: 1

      (Java, VB, C, C++, Delphi... am I missing anything else major?).

      COBOL, FORTRAN

      --
      Special Relativity: The person in the other queue thinks yours is moving faster.
    7. Re:It's OCaml for the .NET CLR... by be-fan · · Score: 1

      Huh? I'm new to the world of functional programming, but you're info is pretty wrong. Ocaml has a very extensive set of libraries to do all sorts of stuff --- XML parsing, networking, you name it. Lisp also has a very significant set of libraries. Ocaml, Clean, Haskell, and Lisp all have native code compilers, so all you have to distribute is the libraries, which you'd probably have to do anyway.

      --
      A deep unwavering belief is a sure sign you're missing something...
    8. Re:It's OCaml for the .NET CLR... by Bish.dk · · Score: 1

      Yes, but the problem with most ML implementations is that they are academic toy languages. You can't do anything useful with them because you can't connect them to real I/O and if you can you can't distribute the code as noone else has the environment.

      Not completely correct. You might want to take a look at SMLserver.

    9. Re:It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 0

      >>that it's apparently hard to have them compile >>to Java That's bullshit. Look at http://jscheme.sourceforge.net/jscheme/mainwebpage .html

    10. Re:It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 0

      You can't do anything useful with them because you can't connect them to real I/O


      Not true. Any one of Prolog, SML, Lisp, etc. have such functions. These functions are usually called for their side effects, sure, but they do exist.
    11. Re:It's OCaml for the .NET CLR... by LiquidCoooled · · Score: 1

      but your uses will need to download a 30mbish runtime to work with it, I know a lot of people are on broadband now, but theres a huuuuuge quantity who would run at the first sign of a long delay.

      At least with a pascal executable (IIRC) you can just drop the executable in and under most normal circumstances thats the installation, no runtime, no dependencies.

      I agree though in one respect, because once the .Net CLR hits critical mass, it will be a dream.

      --
      liqbase :: faster than paper
    12. Re:It's OCaml for the .NET CLR... by bratmobile · · Score: 2, Informative

      C++ is not a second-class citizen under .Net. In fact, Managed C++ is one of the best-supported languages. Managed C++ can be used to generate, or access, nearly every aspect of the Common Language Infrastructure / Common Type System.

      It is, arguably, the most expressive language in .Net, because it can generate/access all managed language features, as well as still having full support for all unmanaged features -- normal C++ classes (malloc/free/new/delete semantics), templates, etc. Managed C++ is designed to be the ultimate bridge language, between the existing world of unmanaged C/C++ and managed .Net classes.

      Now, in some ways, that's not necessarily a good thing. C# restricts you from doing some stupid things, or at least you must knowingly enable unsafe operations (using the /UNSAFE command line argument, and then you STILL have to use the "unsafe" keyword in source code). But, still, Managed C++ gives you an amazing degree of interoperability with both worlds, and it's seamless.

    13. Re:It's OCaml for the .NET CLR... by TheGrayArea · · Score: 2, Informative

      >>Under dotNET there are no second class languages (well apart from C++), they all can access the same runtime
      Not true. You can use the Managed C++ extensions to access everything in the runtime. Heck, you can even host the runtime yourself if you wish.
      Check out:
      http://msdn.microsoft.com/library/default.asp?url= /library/en-us/vcmex/html/vcconMCOverview.asp

      --

      This space for rent.
    14. Re:It's OCaml for the .NET CLR... by MillionthMonkey · · Score: 3, Informative

      (DISCLAIMER: I didn't write this myself- we were having an email conversation about F# today at work, and this is what our CEO had to say about it. I got his permission to repost his email here but he insisted on editing a few comments disparaging to Microsoft because he wants to encourage them to keep working on it.)
      --snip--

      F# seems to be based very closely upon ocaml, which was the language that I used for day to day work before Java.

      I think ocaml is a fantastic language, although, like everything, it had a few significant problems five years ago:
      - obscure [ F# could fix this ]
      - not as many libraries as a mainstream language [ F# could fix this. ]
      - not great module support - if module A depends on B, then B cannot depend on A.

      Disclaimer: everything I say comes from personal, but old, experience, and a cursory look at the F# web site.

      Interesting properties of ocaml:
      1) Functions are first class objects. E.g..
      let add x y = x+y;
      let add3 = add 3;
      print (add3 4);
      -> 7
      2) Polymorphism works well. So you could define a function that takes an array of objects x and a function that maps x to y, and produce an array of objects y. Eg
      let a = [| 5,6,7 |] // an array of integers
      print (Array.map add3 a)
      -> [| 8,9,10 |]
      3) Type checking is strong, compile time, and usually implicit. All types in the examples above are deduced correctly. Disadvantage: You can't have operator overloading, even for the plus sign... so + means integer addition, and +. means double addition.

      4) You can return multiple values from a function
      let cis t = (cos t,sin t);
      let (ct,st) = cis (PI /. 2.0);
      print ct;
      -> 0.0

      5) Variables are final by default, but can explicitly be made not-final. There are also control structures that make many things that one does in Java by changing variables simpler. This can make debugging simpler, but takes a while to get used to.

      6) There is some very powerful pattern matching code - imagine a more powerful case where you could say

      int x;
      Point y
      switch (x,y) {
      case 7,null: do this
      case 4,Point(3,?) : do that
      case x,Point(y,x) : print y
      default:
      }

      [ Actually, there is no direct concept of null, but that is not the point. ]

      I particularly liked ocaml as it allowed imperative features, had GC and exceptions, and had a very good compiler that produced fast code. I was very impressed by the French academic group that made it and supported it.

      [ Note examples are not valid ocaml - they are ocaml features with a javaified syntax to make them easier to explain, and besides, I have not used the language for years. ]

      The current F# implementation does not sound very efficient for a variety of reasons. It is also not nicely polymorphic in the same way that ocaml is. This defeats a lot of the point of it. They need support for generics in the VM for these to work well. There is a different group at MS research working on this - I would be delighted if both the F# project and the generics project make it into the mainstream.

      It is not clear how well the ML view of types will match up with the C# view of types. ML programming feels different to Java programming, and this could make the .NET library matching clumsy. But if they could make it work, then that could get rid of two of the biggest perceived issues that have prevented widespread adoption of ocaml.

      --snip--

    15. Re:It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 0

      Cocorico :-)
      What would the Americans do without the French ? ;-)
      (OCaml is a creation of the INRIA, the french national computer science research institution)

    16. Re:It's OCaml for the .NET CLR... by connorbd · · Score: 1

      It's also Microsoft's very own Dylan... nice idea, but zero chance of any uptake (and at least Dylan was just Lisp with real syntax -- does anyone really want the bondage and discipline approach of ML?)

      I actually worked with ML in college for a while (SML, though, not any form of CAML). It's tough to get your head around, and the requirement that interdependent functions be defined together seems rather broken conceptually. It's a very elegant language, mind you, but it's a pain in the ass to actually use.

    17. Re:It's OCaml for the .NET CLR... by John+Whitley · · Score: 3, Interesting

      can't connect them to real I/O

      This used to be true ten years ago, but you are way out of date. OCaml works great for I/O. If available Debian packages are any measure, OCaml has had quite the active and growing developer base too.

      The major semantic hurdles for even (mostly-)pure functional languages (c.f. Haskell) were solved many years ago. (Look up the papers of John Launchbury, Simon Peyton-Jones, and others on State Transformers in Haskell. See also papers about how the use of the 'monad' from category theory introduced an incredibly powerful tool into languages such as Haskell). The Fox project at CMU used Standard ML to create a nifty layered TCP/IP stack and HTTP sever back in the mid 90's.

      The various current functional languages may have issues, social and/or technical, w.r.t. mass adoption... but the I/O problem definitely isn't one of them anymore.

    18. Re:It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 0

      But consider that OCaml already runs on just about any platform with native code supported for x86, powerpc, power, alpha, ia64, sparc, mips and ARM, and bytecode can be used on platforms that aren't supported...

      The OCaml runtime is very efficient with low overhead, both in terms of cpu and memory usage.

      I don't see that porting it to .NET has any advantages other than mindshare.

    19. Re:It's OCaml for the .NET CLR... by Anonymous Coward · · Score: 0

      "Java, VB, C, C++, Delphi... am I missing anything else major?)."

      Perl. Check search.cpan.org just for the packages (aka "the libary")

    20. Re:It's OCaml for the .NET CLR... by Zeinfeld · · Score: 1
      C++ is not a second-class citizen under .Net. In fact, Managed C++ is one of the best-supported languages.

      If you talk to the Microsoft engineers about dotNET you will find that they consider C++ a legacy language at this point, along with Cobol and Fortran.

      OK they still have to use it - most of their existing code is written in C++, but the plan is clearly to transition to C# over time.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    21. Re:It's OCaml for the .NET CLR... by Zeinfeld · · Score: 1
      This used to be true ten years ago, but you are way out of date.

      Yeah and vi can do everything emacs can, especially if you use it in the ultra powerful line mode.

      Learning a new runtime to learn a new language is not a good tradeoff. With dotNET you learn one runtime, it works for every language.

      More importantly you don't have to wait for the runtime to catch up with the code you want to write. It does not matter how great the graphics library is if what you are doing is writing X.509 cert handling code.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    22. Re:It's OCaml for the .NET CLR... by leonbrooks · · Score: 1
      (Java, VB, C, C++, Delphi... am I missing anything else major?).

      COBOL, FORTRAN

      RPG-II, assembly, hex/octal, flyleads, soldering iron, rocks? A heirarchy of sorts? (-:

      --
      Got time? Spend some of it coding or testing
    23. Re:It's OCaml for the .NET CLR... by brab · · Score: 1
      It's well known that mldonkey, for instance, does no do IO. It just triggers quantum events that make files magically appear on your disk. Just like Unison.

      There are no toy languages, only toy programmers ;)

    24. Re:It's OCaml for the .NET CLR... by bash99 · · Score: 1

      There is a killer app writen in ocaml, mldonkey.

  3. Obviously by somethingwicked · · Score: 2, Funny

    "nearing workable stages at Microsoft Research"

    What a softball on a Slashdot story. I bet

    21 joke made with reference to this phrase

    Let's watch and see :)

    --

    ---"What did I say that sounded like 'Tell me about your day?'"---

    1. Re:Obviously by Zelet · · Score: 1

      'Tell me about your day?'

      It is alright so far, thought it is only 8:00AM central right now. Thanks for asking though, how is your day?

      --
      ...And when they came for me, there was no one left to speak out for me." - Martin Niemoeller (1892-1984)
    2. Re:Obviously by vslashg · · Score: 1

      I bet 21 joke made with reference to this phrase

      Jokes are funny, right?

      Okay, well, so far we're at 0 and holding...

    3. Re:Obviously by johnnyb · · Score: 1

      Actually, Microsoft Research has a number of really good programming language experts. Unfortunately, none of their research has made it into real products.

  4. F? by Tsali · · Score: 2, Funny

    F-pound?
    F-sharp?
    F-UD?

    Sheesh. Don't we have enough languages already? I thought C# was the absolute savior of the MS-centric tech world.

    Just learn how to program in one language before you hit another one.

    --
    This space for rent.
    1. Re:F? by Tsali · · Score: 4, Interesting

      Actually, after rereading, doesn't python's lambda or use of functions as objects address the same problem space as F#? (per the author's example on the "What's the purpose of F#?" page of the article? My python's rusty, but, isn't that one of the cool things about python? Couldn't a C# delegate do something similar? Can you tell VB is my native tongue? :-)

      --
      This space for rent.
    2. Re:F? by TheRealRamone · · Score: 0

      the official name's gonna be "F#@!?"

    3. Re:F? by Surak · · Score: 0

      More importantly, will the next version be called:

      G-flat?
      G?
      G#?
      A#?
      A-flat?

      or will someone finally get around to making P?

    4. Re:F? by Vaulter · · Score: 1

      You can do this in almost every language. It's just that it's more elegant in a functional language.

      Python has its functions as objects, as well as some map functions. C++ has functors. Java has reflection, etc, etc.

      --
      I don't have a sig...Do you??
    5. Re:F? by jacobm · · Score: 1

      Python's lambda (actually Lisp's lambda incorporated into python 40 years later) is exactly the same mechanism, yes. A big difference is that F# is statically typed whereas Python is not.

      --
      -jacob
    6. Re:F? by The+Original+Yama · · Score: 1

      I always read C# as "C-hash".

    7. Re:F? by thermostat42 · · Score: 5, Interesting

      As one of the posters above mentioned, python's lambda is actually borrrowed from the Functional programming world. I believe it originally gets its name from Lambda Calculus, but mathematicians will have to correct me on that. (I first saw it in Scheme, the most beautiful programming language I've ever programmed in, if not the most practical.)

      If you've never done functional programming, it a different animal from imperitive programming, and if you do know python, it borrows a number of things from FP, not just lambdas. Look at python's map, apply, and reduce functions, along with list comprehensions (taken from Haskell, which I really need to learn). Although, it should be noted that python's recursion really isn't optimized for FP, but you can still do quite a few things that a functional programmer would be at home with.

      --
      no comment
    8. Re:F? by caluml · · Score: 2, Funny
      It's gotta be called F-sharp, if you ask me. Which you're not :o)

      I don't get how a # can be called a pound. What do you guys call £ then?

    9. Re:F? by Anonymous Coward · · Score: 0

      Dude, that's just F#'d up.

    10. Re:F? by ERJ · · Score: 1
      Can you tell VB is my native tongue?


      I'm sorry.
    11. Re:F? by jgerman · · Score: 4, Funny

      We call that the monetary unit soon to be known as the Euro.

      --
      I'm the big fish in the big pond bitch.
    12. Re:F? by funwithstuff · · Score: 1

      I don't get how a # can be called a pound. What do you guys call £ then?

      When I was at school in Australia using Apple IIes, there was a little switch underneath the keyboard that flicked something in the hardware. All the # signs changed to £ signs, or vice-versa. No processing power required, just a quick hardware switch. I'm guessing that some kid asked a teacher "what's that funny symbol before the numbers?" when viewing a spreadsheet, but the switch had been flicked and the names got confused.

      "It's a pound symbol." says Teacher. Same damn reason that clueless computer users call desktop wallpaper/background screen savers. Oh, the theory's probably bogus, because Australians have never confused a pound and a hash.

      (Um, there's probably an opening for a smart-arse comment or two there.)

      --
      it's not about the karma, it's about the whuffie
    13. Re:F? by Anonymous Coward · · Score: 0
      holy fucking shit! the next time you post something so funny, could you put a disclaimer in the title? I pissed my pants laughing so hard.... scheme is the most beautiful and practical programming language...

    14. Re:F? by xanadu-xtroot.com · · Score: 1

      or will someone finally get around to making P?

      Let me finish this beer first...

      --
      I'm not a prophet or a stone-age man,
      I'm just a mortal with potential of a super man.
    15. Re:F? by xanadu-xtroot.com · · Score: 1
      I don't get how a # can be called a pound.

      That's quite standard. A few examples:

      Those damn phone menu things when you call a company: "Enter your creditcard number and press pound"

      I worked in a bakery when I was in high school. 10# sugar, etc.

      I have a few Brit friends on IM (I'm in the US), since I don't have their monetary symboly on my keyboard, they understand what I'm saying when I type "WHAT? #150??".

      --
      I'm not a prophet or a stone-age man,
      I'm just a mortal with potential of a super man.
    16. Re:F? by Anonymous Coward · · Score: 0

      Scheme is beautiful, not sure about the most beautiful, since I only know ~10 languages, but he said it is not the most practical. Read the post before you blast it dumbass. I certainly agree that it isn't the most practical, but that is only because the world is geared toward the imperative languages of the world (and their bastard children the OO languages).

    17. Re:F? by Digital11 · · Score: 1
      (I first saw it in Scheme, the most beautiful programming language I've ever programmed in, if not the most practical.)


      Uhm.. Maybe you should be the one reading the post more carefully. According to my understanding of the English language, the parent was saying that Scheme is the most beautiful, and probably the most practical language he's ever seen.
      --
      I am a leaf on the wind. Watch how I soar.
    18. Re:F? by Anonymous Coward · · Score: 0

      Mark Hammond did a basic implementation of Python for .NET, but it suffered from all kinds of problems because its a dynamic language. The .NET CLR assumes languges are statically typed. This makes pretty much any functional language (as well as python) impossible to implement properly.

      Microsoft decides to do a proof-of-concept implemenation of a functional language, so they of course use the one functional language that has static typing.

    19. Re:F? by XSforMe · · Score: 1

      Once, while in college, one of our assignments was to create a compiler for a language of our choice. Being naive and adventurous instead of writting the 1000th variation of some imperative language I chose to write a postscript compiler (I later found out it needed to be an interpreter for it to function correctly). The main goal of it (besides getting a decent grade) was to follow Adobe's design as close a posible.

      Surprises flew along the way, I ended up doing just a subset of the supported instruction of postscript (ommited drawing letters along with some other stuff). One of the final requirements was to do a "case" statement. Postscript does not support "cases". Either I broke Adobe's design or figured a clever way out. I wrote a little function that would dynamically emulate a "case" returing a function based on "if"'s. This is when I really understood the true beauty of functional languages and how imperatives dwarf to the flexibility offered by functionals.

      I must confess the teacher was stunned when I showed it to her and the way the case worked. I ended up with my decent grade and respeting Adobe's design.

      --
      My other OS is the MCP!
    20. Re:F? by Lost+Engineer · · Score: 1

      Scheme? I Scheme is evil. I mean, it seems like sound theory that any program should be representable as a fuction from input to output. That doesn't mean I want to do it. I *like* algorithms thank you.

    21. Re:F? by pediddle · · Score: 1

      I first saw it in Scheme, the most beautiful programming language I've ever programmed in, if not the most practical.

      Find your grade school teachers and shoot them. He says it's the most beautiful, but probably not the most practical. Or, even though it's not the most practical, it's the most beautiful. Etc...

    22. Re:F? by tomhudson · · Score: 1
      1. £ == monetary unit
      2. # == weight unit or qty.
    23. Re:F? by pommiekiwifruit · · Score: 1

      A pound of silver used to be worth a £, but there has been some inflation since then.

    24. Re:F? by L7_ · · Score: 1

      They should have reserver F# for thier 2004 implementation of Fortran.

      F# sounds cooler than F90, F95, etc.

    25. Re:F? by bratmobile · · Score: 1

      Did you completely fail to notice JScript.Net? JScript.Net is not statically typed, and does support "eval", and something quite close to closures.

      The .Net Framework provides a consistent environment for code to execute in. On top of that, you can build whatever you want. Obviously, imperative languages map most directly to the Framework, but you can use it to do whatever you want. Such as implementing dynamically-typed languages, functional languages, etc.

    26. Re:F? by WWE-TicK · · Score: 0

      Jesus H. Christ .. that's NOT what he friggin' means. He's not saying "probably not the most practical" at all! I pray to $DEITY that you're not a native English speaker. That idiomatic expression means he's trying to say that Scheme is both a beautiful and practical language.

    27. Re:F? by TheRaven64 · · Score: 1

      I never really liked scheme (or LISP - Lots of Irritating Superfluous Parentheses) syntax. My first Functional language was Haskell, and while I don't really see the point. It's slower than an imperative language, and much less nice to use than a predicate logic based declarative language such as prolog. Functional code can be made parallel more easily than imperative code (generally), but for ease fo programming I'll take prolog over a functional language any day. Of course if I need my code to actually execute fast, I'll stick with imperative programming...

      --
      I am TheRaven on Soylent News
    28. Re:F? by rifter · · Score: 1

      Find your grade school teachers and shoot them. He says it's the most beautiful, but probably not the most practical. Or, even though it's not the most practical, it's the most beautiful. Etc...

      Is English a second language for you? Perhaps it is a US idiom, but the construct "if not the most" is pretty commonly used to mean that the object is *possibly* a superlative, but if it is not, it is pretty close, eg (with thanks to google):

      Duck and goose hunting has to be one if not the most expensive sport.

      The Bottom Line Sauvignon Blanc is one of, if not the most, affordable, enjoyable and food-friendly white wine grapes around today, enjoying wide appeal and wide distribution.

      'In England the main object seems to be what is after all one of the most, if not the most, important gastronomic principle..'.

      That last link goes into the subject at some length. I could go on, but I think you get the picture.

      To be fair, the poster's original comment is unclear because they do not include the "one of the..." construct in their sentence. So it is possible they said what you think they said, only badly, or what others thought they said. Perhaps the original poster should clarify his/her statement.

    29. Re:F? by rifter · · Score: 1

      That's essentially the gist of it. #==pound is a USism. The aforementioned long definition explains exactly the problem you describe: US keyboards do not have the £ symbol, so people with typewriters often used # since it was used as a shorthand for the Imperial ("English") Pound. (The story of how the US came to use units which it called English units when the English did not use these units is another tale...)

    30. Re:F? by Anonymous Coward · · Score: 0

      when "one of" is left out of "one of, if not the most $X" this nearly always means that is is far from being $X. At least in the northeastern US

    31. Re:F? by Anonymous Coward · · Score: 0

      it's just as elegant in c++ via the boost library.

    32. Re:F? by Anonymous Coward · · Score: 0

      Actually, in this test, OCaml ranked 2nd in speed between C and C++. (The test might not be the best, but still it may be significant)

    33. Re:F? by rifter · · Score: 1

      It makes sense. But essentially it is clear that the post was not. ;)

    34. Re:F? by SandsOfEarth · · Score: 1

      The Chinese character that looks like # means "a well." We could generalize it to mean a hole in the ground. So F# should be pronounced "F-hole."

    35. Re:F? by Old+Wolf · · Score: 1

      Calling # 'pound' refers to the unit of weight. It's still used in some backwater countries that can't understand kilograms.

    36. Re:F? by abirdman · · Score: 1

      I believe this confusion is a result of the new ENGLISH# language that's still in beta, but is being taught in our schools. %Beautiful and %Practical are being contrasted in the old "English v.101" meaning of the sentence (the language of the original post), but with ENGLISH# they're just identical (syntactically speaking) properties of the object "programming language" and reflect no contrast, and hence the difference in perceived meaning. I'm old school, and believe the grammatical construct of the post in question was contrasting the beauty (most) with the practicality (not the most, and hence by ironic implication, almost NULL) of Scheme.

      I shudder to think we could be unable to use English for discourse about the other languages we've invented to speak to computers.

      --
      Everything I've ever learned the hard way was based on a statistically invalid sample.
    37. Re:F? by firewrought · · Score: 1
      According to my understanding of the English language, the parent was saying that Scheme is the most beautiful, and probably the most practical language he's ever seen.

      The original post was unintentionally ambiguous. The phrase "the most x, if not the most y" can be interpreted either way. If you say it aloud, you can put a hesitant emphasis on the "if" and say the remainder of the phrase in an undertone to indicate that the subject is not very y-ish at all. This contradicts the more common usage of this construction.

      There are a couple of sources of error here:

      1. The phrase itself is suspect... you might say that the common usage contradicts the syntactically "correct" interpretation chosen by the author. Languages frequently develop flaws like this (e.g., like how the word "literally" sometimes means "figuratively" [as in "Bill literally killed me!"]).
      2. The author errored in (a) using a suspect phrase and (b) putting his verbal thoughts on paper without mentally filtering for shifts in intonation semantics.
      3. The reader errored in not deducing the author's meaning from context... the long lead-in (and the obivous impracticality of Scheme) hints at the author's true meaning.
      What's amazing about the human mind is that messages usually do get through intact, despite all the sources of errors. The message sent is never the exact same as the message received (first law of communications), but it's usually close enough.

      Oh, and Scheme is beautiful.

      --
      -1, Too Many Layers Of Abstraction
    38. Re:F? by pediddle · · Score: 1

      The AC below put it better than I could:

      when "one of" is left out of "one of, if not the most $X" this nearly always means that is is far from being $X

    39. Re:F? by inkedmn · · Score: 1

      I always read C# as "C-hash".

      you mean it's not C-Number-Sign?

      crap...

      --
      well, it's nothing one behind the ear wouldn't cure
  5. Well... by Anonymous Coward · · Score: 0, Interesting

    I guess anyone taking computer science will have to learn this, as it is the "language of the future." MS has the power to dictate what the future of its monopoly is, and thus also the future of computing. And with computer science graduates familiar with this, they will start to use it. Then, others like myself will either have to learn it or lose their job.

    1. Re:Well... by Anonymous Coward · · Score: 0, Troll

      Shut the hell up.

    2. Re:Well... by henbane · · Score: 5, Insightful

      F# will be learned by people when managers and not university lecturers decide that it is something that coders need to learn or even when coders decide it's necessary for something.

      Stop thinking that the world is out to make you use MS products no matter what. The businesses that do the employment and the people who should be advising them (cough -you- cough) are the people who make those decisions.

      Anyone learning Computer Science should in no way be gearing themselves with any particular product

      Any university offering courses in computer science is doing students a dis-service if it sends them out of the institution without an MS-centric, Linux-centric or any other square peg solution to fit any hole they come across.

      I always thought the aim of education and particularly any discipline that considers itself a science was to teach skills and thinking which could be applied across the field so the graduates would find themselves able to adapt to any language or equipment that they found it necessary to use.

    3. Re:Well... by jherekc · · Score: 1

      Which is Exactely what they teach us at Bournemouth University

      --
      "lack of quality control is one of the pillars of slashdot"
    4. Re:Well... by Anonymous Coward · · Score: 2, Insightful

      I don't buy this for a minute. There's tons of comp sci programs that never even made the switch to Java as their "learning" language. People will learn what the job market dictates. There will ALWAYS be a need for COBOL and C programmers and I think that Java has, sadly enough, become ubiquitous enough that we'll always need Java programmers.

      You'll lose your job if you only know a handful of trendy technologies and nothing more. If you know some languages that are passsing into the "legacy" category, you're better off.

    5. Re:Well... by Anonymous Coward · · Score: 0
      Which is Exactely what they teach us at Bournemouth University

      Though it appears that they teach you little about grammar, punctuation, or spelling.
    6. Re:Well... by chipperdog · · Score: 1

      Hopefully it will go the way of modula-2 (which I was required to take in college in the early 90's)

    7. Re:Well... by molarmass192 · · Score: 1

      "doing students a dis-service if it sends them out of the institution without an MS-centric, Linux-centric"

      You mean with not without right?

      Back in the day they taught methodology and standard languages, namely Assembly, C, Cobol, and Pascal ... C++ was not yet taken seriously although it's now my personal fav. It would be interesting to go back and see what they're teaching these days. Reality is that the "old" way taught you how to devise solutions. It would be sad to think that the "new" way is to focus on implementing solutions. You'd imagine it's in software companies interests (one in particular comes to mind) to push universities to focus on teaching implementations since it essentially creates virtual sales reps for their products on graduation.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    8. Re:Well... by Anonymous Coward · · Score: 1, Funny

      That would be sweet -- learn ML or lose your job. That's a vision of my ideal world. Learn a decent language like ML or get fired. Beautiful. That would separate the programmers from the code monkies. But there's no need for you to be anxious -- the chance of that happening is zero.

    9. Re:Well... by Midajo · · Score: 1

      Stop thinking that the world is out to make you use MS products no matter what.

      It's not the world I'm worried about, just Redmond.

    10. Re:Well... by b17bmbr · · Score: 1

      I always thought the aim of education and particularly any discipline that considers itself a science was to teach skills and thinking which

      as a teacher, an education is supposed to educate. i.e. pass on knowledge. training is different from education. it's simply knowing that (education) versus knowing how (training). we too often confuse the two.

      --
      My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
    11. Re:Well... by MjDascombe · · Score: 1
      It's actually a language they use at many universities - ML is one of the best languages for teaching people inheritance and recursion, and all you short-sighted anti-MS losers might actually by suprised that F# is just an implentation of ML.

      Not that I imagine any of my target audience will read this, but ML happens to have one of the lowest inherent grammer contents of any language - much lower than C - it's a superb language for teaching people the ideals of programming without letting them get attached to syntax.

      But hey, that doesnt matter ; this is slashdot ; Microsoft -> Bad, thats all that matters, isn'it it? Pricks.

  6. Yes !!! by dago · · Score: 4, Funny

    I knew that someday Fortran will make its comeback and becomes the all mighty programming language !!!

    --
    #include "coucou.h"
    1. Re:Yes !!! by confused+one · · Score: 1

      But it is used still in certain applications.

      Beyond F77 (FORTRAN 77) theres an f90, f95 and a Fortran 2000 standard...

    2. Re:Yes !!! by jilles · · Score: 1

      Probably there is a fortran compiler for .Net (as there is for cobol and many other languages) but F# is not it.

      --

      Jilles
    3. Re:Yes !!! by dago · · Score: 1

      I know, I used it (and liked it) at university.

      And my mother is using it, in its 90 flavor, daily (she's a scientist). I'll even probably build a (home-made) distributed platform for it in the next months or so...

      --
      #include "coucou.h"
  7. Figures... by da3dAlus · · Score: 4, Funny

    I usually use an F#-word or two when dealing with one of Microsoft's programming languages. This is great for marketing "See, everyone's shouting praises of F(sharp)!".

    --

    Sometimes I doubt your commitment to Sparkle Motion.
    1. Re:Figures... by AntonyBartlett · · Score: 2, Insightful

      I usually use an F#-word or two when dealing with *any* programming language. Even those who swear by computers also swear at them.

    2. Re:Figures... by TheRaven64 · · Score: 1

      I have found that the amount I like a programming language is inversely proportional to the amount I've used it.

      --
      I am TheRaven on Soylent News
  8. This isn't all apparently... by CrazyJ020 · · Score: 5, Interesting

    A microsoft rep met with us a couple of weeks ago pushing .NET, win2k3, the whole enchilada. He mentioned they have MANY of these languages in development and are due to be released in the next year or so. They will still be pushing C# for mainstream development. The other languages will focus on niches where a modern OO language would be cumbersome.

    He wouldn't confirm whether they would have the X# naming convention ;)

    1. Re:This isn't all apparently... by Lazyhound · · Score: 1, Troll
      The future of society is at stake.
      Don't overestimate your own importance.
    2. Re:This isn't all apparently... by esarjeant · · Score: 4, Interesting

      I like different languages, there are applications where Perl is more effective than C and where object oriented makes more sense than procedural.

      It looks like Microsoft is going to provide me a dream palette of languages to pick from. Maybe this will help make things like Design By Contract a little more mainstream?

      OTOH, there is a right way and a wrong way of approaching this. In the example of DBC, MS would do good by providing an Eiffel implementation for their CLR. In the example of F#, MS would be more correct to introduce Scheme and LISP dialects rather than invent their own.

      Not because these languages are perfect, but because developers are already familiar with these environments. We can't continue to "invent" new ways of doing things, the software industry has been introducing new standards at such an astonishing rate that we may jeopardize our ability to maintain legacy systems that are generationally distanced. Systems that were maintained 10 or 20 years ago rely on technologies that a recent college grad will be entirely unfamiliar with.

      Very few industries have this kind of halflife, let's not make it worse with [Aa-Zz]#.

      --

      Eric Sarjeant
      eric[@]sarjeant.com

    3. Re:This isn't all apparently... by fritz1968 · · Score: 1

      A microsoft rep met with us a couple of weeks ago pushing .NET, win2k3, the whole enchilada. He mentioned they have MANY of these languages in development and are due to be released in the next year or so...

      wouldn't all of these new languages in development be considered Vaporware? Unless I am misinformed, but according to the settlement for the anti-trust case, I thought that MS was not allowed to push Vaporware.

      Maybe someone could tell me the official definition of vaporware.

      --
      It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.
    4. Re:This isn't all apparently... by ebh · · Score: 1
      It looks like Microsoft is going to provide me a dream palette of languages to pick from.

      It'd be nice if they'd put some of that effort into developing a decent platform to run them on.

      I think that's the thing that frustrates me the most about MS. They've got some SERIOUS brain power in Redmond, and they're doing some really neat things. Why can't they temporarily reassign some of those folks to fixing the really intractable problems in their existing products? I know it's not fun, but I also know I'd hate them a lot less if they could make Windows (etc.) less vulnerable to viruses, spyware, etc.

    5. Re:This isn't all apparently... by Hard_Code · · Score: 3, Funny

      Customers don't pay for intractable problems to be solved. They pay for new icons.

      --

      It's 10 PM. Do you know if you're un-American?
    6. Re:This isn't all apparently... by gbjbaanb · · Score: 1

      Its never that easy just to fix things - quite often one man's fix is another man's bug. Consider the security feature in Outlook - yes you can receive .exes securely but only by being unable to run them...

      MS Research is doing its bit to make things better for you though - check some of the projects on the go, lke Penny Black (costed email processing to beat spammers), as well as more mainstream research:

      http://research.microsoft.com/reliability/
      http ://research.microsoft.com/research/sv/kohinoor /
      http://research.microsoft.com/behave/

      and many more.

    7. Re:This isn't all apparently... by Cuthalion · · Score: 1

      Imagine, for a minute, you're a language design guru. You got hired for those skills, and it's what you like doing. Should your employer ask you to a) design languages, b) specialize in security and reliability and rework existing products to use your newly learned knowledge?

      Should Microsoft stop all other products and assign all their engineers to making windows Robust? Even if it DID help make windows more robust, it would be a really stupid business decision to focus exclusively on a single task.

      --
      Trees can't go dancing
      So do them a big favor
      Pretend dancing stinks!
    8. Re:This isn't all apparently... by Cheffo+Jeffo · · Score: 1

      Not to be a smart-ass, but I would think that the phrase "in development" adequately conveys the fact that these are not shipping products ...

    9. Re:This isn't all apparently... by MisterFancypants · · Score: 3, Informative
      OTOH, there is a right way and a wrong way of approaching this. In the example of DBC, MS would do good by providing an Eiffel implementation for their CLR. In the example of F#, MS would be more correct to introduce Scheme and LISP dialects rather than invent their own.

      Bertrand Meyer is one of the biggest .NET boosters on the planet, and he already oversaw a port of Eiffel to .NET. This was available like a year ago.

      There's also a Scheme compiler, called Hotdog, with a .NET backend:

      Keep in mind that F# is but one of MANY language research projects going on at Microsoft Research, and there are many more going on at other sites that Microsoft is tangentially involved with.

    10. Re:This isn't all apparently... by ebh · · Score: 1

      I'll respond to the second part first: That's whay I said SOME of these folks. I'm not saying that everything else should grind to a halt (besides, didn't Bill try that already?). What I am saying is that, especially with all the legacy issues, solving these problems is going to be HARD, and that it warrants MS putting some of their best people on it.

      As or the first part, let me reword your question: Imagine, for a minute, you're a software configuration management guru. You got hired for those skills, and it's what you like doing. Should your employer ask you to a) do SCM, b) specialize in file system internals and rework existing products to use your newly learned knowledge?

      One of my employers did exactly B with me. Why? Because that's what their business needs dictated. For a couple years, they needed more help in file systems than they needed in SCM. They paid my salary, so they had every right to change my job assignment. In return, I drew a paycheck a lot longer than I might otherwise have, I picked up a boatload of new skills, and polished off quite a few old ones.

      So yes, in some cases, the answer to your question is B.

    11. Re:This isn't all apparently... by g4dget · · Score: 1

      OTOH, there is a right way and a wrong way of approaching this. In the example of DBC, MS would do good by providing an Eiffel implementation for their CLR

      We have excellent compilers, both free and commercial, for Eiffel that compile to native code and to the JVM, and Eiffel hasn't taken the world by storm. Why would a CLR back-end make any difference?

      In the example of F#, MS would be more correct to introduce Scheme and LISP dialects rather than invent their own.

      "More correct"? In what way? What does a statically typed batch-compiled functional language have to do with dynamically typed imperative languages?

    12. Re:This isn't all apparently... by MntlChaos · · Score: 1

      with [Aa-Zz]#

      shouldn't that be [A-Za-z]# ?

    13. Re:This isn't all apparently... by Anonymous Coward · · Score: 0

      quite often one man's fix is another man's bug.

      That's not true. Any given fix may remove an existing feature. But that's not a bug.

  9. F sharp or F hash? by SomethingOrOther · · Score: 4, Funny

    Heh
    In the UK we call that square thingy a hash

    Do you think C hash has done well here :-P Will F hash do any better?

    (Or does "making a hash of it" get lost in the translation?)

    --
    Anyone quoted by a reporter knows how little they understand
    Don't believe what you read is the truth.
    1. Re:F sharp or F hash? by Anonymous Coward · · Score: 0



      Easy, everybody knows Microsoft programmers are F###ing F#ists.

    2. Re:F sharp or F hash? by Anonymous Coward · · Score: 0

      Erm, we also call it sharp (as in the musical notation.)

      But it's definately not a pound which is £. Or lb.

      And don't even get me started on pants...

    3. Re:F sharp or F hash? by cruppel · · Score: 1

      It's a hash here too, but also a "pound" sign (don't know why) on touch-tone phones and an abbreviation for "number" like #3.

    4. Re:F sharp or F hash? by Anonymous Coward · · Score: 0

      You would make a pretty lousy musician then I suppose.

    5. Re:F sharp or F hash? by Malc · · Score: 1

      In the UK, it's also called "sharp". That's a musical reference. If, OTOH, they'd said it was pronounced "F Pound", then you might have a valid point.

    6. Re:F sharp or F hash? by zero_offset · · Score: 1
      In the UK we call that square thingy a hash

      It's actually called an "octothorpe". Search for the earliest C# discussions on /. ... various linguist geeks babbled about this endlessly, even getting into minutiae about a hash being right-angle lines but a sharp note being angular, etc etc.

      No, I'm not a language geek so yes, it was mostly a boring conversation. :)

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

    7. Re:F sharp or F hash? by Anonymous Coward · · Score: 0

      I thought it was a sharp only if superscripted?
      I prefer hash, it winds up the ms weenies.

    8. Re:F sharp or F hash? by Salsaman · · Score: 1

      I've also seen it translated as 'gate'. So it would also be 'f-gate'.

    9. Re:F sharp or F hash? by Anonymous Coward · · Score: 2, Funny

      It's called a good number of things, as is Microsoft. There is no one official name for the #.

      Octothorpe is ugly, but we can shorten it to "ock" for C# and F#. ;)

    10. Re:F sharp or F hash? by Lord+Ender · · Score: 1

      "In the UK we call that square thingy a hash"

      You are obviously not a musician. # is usually called "pound" in the US, but is called "sharp" in music in ALL countries. Music is the universal language and that's why it is C-sharo.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    11. Re:F sharp or F hash? by rawdot · · Score: 1

      I thought that in German one doesn't call anything X-sharp, but rather (Perlishly) one_note_higher($x).'is' (e.g. F# is spoken Gis, i.e. G-flat).

      I also think in German a B-natural is called h ('ha' in German, though pronounced 'aitch' in the Good ol' U.S. of Stateside and 'haitch' in many other GB-derived localities :-).

      Cheers,
      Richard

    12. Re:F sharp or F hash? by deblau · · Score: 1

      To me, it will always be F-octothorpe!

      --
      This post expresses my opinion, not that of my employer. And yes, IAAL.
    13. Re:F sharp or F hash? by bittmann · · Score: 1

      Heh
      In the UK we call that square thingy a hash

      Do you think C hash has done well here :-P Will F hash do any better?

      (Or does "making a hash of it" get lost in the translation?)


      Grin. (Oh, you Brits!)..but actually...

      That "square thingy" is in reality an "octathorpe."

      I suggest that we abbreviate "octathorpe" to "oct."...

      And proclaim that the language is "F-oct."

    14. Re:F sharp or F hash? by pommiekiwifruit · · Score: 1

      # is called "U+0023 Number Sign"

      â(TM) is called "U+266F Music Sharp Sign"

    15. Re:F sharp or F hash? by alext · · Score: 1

      Are you sure? All musical texts and scores I've seen have this symbol as a superscript. I don't think proper books use # for sharp.

    16. Re:F sharp or F hash? by Lord+Ender · · Score: 1

      Well, no I am not sure, I'm a drummer! :)

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    17. Re:F sharp or F hash? by JdV!! · · Score: 1
      (e.g. F# is spoken Gis, i.e. G-flat).

      Close, but no cigar.

      F# = 'Fis', similar to (nut not technically the same as) Gb = 'Ges'. 'Gis' is G#, which is similar to Ab, or 'As'.

      Likewise: C#, 'Cis' ~ Db, 'Des'

      For completeness: C# 'Cis' ~ Db 'Des'
      D# 'Dis' ~ Eb 'Es'
      E# 'Eis' (hardly used) ~ F
      Fb 'Fes' (hardly used) ~ E
      F# 'Fis' ~ Gb 'Ges'
      G# 'Gis' ~ Ab 'As'
      A# 'Ais' ~ Bb 'Bes'
      B# 'Bis' (hardly used) ~ C
      Cb 'Ces' (hardly used) ~ B

      JdV!!

      --
      <Enter any 12-digit prime to continue>

    18. Re:F sharp or F hash? by rawdot · · Score: 1

      Close, but no cigar.

      F# = 'Fis', similar to (nut not technically the same as) Gb = 'Ges'. 'Gis' is G#, which is similar to Ab, or 'As'.

      Ah, good, thanks for the correction! My one year of Gymnasium was 5th grade, 29 years ago, and memory failed to serve.

      But it does substantiate the point that "sharp" is not used in all languages. :-)

      Cheers,
      Richard

    19. Re:F sharp or F hash? by arose · · Score: 1

      I'll call it uck in this case.

      --
      Analogies don't equal equalities, they are merely somewhat analogous.
    20. Re:F sharp or F hash? by $0.02 · · Score: 1

      I am sure that George Frederic Handel composed in c sharp minor not in c hash minor.

      --
      If enithin kan gow rong it whil. (Murfey)
  10. What will they do? by grub · · Score: 0, Funny


    C# now F#. What will MS do when they run out of letters in the alphabet for their language du jour? Start over at AA# ?

    --
    Trolling is a art,
    1. Re:What will they do? by Galaxie · · Score: 2, Funny

      Maybe they will start using Symbols like in Super Mario Brothers :)

      --
      <end/>
    2. Re:What will they do? by NeoSkandranon · · Score: 4, Funny

      No, they'll go A through G, then start making chords and arpeggios.

      --
      If you can't see the value in jet powered ants you should turn in your nerd card. - Dunbal (464142)
    3. Re:What will they do? by RayOfLight · · Score: 5, Funny

      ... the drive letters team is (still) working this one out.

    4. Re:What will they do? by krumms · · Score: 1

      Better fuckin' not. I'll sue them for stealing my variable naming convention.

    5. Re:What will they do? by grub · · Score: 1


      the drive letters team is (still) working this one out.

      haha! Very good :)

      --
      Trolling is a art,
    6. Re:What will they do? by BigJimSlade · · Score: 4, Funny
      What will MS do when they run out of letters in the alphabet for their language du jour?

      In newer versions of .NET, you will be able to mount new languages underneath the old language:
      C#:\NewLanguage
      This will eliminate the need for the old "Lettered Language" scheme that has haunted us since the DOS era. It will be revolutionary!
    7. Re:What will they do? by Anonymous Coward · · Score: 0

      26 letters should be enough for everybody.

    8. Re:What will they do? by Medieval · · Score: 2, Funny

      Same thing they do every night, Pinky. Try to take over the world.

    9. Re:What will they do? by frodo+from+middle+ea · · Score: 1

      You mean they solved the drive letters problem ?

      --
      for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
    10. Re:What will they do? by Anonymous Coward · · Score: 0

      Some possibilities:

      AA#
      A##
      A#++
      ++A#
      A#^2
      A#NT
      A#ME
      A#CE
      A# XP
      A#2009
      A# "Trusted"

      BB#
      etc..

    11. Re:What will they do? by misterhaan · · Score: 1
      C# now F#. What will MS do when they run out of letters in the alphabet for their language du jour? Start over at AA# ?
      no, i think they'll defintitely move on from sharps to flats.
      --

      track7.org has all kinds of interesting stuff!

    12. Re:What will they do? by Anonymous Coward · · Score: 0

      Now they only need U# and K# programming languages ;-)

    13. Re:What will they do? by American+AC+in+Paris · · Score: 1
      C# now F#. What will MS do when they run out of letters in the alphabet for their language du jour? Start over at AA# ?

      My vote is for "C++ ungood".

      --

      Obliteracy: Words with explosions

    14. Re:What will they do? by sporty · · Score: 1

      Don't forget when you ran out of symbols. Game just ended :)

      --

      -
      ping -f 255.255.255.255 # if only

    15. Re:What will they do? by cryptor3 · · Score: 1
      C#:\NewLanguage
      C#:\
      Nice Charlie Chaplain prompt.
  11. What's next? by Anonymous Coward · · Score: 0

    F###?

  12. Oh, there it is by Anonymous Coward · · Score: 0

    If you look real hard you might be able to spot the article body. Its right there, squished up against the left hand side of your browser, to the left of the three columns of adverts and Flash animation and just below the ad banner and the ugly Extreme Tech mast, and above the entire half page of ad links and links to other article with more ads in them.

    Still, I like the way they've made the text cleverly flow around the badly placed tables and small adverts that are littered throughout the text!

  13. We have been working with it for a while. by ayjay29 · · Score: 5, Funny

    When developing for windoes "Microsoft F#&%", or "F#&%*!? .net" is the most common language our team uses.

    --
    Offtopic, Inflammatory, Inappropriate, Illegal, or Offensive comments might be moderated up.
  14. grrr.. wasted work by Anonymous Coward · · Score: 0

    damnit it all to hell! im actually working on a framework for something like this. java with first class functions and a way to basically do currying (though it looks a little different), product and sum types, and proper polymorphism.

    oh well... maybe there will still be room for an open source version of it. would hate to have spent this time on something that the 800 pound gorilla is just going to pump out.

  15. Gee Flat by snatchitup · · Score: 5, Funny

    Do you relize that an F# major has 6 sharps.

    But, an F# is the same as a Gb (G flat) which has as 6 flats.

    Now the C# scale has 7 sharps, but it's the same as a Db (D flat) which only has 5 flats.

    Most people think (D flat) instead of C#.

    F# is a very bright scale. It sounds very nice on an Alto Saxophone, whereas the C# scale is a little more moody, depressed.

    Maybe Microsoft is trying to back off the use of C#.

    1. Re:Gee Flat by mekkab · · Score: 2, Funny

      damn you and your circle of fifths!!

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    2. Re:Gee Flat by farnerup · · Score: 1
      but it's the same as a Db (D flat)

      In other words, C# is an inferior version of D

    3. Re:Gee Flat by sammy+baby · · Score: 3, Insightful

      I'd hesitate to say it's a "bright scale" in and of itself. The intervals between tones are the same in F# as in C#, which is why the whole circle-of-fifths thing works in the first place. The brightness or moodiness of the scale is entirely dependent on the range and tonal qualities of the instrument on which it's played - try it on a piano, and one doesn't really sound brighter than the other.

      And besides, everyone knows that D minor is the saddest of all keys.

    4. Re:Gee Flat by cioxx · · Score: 1
      Maybe Microsoft is trying to back off the use of C#.

      Actually, it's apparent that Microsoft is trying to put on some kind of a concert based on the names of programming languages.

      They're trying to prevent stuff like this!

    5. Re:Gee Flat by turgid · · Score: 1

      It ain't necessarily so. Not all instruments are tuned the same, or have exactly the same intervals. Look here to an introduction to what it's all about. Alternative tunings and all that, and their history.

    6. Re:Gee Flat by yaphadam097 · · Score: 1

      Since F# is the major fourth of C# major, I predict that G# will become the next dominant language.

    7. Re:Gee Flat by Alioth · · Score: 3, Funny

      Now all they need is G# (or Ab) and you can play the blues with Microsoft languages. Somewhat appropriate :-)

    8. Re:Gee Flat by EisPick · · Score: 1

      The intervals between tones are the same in F# as in C#

      Not precisely true, at least on keyboard instruments. A major third plus a major third plus a major fourth should yield an ocatave, but the math doesn't work out that way. So compromises must be made, which is done by tempering the piano. Due to the tempering, intervals do change slightly from key to key.

      In wind and string instruments, the player has more control of the pitch of each note, but when playing in ensembles, an effort is generally made to play in tune with the keyboard instruments.

      This is, of course, hopelessly off topic.

    9. Re:Gee Flat by Anonymous Coward · · Score: 0

      For this that don't get this, the fifth tone of a scale is called the scale's dominant. This means G# is the "dominant" of C#.

      +5 funny or -1 horrible awful pun...it's up to you.

    10. Re:Gee Flat by jellomizer · · Score: 1

      I think microsoft wants to make F# their root language. While keeping C# as the domanate one. Now if these languages are eather going to be a Major or Minor Success depending on the next language the releace if they relase A# then it will be Major but if they just released A then it will be minor.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    11. Re:Gee Flat by Anonymous Coward · · Score: 0

      Db is not the same as C#, nor is F# the same as Gb. They are different pitches, even though they may be harmonically equivalent. For a wind player, or a piano player, there's no difference, but ask a string player to play you a Db and a C#, and you'll be amazed.

    12. Re:Gee Flat by robyn217 · · Score: 1

      Hehehe.. Well, C# is more fitting for their home in Seattle. Perhaps this move the F# is a precursor to an office move to sunny california?

    13. Re:Gee Flat by arkanes · · Score: 1
      ....except that C# actually works and D doesn't. mmmm. Inferiority!

      Actually, I really like the idea of D and wish that it was more mature :P But I'd hardly say that, in it's present form, it's SUPERIOR to C#. Or even that they address the same problem space.

    14. Re:Gee Flat by sammy+baby · · Score: 1

      Doh. Props to you and turgid on this one. I should have remembered this from hearing the Well-Tempered Clavier for the first time and asking what it meant. (Turns out it doesn't necessarily mean the same thing, but that's a whole other story.)

    15. Re:Gee Flat by 00_NOP · · Score: 0, Flamebait

      Do you relize that an F# major has 6 sharps.
      But, an F# is the same as a Gb (G flat) which has as 6 flats.

      Actually F# and Gb are different notes. It is obviously easier for manufacturers of musical instruments to pretend they are the same notes and that is why you'd have to look long and hard for a tradition instrument that treated them as different, but there is no reason for computer based musical systems to treat them as the same tone.

    16. Re:Gee Flat by jsupreston · · Score: 1
      I can most definately attest to this. When I am playing my trumpet (play 1st part and solos at church), I am always using the 1st & 3rd tuning slides to adjust my pitch. Usually have to do this more to adjust to they guy who plays 2nd part. He has yet to figure out how to tune the horn while playing...but he's still a pretty good player.

      If you ever watch a piano tuner work, he will usually tune A440 (or as close as possible depending upon the condition of the instrument) and then tune the rest of the piano by ear. This makes the piano very pleasing to the ear, however it is actually a little out of tune over the entire range of the instrument. A "strobo-tuner" will show this to be true.

      PS: I was a music education major in college, and then I got mixed up with a Wyse 286. It's been all downhill ever since. Although I have to admit, the pay is better.

      --
      "It's a dog eat dog world out there, and I'm wearing Milk-Bone underwear."- Norm (from Cheers)
    17. Re:Gee Flat by Anonymous Coward · · Score: 0
      F# is a very bright scale. It sounds very nice on an Alto Saxophone, whereas the C# scale is a little more moody, depressed.
      IANAM, but WTF? Surely they are the same (relative pitch differences), as long as both F# and C# are major.
    18. Re:Gee Flat by Steeltoe · · Score: 1

      You forgot that it is also dependent on the listener. A microphone doesn't "care", but it could produce similar and different results in humans dependent on the instrument and tone. This is logical since certain wavelengths can actually melt your brain or make you poop!

    19. Re:Gee Flat by Anonymous Coward · · Score: 1, Funny

      Wait, are you singing Mixolydian scales, or something?

    20. Re:Gee Flat by EisPick · · Score: 1

      If it's a major fourth, then it will, of course, be a subdominant language.

    21. Re:Gee Flat by Theatetus · · Score: 1
      Now the C# scale has 7 sharps, but it's the same as a Db (D flat) which only has 5 flats.

      GAH!!! Even temperment has ruined modern musical ears. Listen to an old organ, or a good string quartet, and you'll definitely hear the difference between C# and Db.

      --
      All's true that is mistrusted
    22. Re:Gee Flat by ncc74656 · · Score: 1
      If you ever watch a piano tuner work, he will usually tune A440 (or as close as possible depending upon the condition of the instrument) and then tune the rest of the piano by ear. This makes the piano very pleasing to the ear, however it is actually a little out of tune over the entire range of the instrument. A "strobo-tuner" will show this to be true.

      A tuner could at least tune the other As against A-above-middle-C...press both and tune to eliminate the beat note. That'd at least get the tuning back on track once every octave. (Whether any of them actually do things that way, I don't know...it's been 20 years since my last piano lesson, and I never got very far with it (didn't really want to put all that time into practice). I adjusted the speed of a tape deck back to where it should be by a similar method once, though.)

      --
      20 January 2017: the End of an Error.
    23. Re:Gee Flat by Anonymous Coward · · Score: 0

      Since F# to C# is "A-men" (like a church hymn) the reverse could be considered satanic.

    24. Re:Gee Flat by kiwimate · · Score: 1

      Wouldn't that be a pagan cadence rather than a plagal cadence?

    25. Re:Gee Flat by $carab · · Score: 2, Insightful

      Most people think (D flat) instead of C#.

      Most people think of the note as C# because it is the third sharp added as you move up the circle of fifths. The A major scale includes a C#. D flat, on the other hand, does not arrive until 4 flats, in the A flat major scale. As a string player, I can tell you we play in multiple sharps far more than multiple flats (Who ever heard of a violin concerto in A flat?).

    26. Re:Gee Flat by Rich0 · · Score: 2, Informative

      Uh - I'm a string player, and if you asked me to play either I'd stick my finger in exactly the same place.

      They are in fact the same note. Granted, no string player hits any note dead-on, so maybe some tend to hit a pitch a little higher or lower when going up or down a scale, but it has nothing to do with the notes actually being different.

    27. Re:Gee Flat by Rich0 · · Score: 1

      He was talking about the KEY of C# - not the note. If you play a major scale starting on C# you will play EVERY note sharp (FCGDAE and B!) - or you can look at it as starting on Db and play BEADG flat. Obviously the latter tends to be more practical.

      My one pet peeve though as long as we're on an off-topic digression on music theory is that I want to know what idiot decided to come up with concept of brass instruments which aren't keyed in C. We should just go around and transpose all brass music back to C, and shoot everyone who knows how to play a brass instrument. We will then train new players to understand that a C is played as a C - not as whatever they've been fingering it as before! There was nothing more dull during high school than playing every arrangement in Bb so that the french horn part wouldn't have 15 sharps...

    28. Re:Gee Flat by Anonymous Coward · · Score: 0

      You of course assume equal temperment, but I've always been mean tempered. ;)

    29. Re:Gee Flat by macaddict · · Score: 1
      Db is not the same as C#, nor is F# the same as Gb. They are different pitches, even though they may be harmonically equivalent. For a wind player, or a piano player, there's no difference, but ask a string player to play you a Db and a C#, and you'll be amazed.

      What? Amazed that the string player can't play in tune?

      That makes absolutely no sense. If a string is playing in an ensemble of mixed instruments and plays C-sharp and D-flat as different pitches, it's going to sound like crap. Woodwinds and brass (I've played both) can also play a note at different pitches, by adjusting the the instrument length or embouchure, but it's used to get yourself back *in tune*, not to *try* to play a different pitch (odd modern music excepted). An instrument that is off pitch is going to cause a really annoying "wa-wa-wa" sound on sustained notes. If they're drastically off pitch, it will sound like a wrong note.

    30. Re:Gee Flat by Anonymous Coward · · Score: 0

      Piano strings actually don't produce perfect harmonics; the overtones of the A440 are not exactly at 880, 1320, etc. but slightly off. IIRC, this is a result of the strings being spiral-wound (except for the higher notes), though there might be other factors at work. So the tuning must be "stretched" to make the higher and lower notes sound right when played together.

    31. Re:Gee Flat by Anonymous Coward · · Score: 0

      ...or make your head explode (if you are a Martian).

    32. Re:Gee Flat by Anonymous Coward · · Score: 0

      That is really dependent on the instruments used for the work, the era in which the work was composed, and the tonal centers of the work.

      Variable Pitched Instuments
      (e.g. non-keyboard)
      The difference occurs when the notes are written in the context of a tonal center. In the key of Bb, a Db4 will be raised 15.6 cents from its equal temperament frequency, whereas a C# in the same key would likely be from a borrowed chord, with A as the root and the C# being lowered 13.7 cents from its equal temperament frequency. That is almost a 30% difference in pitch. That is just intonation--it is a function of the tonal center of a chord rather than the spelling of the note (which simply a consequence for using that chord).

      Fixed Pitched Instruments
      (e.g. keyboard)
      Listening to different organs, harpsichords, clavichords and other fixed-pitched period instruments will reveal even more differences. Each period in music history has several temperaments associated with it. Each key has a different sound in each temperament, except equal temperament. So, you have good and bad keys. The joke is, with equal temperament, each key is uniformly bad.

      Equal temperament is actually good for most modern classical music because of generally ambiguous tonal centers (e.g. Webern, Babbit, Stockhausen, Crumb). But, for tonal music of any time, almost all variable pitched instruments use the just intonation where all intervals in a key are perfect. All keys are equally good because the frequencies of notes are dependant on tonal centers.

    33. Re:Gee Flat by superyooser · · Score: 1
      Fx (F double sharp) would be a good name for a language.

      I wish MS would make some flat languages. Maybe Vb is supposed to be V flat.

    34. Re:Gee Flat by superyooser · · Score: 1

      Trumpets keyed in C are common in symphony orchestras. Trumpets also come in D, Eb, F, and G.

    35. Re:Gee Flat by xwu · · Score: 1
      And besides, everyone knows that D minor is the saddest of all keys.
      I would beg to differ. B minor, I believe, is called the "key of death"...
    36. Re:Gee Flat by broter · · Score: 1

      Transcribing music in the two different scales is slightly different when youhave to keep track of where to put the naturals et al. Also, reading a piece that's written in a key near the bottom of the circle of fifth is a pain for us mortals.

      --
      "One man can change the world with a bullet in the right place."
      - Mick Travis, "If..."
    37. Re:Gee Flat by apc · · Score: 1

      It immediately occurred to me that F# is the perfect name.

      F# is the tritone (flatted fifth) of C, thus making it one of the most dissonant intervals possible. Perfect analogy for the lack of interoperability between M$ and the rest of the world.

    38. Re:Gee Flat by fishbowl · · Score: 1

      >As a string player

      A-hah! A horn player will be going the exact opposite direction, and come to a different conclusion!

      --
      -fb Everything not expressly forbidden is now mandatory.
    39. Re:Gee Flat by uid8472 · · Score: 1

      No, to get proper satanicness you need a tritone interval; for instance, F# to C or vice versa.

    40. Re:Gee Flat by Old+Wolf · · Score: 2, Interesting

      Well the circle of fifths doesn't quite work .. if you go up a fifth on a piano (freq * 2^(7/12)) 12 times, you've multiplied frequency by 128, but if you go up an exact fifth (freq * 3/2) 12 times you've multiplied frequency by 129.7. Some older organs actually had a different key for C# to Db for this reason.

    41. Re:Gee Flat by Anonymous Coward · · Score: 0

      Why has this been modded as flamebait? It is a statement of scientific fact dickheads.

    42. Re:Gee Flat by Anonymous Coward · · Score: 0

      I'm also a string player, and can guarantee you, they are different notes. It all depends on what key you play in. If you are playing in G major, as F# is the 7th of the scale, you'll want to make it slightly sharper (our ears tend to resolve that way). In F# major, of course, it's the tonic, so all intonation will be based off that note.

      Here's a little test that can help demonstrate that placing your finger on one position won't keep the note in tune (demonstrated on a violin, four strings G D A E tuned in perfect 5th's). Play a major 6th with the open G string and E natural (first finger on the D string). Now keep your finger exactly in place, and play it with the A string. You don't have a perfect 4th, you need to adjust your finger slightly, the two "E's" are different, as you are now playing in a different scale.

      Darn equal tempered keyboard makes it damn hard for us chamber music players!

    43. Re:Gee Flat by Anonymous Coward · · Score: 0

      Why is this flamebait? It's the same on the a keyboard, granted, because of Bach's equal tempered scale. As soon as you start playing in a string quartet though, for example, whether you have an F# or a Gb can be crucial to keep the four players in tune. They are a different pitch depending on the scale you are playing in.

      For example, in G major, F# is your raised 7th. You want to raise this ever so slightly as our ears tend to resolve this way. Gb is the tonic flattened.

      I've posted another AC comment below with an example on the violin how the same note can be made out of tune depending on the open string you are playing it with.

      I've got a /. account somewhere, can't remember the darn password.....

    44. Re:Gee Flat by Rich0 · · Score: 1

      I'll be sure to try it out...

    45. Re:Gee Flat by jaoswald · · Score: 1

      The keyboard player is the only one stuck with the pitch the tuner gave them.

      Strings, singers, and wind instruments *should* adjust the intonation slightly depending on the key. Whether the note is written as D-flat or C-sharp determines what harmonic function the note is playing in the scale, so you shade it a bit to make it sound right. Why else do you see notations of double-flat and double-sharp, which all have white-key or single-accidental enharmonic equivalents?

      Only rarely are tonal pieces going to have both C-sharp and D-flat (concert pitch) written at the same time, so you won't get dissonance from enharmonic tones, but if the piece changes key, the C-sharp in one key of the piece is not going to be identical to the D-flat in another key. Choruses and unaccompanied singers in particular are not going to be mechanically in tune with equal temperament, yet they will still be in tune.

      This is of course a big deal in the historical music community (which I am not a part of) because it used to be that keyboards were tuned to be in particular keys, and would have sounded awful if you tried to play in keys too unrelated to the temperament. Only after Bach's time did keyboards start to get universally tuned in equal temperament.

  16. Could be useful? by DrTentacle · · Score: 5, Interesting

    Our company has recently started to introduce .NET development alongside our core J2EE platform. One of the issues that has come up has been how useful the multi-language/single-platform support would be. Rather than taking a "best of breed" language for all development, the use of the right tool for the right job could potentially lead to interesting results - A mix of C#/ML/PROLOG/etc. as appropriate for the immesdiate task at hand. I don't think MS is far enough down the road yet to capitalise on the idea, but it's certainly an intriguing possibility - Even if it would lead to a maintenance nightmare :)

    1. Re:Could be useful? by brlewis · · Score: 1

      As opposed to the Java world, where you have JSP, WebMacro, Velocity, Tea, etc. etc. in popular use, and a whole slew of other languages implemented on the JVM.

    2. Re:Could be useful? by DrTentacle · · Score: 1

      I'm not disputing that - It's another interesting possibility. However, I'm not convinced either platform is yet at the stage to truely capitalise on the potential benefits of multi-language development, spurious as they may be. I do think MS is slightly ahead in that field, having concentrated so much on the CTS/etc. but the fact they have to effectively break some languages (Eiffel, etc.) to fit them into the platform model will work against them as well.

    3. Re:Could be useful? by brlewis · · Score: 4, Interesting

      In reality, Microsoft's CLR is only slightly better than the JVM at accommodating multiple languages. Better support is "planned for a future release", much like the 1993 promises of WinNT that came out in 2001. All the languages ported to the CLR had to be compromised somehow, same as those that compile to JVM bytecodes. I'm still hoping dotnet will push Sun to extend the JVM to be more acommodating of non-Java languages. For example, it would be fun to try full continuations in BRL pages.

    4. Re:Could be useful? by iabervon · · Score: 2, Insightful

      The .NET CLR was designed for C#. None of the other .NET languages are any better for anything than C#, because every feature that isn't in C# has been removed from the other languages to make it a .NET language. It's not actually more generally applicable than the JVM, it's just that there's a bigger marketting push to demonstrate that you can implement a bit of a lot of languages on it.

    5. Re:Could be useful? by Anonymous Coward · · Score: 0

      tIn reality, Microsoft's CLR is only slightly better than the JVM at accommodating multiple languages.

      Ha, yeah riiiight. The CLR was designed to support other languages. From the beginning. It has a huge advantage over Java/JVM.

    6. Re:Could be useful? by bmajik · · Score: 1

      thats nonsense.

      When I do managed programming, i use VB.NET almost exclusively because its just easier to write than C#.

      There's been one recent project that i did in C# because i was re-using some code that was already in C# and didn't feel indignant enough to wrap that code and call it from vb.net..

      Also, Managed C++ lets you do anything you want, on essentially a per statement and per object basis. Power-wise, it crushes C#.

      I think you're probably also confusing CLR and CLS, or even CLI (but thats pretty easy to do)

      Let's say this - C# basically exists to be the "natural" language for the .NET platform, but there are gobs of reasons to NOT use c# in .NET programs. An obvious move is to use MC++ to expose existing c/c++ code to managed applications in a precislely designed and controlled fashion, or to leverage the execution speed of native C code with the benefits of managed conventions.

      I already made my case for why i love VB.NET (you go off and make fun of me for not being a "real" programming, meanwhile i'll be beating deadlines and delivering useful functionality)

      Also, people with more factual content than you or I have presented have already commented on the "language adaptability" of MSIL and the .NET VM vs the JVM and the consensus i've gathered is that .net's does have some non-fluff advantages.

      --
      My opinions are my own, and do not necessarily represent those of my employer.
    7. Re:Could be useful? by broter · · Score: 1

      ...The CLR was designed to support other languages. From the beginning. It has a huge advantage over Java/JVM.

      Please enlighten us. The JVM is a general purpose stack cpu AFAIK. I haven't had much exposure to the CLR, so how is it better than the JVM?

      --
      "One man can change the world with a bullet in the right place."
      - Mick Travis, "If..."
    8. Re:Could be useful? by Garen · · Score: 1

      Yeah I can't wait to see the job ads looking for people that know COBOL.NET, in addition to an alphabet soup of other crappy legacy languages they want to be used. :)

    9. Re:Could be useful? by StrawberryFrog · · Score: 1

      The .NET CLR was designed for C#. None of the other .NET languages are any better for anything than C#

      The x86 range of chips are designed for assembly language. None of the other 'high level languages' can be any better for anything than assembly.

      So all .Net languages compile down to the same bytecode. C# is the closest fit to it. Functional languages will not be 'close' to the .NET VM just as compiled LISP is not 'close' to x86 assembly. That doesn't in itself mean that they are pointless.

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    10. Re:Could be useful? by Anonymous Coward · · Score: 0

      The CLR has the following over the JVM:

      - Support for pass by reference (you can simulate pass by reference in the JVM, but it is costly)
      - Support for unsafe code (you can use pointers in C# assuming that the code is trusted)
      - Support for enumerations (Java will get these soon)

      Those are the ones that I've thought of right off the bat, there are probably more.

    11. Re:Could be useful? by thona · · Score: 1

      What about the generic unified type system, allowing the definition of additional primitive types? The Java VM only knows how to handle her own defined types as primitives, the rest are classes (with the performance implications).

  17. F# fodder by harley_frog · · Score: 1

    Oh, the jokes that this will bring. Just goes to show you that, if nothing else, Microsoft is good for a joke or two.

    --
    It's all fun and games until someone loses the key to the handcuffs.
  18. Re:F sharp or F hash? (GOD DAMN BRITS) by Anonymous Coward · · Score: 0

    You'd think I would have noticed those bad teeth if they had been anywhere as common as double-decker buses. You'd think I would have remembered the tea-stained incisors and rotting brown bicuspids of shopkeepers and sales clerks. But I observed no such shortcomings in the dental fitness of the British public. Why is it, then, that all it took to convince me were an impish skit on Saturday Night Live, a wickedly retouched cover photo of a snaggle-toothed Princess Diana in Spy Magazine, and the grotesque cinematic ivories of Austin Powers?

  19. Linux??? by Anonymous Coward · · Score: 0

    Interesting. So Safari doesn't render php phpinfo() correctly, but IE 5.2 makes /. look like crap.

    Looks good on Safari boys :-D

    I think I'm falling in love with OS X and this here TiBook. . .

    help me

  20. Funny quote of the day by 26199 · · Score: 5, Interesting

    Map then applies whatever function we pass in to every member in the array (called a list in functional programming).

    So, all you functional programmers, remember... a list is just another name for an array :-P

    Seriously, though... I was discussing the future of programming languages with some friends and we agreed that a real step forward would be to provide features such as higher order functions in a mainstream language... could this be it?

    If so then it's a little worrying... I'd rather not see any revolutionary languages come out of MS, if at all possible...

    (Cambridge's Computer Science degree teaches ML followed by Java in the first year... would they switch to teaching just F# if it became popular?)

    1. Re:Funny quote of the day by Znork · · Score: 1

      No, they'll hardly switch to F#. F# does not seem even close to as hardcore functional as it would need to be to satisfy the "theoretically really interesting but completely unusable when it accidentally collides with reality" requirement of CS that ML or Haskell provides.

    2. Re:Funny quote of the day by rick446 · · Score: 1

      Map then applies whatever function we pass in to every member in the array (called a list in functional programming).

      I'm not too familiar with functional programming languages (spent a month on lisp ~10 years ago plus whatever ongoing I need to known to make emacs work), but what's the advantage of this over using C++'s templates in <functional> (for_each, transform, etc.)? Seems like you could do the same thing, only with strong typing and faster execution.

      Am I missing something? The author mentioned function pointers, but sidestepped the fact that the standard library handles the function pointers for you and lets you use (fairly) clean syntax to express the idea of "high-order" functions. Anyone with C++ and lisp/scheme/ML experience want to elaborate?

      --
      http://pythonisito.blogspot.com/
    3. Re:Funny quote of the day by robyn217 · · Score: 1
      Right, I took a little leeway there calling a list an array--but I was trying to use "familiar" terms for developers who weren't up on their functional language lingo.

      I have a feeling I'll get an email from one of my old professors at NYU about this too... heheheh!

      I really like functional programming though--and I do agree that higher order functions are fascinating. There's so much wasteful code out there in the business world. It would be nice if something like the easy implementation of higher order functions could help in this area...

    4. Re:Funny quote of the day by Anonymous Coward · · Score: 0

      The reason Cambridge taught ML is they were looking for a language that few people would have used before to stop people getting an advantage.

      Lots of Unis now start with Java but there are academic papers on why it is poor choice as a beginners lanquage. I think Java is taught early purely becuase it is fashionable.

      It maybe many things but it is not a good introduction to programming.

    5. Re:Funny quote of the day by tijsvd · · Score: 1
      What's wrong with:

      void ** map( (void * f)(void *), void ** array) {
      void ** p;
      for(p = array; *p; p++)
      *p = (*f)(*p);
      return array;
      }

      Voila! Higher order function in C :-))

    6. Re:Funny quote of the day by Dan+Ost · · Score: 3, Insightful

      Seriously, though... I was discussing the future of programming languages with some friends and we agreed that a real step forward would be to provide features such as higher order functions in a mainstream language... could this be it?

      If you consider Python to be mainstream, then there's already a mainstream language that supports both functional programming and advanced types like lists and associative arrays (aka dictionaries).

      I stumbled on to Python about a year ago and have been so impressed by it that it's becoming my languange of choice for new development.

      Check Python out. Really

      --

      *sigh* back to work...
    7. Re:Funny quote of the day by Ed+Avis · · Score: 2, Interesting

      You can get higher order functions in C++, just about (eg for_each in the standard library). But the syntax is awkward and without anonymous functions (lambda) it gets more awkward.

      Perl has higher order functions, and is reasonably 'mainstream'. So do Python and Tcl and most other scripting languages that let you pass around pointers to functions. But without typechecking it can get a bit error-prone to do the kind of really complex stuff you might do in Haskell or ML.

      --
      -- Ed Avis ed@membled.com
    8. Re:Funny quote of the day by Ed+Avis · · Score: 1

      I kinda agree with you about Haskell but you are being unfair to ML. Both SML/NJ and OCaml have production-quality compilers and a good standard library, and the language itself is not particularly 'pure' (ML functions can have side effects).

      --
      -- Ed Avis ed@membled.com
    9. Re:Funny quote of the day by Kupek · · Score: 1

      Check out FC++. It's funcitonal programming in C++. The syntax can be awkward, but it's interesting.

    10. Re:Funny quote of the day by Eudoxe · · Score: 3, Informative

      In France, students learn Caml during their first year before school of engineer. Maybe this will help the devel of ML in industry.

    11. Re:Funny quote of the day by doktor-hladnjak · · Score: 2, Interesting

      "Am I missing something? The author mentioned function pointers, but sidestepped the fact that the standard library handles the function pointers for you and lets you use (fairly) clean syntax to express the idea of "high-order" functions. Anyone with C++ and lisp/scheme/ML experience want to elaborate?"

      The term "high-order function" I think is probably referring to the property of a language, where functions are objects that are as easily passed around, created, used, etc. as any other type of data (say numbers or lists or strings). While you can essentially do things like map in C++ (even with function pointers), it's not as easy to do something like,

      > (define (make-adder n)
      (lambda (m) (+ m n))

      > (map (make-adder 3) '(1 2 3))
      (4 5 6)

      at least not semantically in the same way or in so few lines. In langauges like scheme, lisp, and really even python, functions are really just another form of data that can be manipulated. Heck, in Python, functions (and methods) are even objects with their own methods.

    12. Re:Funny quote of the day by doktor-hladnjak · · Score: 1

      The real problem with Java as a first language is that there's really a lot of syntax to get in the way. Additionally, you have to know a reasonable amount (basic OOP, the String class, functions/methods) before you can really understand how even a simple program works. In contrast, ML or Scheme have very incremental learning curves being interpreted and having faily simple syntax (especially scheme).

    13. Re:Funny quote of the day by Mr.+McGibby · · Score: 1

      Scheme is a great language for learning computer science. Let's face it, humans naturally think better in a procedural language. But once someone is forced to understand how to do things in functional language, their understand of procedural languages is much improved. When recursion is the only way to get a lot of things done, people learn it and it never becomes the "black magic" that many beginners (or even some "experts") think it is.

      --
      Mad Software: Rantings on Developing So
    14. Re:Funny quote of the day by bellings · · Score: 1

      have very incremental learning curves being interpreted

      Scheme is not interpreted.

      --
      Slashdot is jumping the shark. I'm just driving the boat.
    15. Re:Funny quote of the day by Anonymous Coward · · Score: 0
      C++ can actually sorta fake it with functors. It's nowhere near as powerful, but it's a nice technique when you're using C++
      class adder
      {
      int n;
      public:
      adder(int n_) : n(n_) { }
      int operator()(int m) { return m+n; }
      }
      Ugly, but better than nothing.
    16. Re:Funny quote of the day by be-fan · · Score: 1

      C++ is making progress on this front though. The lambda abstraction in the Phoenix library is actually rather nice, and I've found it useful in some small stuff I've done lately. However, I'd hate to use it in a bigger project until they can resolve the "one mistake and the compiler spews 500 pages of error messages at you" issue :)

      --
      A deep unwavering belief is a sure sign you're missing something...
    17. Re:Funny quote of the day by Ed+Avis · · Score: 1

      But lamda libraries for C++ are cheating, in a way: they all involve proxy objects and redefining standard functions like + to operate on the proxy objects and wrapping any real functions you want to call.

      Writing something like

      f = lambda(_1 + wrap_unary_function(g)(_2));

      isn't nearly as clean IMHO as

      f = lambda(x, y) { return x + g(y); };

      --
      -- Ed Avis ed@membled.com
    18. Re:Funny quote of the day by jaoswald · · Score: 3, Insightful

      What's "wrong" (rather, missing, or inconvenient) is the ability to fill f with pointer to functions that were not defined when the compilation happened.

      In Lisp, I could take the contents of a Web form, for instance, and use that to make a function that would encode, for instance, your preferences in music, then use that newly-formed function to rate MP3's as your are browsing.

      (defun make-rating-function (web-form-contents)
      (lambda (music)
      (+ (* (country-rating web-form-contents) (country-genre music))
      (* (rock-rating web-form-contents) (rock-genre music))
      (* (classical-rating web-form-contents) (classical-genre music)))))

      Then, that rating function can be stored in a variable for later use on the music.

      You could implement this in C, by storing the array of three values, but it is much less flexible. My make-rating-function could return one out of any number of functions, which take different information out of the web-form-contents. For instance, classical music listeners have very different ways of choosing music, so you would give them a music-rating-function that looked at composers more than performers, while rock fans would look more at bands that groups of people tend to rate similarly.

      (defun make-rating-function (web-form-contents)
      (if (classical-music-lover web-form-contents)
      (make-classical-rating web-form-contents)
      (if (rock-music-lover web-form-contents)
      (make-rock-rating web-form-contents) .....

      where make-rock-rating is written as above.

      Once you make the choice of functions depend on the data, it becomes cumbersome to do in C. It's like doing polymorphism in C: you need to start making case statements all over the place to check what kind of customer you are dealing with. Lisp makes this kind of stuff easy to express---dealing with functions is as easy as dealing with integers and floats.

    19. Re:Funny quote of the day by josephgrossberg · · Score: 1

      And the difference is between an array and a list is ... what???

      Is it a fixed-length/variable-length thing?
      A same-types/different-types thing?
      A mutable/immutable thing?

    20. Re: Funny quote of the day by Black+Parrot · · Score: 1


      > You can get higher order functions in C++, just about (eg for_each in the standard library).

      FWIW, there's a fairly elegant iterator in the Freeciv code, written in C.

      (I think they've wrapperized everything for C++ now, but the iterator is pure C.)

      --
      Sheesh, evil *and* a jerk. -- Jade
    21. Re:Funny quote of the day by doktor-hladnjak · · Score: 1
      Scheme is not interpreted.

      Ya, I guess I should replace interpreted with having an interactive listener loop. As far as I know, Scheme can be interpreted or compiled though.

    22. Re:Funny quote of the day by ncc74656 · · Score: 1
      When recursion is the only way to get a lot of things done, people learn it and it never becomes the "black magic" that many beginners (or even some "experts") think it is.

      I don't know that I would consider recursion "black magic." There are some problems where a recursive solution seems the obvious way to go, but it can bite you in the ass if you're not up to speed on (for instance) program complexity or other matters. As an example, in some 200-level class I wrote a program that used a recursive function to find Fibonacci numbers. It seemed elegant to do something like this:

      int fibonacci (int n)
      {

      if (n<3)
      return n;
      else
      return fibonacci(n-1)+fibonacci(n-2);
      }

      Not having gotten to big-O notation and analysis of program complexity yet, though, the exponential runtime of such a function wasn't immediately obvious...which is why I was somewhat puzzled why it didn't run substantially faster on a Convex (?) supercomputer than it did on a SPARCstation 1. A saying about a hammer and everything looking like nails comes to mind.

      (Before the assignment was due, the instructor suggested switching to an iterative approach, which was of linear complexity instead of exponential complexity.)

      --
      20 January 2017: the End of an Error.
    23. Re:Funny quote of the day by iabervon · · Score: 1

      Functional languages are useful for a couple of problems, of which the main one is writing compilers. On the other hand, they make a really good research platform for language features. So the neat features start out in functional languages and then propagate to imperative languages, and then they show up in mainstream imperative languages.

      I expect to see features like first class functions in JDK 1.6, and type inference and anonymous functions in JDK 1.7; C# may get them before or after. (And generics, an important first step toward first class functions, are in JDK 1.5).

      There are two reasons you haven't seen higher-order functions much in mainstream languages: static typing and higher-order functions are really hard to combine, and people like static typing because you can tell whether your program could possibly work at compile time with static typing; and managing closures automatically (or at least, without driving your programmers crazy) is extremely difficult without garbage collection, and garbage collection is only becoming popular now.

      Of course, it will be a long time, I think, before any mainstream language gets fully general captured continuations (i.e., Thowable.resume(), which causes whatever threw the exception to resume running with a provided value), although the special (and probably, most sane and useful) case of generators is likely to be sooner (i.e., a function which returns a sequence of values, with each being computed, by having the function resume running, as needed).

    24. Re:Funny quote of the day by Minna+Kirai · · Score: 1
      The latter two questions aren't relevant. The first one is, slightly.

      First note that in functional langauges (Lisp), you normally just have "lists", and stay away from arrays. Those "lists" are called "linked lists" in imperative languages (C++), which serves as a reminder of how they're probably implemented (in a functional language, the programmer is encouraged to think at a higher level, not caring how the implementation is done).

      As ThinkGeek mentioned, an array is generally a contiguous block of memory, while a list chains separate small blocks of memory with pointers between them.

      Those implementation differences lead to major performance differences for kinds of operations you can do:
      • Read first element: array fast, list fast
      • Read last element: array fast, list slow (or fast, if doubly-linked)
      • Read Nth element: array fast, list slow
      • Insert at middle: array slow, list fast
      • Insert at end: array slow (or fast, if realloc), list fast
      • Search for member: array fast (if sorted), list slow (even if sorted)


      When I say "slow" above, I mean it takes more time depending on how much stuff the container holds (O(N)), rather than taking a fixed amount of time (O(1)). The big advantage of an array is speed to access items in the center- you can go to the Nth spot directly, while in a list you'd have to walk there sequentially from the beginning. When inserting items or otherwise editing the container, however, a list is faster.

      As an aside, both Java and the C++ STL library use the word "vector" to mean an array represented as a class. This is incorrect- by definition, vectors are numbers, and support operations like addition and multiplication. If something cannot be multiplied times two, then it's not a vector.
    25. Re:Funny quote of the day by blahtree · · Score: 1

      Although I don't argue lambda functions are not useful, the same concept that you've expressed above can be easily and clearly implemented in C++ or any other object oriented language. It's just a matter of inheritance. Every listener has a rating function, but it is defined differently for different kinds of listeners.

      I think the reason that you don't see lambda functions in many languages is that they have been replaced by other mechanisms that are easier to understand. That being said, if lambda functions are essential to the paradigm you think in, they can be added to many languages in the form of libraries. The boost libraries (www.boost.org), for example, provide this functionality (among many many others) for C++.

    26. Re:Funny quote of the day by renoX · · Score: 1

      > In France, students learn Caml during their first year before school of engineer.

      Since when?
      When I was in Math Sup/Spe (88/89), we used Pascal to do our computing lesson, I'd like to know when it changed.

      Anyway I doubt that functionnal programs will become popular: I learned Lisp during my third years of enginer's school but I never liked it: it looks like noise to me.

      Recently I tried to lear OCaml as it seems very fast, but I didn't like it too..
      I think that I'm going to use Python or Ruby the next time I need to do programming: they are much more easy to use and they do have some functionnal constructs if needed.

    27. Re:Funny quote of the day by Jo_6_Pac · · Score: 1

      I absolutely love Haskells typing system. It is extremely flexible yet it wont break like dynamically typed languages can.

    28. Re:Funny quote of the day by Ikari+Gendo · · Score: 1
      There are some problems where a recursive solution seems the obvious way to go, but it can bite you in the ass if you're not up to speed on (for instance) program complexity or other matters.
      (Before the assignment was due, the instructor suggested switching to an iterative approach, which was of linear complexity instead of exponential complexity.)

      Of course, this wouldn't have been a problem had you been using a language where tail recursion is optimized away by the compiler. This would include most decent functional language compilers.

    29. Re:Funny quote of the day by RevAaron · · Score: 2, Interesting

      Python certainly isn't the first semi-mainstream language to provide higher-order features. Smalltalk has been around in one form or another for 30 years. Smalltalk may not be the flavor-of-the-day like Python, but it's a proven, mature system which probably has been used for more 'mission-critical' systems at businesses than Python. As Python mature and Smalltalk evolves into something else, this is bound to change.

      Anywho, Perl has more users than Python, has been around for longer and boasts the same higher order techniques and advanced types that support FP well.

      Not that I'm telling you to switch to Perl or Smalltalk- everyone has their preference.

      I stumbled on to Python 6 years ago and was seriously impressed. A year and a half or two after that I found Squeak Smalltalk and was utterly blown away. Contained all of the stuff I liked about Python, but had more of it! Utter simplicity and total consistency. A hacker's dream- you can change anything about the Smalltalk system within the system itself. Want to experiment with changing the way the language works? No need to drop down to C as you would with Python.

      If you like Python or Ruby and have an open mind, it's definately worth checking out Smalltalk. If you'd like to try out an implementation that has good Unix integration, check out GNU Smalltalk; if you'd like to try an implementation that takes computing to the next level with a truly innovative GUI toolkit, check out Squeak. Both are open source, naturally.

      I suggest the open mind because Smalltalk isn't Java. It isn't C++. Even Python can look like legacy compared to Smalltalk sometimes. Just like an old C hacker or C++ fan needs an open mind to be able to look at Python without immediately dismissing it because it doesn't look like C/C++/Java, a Python or Ruby user must keep her mind open when looking at Smalltalk for the same reason.

      For those interested in trying out an open source Smalltalk that has access to all the .NET libraries and compiles to IL, check out #Smalltalk. And no, nothing was sacrificed to run Smalltalk on .NET as is done with some .NET languages. The #S developers implemented what the CLR didn't support, and made sure it still worked sensibly with .NET. A good example of how new languages on the .NET CLR don't have to just be "syntax skins."

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    30. Re:Funny quote of the day by ianezz · · Score: 1

      See also boost::lambda

    31. Re:Funny quote of the day by Eudoxe · · Score: 1

      >Since when?
      >When I was in Math Sup/Spe (88/89), we used Pascal to do our computing lesson, I'd like to
      >know when it changed
      I think it's only since 3 or 4 years, teachers can choose between Caml and Pascal. For all the students I know, it is Caml.

    32. Re:Funny quote of the day by C+Joe+V · · Score: 1
      There are some problems where a recursive solution seems the obvious way to go, but it can bite you in the ass if you're not up to speed on (for instance) program complexity or other matters.

      (Before the assignment was due, the instructor suggested switching to an iterative approach, which was of linear complexity instead of exponential complexity.)

      Of course, this wouldn't have been a problem had you been using a language where tail recursion is optimized away by the compiler. This would include most decent functional language compilers.

      I'm pretty sure this is wrong for the example given. If you write the fibonacci function in the "obvious" way (with two recursive calls), then it isn't tail recursive and will take exponential time no matter what the compiler does.

      If, on the other hand, you write fibonacci this way (in ML):

      fun fact' (a,b,n) = if n = 0 then a else fact' (b,a+b,n-1)
      fun fact n = fact' (1,1,n)
      then it is tail-recursive. An ML compiler will treat this as iteration, so you get (1) slightly better time performance, and (2) much better space performance, since you don't use additional stack space for every recursive call.

      Needless to say, people learning functional languages are taught to write code that is tail recursive when possible. Once you get used to this it is just as natural as writing loops.

      CJV

    33. Re:Funny quote of the day by C+Joe+V · · Score: 1
      OK, I'm a moron and used the name "fact" as though I were writing "factorial", not "fibonacci". Can you tell what my favorite trivial function is?

      CJV

    34. Re:Funny quote of the day by vivek7006 · · Score: 1

      Absolutely right. Python kicks ass!! I used python to develop a behavioral modeling tool during my Phd thesis, and absolutely loved it. GUI development using PyQT is sweet .

    35. Re:Funny quote of the day by PetoskeyGuy · · Score: 1

      You should be please to know then that Phython came preinstalled on my Office Max HP box. It's a hidden system directory installation just off the root. C:\Python22

      Not bad considering they it didn't even have Java on it to begin with.

    36. Re:Funny quote of the day by kruntiform · · Score: 1
      I found a nice way to deal with iterative things like fibonacci in The Functional Approach to Programming by Cousineau and Mauny. First define a general purpose iteration function (in OCaml notation, same as F# I gather):
      let rec iter n f x = if n = 0 then x else f (iter (n-1) f x);;
      where n is the number of iterations, f is the function to iterate, and x is the starting value. For example:
      # iter 25 (fun x -> x + 1) 0;;
      - : int = 25
      Now fibonacci just looks like this:
      let fib n = fst (iter n (fun (x, y) -> (x + y, x) ) (1, 0) );;
      Let's try it:
      # fib 70;;
      - : int = 696897233
      iter is tail recursive, so it's space efficient; it's O(n), so it's nice and fast. No problems. In some ways, that fib function is even easier to understand than an imperative one, I think, depending I guess on how mathematically minded you are.
    37. Re:Funny quote of the day by Darren.Moffat · · Score: 1

      The Glasgow Haskell Compiler has a pretty complete POSIX library, bindings for X11, and sockets (the latter written by me back '94/95).

    38. Re:Funny quote of the day by Ben+Hutchings · · Score: 1
      ...people like static typing because you can tell whether your program could possibly work at compile time with static typing...

      It also forces a lot of work in defining and selecting types, which isn't necessary in a dynamically typed language, while only eliminating a fairly small class of bugs. The real reason for static typing, I think, is to allow the generation of faster code.

    39. Re:Funny quote of the day by Ed+Avis · · Score: 1

      Still do you think that Haskell is a suitable language for writing 'mainstream' applications (like, say, a vector drawing package)? It seems to me a bit too uncomfortable to work through monad machinery and other weirdness to interact with the outside world. However I'd like to be proved wrong.

      Is the GTK-Haskell binding usable - how does it compare to writing the same code in C, or a C++ binding like gtkmm?

      --
      -- Ed Avis ed@membled.com
    40. Re:Funny quote of the day by iabervon · · Score: 1

      The real reason actually is reducing bugs; it only has a significant difference in efficiency when types are entirely static (i.e., no subclassing).

      The idea is that people actually do have to select and at least document types if anyone is going to be able to use the code; the question is merely whether this is done in a machine-readable and up-front way.

      I've used Scheme a significant amount, and, while it's extremely nice to be able to return values of arbitrary types, it also requires a whole lot of discipline to make sure you return the types the caller is expecting. Watching novice programmers use Scheme, it is possibly the most common bug (other than misplaced parentheses) in their programs; they find their code trying to take the car of #t because the wrong structure has ended up somewhere.

      Personally, I think the ideal situation would be optional static typing, with type inference supplying information which could be imported into the source file by an IDE. That is, you can write your program without any types, and the compiler will figure out what the types are (using superclasses and wrappers for primitive types when necessary); once you're happy with your program, you can import the types you've selected implicitly into your source files, so that you'll find out if they change without your knowledge. Furthermore, you can debug type errors effectively by finding places where the compiler couldn't prove that a type was correct.

    41. Re:Funny quote of the day by jaoswald · · Score: 2, Insightful

      I have just scratched the surface of Lisp's dynamism. Sure, for any fixed set of example functions, you can create the same structure in a static language.

      However, in Lisp, I can *redefine* functions continuously, and previous references to those functions remain intact.

      At any point, in my web server example, I could change the definition of any one of the generating functions, *as* the program is running, without stopping and recompiling the whole program. This kind of dynamism is pervasive throughout the language, and not just in some special libraries one can decide to use. Moreover, I don't have to fit my problem into the framework of inheritance, if it isn't natural.

      Conceptually similar does not mean equivalent in power. Lisp has been doing functions for almost 50 years now. The C++ community is just beginning to get the vaguest idea. It's the difference between real French cheese, for instance, and "american" "pasteurized processed cheese product." Big difference between the real thing and a crude imitation.

    42. Re:Funny quote of the day by blahtree · · Score: 1

      Having worked with lisp a little bit, I agree with you. It is powerful. The point I was trying to make, however, was that many of the same ideas can be accomplished in other languages. That extra step that lisp takes is exactly why it is a mostly academic language. Sure you can can dynamically redefine functions without recompilation, but most people just don't need to.

      If I was writing a web application, I would quite specifically not want to be able to do this, especially from a security standpoint.

      If you want to talk about "pasteurized processed cheese product", talk about VB : )

    43. Re:Funny quote of the day by jaoswald · · Score: 1

      By "academic" I assume you mean as in "create Orbitz." Lisp isn't just Scheme that you learned in your programming language survey course.

      If you think Orbitz was a straightforward web application, ask yourself why it took 30 years to replicate the legacy mainframe systems that handle airline ticketing. The problem is HARD.

      Lisp's dynamism isn't just "academic" in nature. It allows you to shape the language into exactly the tool you need to solve the problem. Not an object-oriented hammer which treats every problem like a nail, or a functional scalpel which slices but can't hammer, but whatever kind of language you need: hammer, screwdriver, buzz saw.

      Lisp has about a dozen features of which other languages have only about two each. If you focus on any one feature, you can replicate it in any language, especially if you only need a toy example. What you can't replicate is the synergy of all those features working together in an industrial strength language.

      For example: Lisp macros seamlessly integrate with every other aspect of the language, and have the full power of the language at hand to transform your program. They let you treat your whole program as data. In C++, you get preprocessor macros, which have their own warts, or template programming, which looks like a completely different language from C, or you get to use STL, which is yet another sub-language. In Lisp, the equivalent features all work the same, and pull together.

    44. Re:Funny quote of the day by blahtree · · Score: 1

      Lisp is not the be all and end all. Even in the case of Orbitz, although the hard algorithms are all implemented in Lisp, they still had to resort to using C++ and Java for some parts. It's really just a question of what the project calls for. You may be a skilled Lisp hacker, but our views are skewed by what we are familiar with.

      For the work that I do, low in algorithmic complexity but with real-time requirements, I have become quite efficient in C++. In my case, I see little advantage to moving to Lisp. If, however, my project were more algoritmically complex, I would definately reconsider. Sometimes all you need as a hammer.

  21. YAL - Yet Another Language by Compunerd · · Score: 1, Funny

    is it just me, or is Microsoft having their own little inflation in languages? In the 'good old days' there were fewer languages, and a developer could use time to learn them, getting good at it. with microsoft's Visual Basic, some versions differ more than Pascal and C, then comes C# and now F#? What's next? After they're done with C,C#,D,D#,E,F,F#,G,G#,A,A#,B, perhaps the arabic scale will do... I'll stick with Q-Basic

    --
    Computers are like air conditioners.
    - They stop working when you open Windows.
    1. Re:YAL - Yet Another Language by Anonymous Coward · · Score: 0

      I'm holding out for BBC Basic# for my Master128

    2. Re:YAL - Yet Another Language by geekoid · · Score: 1

      this means that future resumes will look like sheet music.

      Future headhunters will look for 'Mozart' quality resumes.

      I had better go put down 5 years of F# experience on my resume right away...

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  22. I like the idea by Anonymous Coward · · Score: 5, Informative

    My first year CS classes were taught in ML. It's a very potent language. I especially liked the type inference system. What other languages do in templates comes naturally in ML. Our CS prof gave us an example of Quicksort in 3 lines of readable code. As an academic language ML has problems interfacing with real life systems. OcaML was a step in the right direction and MS is building F# on it. I'll certainly try this one.

    1. Re:I like the idea by frodo+from+middle+ea · · Score: 1

      It's a very potent language.
      Exactly and Java is a very impotent language. What do you think all that Caffein is goin to do to you ?

      --
      for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
    2. Re:I like the idea by arkanes · · Score: 0, Troll

      quicksort in 3 lines of readable C++ code:

      #include "quicksort.h"
      Quicksort sorter;
      sorter.Sort();

    3. Re:I like the idea by Anonymous Coward · · Score: 0

      Can we see the quicksort example?

    4. Re:I like the idea by pclminion · · Score: 1

      I don't know ML specifically, but in functional terms quicksort can be written something like this:

      qsort([]) = [] -- base case
      qsort(list) = -- recursive case
      qsort([x in list where x < list[0]]) + list[0] + qsort([x in list where x > list[0]])

      This is functional PSEUDOCODE, it doesn't correspond to any particular functional language, but it's in a functional spirit.

    5. Re:I like the idea by Anonymous Coward · · Score: 0

      You know, you can write almost exactly the same pseudocode, but run it in Python, and it will work!

      # Barely tested Python qsort from previously posted pseudocode -- Jeff P.
      def qsort(lst=[]):
      if len(lst) == 0:
      return []
      else:
      return qsort([x for x in lst if x < lst[0] ]) + [lst[0]] + qsort([x for x in lst if x > lst[0]])

      # Quick tests
      print "> improper call:\t", qsort()
      print "> empty list:\t", qsort([])
      print "> in order:\t", qsort([1,2,3,4,5,6,7,8,9,0])
      print "> put of order:\t", qsort([3,2,1,2,3,4,1,32,20,19,1,56,])
      print "> characters:\t", qsort(["Z", "X", "Y", "c", "b", "a", ""])
      print "> floats:\t\t", qsort([3.14,2.22,899.899])

      #See for yourself...
      > improper call: []
      > empty list: []
      > in order: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
      > put of order: [1, 2, 3, 4, 19, 20, 32, 56]
      > characters: ['', 'X', 'Y', 'Z', 'a', 'b', 'c']
      > floats: [2.2200000000000002, 3.1400000000000001, 899.899]

      Just another reason why I love Python so much!

    6. Re:I like the idea by Anonymous Coward · · Score: 0

      Here's a five line example in OCaml, but you could squash it into three if you wanted. I'm sure it's not as efficient as it could be, but it only took about 30 seconds to write:

      let rec qSort l =
      match l with
      [] -> []
      | h::t -> (qSort (List.filter (fun x -> x < h) t)) @
      (h::(qSort (List.filter (fun x -> x >= h) t)));;

    7. Re:I like the idea by GlassHeart · · Score: 1
      Our CS prof gave us an example of Quicksort in 3 lines of readable code.

      ...and how many lines of unreadable ones?

    8. Re:I like the idea by slackergod · · Score: 2, Interesting

      You should take a look at Erlang .

      It's much in the style of ML, but with ideas from many other languages thrown in.
      And it definitely isn't an "academic" language... it's developed and used by Ericsson
      to drive telecommunications systems which have to handle a huge load, and cant be allowed to crash.

      Luckily, it's now open source (sorta), and the basic Erlang OTP package
      contains about as many side features as Python does :)

      It's inherently parallel (a single program can easily distribute itself across multiple computers),
      with concurrencies, and all kinds of other fun 'academic' features...
      don't get me started on it's vm's model... it brings tears to my eyes in a way only LISP ever could (that's a good thing).

      At the moment, I prefer Python, but only because it's got better C integration...
      Erlang works best when only the lowlevel drivers are written in C...

      -slackergod

    9. Re:I like the idea by jorleif · · Score: 1

      I guess someone should point out that even though this is indeed the quicksort algorithm, it does not sort in-place, but allocates temporary storage for the intermediate lists. The in-place sorting is a very significant reason behind quicksort's tremendous performance when sorting arrays in imperative languages. If one is going to use temporary storage, then why not use merge-sort instead which is guaranteed O(N log(N)) worst case, and has simpler code (at least in C)?

    10. Re:I like the idea by platypus · · Score: 1
      Not three lines, but
      def qsort(lst):
      if len(lst) == 0:
      return []
      else:
      x = lst[0]
      return qsort(filter(lambda i: i<x, lst[1:])) + [x] + qsort(filter(lambda i: i>=x, lst[1:]))
      (shamelessely stolen from a recent threat in c.l.p)
    11. Re:I like the idea by gumbi+west · · Score: 1

      Yeah, but think of all the time you can save typesetting your code.

      the other thing to note is that none of these are O(N ln(N)) for a presorted list, they are all O(N^2).

    12. Re:I like the idea by Anonymous Coward · · Score: 1, Insightful

      Golly! You mean to tell me these five line (correct, working, and polymorphic) versions of quicksort aren't fully optimized? Say it isn't so! Tell you what, rockstar, you show me your thee line fully optimized quicksort and I'll show you mine.

      Look, the point of these examples is to give a taste of the expressiveness and declaritave nature of FP languages. If you are in one of those special cases where you need to worry about space constraints, then you can feel free to use ML's imperative features to sort an array by modifying it in place. Or if you want to avoid the "sorting an already sorted list" problem, feel free to write a median-of-three version of quicksort (or use merge or heap sorting which don't ever have this problem).

      -30-

  23. ML-based by Anonymous Coward · · Score: 1, Funny

    and functional languages(it's ML-based, too!)

    Good I'm a big fan of Marxist-Leninst programming languages.

    1. Re:ML-based by arpy · · Score: 1

      All soviet jokes in reply to this comment will be punished by firing squad. So trolls can just get F#ed.

    2. Re:ML-based by LizardKing · · Score: 1

      In which case you might like Stalin - http://www.ece.purdue.edu/~qobi/software.html - as that's what Marxism/Leninism inevitably leads to.

    3. Re:ML-based by Anonymous Coward · · Score: 0

      No, no, no. McCartney-Lennon, not Marx-Lenin.

    4. Re:ML-based by Anonymous Coward · · Score: 0

      You must be from east germany-
      otherwise ml you wouldn't have connected ML with Marxismus Leninismus.

  24. Related to Harlequin ML by shic · · Score: 3, Interesting

    I wonder if F# has any relationship to the "ML for Microsoft" (I forget the name) efforts from Harlequin Software a few years ago? ML has always seemed an ideal fit for many single-user RAD developments, it just needed an appropriately stable, complete, clearly specified component library and professional quality IDE in order to reap productivity benefits over Java/C# et al.

  25. Wrong... you couldn't.... by botzi · · Score: 0, Troll
    For instance, consider the Function square(int) which produces the square of any integer I give it. If I wanted to square every member of an integer array, then I could accomplish it in a Java-like language as follows:

    for (int i=0; i < myIntegerArray.size(); i++) {
    myIntegerArray[i]=Square(i);
    }

    Result: Every integer in my array would be squared.

    Why do I feel ready to bet that this won't even compile??????? Anyway, I definitely enjoy reading programming related papers from people so confident(to read: dumbass-ed) that do not check down their own examples......

    --
    1. No sig. 2. ???? 3. Profit!!!
    1. Re:Wrong... you couldn't.... by Anonymous Coward · · Score: 0

      Even if it compiled, its wrong.

      myIntegerArray[i]=Square(i);

      Result: Every integer in my array would be squared.

      Uh, no. The result is that you've overwritten every integer in your array with the incremental result of square(i); you fool! Unless your array of integers just happened to range from 0 to n in steps of 1, then you've just blasted your array of integers away.

    2. Re:Wrong... you couldn't.... by jacobm · · Score: 1

      in a Java-like language ...

      Get over it. He's just trying to convey the idea, not show you a working example of a piece of code in a particular language.

      --
      -jacob
    3. Re:Wrong... you couldn't.... by Anonymous Coward · · Score: 0

      heh... that .size() instead of .length sure is a problem.

      of course, the fact that each array element is set to the square of its INDEX is probably worse :)

    4. Re:Wrong... you couldn't.... by botzi · · Score: 1
      To be honest.... I saw the "-like" part in the 5 to 6 seconds after posting. I've had two immediate flashes:

      1. Damn... I gotta start using those funky preview buttons.....
      2. uuhuuuuuuuhh... Unfortunately, I don't remember anymore what the second one was about.....
      You're right.... my fault.... sorry.

      PS: That's the last time I'm not previewing....count on it;o)

      --
      1. No sig. 2. ???? 3. Profit!!!
    5. Re:Wrong... you couldn't.... by Anonymous Coward · · Score: 0

      Anyway this is squaring the index to the array, not the value.

      You're right...the example IS totally F#ed up!

    6. Re:Wrong... you couldn't.... by xenocide2 · · Score: 4, Insightful

      Which only goes to show how much cleaner mapping functions to lists is.

      map (fun x -> x*x) list

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    7. Re:Wrong... you couldn't.... by LordLucless · · Score: 1

      Which language would you try and compile it under? The author doesn't specify which language it's for; he just specifies "Java-like". The example is more in the nature of pseudo-code than real code. He's demonstrating a methodology, not an implementation.

      Anyway, I definately enjoy reading critical comments from people so knowledgable(to read: arrogant) that they don't bother reading their own quotations.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    8. Re:Wrong... you couldn't.... by Opie812 · · Score: 1

      the example wasn't intended to compile. It was there for illustration purposes only...you know, to get an idea across.
      he even said as much:
      in a Java-like language

      --
      I'm not a nerd. Nerds are smart.
    9. Re:Wrong... you couldn't.... by botzi · · Score: 1
      Anyway, I definately enjoy reading critical comments from people so knowledgable(to read: arrogant) that they don't bother reading their own quotations.

      You want me to do the "Dance of shame" or what???? I've already stated that this was a mistake, and as far as I recall, I've done it about 5 minutes after the initial posting(=>before being moderated))... Lucky you if you don't make any mistakes.....

      --
      1. No sig. 2. ???? 3. Profit!!!
    10. Re:Wrong... you couldn't.... by Opie812 · · Score: 1

      mmmmmmmm....humble pie. The best kind!

      :)

      --
      I'm not a nerd. Nerds are smart.
  26. Microsoft Attempt to Own the RIAA by dduardo · · Score: 5, Funny

    If they can patent/trademark/copyright all the notes used in music, they will be able to own the RIAA.

    The have: C#,F#
    Left: A,A#,B,C,D,D#,E,F,G,G#

    Can't wait for the other 10 programming languages

    1. Re:Microsoft Attempt to Own the RIAA by elsegundo · · Score: 1

      Well, they'd own the music written using the 12-tone scale we're all familiar with. I suppose stuff by John Cage, et al, would still slip through their fingers....

      --


      The revolution will be televised. Blackout restrictions apply.
    2. Re:Microsoft Attempt to Own the RIAA by Mocenigo · · Score: 2, Funny
      If they can patent/trademark/copyright all the notes used in music, they will be able to own the RIAA. The have: C#,F# Left: A,A#,B,C,D,D#,E,F,G,G# Can't wait for the other 10 programming languages

      A, B and C have been already been used for programmin languages, so this leaves out only 7 available names.

      OTOH, they can still use flats, and if they pretend that the equal temperament is not used at MS (today, different tunings are used also to perform music of the past in an authentic way) then C# and Db would be different languages.

      Not to speak of the possibility of using quarter-tones! That would be AVANTGARDE PROGRAMMING LANGUAGES. And what about even smaller intervals?

      Later, they must go directly to frequences. THey could call a language 440 instead of A, for example.

      I fear, however, that this is typical MS monopolistic strategy. They are clearly trying to steal the professional music market away from Apple. And the fact that they do not fear to use strange intervals, not to speak of the possibility to use microtonal intervals, might even suggest an attempt to court music institutions like the IRCAM, which are almost standardised on Macs.

    3. Re:Microsoft Attempt to Own the RIAA by Anonymous Coward · · Score: 0

      sorry, DB is taken, by IBM.

      (and yes, IBM is traditionally CASE-INSENSITIVE)

    4. Re:Microsoft Attempt to Own the RIAA by inertia187 · · Score: 1

      Left: A,A#,B,C,D,D#,E,F,G,G#

      And I wouldn't put it past Microsoft to sell B(flat), which is really just a repackaged version of A(sharp). Then there's double sharps, and double flats. It just goes on. And don't forget the notes between half steps.

      --
      A programmer is a machine for converting coffee into code.
    5. Re:Microsoft Attempt to Own the RIAA by anshil · · Score: 1

      Aso whats A then?

      Note C history is BCTL -> B -> C !

      --

      --
      Karma 50, and all I got was this lousy T-Shirt.
    6. Re:Microsoft Attempt to Own the RIAA by Sanga · · Score: 1

      10 others?

      Don't we already have B & C

    7. Re:Microsoft Attempt to Own the RIAA by orkysoft · · Score: 1

      Homer: "Ooowww..."
      Lawyer: "That's A flat!"
      Homer: "Ooohhh..."
      Lawyer: "That's better!"

      --

      I suffer from attention surplus disorder.
    8. Re:Microsoft Attempt to Own the RIAA by dubbreak · · Score: 1


      so microsoft programming languages are scalable?

      *rimshot

      ha ha ha.. that's funny on so many levels.. (ok maybe not)...

      --
      "If you are going through hell, keep going." - Winston Churchill
    9. Re:Microsoft Attempt to Own the RIAA by weston · · Score: 1

      4'33" could make it until they came out with "REST"...

    10. Re:Microsoft Attempt to Own the RIAA by Twintop · · Score: 1

      Err...I think there's only 5 left. Don't forget about D and E now.

    11. Re:Microsoft Attempt to Own the RIAA by Old+Wolf · · Score: 1

      Hopefully they will succeed, then everyone will have to listen to classical music with B#, E#, Fx, etc. and not this Eminem crap

  27. Shouldn't that be... by Anonymous Coward · · Score: 1, Funny

    from the g-flat dept. ?

    *Twitches at the thought of his 8 years of Music Theory classes*

    1. Re:Shouldn't that be... by SEWilco · · Score: 1
      For those of us at the "Doe: a deer, a female deer" level of music study:
      'F-sharp' and 'G-flat' are the same. And C-sharp and D-flat are the same.

      Or is that F-tic-tac-toe, with nine cells?

    2. Re:Shouldn't that be... by Anonymous Coward · · Score: 0

      I'm just waiting for them to decide on B# or perhaps E#

    3. Re:Shouldn't that be... by Anonymous Coward · · Score: 0

      Naw, it's the Ex (E double-sharp) department.

  28. # == Hash by Anonymous Coward · · Score: 0

    No need to hush any more.

    F#ism is finally back in F#ion.

    This means all Microsoft programmers are F#ists.

    1. Re:# == Hash by The+J+Kid · · Score: 1

      Heard at a Microsoft Conferance:

      MS Guy 1 : What's your favourite two languages?

      Guy2: F#C# you.

      MS Guy 1: Me? I'm sticking with VB & vb.Net Yeah baby!

      --
      Moderation: +4. Modded 70% Funny and 30% Overrated. 100% Saturated.
  29. F... F#! by Anonymous Coward · · Score: 0

    Another all-new, all-better programming language has been unveiled where startups, who are too stupid to write code in 30 years old and ALWAYS sufficient alternatives, can rely on that they will get bankrupt as soon as the main marketing for that language stops or that language has been prooven insufficient (like Java where the pathetic advantage of compile once - run everywhere was valued over such essential things like: SPEED). Now flame me and F... yourself!!!

  30. F#CK by Anonymous Coward · · Score: 0


    Or is that F#C#.

    YARPL (yet another redundant programming language)

  31. hooray by 1seconddelay · · Score: 0, Redundant

    Anything from microsoft has to be world changing. I am so excited i wet myself. Maybe we could get a whole B flat scale of langauages like g,a,b,c,d,e,f# and higher g. I think microsoft is really kewl.

  32. Filters by alexjohns · · Score: 2, Insightful
    Considering that most corporate mail servers filter pretty much all email containing variants of 'F*', 'F#', 'F###', etc., I really don't see how this could possibly catch on. Certainly not in large corporations. Maybe MS will need to start a grass-roots campaign.

    And, you know, I've been working for a very large financial institution for 2.5 years. I've seen no sign of C# anywhere. Going to the programming racks at Borders would make you think differently. I honestly think there's more C# books out there now than all other programming language books put together. It's amazing.

    1. Re:Filters by zero_offset · · Score: 2, Informative
      Insightful? Please.

      First of all, I've been working in a probably-much-larger (one of the largest) financial institutions for six years, and I see C# all over the place. So much for anecdotes.

      Second, I've been working for various large companies since Internet-based e-mail started, and I've never seen anything that would filter F#. So much for speculation.

      Now if I just had some moderator points. :P :)

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

    2. Re:Filters by alexjohns · · Score: 2, Informative
      OK, I see your large financial institution, and raise. I work for Wells Fargo, in one of their divisions. 130,000 employees. I doubt it's the largest one in the world, but still pretty large. Back to you. Call?

      We have a common Tech Library (in San Fran) where you can check out books. I see 3 C# books in the online listing. I imagine some division somewhere is toying with it. Everyone I know about in the company is doing C/C++/Perl/Java.

      I was a sysadmin for a few years. I've seen several instances where filters on "f-junk", where -junk is some subset of characters like '!@#%*', were implemented. Don't know what country/jurisdiction you live/work in, but not only is it a politeness issue, it's a sexual harassment issue. Just because some PHB somewhere decides to let the f-bomb slip in an all-employee email doesn't mean the company wants to open itself to a lawsuit. I never implemented one myself, but I've been on mailing lists/fora where the necessity and implementation details were discussed. (Also, internally, we've had emails from the Exchange people about inappropriate language. I don't know specifically that they filter on that word, but I'm pretty sure there's a flag somewhere that gets raised. Not sure what happens. No desire to find out, I like my job.)

      So then, if you had moderator points what would you moderate me as? Offtopic? Nope, on-topic. Flamebait? Nope, don't think I qualify. Troll? No, not even. Best you could do is overrated, I guess. The coward moderator's choice (since it doesn't get meta-moderated.) I always like the guys who down-moderate you because they disagree with you.

      HAND.

    3. Re:Filters by zero_offset · · Score: 1
      JP Morgan Chase, 90K employees, $650 billion in assets. Not as many employees, but Wells Fargo is rated as the 5th or 6th largest bank and JP is around 3rd. We have .NET projects of all types flying around here. Of course, we have projects using pretty much anything you can think of... but my point is that C# isn't particularly rare. Furthermore, I have friends at two other large firms -- Bank of America and Merrill Lynch, and they're both reporting the same thing, C# is alive and well. VB.NET too, apparently (I was personally hoping C# would put a bullet in its head).

      I've worked at five other companies I'd consider very large, and I've never seen anything that would filter something as blatantly innocuous as F#.

      Since you asked, if I had moderator points, I WOULD moderate your post as Overrated, as suggested by my opening comment "Insightful? Please." I disagree, I did not find your post at all insightful, which is precisely what the Overrated moderation is for. Normally I try very hard to moderate useful content up, rather than moderate down.

      But before you click Reply, consider this: had somebody rated you Interesting, I wouldn't have used the Overrated moderation had it been available. Ah ha, someone who actually knows the difference between Insightful and Interesting. Sadly the distinction appears to be lost on most of the moderators around here.

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

  33. Will You Marry Me? by Anonymous Coward · · Score: 0

    see subject

  34. what we really need is by jdew · · Score: 1, Funny

    ADD ONE TO COBOL GIVING COBOL

  35. /me checks calender by Anonymous Coward · · Score: 0

    Er guys, I think they got the date wrong : it's not april fools day!

    1. Re:/me checks calender by wastaz · · Score: 1

      Microsoft is saying that a product of theirs is nearing workable status, thats an april fools joke in my world.

      Perhaps it's april fools day in redmond now?

    2. Re:/me checks calender by sparkes · · Score: 1

      "Perhaps it's april fools day in redmond now?"

      Dam that windows automatic daylight saving routine!

      sparkes

  36. Re:MS's F'ing Language ... by Anonymous Coward · · Score: 0
    I'm tired of all these F'ing languages. Why can't we just stick to the standards?


    If we'd stick to the standards we would be typing machine code onto punch cards, dumbass.

  37. I'm just waiting for... by emo+boy · · Score: 0

    ADA# and ADA#THUMBTACK. Oh stop it's killing me!

  38. Re:F sharp or F hash? (GOD DAMN BRITS) by Anonymous Coward · · Score: 0

    Because like any of your fellow Americans, you'll believe anything the moving pictures in the glowing box tell you.

  39. Maybe... by CommieBozo · · Score: 1

    Maybe the idea is that since you can use all of the .NET languages in the same project, you can do the things that a functional language are good for in F# and the rest in C#.

  40. Wrong topic Marker? by Dynastar454 · · Score: 1

    With a title like "Inside Microsoft's New F# Language" I was looking for the big foot, but I guess this really isn't a joke...

    --


    Laugh at stupidity: mod idiots +1 Funny.
  41. how about octothorpe by khold · · Score: 1

    Why can't Microsoft call it F Octothorpe? (Look up octothorpe in the dictionary if you don't know what I am talking about)

    --
    rm -rf sig
    1. Re:how about octothorpe by Anonymous Coward · · Score: 0

      Mod parent as -1, Too demanding. He could have just provided us with a definition.

  42. i have a question by 1seconddelay · · Score: 0

    If they cant make an oerating system why do you think they can make there own langauge? i know i wont trust it. Also why the hell is my karma bad? I havnt done anything wrong. WTF?

    1. Re:i have a question by Anonymous Coward · · Score: 0

      Don't think of it as karma. Think of it as "level of conformity to groupthink".

  43. Shooting their own foot. by mnmn · · Score: 0, Flamebait


    Microsoft should be really grateful if the market really picks up C#. Instead theyre introducing competition to themselves. Good programmers choose C, C++ or java and stick to it for the rest of their lives. Microsoft stooges however would look up to Microsoft and take whatevers thrown to them, but its the good programmers Microsoft should be going after. They did claim theyve learned alot from Linux's loyal developer community, they obviously lied.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    1. Re:Shooting their own foot. by d_lesage · · Score: 1

      Good programmers choose C, C++ or java and stick to it for the rest of their lives

      Actually, no. That's lazy programmers.

      Real good programmers know that programming languages are just tools. For every task, there are many tools you can use; some are better than others. By using the same tool for every task, you are doomed to use an inefficient one in some cases.

      --

      Ich werde nie wieder denken
    2. Re:Shooting their own foot. by arkanes · · Score: 1

      MS doesn't give a shit about C#, they care about .NET. Pretend that .NET is the Win32 API and you'll see what I mean. They don't care what language you use, they just want you to target Win32. In the future, they don't care what language you use, they just want you to target .NET. Simple.

    3. Re:Shooting their own foot. by XMode · · Score: 1

      They did claim theyve learned alot from Linux's loyal developer community, they obviously lied.

      No, no, no... You have it all wrong. They have learnt that once people migrate to Linux they never come back, so to stop that they get their existing developers to switch to a new language that you cant use in Linux.

      So once everyone is using F#%$! or whatever, and has forgotten how to program in good old C++, they wont have any more defectors and therefore no more problem..

    4. Re:Shooting their own foot. by Anonymous Coward · · Score: 0

      there is only one problem with this theory: you can get quite a few ML implementations for linux (ocaml, sml, mlto, mlkit). since g-flat implements only a subset, there is nothing holding you back migrating

  44. Lists, lists and lists... by Anonymous Coward · · Score: 0

    I just finished a Language Design Course on my way to my masters in CS in which I did a bunch of work with NJ/SML. I am a Java programmer now and I must say there was a STEEP learning curve just to become decent with ML. Still, the one thing I do like about ML is its ability to handle lists very effectively. I am able to write sort algorithm code that is a small percentage of the code that would be required in JAVA.
    Let's face it, some languages are better suited to certain tasks than others. I would love to see a language that had the OO/imperative-ness of JAVA, the functional-ness of ML and the logical-ness of something like Prolog. Likely it would be a convoluted mess of a language but if done right it could be extremely powerful. Imagine sorting a list in two lines of recursive code and then asking an interpreter questions about the resulting list.

  45. great.... by ChuckMaster · · Score: 1

    Now the job postings will read: must have five years exp. in f# rather than: must have five years exp. in c# just when I was getting my 10 years exp in Java that they also require...

    1. Re:great.... by geekoid · · Score: 1

      when to say 10 years of experience they mean two, right?

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  46. Re:first post by Mocenigo · · Score: 2, Informative
    f # souns really good next to g

    Not really. F# and g form a dissonance, called a minor second. It happens though that I like g-f#, a major seventh. But maybe a listen to too much contemporary music.

  47. NT 2K XP VB XP C# F# by rulethirty · · Score: 1

    I have to hand it to M$ to come up with yet another cute two letter abbreviation that doesn't pertain to anything! Let's look back and reflect... NT, (2K?), (VB?), XP, C#, F# ? I'm seeing a trend towards this... at this rate they will use up all possible character combinations by the year 2154! ([26+1]*[26+1] : 26 for all alahabet chars and +1 for the '#' symbol)

    1. Re:NT 2K XP VB XP C# F# by hellswraith · · Score: 1

      I have to hand it to M$ to come up with yet another cute two letter abbreviation that doesn't pertain to anything!

      NT - Here
      2K - Don't need a link for this...think about it.
      VB - Visual Basic
      XP - Experience

      The others, I don't know, you may be correct on.

  48. It is octothorp !! by dorfsmay · · Score: 1

    It's definitely not pound, not hash maybe sharp but really, it is octothorp.

  49. Why I like Java... by Eric_Cartman_South_P · · Score: 3, Insightful
    ...the way I wrote a file to a disk 5 years ago is the same way I write it today. And I know how to write a file to a disk on Solaris, Linux, Mac, BSD and Windoze since I know the little bit of code that does it in Java. Although a simple real world example, it is pretty powerfull stuff when you think about it. And remember, NO RELEARNING.

    I know, AWT->SWING and a bunch of other examples, but a CORE PART of Java does not change. It remains the same as much as possible, in regards to the API.

    MS goes ahead and changes things completely every few years. Java, for the most part, does NOT require tons of relearning. The API's are there if you need them, but a majority of them do not change. They might get "cleaned up" a bit, or a few deprecated here or there, or in my opinion a few too many may be created to do the same task, but if you could knock up a Java prog years back, it's the same way today for the most part. SIMPLE.

    1. Re:Why I like Java... by Anonymous Coward · · Score: 0

      It's funny you should mention that, Java's I/O API has changed in the past 5 years (from streams to reader/writers), whereas c#'s has been consistent across different platforms ever since its release

    2. Re:Why I like Java... by Anonymous Coward · · Score: 0

      You can read files with C the same way on all POSIX compatible systems, or at least have a POSIX-emulation layer to make sure that you can.

      API stability is hardly a fault of the language.

      And java still sucks even after 5 years.

    3. Re:Why I like Java... by robyn217 · · Score: 1

      I have to agree with you. I used to be a die-hard C++ fan. Then, I was forced to use Java frequently when I went back to grad school. Now, I'm a total convert. I love Java. It's so simple and efficient. Once and a while I get confused as to how I should wrap up things (like when doing network communications, wrapping streams and bufferedstreams etc.)--but overall I think Java is my favorite language to use professionally and academically.

    4. Re:Why I like Java... by drinkypoo · · Score: 1

      Writing a file to disk the way you always have is becoming obsolete. It's become clear that organizing files with a tree structure is only appropriate for certain types of files.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Why I like Java... by Anonymous Coward · · Score: 0

      You can read files with C the same way on all POSIX compatible systems, or at least have a POSIX-emulation layer to make sure that you can.

      You don't even need that. If you stick to the C library and use fopen(), fread() etc. then your code is portable no matter what platform you are using. E.g. I can write a program in C that compiles both on Linux and on Windows if I use the C library and a cross-platform toolkit (If required).

    6. Re:Why I like Java... by arkanes · · Score: 1

      MS provides BINARY compatability for programs written 5 years, 4 major versions, and 1 architecture change ago - more than that, if you count 16bit programs (support for that is bad enough that I won't hold it up as an example, though). That's a pretty fucking impressive achievement. I'm not sure where you get your "changes things completely every couple years" from.

    7. Re:Why I like Java... by Drakonian · · Score: 1
      What about nio??

      Man, the Java way to write to a disk is crazy. Wrappers upon wrappers upon wrappers.

      --
      Random is the New Order.
    8. Re:Why I like Java... by animaal · · Score: 1

      It's about maintainability of the source. Would you write a critical app in a language that you think will be obselete in a couple of years time?

      A car manufactured fifty years ago is still compatible with today's roads, but good luck trying finding replacement parts to maintain it!

    9. Re:Why I like Java... by Anonymous Coward · · Score: 0

      Streams and readers/writers are two completely different things. Stream handle binary I/O while readers/writers handle Unicode.

      Streans still rule for most applications.

    10. Re:Why I like Java... by bellings · · Score: 1

      The file I/O in Java has changed *twice* since its introduction. If you're still writing to a file the same way you were 5 years ago, you're doing it *wrong*.

      --
      Slashdot is jumping the shark. I'm just driving the boat.
    11. Re:Why I like Java... by Anonymous Coward · · Score: 0

      So by your definition, no one should ever buy a car (Hey, big investment, critical to your personal success) becuase someday you won't be able to buy parts for it.

      Brilliant thinking.

    12. Re:Why I like Java... by Anonymous Coward · · Score: 0

      The I/O didn't change, it got augmented.

      The reasons for including streams in the I/O API is still valid today as it was five years ago - for writing binary data.

      Same with readers and writers - for Unicode handling. It didn't *change* anything - it just added more and different functionality to the APIs....

      I'd say that a lot of the core APIs in Java (but not all) are well though out, and it's there for a specific purpose, with a specific philosophy behind it. That's why a lot of people like Java.

    13. Re:Why I like Java... by Anonymous Coward · · Score: 0

      Lack of parts availabity is the main reason many European car manufacturers failed in the US market in the 70s.
      Hearing your mechanic say "I have to order that from Sweden" is a real problem.

      At least your mechanic is insulting about it like your local MS consultant is. "You are STILL using VB6!! We obsoleted that a whole 9 months ago! (So go fuck off, there's no fix)"

      On the other hand, I can get on the phone and have a carberator for a 57 Chevy or a 75 Honda overnight, and I can get Swing for your Java 1.1 codebase.

    14. Re:Why I like Java... by ctve · · Score: 1
      I should get off Microsoft software.

      I'm seriously sick of Microsoft. It seems that every 6 months there is something new to relearn.

      I used to work on COBOL and IDMS, and worked with it for 10 years. In the place I worked were plenty of people with that level of experience in it. No-one had to really go looking up stuff, and the languages didn't change.

      People are going to get really stuck - it's already happening. Some companies have loads of languages because the scale of hardware and versions of software improved.

      Does anyone REALLY need .net? Sure, it makes things easier, but what about the reskilling costs. I'm not just talking about people going on courses, but getting real solid long-term experience? By the time they've reached that point, MS will move on again.

    15. Re:Why I like Java... by Anonymous Coward · · Score: 0
      MS goes ahead and changes things completely every few years

      Do tell! What has been changed every few years?

    16. Re:Why I like Java... by WaKall · · Score: 1

      That's because they add the new API's under a new package name when they realize the old API/implementation is broken. There's a reason that many 1.1 default API's are deprecated now.

      Aside from deprecation, Java does remove interfaces. For example, System.getenv is now gone in Java 1.4.1 - it is flagged as deprecated only, and you will compile with just a warning. But if you run, it will give you a runtime exception. I bet there's more than a few apps out there on 1.3 or lower that rely on getenv, and now they'll have to go to JNI to do it.

      However, Java is more stable and less problematic than (for example) C/C++. You don't have to rebuild for platform, and you are portable across a large number of platforms. But it's probably not as tight and consistent as the .NET CLR just because Java tries to support all platforms, and .NET was aimed at a hand-picked set, thus it can rely on certain things that Java can't - like pids, or the fork() command.

    17. Re:Why I like Java... by Anonymous Coward · · Score: 0
      I'm seriously sick of Microsoft. It seems that every 6 months there is something new to relearn

      Ok, WHAT is your exact problem? Otherwise, you are just a mindless Microsoft bashing zealot.

      I used to work on COBOL and IDMS, and worked with it for 10 years. In the place I worked were plenty of people with that level of experience in it. No-one had to really go looking up stuff, and the languages didn't change.

      You obviously never used more than one COBOL compiler.

      People are going to get really stuck - it's already happening. Some companies have loads of languages because the scale of hardware and versions of software improved.

      Nobody forces them to change direction at the drop of a hat. That is THEIR problem.

      Does anyone REALLY need .net? Sure, it makes things easier, but what about the reskilling costs.

      Visual Studio .NET still makes COM (aka ActiveX) stuff. The .NET IDE is a wonderful environment (even though the intellisense with C++ has the brains of a potted plant).

      As for reskilling, the languages are the same (except VB). VB underwent changes to fit nicely with the CLR (or something) but it isn't like trying to jump from Delphi to PERL. If some smacktard needs a full blown course to upgrade developing from VB6 to VB.Net, they aren't really worth keeping.

    18. Re:Why I like Java... by ctve · · Score: 1

      You obviously never used more than one COBOL compiler. Wrong. I've used 2 compilers. Took someone about 5 minutes to explain how to compile on the different environment and I was away developing. I was getting business solutions shipped quickly. Nobody forces them to change direction at the drop of a hat. That is THEIR problem. So, Microsoft are going to be supporting VB6 for ever? No. People are being forced to change. As for reskilling, the languages are the same (except VB). VB underwent changes to fit nicely with the CLR (or something) but it isn't like trying to jump from Delphi to PERL. If some smacktard needs a full blown course to upgrade developing from VB6 to VB.Net, they aren't really worth keeping. My issue is whether the time and cost required for such an upgrade is worth it to the bottom line of the business. Every new language or version brings benefits, but also pitfalls. And who looks after the old code you have, when the developer base moves on? What happens if Microsoft ditch COM and replace it with something else?

  50. The best man by FuzzyDaddy · · Score: 2, Insightful
    Hire the best man for the job.

    I certainly wouldn't hire an insecure prick for any job. Especially if he was so insecure he was grasping for straws as to why he wasn't succeeding. You think because someone doesn't speak english without an accent they're stupid? How's your hindi?

    --
    It's not wasting time, I'm educating myself.
  51. Hmmm... by redtail1 · · Score: 1

    Are C# and F# the two notes that make up the theme to Jaws?

    1. Re:Hmmm... by jellomizer · · Score: 1

      No but C and C# would sound closer. But I think it is a E E# for the actuall notes. It is some minor second.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    2. Re:Hmmm... by Anonymous Coward · · Score: 0
      Are C# and F# the two notes that make up the theme to Jaws?

      You're not a musician, are ya?

      Well, if you want something along those lines, the first two (distinct) notes of "Taps" (you know, the thing they play at military funerals) can be C# and F#. At least if you want to play in the key of F#. Now, I'm not sure if trumpet players like playing in the key of F#...

  52. Re:first post by 1seconddelay · · Score: 0

    excactly and we know the dissonance and microsoft go hand in hand =)

  53. The Upgrade Machine by hexidec · · Score: 1
    Sounds like the M$ "language development labs" are feeling left out of the biannual forced-upgrade cycle. So why not join the bandwagon instead by introducing a new programming language every 2 years to replace the previous one? That way you obsolesce both the existing codebase and the existing developers (not to mention all those MC$E certifications) and obliterate any mindshare built up during that period.

    It's thinking like this that has made Windows the stable, long-haul product it is today.

    -----

    What has a two-year lifespan? Rats and Windows.

    1. Re:The Upgrade Machine by mingot · · Score: 1

      Sounds like the M$ are feeling left out of the biannual forced-upgrade cycle.

      M$, eh? So witty.

      So why not join the bandwagon instead by introducing a new programming language every 2 years to replace the previous one?

      Except it's not a replacement for anything. It'll run within the .NET framework and interoperate with the existing languages.

      That way you obsolesce both the existing codebase and the existing developers (not to mention all those MC$E certifications) and obliterate any mindshare built up during that period.

      Again, not so. Again, it's not being marketed as a replacement. It also interoperates with other .NET framework languages. And there are already a lot of .NET languages. Microsoft has already released three. Other vendors have released more. And even though Microsoft is doing it this is a Good Thing(tm). Something tells me that if some OSS development group was releasing this language and it targeted Java bytecode (and could take advantage of the existing Java type library) that you would consider it is such.

      It's thinking like this that has made Windows the stable, long-haul product it is today.

      It's uneducated comments like yours that lead people to believe that OSS/Linux advocates are all a bunch of overzealous retards who are totally divorced from reality. You do the real advocates quite a dis-service with your FUD.

      Wow, did I ever just get trolled or what? :P

    2. Re:The Upgrade Machine by Anonymous Coward · · Score: 0

      But the whole point of .net (as I understand it) is that you can import and call functions into the program that you're currently writing, no matter which language they were originally written in. So all we need to do is create a big library of stock functions and you can continue coding in any language you like till your heart's content. There are great benefits of this design:

      Developers with no common [programming] language can conspire on the same project.

      You can access a great wealth of pre-written code; theoretically much larger than usual, as you get code from all these different languages (and code re-use is a Good Thing isn't it?)

      Your skills don't become obsolete. You can continue to use your existing language and plug the gaps in your knowledge with code written in new languages.

      Another intriguing thing about .net is that you could theoretically create a runtime VM for linux or mac. And voila! - You're suddenly on a level playing-field with regards to software availability, number of developers, and number of users. Why has no-one done this yet? Or have they done this but there are technical problems i'm not aware of?

      On the downside however, .net is a propietary format, which to me is a little scary. But to put it in context, C# is at least standardised by the EMCA, where as Java is COMPLETELY owned by sun. Not a problem at the moment, but I'm wondering why Sun are letting everyone have it for free. We've seen what happened with the JPEG and MP3 formats - keep quiet until millions of people are using it, then suddenly shout "I own that - pay up". Has anyone considered that Sun might start charging a couple of dollars for the latest VM upgrade?

  54. So what is C# then? by ShatteredDream · · Score: 1, Funny

    A rehash of C?

  55. A plug for Ocaml by Anonymous Coward · · Score: 1, Interesting

    Ocaml doesn't get nearly the attention it deserves. I'm especially surprised it hasn't taken off more in numerical computing (although it is fairly young). Functional, object-oriented, all those good things, with the speed of C/C++. Very compelling.

    Go check it out if you haven't already. I'd really like to see ocaml be more widely used, especially over some copy from MS.

  56. Naming conventions... by Drathus · · Score: 1

    Ok, if they had to continue with this silly "sharp" naming convention they could have at least done something on the geeky side and called it B#.

    Of course, a lot of the people wouldn't get it, but those of us that do would be wondering if it was deliberate or just a coincidence?

  57. Anti-piracy?? by rulethirty · · Score: 1

    I must admit it is much more difficult to search my 3l1t3 h4x0r 0-d4y w4r3z s1t3s when the products from M$ are .NET and C# and XP and ... (to be continued ...)

    1. Re:Anti-piracy?? by M.C.+Hampster · · Score: 1
      I must admit it is much more difficult to search my 3l1t3 h4x0r 0-d4y w4r3z s1t3s when the products from M$ are .NET and C# and XP and ... (to be continued ...)

      I so hope you are joking. You can download the .Net framework, which includes the VB.Net, C# and a C++ compiler from Micrsoft for free.

      --
      Forget the whales - save the babies.
    2. Re:Anti-piracy?? by Anonymous Coward · · Score: 0

      IT WAS A JOKE!!! But now that you have replied, I must... Please stop trying to "out-geek" posts on slashdot and take things light-heartedly and laugh... laughing is good for the soul!

      By the way...

      http://www.amazon.com/exec/obidos/tg/detail/-/B0 00 05RV4Z/ref=pd_sim_sw_3/002-3261632-8604863?v=glanc e&s=software

      http://msdn.microsoft.com/vcsharp/howtobuy/prici ng .aspx

  58. F-hash by wadiwood · · Score: 3, Funny

    The only time I read a # as "sharp" is when it is on a musical staff ie five parallel lines. Otherwise it is a hash as in #5 for number 5 or please press the hash key on the phone.

    hash definitions

    Of course when ever I see F# and Micro$oft together I read F#$%

    The description reads like F# is OCaml on hash ie dumbed down.

    --

    -- it must be true, it's on the internet.
    1. Re:F-hash by Horny+Smurf · · Score: 1

      I wish my phone had a 'hash' key. MY drug dealer is on speed dial, so that's almost as good.

    2. Re:F-hash by grahamlee · · Score: 2, Funny

      For some reason, British Telecom operators refer to the # key as "the square key". Well on my phone the two upright lines are not perpendicular to the two horizontal lines, so it's more of a rhombus than a square, but when I explain that to the ops, they hang up...

  59. Perl by Flamesplash · · Score: 1

    Perl has a fairly steep learning curve to really use the language. If it's good enough, they will use it.

    --
    "Not knowing when the dawn will come, I open every door." - Emily Dickinson
    1. Re:Perl by Sherloch+Hemloch · · Score: 1

      fairly steep learning curve?
      C'mon! Perl is the hot glue gun of programming!

      Case in point: the amazing, type-changing, declare-anywhere variable. There are many more, but I am lazy(which is why I use Perl)

      --
      Never trust a bald barber; he has no respect for your hair
  60. Gee C# was so flawed that its already superceded by crovira · · Score: 2, Interesting

    There are three levels to programming.

    The first is for the silicon scrapers. Guys who write device drivers and who are amply served by assembler (for the real propeller-head bit-twiddlers) and and by C (Not C++, C) There is no sense of reality at this level.

    The second level is for the tool makers. The guys who bring you APIs and services like TCP/IP, Tuxedo, database managers, OpenGL, compilers, browsers and the like. Those folks use C++ and Java. Its a mistake to think that you can make an application in C++ or Java or Smalltalk. You can cobble something together that will cost too much and be too brittle for real-world use and eventually break (or break the bank.) The world becomes real.

    The last level is integrative. There aren't any languages which assimilate the concepts which programmers are confronted with in the real world.

    The best we have to date is sort of the second and a half level with languages which, with the support of a whole bunch of other third party systems (both code and manual procedures,) are sort of capable of some mimetic link between soma (the code) and extro (the specs.) (Sort of like CICS COBOL on mainframes.)

    From what I saw, F#, uh, isn't. Its better but still, its like C++, ObjectiveC or Smalltalk or any other container based language where contained objects have no clue that they contained unless the programmer creates and maintains explicit references to the container.

    The flaw starts there and gets carried forward.

    And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.

    What do you think programmers are and what do you think they're doing? They're code generators that fetch their own meta-model. Some do itbetter than other and some such at code generation too.

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
  61. Not to mention music scales.. by gilesjuk · · Score: 1

    They'll be suing people that have been dead for many hundreds of years for using C# D# F# G# in their musical scales.

  62. After reading this article... by Shant3030 · · Score: 4, Funny

    I strongly suggest that Microsoft stick to making operat...(um), office pro..., (no thats not it...), web brow...(nope), how about video game...(nah)..., programming platfor...(not it either)...

    --
    100% Insightful
    1. Re:After reading this article... by Anonymous Coward · · Score: 0

      Mice?

    2. Re:After reading this article... by alexjohns · · Score: 4, Funny

      They make pretty good Mice and Keyboards.

    3. Re:After reading this article... by Anonymous Coward · · Score: 0
      They make pretty good Mice and Keyboards.

      My Micro$oft ergonomic keyboard has the 6 on the wrong side, you insensitive clod!

  63. Good Grief by Azureflare · · Score: 0, Troll
    Wow, yet another language to learn among the morass of programming languages out there. F#...What's next? G#? D#? A#? Why do they discriminate against the flats of the world??

    I'd like to see a few flat languages, especially E flat...

    Anyway, I think it's too late for this. The only way Microsoft has dominance if it is the only option. I'm sorry, but it doesn't appear that F# is the only option that works for enterprise solutions at the moment.

    1. Re:Good Grief by Azureflare · · Score: 1
      Well, looking over the article (OK yes, I admit it, I didn't read the article before posting my last post), I see how F# could be very enticing to programmers (After all, we all have a lazy streak don't we?). In fact, I see that the day when programming will be possible for every logical thinking person who can speak a language. There must come a point when progrmaming languages become so sophisticated as to be able to decipher human language and translate it to machine code.

      However, this language seems to be presenting a danger; it may be a good idea to reduce complexity, but inventing new languages to do it may or may not be the best way to do it. Can you imagine inventing a new language every time you run into something that seems simple but is actually complicated?

      Perhaps I'm wrong, and F# solves all our problems, but I have large doubts when Microsoft (especially Microsoft) starts touting a new language as making things "simpler." I'll definately give the language a try when it is released though.

  64. ML on .NET by sheck · · Score: 1

    Another option for ML-ish languages is the Standard ML compiler for .NET CLR: SML.NET. It implements SML 97 with similar language interoperability.

  65. Am I the only one? by Mensa+Babe · · Score: 1

    Am I the only one, who thinks about Brain F#$%@ while reading about "Microsoft's New F# Language?" But seriously, I think Fis is quite an interesting language (even if not quite so as, say, Perl 6 is), but it will need lots of marketing to push C and C++ out of the OO market, which will be difficult as h*ll, even for Microsoft. Even if everyone in proprietary software industry switches to Fis, there will still be enough C in free software projects to consideribly slow the deployment. But it was still quite an entertaining reading, even if it hasn't provided any outstanding insight. Robyn Peterson's articles have never disapointed me, however this time I feel a little bit bored. I guess I was expecting too much from Microsoft language development people, but on the other hand, how far could they possibly go, with all this legacy backward compatibility? I think they have done quite a good job this time, considering it's Microsoft. Who knows, I may even write some of my new projects in Fis. I hope it will be supported by GCC soon enough.

    --
    Karma: Positive (probably because of superiour intellect)
    1. Re:Am I the only one? by Anonymous Coward · · Score: 0

      "Fis" means "fart" in Swedish.

      Sorry, couldn't resist :-).

  66. F# C# = D Major by 200_success · · Score: 1, Funny

    If your program contains both F# and C# code, then you can call it D Major. Detractors can call it b minor.

    1. Re:F# C# = D Major by Jhan · · Score: 1

      <nitpick>Actually, that would be a D Major 9th in the key of D (or A). We still need to add D and A though... F# Major is closer as you only need to add A#.</nitpick>

      Humour? What's that? :-)

      --

      I choose to remain celibate, like my father and his father before him.

    2. Re:F# C# = D Major by 200_success · · Score: 1

      I was referring to the key signature, not chords.

  67. Caml by Eudoxe · · Score: 2, Informative

    F# looks like OCaml. You can have a look on the libraries already present for this fabulous language on the hump http://caml.inria.fr/humps/index.html

  68. Brilliant naming by Junior+J.+Junior+III · · Score: 1

    Now when people say "F Microsoft" they can be sued for trademark infringement. Way to stifle dissent, MSFT!

    --
    You see? You see? Your stupid minds! Stupid! Stupid!
  69. Re:This is all wrong by Anonymous Coward · · Score: 0

    Unfortunately,foreign students--especially in Asia--are much better at math. They basically do their homework while our American counterparts enjoy Sex, Drugs & Rock-n-Roll while making fun of smart students as "nerds" or "geeks".

    As computers get cheaper, kids in other countries will start coding at an early age and their more advanced math skills will help them beat us.

    While we do have the best universities, you have to take a look at the percentage of foreign students in science/engineering as an indicator of things to come.

    I have a friend who is 1/2 Asian & 1/2 white and he applied to a university as a "white/caucasian" because getting in as an Asian would've been harder according to someone at the admissions office--they told him Asians were overrepresented and they preferred non-Asians for the remaining space.

    Affirmative action sucks. Especially if you're a minority and it causes whites to have it easier. IMHO, race should never be a factor in admissions but unfortunately, it is. Which means smarter students get left out because they're "overrepresented"...

  70. # == Hash by Anonymous Coward · · Score: 5, Funny

    Microsoft says it:

    F#ism is finally back in F#ion.

    I guess this means all Microsoft programmers are F#ists.

    Oh well, they're only in it for the C# anyway.

  71. Why I like C... by Anonymous Coward · · Score: 0

    ...the way I wrote a file to a disk 15 years ago is the same way I write it today. And I know how to write a file to a disk on Solaris, Linux, Mac, BSD and Windoze since I know the little bit of code that does it in C. Although a simple real world example, it is pretty powerfull stuff when you think about it. And remember, NO RELEARNING.

    What was your point again?

    By the way the whole first paragraph is covered by one big [sic] as I left all of the spelling errors intact.

    1. Re:Why I like C... by sporty · · Score: 1

      C isn't as portable as perl, python, php or java. C and C++ suffer from either incomplete or random interpretations of the specifications.

      perfect example is TurboC and that stupid conio.h file. I came to the unix worled after learning TurboC and was confused for months until i learned what ncurses was.

      *grumble*

      --

      -
      ping -f 255.255.255.255 # if only

    2. Re:Why I like C... by Anonymous Coward · · Score: 1, Insightful

      C isn't as portable as perl, python, php or java

      Perl, Python and PHP are not suited to the same problem domains as C. Java is portable only to systems which have a full JVM, and then your success depends on the version of the JVM available and wether you are using AWT or Swing. If you use any JNI at all then your code is just as portable as C.

      perfect example is TurboC and that stupid conio.h file.

      Try sticking to the standard? The latest C standard was approved in 1999 (C99), or if you need to be compatable with older compilers there is still plain old ANSI C (C89). Both are perfectly portable if you stick to the C library (Which applies to Java just as much). If you're targetting a POSIX platform then your code is portable across that, too.

      My point is that there is nothing special about the portability of Java when compared to other languages.

    3. Re:Why I like C... by sporty · · Score: 1
      My point is that there is nothing special about the portability of Java when compared to other languages.


      THere is. Java is backed by a company saying java is java. Perl is backed by a core group.. same with python, php and ruby.

      C and C++ are backed by ansi, who don't really seem to wield power of financial or social kinds when saying "wtf are you doing, THIS isn't c++"
      --

      -
      ping -f 255.255.255.255 # if only

    4. Re:Why I like C... by Anonymous Coward · · Score: 0

      C and C++ are backed by ansi, who don't really seem to wield power of financial or social kinds...

      What are you babling on about? Seriously, did you even stop to think about what you were saying before you wrote that? If ANSI has no clout, why does every compiler vendor strive for ANSI C/C++ compliance? Why is that usually one of the first things any vendor lists as a marketing point? It's because vendors and coders alike see ANSI compliance as important.

      Java is backed by a company saying java is java.

      What happens when someone else says their version of Java is Java, too? Sun telling everyone what Java is didn't help them to much when Microsoft released their own version of Java, did it? Oddly enough though, Microsoft Visual C++ sticks to the ANSI standards and is compatable with almost anyone elses C++ compiler.

      The only way a vendor can extend C is to call it another langauge. Like Java, or C# for example.

    5. Re:Why I like C... by Anonymous Coward · · Score: 0

      What happens when someone else says their version of Java is Java, too?

      You sue the shit out of them, naturally.

    6. Re:Why I like C... by sporty · · Score: 1

      What are you babling on about? Seriously, did you even stop to think about what you were saying before you wrote that? If ANSI has no clout, why does every compiler vendor strive for ANSI C/C++ compliance? Why is that usually one of the first things any vendor lists as a marketing point? It's because vendors and coders alike see ANSI compliance as important.


      Heh, what are YOU babling about. gcc isn't ansi c++ compliant. Heck, Borland /w OWL was never compliant. People just used the "best" one out there.


      What happens when someone else says their version of Java is Java, too? Sun telling everyone what Java is didn't help them to much when Microsoft released their own version of Java, did it? Oddly enough though, Microsoft Visual C++ sticks to the ANSI standards and is compatable with almost anyone elses C++ compiler.


      Funny thing is, if it doesn't stick to ANSI C++, is it C++? Is it as compatable? So now we have one supposedly ansi C++ compiler, and a bunch of supposdly non compliant. But you know what, people still call it C++.

      Let's take a worse one. HTML. It's not a programming language, but everyone calls HTML, HTML. Every brower likes to claim support. but in the end, everyone extended it.

      And btw, there are multiple "c"'s. There's J&R, (someone & R, i forget), borland, turbo, MS and ansi c. You write in ONE c, you can't cross compile as easily. Thus you have automake, autoconf and crap.

      Sun just sued MS for distributing something called java which was incompatable. They also sued for not providing an implementation of Java. Heck, freebsd is suffering from this. They can't distribute "java" because they didn't pass the little certification of code to be called java. They have to distribute patch sets.

      --

      -
      ping -f 255.255.255.255 # if only

    7. Re:Why I like C... by Anonymous Coward · · Score: 0

      insightful my ass. ansi doesn't have any swing. they have as much clout as the netbsd group when openbsd split. they called themselves a new name and was done with it.

      stupid trolls.

    8. Re:Why I like C... by MisterFancypants · · Score: 2, Insightful
      C isn't as portable as perl, python, php or java. C and C++ suffer from either incomplete or random interpretations of the specifications.

      That is one of the most ridiculous things I've ever read. What are Perl, Python, php and Java implemented in? C! If C wasn't portable enough to run on all the platforms those languages do, those language's runtimes wouldn't compile on those platforms!

      Find me a platform that runs any of those languages that doesn't also have a gcc port that allows you to write portable code in C.

    9. Re:Why I like C... by sporty · · Score: 1

      Heh, gcc doesn't govern portability. For instance... take networking. Bsd, Linux, windows.. they all implement it differently. Maybe recently it changed, but at least 4 years ago, they were different.

      When you need things like autoconf to detect the size of a pointer (32bit vs 64) or if flock works, it's not portable. sorry charlie.

      --

      -
      ping -f 255.255.255.255 # if only

    10. Re:Why I like C... by MisterFancypants · · Score: 1
      Heh, gcc doesn't govern portability. For instance... take networking. Bsd, Linux, windows.. they all implement it differently. Maybe recently it changed, but at least 4 years ago, they were different.

      Sorry but I can (and have) implemented perfectly portable networking code for all mentioned platforms. They all have an interface (available from C) to BSD-style sockets.

    11. Re:Why I like C... by Anonymous Coward · · Score: 0

      gcc isn't ansi c++ compliant. Heck, Borland /w OWL was never compliant.

      C99 compliancy is still a problem for all but one (Commercial and expensive) compiler. C89 and ANSI C++ is standardised and supported by all of them. However, C++ compiler vendors have a static, well defined target to aim for. GCC is aiming for it and will achieve full C99 compliancy within the next few versions, for example.

      Which version of Java are you are on at the moment? 1.4? Sun can and do change the spec of Java at any time, which creates a moving target for any idependent Java compiler vendor.
      Funny thing is, if it doesn't stick to ANSI C++, is it C++?

      No, it is C++ with vendor extensions and you have shot yourself in the foot. The Linux kernel for example is written in GNU C, which until recently could only be compiled with GCC (Intel introduced enough GCC compatability that ICC 7 can compile it too)

      There's J&R, (someone & R, i forget)

      K. Kernighan.

      borland, turbo, MS and ansi c. You write in ONE c, you can't cross compile as easily.

      Not since 1989 when C was standardised! If you write in ANSI C89 then your code is portable and can be compiled on any C89 (Or C99) compiler. If you use platform specific functions then no, you're code will not be portable. The same problem affects Java code that uses JNI.

      Thus you have automake, autoconf and crap.

      Just because you do not know what they're for, does not make them crap. Why does Java have the XML based Ant?

      Heck, freebsd is suffering from this. They can't distribute "java" because they didn't pass the little certification of code to be called java.

      Yet FreeBSD has a C89 compiler. Which just proves my point that Java portability is largly an illusion which can only be fulfiled in a small subset of cases. Oddly enough this is also the case for other languages such as C, which gives Java little edge over these languages.

    12. Re:Why I like C... by sporty · · Score: 1

      I notice you dodged the whole pointer thing. And flock...

      --

      -
      ping -f 255.255.255.255 # if only

    13. Re:Why I like C... by sporty · · Score: 1
      C99 compliancy is still a problem for all but one (Commercial and expensive) compiler. C89 and ANSI C++ is standardised and supported by all of them. However, C++ compiler vendors have a static, well defined target to aim for. GCC is aiming for it and will achieve full C99 compliancy within the next few versions, for example.


      Problem is, now you have split versions of C. You dont' have that problem with java. Foreshadowing your 1.3->1.4 reference, yeah, they can change the spec, but when you write a java 1.3 app, it's consistent across all java 1.3 jvms. Now we have C89, 99 K&R etc.. cross compilation becomes harder since every compiler does something different regardless of what it implements.


      Which version of Java are you are on at the moment? 1.4? Sun can and do change the spec of Java at any time, which creates a moving target for any idependent Java compiler vendor.


      I rather my vendor follow a standard than me having to sort it out. It makes things less difficult. It also makes things easier to go to any box running jdk 1.4 and run 1.4 code. Or i can run 1.3 code on that 1.4 box. Heck, run 1.0 code on it too.


      No, it is C++ with vendor extensions and you have shot yourself in the foot. The Linux kernel for example is written in GNU C, which until recently could only be compiled with GCC (Intel introduced enough GCC compatability that ICC 7 can compile it too)


      Nono.. i mean what if I write a c++ compiler and leave out...say.. template pointers. Everything else works. Can I say it's C++? What version?


      Not since 1989 when C was standardised! If you write in ANSI C89 then your code is portable and can be compiled on any C89 (Or C99) compiler. If you use platform specific functions then no, you're code will not be portable. The same problem affects Java code that uses JNI.


      Even AFTER 89, there was still that problem.


      Just because you do not know what they're for, does not make them crap. Why does Java have the XML based Ant?


      I meant crap as in stuff.. junk. Not as in pieces of shit :) . You need ant/automake/autoconf just to detect (autoconf specifically) what type of c compatability you have. Easy one. pointer sizes. On a 64 bit machine or 32 bit machine, they are different.. and if you write c in an unsafe method, you can easily screw up 64->32 bit assignments.


      Yet FreeBSD has a C89 compiler. Which just proves my point that Java portability is largly an illusion which can only be fulfiled in a small subset of cases. Oddly enough this is also the case for other languages such as C, which gives Java little edge over these languages.


      But while the core very core things may be portable in some parts, we have so many extensions to obfuscate the language. You can't really extend java past JNI, or perl past XS. And even then, you aren't extending the language itself further. You've just added new functions/methods.
      --

      -
      ping -f 255.255.255.255 # if only

    14. Re:Why I like C... by MisterFancypants · · Score: 1

      Stop lying.

    15. Re:Why I like C... by sporty · · Score: 1

      Given up? :)

      --

      -
      ping -f 255.255.255.255 # if only

    16. Re:Why I like C... by be-fan · · Score: 1

      That's a dump arguement. Java has the same problem of having to detect pointer size and the presence of certain function calls, except its one level down, inside the libraries. Of course, that's a non-feature, since libraries that abstract these differences are available for C/C++ as well. It always seems to me that most of the "great features" of Java I'm always hearing about are actually benifets of a large standard library, not anything about the language itself. I've been genuinely impressed by some of the stuff Lisp, Ocaml, and other functional languages have, that C++ doesn't, but the few advantages that Java *does* have (garbage collection, introspection) are outweighed by the disadvantages (no compile-time metaprogramming, no operator overloading, schism between built-in types and user-defined types).

      --
      A deep unwavering belief is a sure sign you're missing something...
    17. Re:Why I like C... by Anonymous Coward · · Score: 0

      Problem is, now you have split versions of C.

      What? No you don't, you have one current version (C99) and two older, obsolete versions (C89 & K&R).

      Nono.. i mean what if I write a c++ compiler and leave out...say.. template pointers. Everything else works. Can I say it's C++?

      No, you cannot claim it is C++. You certainly cannot claim it is ANSI C++ compliant. Which is why we have things like ANSI standards!

      If I write a Java compiler and leave out, say, functions, can I claim it is Java? See how silly that argument is?

      You need ant/automake/autoconf just to detect (autoconf specifically) what type of c compatability you have.

      Actually you need them to tell you what your target platform is, which is outside the scope of the ANSI standard. I can write C89 code that can be compiled on a POSIX complient platform without the need for Automake or Autoconf.

      On a 64 bit machine or 32 bit machine, they are different.. and if you write c in an unsafe method, you can easily screw up 64->32 bit assignments.

      Exactly, if you write c in an unsafe method. Stick to the standards and the problem goes away.

      But while the core very core things may be portable in some parts, we have so many extensions to obfuscate the language. You can't really extend java past JNI, or perl past XS. And even then, you aren't extending the language itself further. You've just added new functions/methods.

      I assume you're talking about libraries. Last time I checked, Perl, Java and almost every other language on the planet can call library functions.

      I think the basic problem here is that you do not understand the difference between the language and the system API.

    18. Re:Why I like C... by Anonymous Coward · · Score: 0

      Pointers? Ever checked up on sizeof() and the use of typedef?

      flock() is part of the Operating System, not the C language. Its existence depends on the target platform and is clearly outside the scope of a discussion about C.

    19. Re:Why I like C... by sporty · · Score: 1
      That's a dump arguement. Java has the same problem of having to detect pointer size and the presence of certain function calls, except its one level down, inside the libraries.


      Er? You dont' have explicit pointers in Java. You don't have to worry about pointer sizes. The implementator of the java vm on choice machine has to worry about that.
      --

      -
      ping -f 255.255.255.255 # if only

    20. Re:Why I like C... by sporty · · Score: 1

      Ever hear of arguing a possibility and not a chosen solution?

      People like to assume that int pointers are always the same size, thus mixing them with void pointers. So you get people doing stupid things like cross assigning them since they fit into each other.

      Under languages that don't provide the use of pointers or allow mix-matched assignment doesn't suffer this.

      --

      Turns out you are right on the flock issue.

      --

      -
      ping -f 255.255.255.255 # if only

  72. Re:Gee C# was so flawed that its already supercede by swb · · Score: 4, Funny

    And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.

    Christ, if that's simple, I'd hate to hear you describe complicated.

  73. *# embrace and extend by Anonymous Coward · · Score: 0
    Ok, it's clear that all this .net-enabling is a way to embrace and extend every damn language on the planet, but I ask you, has the .net CLI been built such that it can accommodate every paradigm on the planet in an equally efficient and correct way? Somehow, I doubt it.

    As far as I can see, the *# project involves creating one language with one particular paradigm (C#) and building "front ends" which amount to nothing more than syntax translators, none of which really support the original language fully (hence F# is almost OCAML, but not quite, because a homomorphism to C# has got to exist, and some things just don't map).

  74. e-flat? by Anonymous Coward · · Score: 0

    Dude, A G-flat is an F-Sharp.
    E-flat is D-sharp.

  75. Haskell next? by axxackall · · Score: 5, Informative
    While I like ML (whole family) so much more than any imperative legacy (Java, C++, C, Perl), I see the main problem that any ML has with for modern RAD and with scripting is its static typing. And that's why I like (more than ML) Haskell - it's dynamically typed and thus it's much more appropriate both for operating scripting and for big app RAD.

    Until today, both ML and Haskell had a common problem: a lack of commercial and real world interest in it and therefore a lack of real-world libraries and supporting frameworks. But now things are going to be changed.

    First Ericson came with Erlang, an excelent essence of FP, LP, scripting and networking. Now M$ (I know - evil, but anyway) came with F# bringing OCaml to the real world saving from being forgotten somewhere in Inria.

    What next? I think that would be Haskell, the language even more suprior to ML, with already OOP, Parallel and Cuncurrent extensions. Also I like its Functional-Logical dialect - Curry. But who will bring it to the real world? IBM?

    --

    Less is more !
    1. Re:Haskell next? by KieranElby · · Score: 5, Informative

      I wouldn't bet against Microsoft bringing Haskell to the real world - their research department (which would put many universities to shame) has some top Haskell people, such as Simon Peyton Jones.
      There's some interesting papers by him over here.

    2. Re:Haskell next? by jilles · · Score: 1

      http://www.mondrian-script.org/mondrian/index.html , this answers your question I think.

      --

      Jilles
    3. Re:Haskell next? by milesegan · · Score: 4, Informative

      Haskell is most certainly not dynamically typed. Like ML, it is a statically typed language with a compiler that does type inference at compile type. You don't usually have to manually declare types but you still have to get them right at compile time. There are some differences between ML's type system and Haskell's but they're basically the same animal.

      ML and Haskell differ mainly in that ML is an eager language, which evaluates all arguments to functions before evaluating the function. Haskell is a lazy language which delays evalution of function arguments until their values are needed.

      Erlang, on the other hand is dynamically typed.

    4. Re:Haskell next? by multi+io · · Score: 1
      Haskell - it's dynamically typed

      That's news to me. I know Haskell has things like "type classes" and a very smart type inferencer, but that doesn't make it dynamically typed, does it?

    5. Re:Haskell next? by smallpaul · · Score: 1

      While I like ML (whole family) so much more than any imperative legacy (Java, C++, C, Perl), I see the main problem that any ML has with for modern RAD and with scripting is its static typing. And that's why I like (more than ML) Haskell [haskell.org] - it's dynamically typed and thus it's much more appropriate both for operating scripting and for big app RAD.

      This sounded a little fishy to me based on my knowledge of programming language relationships. So I did five minutes of Google research. Here's what I turned up. "Haskell's static type system defines the formal relationship between types and values (4.1.4). The static type system ensures that Haskell programs are type safe; that is, that the programmer has not mismatched types in some way. For example, we cannot generally add together two characters, so the expression 'a'+'b' is ill-typed. The main advantage of statically typed languages is well-known: All type errors are detected at compile-time."

      The biggest difference between Haskell and ML is that Haskell strongly separates the functional and imperative parts of the language. Look into "monads". "The monad cleanly separates the functional and imperative program components. In contrast, imperative languages with functional subsets do not generally have any well-defined barrier between the purely functional and imperative worlds."

    6. Re:Haskell next? by Anonymous Coward · · Score: 0

      Indeed, the most widely-used Haskell Compiler, GHC, is developed mainly at Microsoft Research and distributed as open source (BSD-licensed).

    7. Re:Haskell next? by danielt · · Score: 1

      Not only Peyton Jones, but about the whole former Haskell group at Glasgow moved to Microsoft research.

      Except for Philip Wadler, who went to Bell Labs and created Pizza,
      a Java superset with parametric polymorphism

    8. Re:Haskell next? by Anonymous Coward · · Score: 0

      Careful your posting of non-bashing, even pro-MS comments will get you no where here!

    9. Re:Haskell next? by Anonymous Coward · · Score: 0

      Haskell is not dynamically typed. It's type system is in fact very similar to ML's. The main differences between the two languages are that Haskell is a lazy evaluation language, and that it is a purely functional language, nothing to do with RAD or scripting

    10. Re:Haskell next? by xenocide2 · · Score: 1

      Plus most ML dialects offer side effects and other non-functional tools.

      --
      I Browse at +4 Flamebait

      Open Source Sysadmin

    11. Re:Haskell next? by Garen · · Score: 1

      A big problem with Haskell is that it's very difficult to implement efficiently on todays hardware. The language itself also has no way of expressing any ingenuous in-place algorithms that are often dreamed up in performance critical areas in other languages (I think haskell.org even cites quicksort as one.)

  76. Depends on what they call an associative array... by djeaux · · Score: 1
    F-hash would get confusing... Will an F-hash hash behave like any other hash?

    So, is it "F-sharp", "F-octothorpe", "F-pound", "F-number", or "F-tic-tac-toe"?

    One thing I know for certain: "F--- Micro$oft"!

    Hash by any other name would probably still get you high...

    --
    "Obviously, I'm not an IBM computer any more than I'm an ashtray" (Bob Dylan)
  77. "being formed in the bowels of Microsoft..." by nneb · · Score: 1

    They've developed some real crap in the past, but at least they're honest about the origins of this one.

  78. F#inating (Re:Yes !!!) by Anonymous Coward · · Score: 0



    absolutely F#inating!

    And another F#inating fact:
    In dutch # is called a fence.

    1. Re:F#inating (Re:Yes !!!) by jjsoh · · Score: 1

      You sound like Sean Connery.

      I'll take TheRapists for $200, Alex.

    2. Re:F#inating (Re:Yes !!!) by Jeremy+Erwin · · Score: 1

      Actually, thy glyphs associated with the number sign,octoctorpe,or hash are somewhat different than the musical sharp sign. The sharp has slanted horizontal lines, while the # has slanted vertical lines.

  79. Maybe.... by mrkurt · · Score: 0

    Maybe they shoulda just called it "BS"-- sounds like the next thing beyond VB. Just think of how "MS BS" would roll off your tongue so naturally. Except, of course, that this is what a lot of us think of what comes out of Redmond, all the time...

    --
    Always look on the briight side of life! (whistle, whistle)
  80. Re:That's how I feel about most Microsoft language by The+J+Kid · · Score: 1

    F#C# that shit...F#ing Visual F#C# is the way to go!

    --
    Moderation: +4. Modded 70% Funny and 30% Overrated. 100% Saturated.
  81. Play in the key of "C" by Fished · · Score: 1

    I prefer the key of C - no sharps, no flats, and the easiest to play (at least on the keyboard)!

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  82. F#: pronounced fhash (fash) by Anonymous Coward · · Score: 0

    Presumably people who programme in this are fhashists..

  83. Maybe somebody here by CaffeineAddict2001 · · Score: 1

    Can explain why Haskell and ML arn't being used outside of research? The benefits over imperative programming are quite significant.

    Are there some major drawbacks that I am not seeing?

    1. Re:Maybe somebody here by johnnyb · · Score: 1

      It's fairly simple:

      "The masses" use what is fed to them, provided it doesn't change much.

      Those who are in the know but have to work for a living use what has the greatest library base for the job we're doing. That's often Perl, Python, or similar, since they have about 70% functionality of those other languages (while Java, C, and C++ has about 40% of the functionality).

      If those in the know didn't have to do real work, we would spend more time developing libraries for better languages, rather than having to use lesser ones.

      As an example, since 90% of the world uses Excel, all of the data in our programs import from and export to excel. Well, Perl has a good OLE/Excel importer/exporter on UNIX, while Scheme (my language of choice) does not.

    2. Re:Maybe somebody here by MetalOne · · Score: 1

      To me, the productivity of a language is largely a factor of the libraries available to a language, how well that language plays with the libraries, how well those libraries help with your particular problem, and how well documented those libraries are.

      Every language other than C and C++ have difficulty calling C and C++ code. Every language provides a method to call C and C++, and many people will claim this method to be easy, but it is not really that easy. For every function that you want to call a binding must usually be written. This binding is written in C and translates between the type systems of the two languages. For simple calls with one or two parameters the task is not too bad. For calls with deeply nested structures, it is a total pain. There is a tool named SWIG which can autogenerate these bindings for a number of languages. However, C header files are ambiguous. You never know if a pointer points to one item or an array of items. Thus SWIG usually requires an interface definition file.

      If you want to use the Win32 library there are some 80,000 function calls to write bindings for or to write interface definition files for. Many languages provide partially complete bindings to Win32.

      Today, people would often like cross-platform solutions. So it is nice to have a library of functions that handle, sockets, threads, file I/O and GUIs across platforms. Some of the cross platform tools like wxWindows are written in C++. It is even harder to interface to C++ than to C.

      Thus there are great languages like Ruby with no binding to wxWindows. Or there are partial bindings with little to no documentation. Ruby, for example has a fairly complete binding to Tk. In order to use Tk from Ruby though, you have to read either the Tcl/Tk documentation, the Perl/Tk documentation or the Ruby source code. None of these provide good knowledge of how to use Ruby to write Tk GUIs. Info of which bindings were not done is non-existent.

      Given the above it is clear why C and C++ are so widely used. However, C has no built in support for dynamic arrays, lists, hash tables, trees, etc. C++ has these things, but using the STL is far more difficult than using the equivalent containers in dynamically typed languages. Even using strings in C++ is difficult. The "string" class is virtually useless, because none of the other standard library routines accept a "string".
      sprintf() for example wants a char*.

      Dynamically typed languages like Perl, Python and Ruby are very useful and easy to use for text processing, database access, and many server side functions not requiring a GUI. Dynamically typed languages can execute up to 100 times slower than C.

      Thus we are all waiting for the language that executes as fast as C, is as easy to use as Perl, Python, Ruby, has full access to O/S APIs, has access to a huge array of third party libraries, has libraries that provide cross-platform threads, IO, sockets, and GUI. It simply doesn't exist.

      GUIs are a big problem for many languages. You either need native bindings or a good cross-platform windowing toolkit. I have already mentioned the binding problem. Cross-platform GUIs are another issue. Swing sucks. If you think it doesn't you haven't used it enough. There is the religious war of native widget wrappers, versus custom widgets. On the native toolkit side there is Tk, wxWindows, and SWT. On the custom widget side, there is Qt, FOX, FLTK, Swing. I lean towards the native side. Tk has a small set of widgets. I haven't tried SWT, and it is a fairly new entrant. wxWindows holds promise, but there is no Ruby binding. The Python binding is partial and not well documented. You must rely on the C++ documentation and the demo program.

      Functional languages have additional issues. You have to think in a completely different way. Most all programs are solved recursively. The proponents of this approach think this is the most natural way to think. It is not the most natural for many problems t

  84. Formed in the bowels of Microsoft by A55M0NKEY · · Score: 1

    Yup sounds like crap alright.

    --

    Eat at Joe's.

  85. Re:Gee C# was so flawed that its already supercede by Anonymous Coward · · Score: 0

    Quality troll, I give you 5 points.

    But you sound moronic. The key is to come off sounding like you might know what you are talking about, and then half way through your pitch digress into something totally unrelated.

  86. Why is this "Insightful"? by missing000 · · Score: 1, Offtopic

    This post is totally off topic and full of hateful, xenophobic, and racist rhetoric.
    An insightful mod is totally inappropriate.

  87. Re:Gee C# was so flawed that its already supercede by ThaReetLad · · Score: 1

    You think too much.

    --
    You can't win Darth. If you mod me down, I shall become more powerful than you could possibly imagine
  88. effing sharp by sparkes · · Score: 1

    They tried to call it P# but the message kept getting filtered ;-)

    boom boom

    sparkes

  89. square peg... by jonnyfivealive · · Score: 1

    but if the square peg is big enough, you can always mill it down to fit the round hole... hmm...

  90. Bell Bottoms (aside) by drinkypoo · · Score: 0, Offtopic

    No one is really certain about the origin of bell bottoms. During the eighteenth century, sailors began wearing very loose trousers, which looked like rather long shorts. Originally, in fact, canvas kilts were worn over breeches. These were often white and made from a very heavy cotton fabric. Long, very wide trousers sometimes appearing to end in a bell made their appearance in our own navy during the early nineteenth century. Like many other staples of nautical fashion, they were probably inspired by the almost universal work fashions of the eighteenth century. Ironically, even though bell bottoms had probably been worn for some time, they did not become regulation in the Royal Navy, the originator of most nautical fashion, until the middle of the nineteenth century. Although the modern version is usually cut with a decided bell, older examples were often just very wide-legged trousers.
    Peter A. Dervis, "Bell Bottom Blues".
    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  91. The process now understood by carlos_benj · · Score: 5, Funny

    There's a new language being formed in the bowels of Microsoft.

    This may help explain Microsofts process for developing new software. How are things "formed in the bowels" anyway? A simple understanding is that good stuff is essentially chewed to pieces and then deconstructed in an acidic bath. Once the good stuff reaches the bowels then an attempt is made to remove everything that is of value. Once that has been accomplished we are, I suppose, left with a Microsoft product that is ready to (careful here now) ship (Whew! Now that was one major Freudian slip just waiting to happen....).

    --

    --

    As a matter of fact, I am a lawyer. But I play an actor on TV.

    1. Re:The process now understood by Kadagan+AU · · Score: 1

      Once that has been accomplished we are, I suppose, left with a Microsoft product that is ready to (careful here now) ship (Whew! Now that was one major Freudian slip just waiting to happen....).

      The best part of this is just when I was getting to the word "ship", someone a few cubicals down from me yelled "OH SHIT!". =D gotta love a nice professional work place.

      --
      This space for rent, inquire within.
  92. Re:This is all wrong by tcopeland · · Score: 1

    > Removing math from the computer
    > science curriculum is akin to removing
    > the seatbelts from one's car.
    > The car may still appear to work,
    > but deep down, it's inherently flawed.

    Er... how's that again? A car without a seatbelt is inherently flawed?

    tom

  93. SHUT UP by Anonymous Coward · · Score: 0

    Please, can you Slashbots SHUT THE FUCK UP about the # symbol? Gee, they should call it F-flat, huh huh. JUST SHUT THE FUCK UP!

  94. I only wish someone beside M$ were doing this... by elbanevretep · · Score: 1

    Seriously, it sounds like a great idea, but I'm afraid I won't be able to use it due to fears of being stuck up a creek without a license, or without a compiler for Linux, etc.

    Functional languages (such as ML) have some very powerful features lacked by C++,C#,Java,etc. The ML module system rocks, and so does its handling of polymorphism. I've been waiting for years for someone to hook it up with a practical library and development environment so I could use it for real work.

  95. Re:This is all wrong by Anonymous Coward · · Score: 0

    I could be wrong but I don't think talented white men with computers had anything to do with cracking the enigma code. Didn't we "crack" it by recovering an enigma machine from a disabled German sub?

  96. Re:Gee C# was so flawed that its already supercede by Tony-A · · Score: 1

    Christ, if that's simple, I'd hate to hear you describe complicated.
    Reality. It's reality that's complicated. Algebraic topology is simple. As simple as it can be. It's the real world that's complicated. Doesn't mean I'm capable of understanding it though :-(

  97. dear God, not ML!!! by jonnyfivealive · · Score: 1

    id hoped to bury those horrid memories of recursion and pattern matching just to loop... *sob*

    1. Re:dear God, not ML!!! by Anonymous Coward · · Score: 0

      what the F# ????

  98. WTF#? by Fammy2000 · · Score: 1

    A new language from Microsoft, STF#U!!

    --
    If I had something intelligent to say, I would have said it.
  99. Re:Gee C# was so flawed that its already supercede by Anonymous Coward · · Score: 0

    TCP/IP stacks & compilers written in Java? (Honest query -- does anyone really do that?)

  100. Re:This is all wrong by markprus · · Score: 1

    Where have all the talented white men gone?

    Thankfully they're now working alongside talented women and "non-white" men.

  101. Re:This is all wrong by tgd · · Score: 1

    Okay, I have to agree with you that there has been a drastic decline in the last ten to fifteen years of the number of people in the field who would be considered old-school "hackers" -- the kind of guys who created these systems that people now think they're eleet for using.

    But what the HELL do you mean by "Where have all the talented white men gone?"

    That racist shit got moderated up to +4?

  102. Re:Gee C# was so flawed that its already supercede by deacent · · Score: 2, Insightful

    The second level is for the tool makers. The guys who bring you APIs and services like TCP/IP, Tuxedo, database managers, OpenGL, compilers, browsers and the like. Those folks use C++ and Java. Its a mistake to think that you can make an application in C++ or Java or Smalltalk. You can cobble something together that will cost too much and be too brittle for real-world use and eventually break (or break the bank.) The world becomes real.

    I take issue with this. I have designed and implemented apps in both C++ and Java that were flexible enough that we were able accommodate unexpected customer requests. And they didn't break the bank, considering their feature set.

    Funny. I remember a time when folks used to believe that Java and C++ (and other OOLs) weren't fit for such low-level work because of the compilers/linkers tended to make the code pretty inefficient. I guess I'm showing my age. :)

  103. Re:This is all wrong by Kupek · · Score: 0, Offtopic

    Who modded a troll this high?

  104. decriminalised by Anonymous Coward · · Score: 0

    I live where it is pretty much ok to grow your own. Which works well so long as your neighbours don't spot the stuff and steal it.

  105. Re:I only wish someone beside M$ were doing this.. by Eudoxe · · Score: 1

    Moreover, ML languages (like Caml) are really portable.

  106. Re:That's how I feel about most Microsoft language by Unominous+Coward · · Score: 2, Insightful

    I think that if you examine the C# and F# languages, you'll find that they both fall flat.

    --
    "Smoking helps you lose weight - one lung at a time" -- A. E. Neumann
  107. Re:This is all wrong by tcopeland · · Score: 0, Offtopic

    I curse myself for feeding that there troll. I knew I was mistaken to respond.... ah well.

    Tom

  108. ColdFusion anyone? by l0c · · Score: 1

    Joy, now there is a full featured language modeled off of that awful technology!

    --
    We're not god. Not only are we human but we are sometimes forced to become the devil himself. We're not god
  109. Re:This is all wrong by at_kernel_99 · · Score: 1


    Computer science is difficult. Mathematics are difficult. But we can't keep hiding math from computer science students. Math is inherent and necessary and sufficient for good application programs. Removing math from the computer science curriculum is akin to removing the seatbelts from one's car. The car may still appear to work, but deep down, it's inherently flawed.


    Let's save the field of computer science for generations to come. Stop affirmative action. Hire the best man for the job. And for God's sake, make mathematics and security a top priority.



    The ironic thing about his post is that people from the subcontinent of India seem to have better 'math minds' than most white men.


    I will say, if you remove "Stop affirmative action" and view 'man' as a gender-neutral pronoun (which it is), he makes some good points.

  110. Ahem.. by varjag · · Score: 1

    The technology field now consists primarily of certified-morons and foreign coders. What happened to the guys who started modern computing on its way back during World War II when they cracked the German enigma encryption by creating the computer? Where have all the talented white men gone?

    Nono, Proud American, you should ask yourself where have all the talented men came from?

    For your interest, Enigma code was cracked by a bunch of foreigners (some Brits and Poles).

    --
    Lisp is the Tengwar of programming languages.
  111. And in other news... by Andrewkov · · Score: 1

    And after bad reviews and lack of customer "buy in", Microsoft renamed their new language to FU, and added that all future versions of Windows will be written in FU. However, it is rumored that this is not the first FU from Microsoft to it's customers.

  112. Imperative and functional lanuages by jfengel · · Score: 4, Interesting

    It's usually a very bad idea to include imperative aspects in functional languages.

    Functional languages are amazing creatures. They're really strange to work in. They take a serious change of mindset. They can be very slow to execute. I/O is really odd when side effects are forbidden.

    They have astounding benefits, too. The localization of effect means that they're really easy to debug. The lack of side effects means that some really enormous optimizations are open, which is crucial since the naive execution is slow.

    Once you throw in any imperative aspects at all, these effects go right out the window. Even a single imperative statement potentially interferes with every optimization. ("Can I eliminate this execution branch? It seems like a redundant call but it might branch to that imperative statement.")

    I think that this got in the way of ML. It can be easy to want to add just a tiny imperative element to make something easier, but that small crack opened up a lot of headaches for me. I greatly preferred the purity of Haskell.

    I haven't read the F# spec, so I may be overreacting from the notoriously inaccurate Slashdot summary. That's next.

    1. Re:Imperative and functional lanuages by gerbouille · · Score: 1

      Actually O'Caml is a functionnal AND imperative AND OO language. It's also very optimized (during byte-code interpretation and native code execution). See The Great Computer Language Shootout. I hope that those guys at Microsoft are working hard to reach this level of performance ...

      --
      This post is displayed with recycled electrons
    2. Re:Imperative and functional lanuages by Eudoxe · · Score: 1

      According to Doud Bagley's Great Computer Language Shootout, it seems not to affect the speed of Caml (second behind C). Of course, imperative aspects must be used carefully.

    3. Re:Imperative and functional lanuages by Dachannien · · Score: 1

      Functional languages are amazing creatures. They're really strange to work in. They take a serious change of mindset.

      Maybe it's just my limited mental capacity, but I never did really figure out ML. Thank god I'll probably never need to.

    4. Re:Imperative and functional lanuages by multi+io · · Score: 1
      Even a single imperative statement potentially interferes with every optimization. ("Can I eliminate this execution branch? It seems like a redundant call but it might branch to that imperative statement.")

      Well, AFAIK Ocaml is generally a side-effect-free language, but it has a few imperative elements (like the "mutable" keyword). These elements as well as the fact that they can have side effects (as opposed to other parts of the language) are known to the compiler. So I think the compiler could check whether a given execution branch does not contain any imperative language elements, in which case it can be optimized just just as aggressively as execution branches in a purely functional language.

    5. Re:Imperative and functional lanuages by Pseudonym · · Score: 1

      I am so glad that someone else noticed this.

      Those times that it makes sense to program in a functional language are pretty much those times that you don't want imperative stuff getting in the way at all. Adding imperative features to a functional language is not the solution. Adding better support for developing software in multiple languages is.

      Incidentally, ML was around years before Haskell. Its imperative features are very much historical. If monads as a programming construct had been considered 30 odd years ago, ML might be a much purer language than it is.

      F#, on the other hand, is little more than a bastard child.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  113. Gee! Mrs. Cleaver by monkeyboy87 · · Score: 1

    Your subroutines look particularly lovely today....

  114. Re:This is all wrong by Dun+Malg · · Score: 1
    I could be wrong but I don't think talented white men with computers had anything to do with cracking the enigma code. Didn't we "crack" it by recovering an enigma machine from a disabled German sub?

    I believe we had the encryption cracked already when they recovered that one. Getting an actual example of the machine just made it clear how it was done.

    --
    If a job's not worth doing, it's not worth doing right.
  115. MS skipping ahead by UnknowingFool · · Score: 1

    What no F, then F++? Maybe MS realized everybody waits until their third attempt before they take MS seriously.

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  116. Re:Gee C# was so flawed that its already supercede by Dun+Malg · · Score: 1
    TCP/IP stacks & compilers written in Java? (Honest query -- does anyone really do that?)

    Heck, none of the examples he listed are things anyone would do in Java. Can you imagine OpenGL implemented in Java? Sounds to me like he's parroting something he heard once and didn't understand entirely.

    --
    If a job's not worth doing, it's not worth doing right.
  117. Yes, I can't wait for G# by protein+folder · · Score: 2, Funny

    'Ghash!' muttered Gandalf, 'I wonder if that is what they meant: that the lower levels are on fire? Still we can only go on.'

    'Ai! ai!' wailed Legolas. 'A Billrog! A Billrog is come!'

    --
    Your mind is squeezed by a blast of pain!
  118. Weird symbol... by alexhmit01 · · Score: 1

    What is that weird symbol that you use for your dollars?

    That's so colorful...

    That's so silly looking...

    It looks like Monopoly money...

    How much is it worth in real money? :)

    All sorts of fun things that American's say of other currencies...

    1. Re:Weird symbol... by rifter · · Score: 1

      Oddly, when I was looking for the British pound symbol I originally mistook the Italian Lire symbol for the British Pound. Too bad I can't get someone to give me 1000 pounds for 1000 lire ;).

  119. Microsoft's New F# Language by Anonymous Coward · · Score: 0

    F#k Microsoft!

  120. Functional Programming by jefu · · Score: 4, Interesting

    Functional Programming is a Very Good Thing to learn.

    After being interested in functional programming languages for a while I had the opportunity to spend some time reviewing a textbook using ML. I figured that was the time to learn the language. Got frustrated quickly, I got several ML systems (including the one mentioned in the book) and no two worked alike. Hell, the syntax varies enough that there are ML dialects that look like completely different languages.

    A while later I decided that perhaps it was time to spend some energy seriously learning Haskell. I got and installed Hugs (Haskell.org is a wonderful resource with several Haskell systems listed, tutorials, documentation, libraries and so on). Hugs implemented pretty much all of the Haskell described in the manual I found and the tutorials. (Today, I'd probably use the interactive GHC.)

    It took a while, some dedication and a lot of grumbling to figure out how things worked and I'm still learning bits and pieces of the language and associated libraries and stuff.

    Now Haskell is one of my favorite languages and I want to use functional tools (higher order functions, laziness, and so on) in every language I use. I'd say that Haskell changed my ideas about programming, my approach to problems, and my toolset both deeply and widely - and for the better. Probably as deep a shift in technology and technique for me as OOP (I started programming in Fortran, APL, Algol...) - but then OOP just always seemed Right to me.

    Part of what made the learning process so effective was that Haskell makes it very hard to have side effects - so where in ML the books/tutorials often introduce mechanisms for building variable that work more or less like those in C - in Haskell this is very difficult.

    So, while F# may be an interesting language, if you want to learn a new language, try Haskell. You may have to be obstinate. And if it works with you as it did me, it will drive you crazy until it clicks (and I remember exactly the problem that did it) and then you'll just kind do one of those quiet awestruck "wow"s and watch your view of programming change.

    Haskell isn't the right language for everything. I also use Java, C and Python (and a few others) often - but for lots of problems, for doing a quick model of something to try it out, for just helping your mind think about a problem a bit differently ... Haskell is great.

    But remember - you may well have to be stubborn about persisting till it clicks.

    And on a related note...
    Does anyone know if anything ever came out of the development of the functional scripting language "Sheep" for the amiga?

  121. Ask and you shall receive by jpmorgan · · Score: 1
    MS would do good by providing an Eiffel implementation for their CLR.

    Eiffel.NET? Ask and you shall receive. :)

  122. Fortunately MS Marketing got ahold of it... by TheConfusedOne · · Score: 1

    ...rumors were that MS Research was going to originally call it FU!

    --
    --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
  123. Reminds me of that school joke. by rixster · · Score: 0

    What do you get if you push a piano down a coal mine ?


    A flat miner !!

    --
    Two wrongs may not make a right, but three ....
  124. fourths are neither major nor minor by Anonymous Coward · · Score: 0

    they are 'perfect'. same with seconds and fifths

    1. Re:fourths are neither major nor minor by yaphadam097 · · Score: 1

      The interval is not major. The fourth note of a major scale is the Lydian mode whose corresponding chord is major.

      We are dangerously off topic and unquestionably going to hell.

    2. Re:fourths are neither major nor minor by Anonymous Coward · · Score: 0

      How about augmented and diminished? :-)

  125. how is that racist? by Anonymous Coward · · Score: 0
    except for one throwaway line about talented white men (which i think was a joke), i don't see where the racism or xenophoba is. Do you see something we all can't? Can you read the heart of A Proud American?

    People like you are the real racists. They think anybody who opposes affirmative action are automatically racists.

    You should be ashamed of yourself.

  126. Sounds like unix by Anonymous Coward · · Score: 0

    shell, perl, python, C, C++, m4, yacc, expect, tcl/tk, java, mono...

    Obviously the difference is that with this new C#/F# thing (and maybe perl6/python3) multiple languages share a 'runtime' engine. It's nothing new, though. All of the languages I mentioned can be made to talk to each other. though are more easily adapted than others. A shared runtime isn't a big step above an agreed apon interface mechanism (COM, CORBA, etc).

    Using the right tool for the job has always been a good idea.

  127. /. truely pissing me off today by Anonymous Coward · · Score: 0

    Damnit Taco, can you add /. code to allow us to only see posts which add content and not see all the
    off topic, redundant, or funny ones?

    The first 100 or so score 1 replies had 5 with real content. /. readers should lose the 13 year old vernacular

  128. that's the dumbest thing i've heard all day by Anonymous Coward · · Score: 0

    nt.

  129. This is utter gibberish by Ars-Fartsica · · Score: 1
    The guys who bring you APIs and services like TCP/IP, Tuxedo, database managers, OpenGL, compilers, browsers and the like. Those folks use C++ and Java.

    Who authors TCP/IP stacks in Java?

    From what I saw, F#, uh, isn't. Its better but still, its like C++, ObjectiveC or Smalltalk or any other container based language where contained objects have no clue that they contained unless the programmer creates and maintains explicit references to the container.

    Really, what the hell are you talking about?

    And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.

    Neither you nor I nor anyone have any idea what this means, because it is pseudo-intellectual gibberish.

  130. Microsoft's next language by Webmoth · · Score: 3, Funny

    Rumor has it that Microsoft is working on a "lite" version of F# to be called "F Micro" or "Fu" for short.

    Oh wait, their lawyers already use it. Must be past beta then.

    --
    Give me my freedom, and I'll take care of my own security, thank you.
    1. Re:Microsoft's next language by Anonymous Coward · · Score: 0

      You are truly, truly a pathetic son of a bitch.

  131. Embedded by AlgUSF · · Score: 1

    When I was in college, everbody told me to be proficient in VC++/MFC, because "that is what everyone is using", then I heard this about C#. I told them I have too much pride than to center my education on programming on a particular platform. I was told that I would never find a job, well it turns out there is a lot of money in embedded programing, so I say f#(k F#/C#/MFC.... There is a lot of money out there for people who know gcc/++ and know how to program in a POSIX compliant environment (and don't tell me that NT is POSIX compliant). F#(K MSFT!

    --


    I want my rights back. I was actually using them when our government stole them after 9/11.
  132. Actually scientist from Poland did that by Anonymous Coward · · Score: 0

    google for Marian Rejewski Enigma Code Breach

  133. Haskell is elegant. Maybe too elegant by Ars-Fartsica · · Score: 1

    I remember using this language in college when a vendor marketed it as Miranda. I found some incredible productivity gains once it was understood, but unfortunately I see little chance in the unwashed masses grasping Haskell. The imperitive/OO paradigm is so entrenched that it would take a sea change to push it out now.

    1. Re:Haskell is elegant. Maybe too elegant by fnc · · Score: 1

      Miranda was another lazy functional language. It doesnt have monads for example.

  134. Sounds more like... by BlightThePower · · Score: 1

    *DRUM ROLL*

    A G-flat to me.

    Thats all from me, goodnight and remember to tip those waitresses...

    --
    Plays violent online games as: Nerfherder76
  135. C double-sharp? by Theatetus · · Score: 1
    The musical sign for double sharp looks a bit like a Greek "chi" but I can't seem to find a unicode glyph for it.

    And while I love to make fun of C#, I think that "sharp" as a metaphor for improvement is no more silly than "++" as a metaphor for improvement (especially since "C++" would seem to mean "add some stuff to C without changing the actual result you get").

    --
    All's true that is mistrusted
  136. XSL? and dataprocessing by oliverthered · · Score: 1

    Isn't XSL a functional language?
    I think Microsoft will be placing F# in the dataprocessing arena.

    --
    thank God the internet isn't a human right.
  137. Debating the horse whip... by ites · · Score: 1
    No doubt the annoucement of F# will cause a new round of discussion of the relative merits of different programming languages. Yes, it may address certain problems in a better way than the alternatives. No, it's not new, just a small improvement on existing concepts.

    But most of all, what does the discussion of one more language bring us? Agreed, languages get better, safer, more powerful, more abstracted. But the rate of change is so slow that it hardly seems worthwhile. Abstraction does not require syntax, after all, only the mental ability to form and use the right kinds of models. Someone who says "you cannot do such-and-such in language X" is simply someone who has not been able to see how.

    My point is this: at certain levels, the choice of language is close to irrelevant, and new languages do not define progress of any kind. In contrast, new languages encourage the "throw it all away" mentality that plagues our business. You simply cannot develop a craft into a process if you have to reinvent your world every three or four years.

    Programming languages are not and will never be magical solutions to the problems of writing good, large applications.

    Excessive relevance is not a good thing in software. Good models of abstraction come from stepping back from the detail and looking at much larger pictures. Can you imagine a workflow model that allows people in five companies to collaborate on a project? Does the implementation of this depend on the language you use? Of course not. Can you invent an abstraction language that will support the model? Yes, and XML is a good place to start. Is this kind of thing worth doing? Yes, now you are starting to build abstractions that work ten, a hundred times better than conventional programming methods.

    --
    Sig for sale or rent. One previous user. Inquire within.
  138. Mapping functions on lists can be done in C++ too! by 3770 · · Score: 2, Interesting

    So he talks about how you can implement that Map function on a list.

    fun Map f [] = []
    | Map f (h::t) = f h :: Map f t;

    And this is beautiful. I love functional languages. But just for completeness, this can also be done in C++.

    The following code should compile with the proper headers on any platform that supports C++

    //prepare the vector
    vector<float> v_i;

    v_i.push_back(1);
    v_i.push_back(3);
    v_i.push_back(5);

    //And here we map sqrt on all elements in the vector
    transform(v_i.begin(), v_i.end(), v_i.begin(), sqrt);

    //And this is another type of mapping to print the vector
    copy(v_i.begin(), v_i.end(), ostream_iterator<float>(cout, ", "));

    --
    The Internet is full. Go Away!!!
  139. More OT music theory by Theatetus · · Score: 1
    F# and g form a dissonance, called a minor second. It happens though that I like g-f#, a major seventh. But maybe a listen to too much contemporary music.

    Not to re-hash (heh heh) the temperament thread above, but I've always thought the major seventh between the mediant and subdominant was a lot more pleasing than the major seventh between the leading tone and tonic; I think IV - III is about a comma smaller than I -- VII. So maybe F# and G only sound good in D.

    --
    All's true that is mistrusted
  140. Nickle by po8 · · Score: 2, Interesting

    Want an "interesting mix of imperative and functional features" in a language any C/C++/Java programmer can start working with immediately? Try Nickle.

  141. I admit - my mistake by axxackall · · Score: 1
    Sorry guys, my fault. I was meaning "dynamically evaluated", but typed "typed". I was distructed with the other article comparing different typing systems.

    Thanks all of you for correcting me so the others won't be confused. Thanks also for your valuable opinions and very useful references.

    --

    Less is more !
  142. Not G#, B by Theatetus · · Score: 1
    No, C# to F# is a perfect fourth ascending. A perfect fourth from F# is B. So maybe their next language will be B (which, as I understand, was a bad enough language that even C seemed like a good alternative).

    Then again, maybe all these fourths mean that they want us to use the Forth implementation for the CLR, DeltaForth.NET.

    Now, as silly as the particulars of the .NET CLR may be, the idea of a truly language-neutral runtime is something I've been hoping for for a long time, and I'm really glad to see languages I enjoy like Forth and ML getting in on it. Now, if they would just make a Lisp.NET...

    --
    All's true that is mistrusted
  143. Re:Why I hate Java... by Anonymous Coward · · Score: 0

    Hello World needs 8mb of ram.

    The end.

  144. Re:F sharp or F hash? (GOD DAMN BRITS) by Lost+Engineer · · Score: 1

    Yeah, you're right. Ever since I lost my glowing box, I don't know what to believe.

  145. You don't learn music in the UK? by Anonymous Coward · · Score: 0

    It's from music notation.

    Do your musicians call their notes A hash? I doubt it.

  146. Generation Gap by NullProg · · Score: 1

    Since when did ML mean anything other than Machine Language?

    http://www.chisp.net/~dminer/c64/gazette/8801/88 01 086.html

    Enjoy,

    --
    It's just the normal noises in here.
    1. Re:Generation Gap by frank_adrian314159 · · Score: 1
      Since when did ML mean anything other than Machine Language?

      Since the origin of the POP3 system, where it stood for Meta Language (which is also where the concepts behind ML originated).

      Sheesh! I wish you people would learn some history...

      --
      That is all.
    2. Re:Generation Gap by Anonymous Coward · · Score: 0

      And I always thought it was conceived as the
      Meta Language ("ML") of the LCF theorem
      proving system.

      The design was influenced by POP2 (among others
      such as LISP and ISWIM). A subsequent redesign of
      the language was inspired by languages such as
      HOPE and CLEAR.

    3. Re:Generation Gap by NullProg · · Score: 1

      eesh! I wish you people would learn some history...

      Humor me with history. I take it your reference to POP3 in this instance doesn't mean post office protocol.

      Thanks, and enjoy,

      --
      It's just the normal noises in here.
  147. The difference between an array and list is... by Lost+Engineer · · Score: 1

    The only thing I can think of is that an array is stored contiguously in memory whereas a list is linked by pointers (references, whatever).

  148. The D Programming Language by Anonymous Coward · · Score: 1, Informative

    is the true successor to C and C++. See digital mars.

    1. Re:The D Programming Language by MetalOne · · Score: 1

      Wow, thanks. This looks like a language that I have been looking for. I will have to check it out.

  149. No wonder I feel shat upon . . . by Tall_Rob · · Score: 1
    . . . given where MS is forming its products:

    There's a new language being formed in the bowels of Microsoft.

  150. Try my new language by Tablizer · · Score: 0, Troll

    F.U.

  151. pfft by loconet · · Score: 1

    I'm not learning another language, f#ck that!

    --
    [alk]
  152. The real name by Anonymous Coward · · Score: 0

    They should be calling it F#$@!

    Not F#...

  153. Re:That's how I feel about most Microsoft language by paranode · · Score: 2, Interesting
    While I agree with the sentiment among most Slashdot readers that Microsoft's languages are less than perfect, they do have some use. Yes they tend to throw standards out the window and follow their own path. However, having used several of Microsoft's languages, I must say that they are actually surprisingly easy to learn. They are quite powerful in the realm of Windows programming. Many of the conveniences one finds in a modern open language like PHP can be found in just about all of Microsoft's programming languages. I understand that most real hardcore programmers would prefer to have more control and bypass APIs, but Windows programming is not quite as convoluted as many would claim. It has progressed quite a bit since the days of Visual Basic 5.
    I don't work for a company that programs for Windows or anything, I've simply used the tools in my spare time to make useful little Windows programs. So I can say firsthand that it isn't really so bad. I still get my hands dirty with small Linux apps from time to time and I stick with C/C++ for all that (as if there was a huge choice). Seriously, though, I doubt it could be easier to learn how to make a full-fledged X-capable app with widgets in Linux than it is to just open up Visual Studio and whip up a simple app that does the backend stuff for you. On the same note, I understand that many people hate the abstraction that goes on here and that makes sense.

    The bottom line is that if you've got to do some Windows programming, the tools are easy to use and there is plenty of documentation for learning.

    Just my two cents.

  154. I don't take a language seriously when.. by Anonymous Coward · · Score: 0

    the compiler is built with a different language (excluding assembly) on a different OS running on a different CPU architecture.

    "We'll build it on our expensive equipment for use with your cheap toy"

  155. I'm waiting by Quixadhal · · Score: 1

    Microsoft should release their new High Security Language, B#, any day now. It's secure, because there are very few keys that can make it work.

    1. Re:I'm waiting by oscarcar · · Score: 1

      Yes, I hear it will be exactly like "C", except for a large marketing blitz.

      Don't be seen with "C", be sharp with B#.

      If it fails, I'm sure it'll get labeled as "C Flat" (Cb)

      Oscar

  156. hey Bill Gates, F# you! by The+Lynxpro · · Score: 1

    someone had to say it...

    --
    "Right now, somewhere in this world, Scott Baio is plowing a woman he doesn't love," - Peter Griffin, *Family Guy*
  157. Re:Related to Harlequin ML by Knackered · · Score: 1

    I doubt there is any direct link. The ML developers in Harlequin were based in the UK, and as far as I know, none of them took jobs with Microsoft when that part of the company was disbanded. The story of Harlequin's ML and Dylan efforts is a long and sorry tale of leading to a missed window of opportunity.

    --
    a.
  158. F# by thunderbug · · Score: 1

    "sharp", "hash"...

    # is also "pound". Go where you will.

  159. Re:Mapping functions on lists can be done in C++ t by kruntiform · · Score: 1
    Now let's see how transform is implemented in C++ (STLport):
    template <class _InputIter, class _OutputIter, class _UnaryOperation>
    _STLP_INLINE_LOOP _OutputIter
    transform(_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __opr) {
    _STLP_DEBUG_CHECK(__check_range(__first, __last))
    for ( ; __first != __last; ++__first, ++__result)
    *__result = __opr(*__first);
    return __result;
    }
    Compare that with Map from the functional language.
  160. Terrible to search with by digicosm2 · · Score: 1
    I have nothing against C#, and F# looks pretty interesting. If we can get programmers' heads out of the procedural mindset, we could really accomplish a lot.

    But one thing I hate about C# (and by extension, F#) is that it is nearly impossible to search stuff for it. Most online search engines (e.g. Amazon, google, etc.) barf when they see a "#" symbol in the input. Either they ignore it, or they split the tokens into "C" and "#" and usually give you nothing vaguely similar to what you want.

    Note that even the C# compiler is named 'csc', not 'c#c'.....

    Let's stick to alphanumeric symbols for language names, if only to make our Amazon purchases easier ;-)

  161. Re:Related to Harlequin ML by shic · · Score: 1

    Indeed, it looked that way to me - Harlequin's was a project ripe with optimisim which steadily evaporated as real-world developers continued to do battle with less adventurous languages. As I remember it, at least.

    I'd intended a "?" in my title (but bungled) - hoping to prompt some comment about the differences between the systems. Wasn't Harlequin's based on SML not oCAML?

  162. In the bowels of Micro$oft...? by macguiguru · · Score: 1

    Isn't that where ALL their sofware comes from??

  163. Re:Mapping functions on lists can be done in C++ t by The+Bungi · · Score: 1

    Yeah, but you're not supposed to see that =)

  164. Re:Related to Harlequin ML by Knackered · · Score: 1

    As far as I remember, it was SML based.

    --
    a.
  165. Strange then by Julian+Morrison · · Score: 2, Interesting

    ...that Ocaml is speed competitive with C when compiled, and with java when bytecoded. Meanwhile haskell is more in the same speed category as awk and tcl.

    Data here.

    1. Re:Strange then by jfengel · · Score: 1

      I haven't worked with OCAML, so I'm speaking solely from theory, and practice with other languages.

      I have to admit surprise at the results, if for no other reason than that g++ presumably has many more programmer hours put into its optimzation.

      I've long speculated that a functional language would one day outstrip imperative languages in performance. They offer far more opportunities for optimization. I didn't expect it to happen any time soon, since exploiting those opportunities takes time, and since functional languages attract less attention than imperative ones, I didn't expect that time to have been put in yet. I actually expected it to be a purely functional language, because of the difficulties I outlined in my original post.

      I'll have to spend more time exploring the language and see how the compiler writers have actually exploited the optimization opportunities. Thanks for the pointers.

    2. Re:Strange then by julesh · · Score: 1

      The major performance advantage of totally pure functional languages is that they are implicitly parallel: that is, the compiler can break up programs into very small functional units that execute on parallel processors and pass results up a chain to other processors when those processors are ready for them.

      In this way, blindingly fast systems can be built up, hardware implementations are possible, all derived from a piece of source code that can be tested and debugged reasonably quickly and easily on a uniprocessor workstation.

      This kind of approach could also be taken to purely functional parts of a hybrid language...

  166. data by Julian+Morrison · · Score: 1

    http://www.bagley.org/~doug/shootout/craps.shtml

    Sodding slashdot.

  167. Well well... by Stonan · · Score: 1

    Considering I started with ML and Assembler (for PC & Mainframe) maybe now a programmer can actually be called a programmer.

    I learned Pascal, COBOL, PL/1, & C. After that I lost interest because any fool could call himself a programmer. I just couldn't accept that someone creating a screen for data entry in dBase was calling him/herself a computer programmer. I also felt a little cheated with some of these languages that generate huge chunks of code for the 'programmer' and the compilers that not only point to the error but tell you what to do to fix it. I know this is innovation but I feel this is what led to sloppy programming and the after-effect of bug-ridden software. A 'programmer' no longer had to think about what he/she was trying to produce.

    True, ML and Assembler are 2nd genteration programming languages and long since considered 'dead' but some of us still use them today. Why? Because with them you have very powerful control over a comuter. Why else would M$ get rid of DOS. If you can boot a computer into DOS you can use a simple text editor and DOS compiler to create a program to manipulate the Windows OS.

    --
    The GEEK shall inherit the earth...
  168. Re:Gee C# was so flawed that its already supercede by BigBadBri · · Score: 1
    If you don't like 'em... Think up your own stuff.

    If I could think up shit like that, I'd move to France and style myself an 'intellectual'.

    Unfortunately, I'll just have to keep on writing stable and robust real world applications in C and Java, and not bother my pretty little head about N-dimensional pseudology.

    --
    oh brave new world, that has such people in it!
  169. Conversion from C# to F# by Alystair · · Score: 1

    Maybe they will create a language called F#C# .... which also would describe the adaptation stage!

  170. Re:Mapping functions on lists can be done in C++ t by MetalOne · · Score: 1

    Yes, but C++ doesn't really have support for closures. If the function needed some state information, then you would have to create a class, a constructor, destructor and an overlaoded function call operator(). You would have to write 20 lines of code to use "transform". In the end, everybody just winds up writing a for loop, that is much smaller and simpler to understand.

  171. Just a Toy by ChicagoDave · · Score: 1

    I looked into this a month or so ago. My take is that it's just a toy from MS Research. Nowhere in any of this did I get the impression there was any serious effort to market this as anything but an academic toy.

    I don't think anyone with half a brain expects F# to replace C# or Java or VB.NET.

    It's for programming competitions. Not for writing enterprise business applications.

    --
    http://chicagodave.wordpress.com
  172. Re:That's how I feel about most Microsoft language by The+Lord+of+Chaos · · Score: 1

    I'm just a bit bitter cause I spent half a day banging my head against simple problem which the w32api doesn't let you solve simply.

    I have a dialog from a resource file. I want to change the width of the dialog depending on what the text width is going to be (sorta like MesageBox does but I need a fixed width font).

    OK not too bad, now I want to center the OK button. But to do that I've got to figure where the top of the button was so I can pass that back to the SetWindowPos call. Brick wall...

    Here's what I had to do...

    case WM_INITDIALOG:
    {
    int st_width, st_height;
    int dlg_width, dlg_height;
    RECT tmp_rect;
    int dlg_x, dlg_y;
    int bt_x, bt_y, bt_width;
    TEXTMETRIC tm;
    HDC hdc = GetDC(hwnd);

    SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));
    GetTextMetrics(hdc, &tm);
    ReleaseDC(hwnd,hdc);

    GetWindowRect(hwnd, &tmp_rect);
    dlg_height = tmp_rect.bottom - tmp_rect.top;
    GetWindowRectClient(GetDlgItem(hwnd, PB_PARSE_OK), hwnd, &tmp_rect);
    bt_y = tmp_rect.top;
    bt_width = tmp_rect.right - tmp_rect.left;
    GetWindowRect(GetDlgItem(hwnd, ST_PARSE_TEXT), &tmp_rect);
    st_height = tmp_rect.bottom - tmp_rect.top;

    st_width = get_max_line_width(parse_text) * tm.tmAveCharWidth + 40;
    dlg_width = st_width + 12;
    bt_x = (dlg_width-bt_width)/2;
    GetWindowRect(GetDesktopWindow(), &tmp_rect);
    dlg_x = (tmp_rect.right-dlg_width)/2;
    dlg_y = (tmp_rect.bottom-dlg_height)/2;

    SetWindowPos(GetDlgItem(hwnd,ST_PARSE_TEXT),NULL,0 ,0,
    st_width,st_height,SWP_NOZORDER|SWP_NOMOVE);
    SetWindowPos(hwnd,NULL,dlg_x,dlg_y,
    dlg_width,dlg_height,SWP_NOZORDER);
    SetWindowPos(GetDlgItem(hwnd,PB_PARSE_OK),NULL,bt_ x,bt_y,
    0,0,SWP_NOZORDER|SWP_NOSIZE);
    SendMessage(GetDlgItem(hwnd,ST_PARSE_TEXT),WM_SETT EXT,0,(LPARAM)parse_text);
    }

    Ugly isn't it.

    The function GetWindowRectClient(hwnd,hwnd_parent,rect)
    I had to write that myself because SetWindowPos requires coordinates relative to its parents client area. There is no function in the w32api that gives you that information, but your supposed to pull it out of your ass if you want to change an X coordinate of a window and not the Y coordinate

  173. Microsofts F#@%* Language by baldingbobo · · Score: 1

    Interesting that my mind just assumed we were beeping something out.

    --
    The game of life is not so much in holding a good hand as playing a poor hand well. - H. T. Leslie
  174. Heard of Mercury? by Szplug · · Score: 1

    http://www.cs.mu.oz.au/research/mercury/

    Looks like prolog but fast.

    --
    Someday we'll all be negroes
  175. More Mercury.. by Szplug · · Score: 1

    http://lambda.weblogs.com/discuss/msgReader$1200

    BTW it's a new language but it's gaining buzz... at least with my logic programming teacher (and I do believe in fact more widely). Interestingly it has a .NET version.

    http://www.cs.mu.oz.au/research/mercury/dotnet.h tm l

    --
    Someday we'll all be negroes
  176. F#? how about Gb (G flat)! by MntlChaos · · Score: 1

    I've referred to C# as, Db instead of C#, but that would mean it is for databases, oh well.

  177. Undermining search engines? by mooman · · Score: 2, Interesting

    is it just a coincidence or is Microsoft picking langauge names that a lot of search engines can't handle? C#? F#?

    I just did some tests with C# and less than half the search engines I looked at actually used the full string for the query. The rest dropped the # as punctuation and gave me any generic "C" results it could find.

    Was there any thought put into this? Have we heard any statements or interviews from Microsoft about this?

    Personally, with C, C++, and C# all looking identical to some search engines, I think they are going to make life rough for developers trying to look up documents/tips/errors/FAQs about their respective languages...

    --
    In the Portland, Ore area and like card games? Check out: http://groups.yahoo.com/group/portlandgames/
  178. F# runs on the F-U platform too! by spongebob · · Score: 1


    In an attempt to further control the controlling control schemes, they built the FU platform as a more direct way of marketing to thier moronic customer knowing full well that they would neven catch on!

    I couldn't resist!!!

  179. Re:That's how I feel about most Microsoft language by Dwonis · · Score: 2, Insightful
    If you don't like it, submit a patch to the API!

    Oh, wait...

  180. Re:That's how I feel about most Microsoft language by spongman · · Score: 1

    MapWindowPoints?

  181. Re:That's how I feel about most Microsoft language by spongman · · Score: 1
    oh yeah, and why aren't you using WTL/ATL? resizing your dialog would be as easy as:
    CFontHandle font (::GetStockObject (SYSTEM_FIXED_FONT));
    SIZE sizeFont;
    font.GetTextExtent (parse_text, _tcslen (parse_text), &sizeFont);
    RECT rectClient;
    GetClientRect (&rectClient);
    ResizeClient (sizeFont.cx + 40, rectClient.bottm - rectClient.top);
    CenterWindow ();
  182. Re:That's how I feel about most Microsoft language by Anonymous Coward · · Score: 0

    Windows programming isn't real programming.

  183. Re:That's how I feel about most Microsoft language by use_compress · · Score: 1

    It sounds much worse if you reverse the characters making it a # f.

  184. F#? Shouldn't that be Bb? by gblues · · Score: 1

    I mean, then MS programmers would need to either C# or Bb. :)

    Nathan

  185. Re:That's how I feel about most Microsoft language by eidechse · · Score: 1

    There is no function in the w32api that gives you that information

    If you didn't use it already in GetWindowRectClint, ScreenToClient will at least do the coord conversion for you. But I do agree, ui coding with C and the Win32 API ain't a whole lot of fun.

  186. Vaporware by Anonymous Coward · · Score: 0

    > nearing workable stages at Microsoft Research

    Windows 2.03 was in nearing workable stages at Apple Research in 1982.

  187. Number of sharps decreasing by jimm · · Score: 1

    I just noticed something: in musical notation, the key signature for C# has the most number of sharps. F# is one fewer. A hundred bucks says the next .NET language is named B, then E, A, D, and G. The last language they release will be...wait for it...C! The key with no sharps!

    --
    Transcript show: self sigs atRandom.
  188. Bollocks by mysta · · Score: 1
    And computing is so fundamentally simple. Its a game of N-Dimensional topology bounded by finite vectors in every dimension. There's no mystery involved. You just need to maintain a meta-model of the system and you can generate the rest.
    I call bullshit.

    1. Topology is a branch of mathematics, not a game.
    2. How do vectors bound anything?
    3. What the hell do you mean by "finite" vectors? It's almost a tautology. You said you're in an "N-dimensional topology" so the vectors are obviously of finite dimension. How are they going to be infinite?
    Stringing together a whole bunch of terms you heard while dozing in your maths classes do not make you sound intelligent.
    --

    "Where is the wisdom we have lost in knowledge, and where is the knowledge we have lost in information?"-T.S.Eliot
  189. F#(|{ M$. by Anonymous Coward · · Score: 0

    F...Ha Ha Ha.

  190. the problem is... by Papay-Noel · · Score: 1

    what the F#?

  191. Re:That's how I feel about most Microsoft language by E_elven · · Score: 1
    However, having used several of Microsoft's languages, I must say that they are actually surprisingly easy to learn. They are quite powerful in the realm of Windows programming.


    Well lah-di-F#ing-dah.

    E
    --
    Marxist evolution is just N generations away!
  192. nah by Tom · · Score: 1

    IOF#CC just doesn't have the right ring to it. I'll stick with C. :)

    --
    Assorted stuff I do sometimes: Lemuria.org
  193. Re:Gee C# was so flawed that its already supercede by Anonymous Coward · · Score: 0

    There are quite a few researchers that use Java to implement things like compilers and interpreters.

    Anyway, it is done, though arguably not in a commercial context.

  194. Re:Gee C# was so flawed that its already supercede by Dun+Malg · · Score: 1
    There are quite a few researchers that use Java to implement things like compilers and interpreters.

    Anyway, it is done, though arguably not in a commercial context.

    You have a point there. But that makes sense-- researchers are doing research, so the the last thing they want is to get bogged down in dealing with hardware or OS dependent quirks. Java is pretty good for doing that.

    --
    If a job's not worth doing, it's not worth doing right.
  195. Re:That's how I feel about most Microsoft language by The+Lord+of+Chaos · · Score: 1

    I'm using mingw/cygwin for my development. I don't have Visual C++. Besides, I still don't trust C++ in general yet. So I suppose you figure I'm already a sucker for punishment and should stop complaining :). But hey, I'm not a total ludite like those win32 in assembly programmers :)

    Anyways, somehow I guess I missed the MapWindowPoints function, thanks for the tip. I usually use the first thing in the win32api that'll do the trick and I didn't stumble on that one right away.

  196. Re:That's how I feel about most Microsoft language by The+Lord+of+Chaos · · Score: 1

    Thanks, I already did use it:
    BOOL GetWindowRectClient(HWND hwnd, HWND hwnd_parent, RECT *rect)
    {
    POINT p;
    if (!GetWindowRect(hwnd, rect))
    return FALSE;
    p.x = rect->left;
    p.y = rect->top;
    if (!ScreenToClient(hwnd_parent, &p))
    return FALSE;
    rect->left = p.x;
    rect->top = p.y;
    p.x = rect->right;
    p.y = rect->bottom;
    if (!ScreenToClient(hwnd_parent, &p))
    return FALSE;
    rect->right = p.x;
    rect->bottom = p.y;
    return TRUE;
    }

    One of these days someone (maybe me) should make a library for all the "missing" API calls. You know the ones you have to code yourself that should have been in the API in the first place

  197. Legacy languages under .NET by Anonymous+Brave+Guy · · Score: 1
    If you talk to the Microsoft engineers about dotNET you will find that they consider C++ a legacy language at this point, along with Cobol and Fortran.

    Sure, and they'd love to relegate VB6 as well. It's interesting, however, that Microsoft is currently demonstrating more practical support for real (not "Managed") C++ than at any point in its history.

    The thing is, if you knock out C++, COBOL, FORTRAN and VB6, you've just ruled out four of the most popular programming languages on the planet, which together with C and Java probably account for, what, 95% of successful projects developed/maintained over the past decade? 98%? 99%? 99.9%?

    Compared to these things, C# and VB.NET aren't even a blip in the ocean yet. There is potential in .NET to be sure. We all know there are serious drawbacks to each of those other languages in the wrong context, and we all know better is possible. But the fastest thing to kill .NET will be the attitude that these others are "legacy" languages. "Tried and tested" is the way a smart guy would look at it.

    Something else may be better. In fact, it's pretty much a sure thing that sooner or later something else will be better. But if Microsoft's .NET group drop support for the current established big players before they've proven their replacements (and that will take years, if not decades) then they'll reduce their platform to a mere curiosity and not a serious platform for serious developers.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  198. Pros and cons of shared runtime libraries by Anonymous+Brave+Guy · · Score: 1
    Learning a new runtime to learn a new language is not a good tradeoff. With dotNET you learn one runtime, it works for every language.

    Or it doesn't work for every language, as the case may be.

    The common library will be useful for those who would otherwise have to learn a different GUI or database access or Internet comms library in each language they use. Then again, if you're familiar with GUI programming generally -- event-driven designs, typical WIMP environments, etc. -- then learning a new library doesn't take very long, as they're all much the same anyway. And of course, even then, you probably only learn a small number of such libraries anyway, but you have to keep up to date as they evolve, just as you'll need to with .NET's.

    Where .NET, like Java before it, may fall down is the fact that it probably won't be the best UI/DB/comms library for everyone, so the commonality argument is diminished. And of course, there will always be thousands of specialist applications where the .NET library won't offer anything, and in many cases, these will only be developed for the languages of choice in those specialist fields, be they C, LISP, VB, or whatever.

    Basically, I think the library commonality argument has some truth in it, but it's vastly overhyped in practice.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  199. Who's taking bets... by inode_buddha · · Score: 1

    That senior level MSFT execs have been taking music lessons lately? Just wondering, this new languge-naming trend has an odd consistency to it.

    Of course, I'd _love_ to see somebody do the "Developers..." (Ballmer) clip in a falsetto, as if on helium. In fact, I think I'll try that on my (linux) workstation. Just for grins, of course.

    --
    C|N>K
  200. Re:That's how I feel about most Microsoft language by spongman · · Score: 1
    I'm using mingw/cygwin for my development
    ouch! you know you can download the Platform SDK from Microsoft? It includes all the latest headers, compilers and build tools, including ATL/WTL. Make sure you get the debugging tools, too.
  201. # and pound sign by wadiwood · · Score: 1

    Ok my age is showing. I remember the pound sign representing English currency (money) being shift-3 on my old typewriter. It looked like a curly capital L with a short dash through the middle of it. When the american keyboards took over, the # replaced the curly L symbols keyed by shift-3. Otherwise I can think of no other reason why the # symbol would be called "pound". So I refuse to go there. The pound weight was always written lb (ell bee). And I have never known how you get lb out of "pound".

    --

    -- it must be true, it's on the internet.
  202. Obfuscation By Design by ratfynk · · Score: 1
    The obvious purpose of any new language from Microsoft is lock web application developement to a single platform. All one has to do is look at the XML C# extentions already used in visual studio. It is certain that the only thing Microsoft is concerned about is avoiding cross platform web developement.


    The very fact that computer languages are now being changed only to obfuscate the C programming language tells volumes about the corporate agenda.
    Originally C++ was designed to make it easier to create extentions, and morph existing primitives. Along comes Microsoft, and now the programmer does not need to know how things work.
    No wonder so much junkware exists for Windows, any
    goof with a microsoft compiler can create an executable, hide what they wrote and then try to sell to gullible Windows users. F# will just make it even easier to create proprietary junkware.

    --
    OH THE SHAME I fell off the wagon and use sigs again!
  203. Re:That's how I feel about most Microsoft language by mvdw · · Score: 1
    Seriously, though, I doubt it could be easier to learn how to make a full-fledged X-capable app with widgets in Linux than it is to just open up Visual Studio and whip up a simple app that does the backend stuff for you.

    Tried Borland Kylix?

  204. Re:Gee Flat - Temperament by Anonymous Coward · · Score: 0

    You are, of course, assuming equal temperament. And as we all know that Microsoft believes in everything unequal, we must assume that they tune their languages in the same way, thus making F# brighter than Db. Is this the beginning of a bright future for F#? Lets hope not. Its becoming more and more evident that we as a society will not tolerate Microsoft's inequality. LONG LIVE EQUAL TEMPERAMENT!!

  205. Re:That's how I feel about most Microsoft language by Anonymous Coward · · Score: 0

    I think it means Fuck Sharp [things?]

  206. Re:That's how I feel about most Microsoft language by greenhide · · Score: 1

    Insightful?!?!

    WTF!

    The joke is that the names are C - Sharp and F - Sharp, but that they fall flat -- ha ha ha, get it? Both musical terms. Sharp is a note moved up one half step; flat is the note moved *down* once step, chortle chortle, *gasp*. ROTFLMAO.

    We now continue our regularly scheduled broadcast.

    --
    Karma: Chevy Kavalierma.
  207. Re:That's how I feel about most Microsoft language by Anonymous Coward · · Score: 0

    yes, these are the same things you use to steal other people's code every day. im sure you love them

    god damn code theif.