Slashdot Mirror


F# - A New .Net language

Goalie_Ca writes "Neonerds.net has learned of an implementation of the ML programming language for the .NET Framework. F# is essentially an implementation of the core of the OCaml programming language . F#/OCaml/ML is a mixed functional-imperative programming language which is excellent for medium-advanced programmers and for teaching. In addition, you can access hundreds of .NET libraries using F#, and the F# code you write can be accessed from C# and other .NET languages. See the F# Homepage."

213 comments

  1. That's the power of .NET by frleong · · Score: 4, Insightful
    Smaller languages can really compete with popular languages, because the same library is available to everyone. This promotes fairness in the development tools domain (in contrast with what MS does in its business tactics).

    Although there are other languages that can run on JVM, the ease of getting inheritance and cooperation to this level is only possible in .NET.

    --
    ¦ ©® ±
    1. Re:That's the power of .NET by brad-x · · Score: 1

      The focus of .NET, as with any other project made out by public relations people to be centered around the software developer, or even the open source model, isn't to maximise elegance or acheive superior quality, though.

      Sure, it happens, but I find it endlessly surprising that many projects form and gain popular support/praise when all they're really doing is making wads of cash for whatever corporation has umbilicals attached to it.

      Couple this with the inherent inelegance of a .NET software/hardware solution in general (after having watched several promotional videos, I was absolutely stunned at the need for ten servers to do the job of two), I'm not quite ready to bestow praise on anything having to do with it yet.

      --
      // -- http://www.BRAD-X.com/ -- //
    2. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      fairness in the development tools domain

      What about fairness in the carpentry tools domain? Do you think its fair that hammers get to do all the nailing? I hardly think so!

      This site is for stupid flabby nerdz.

    3. Re:That's the power of .NET by Beliskner · · Score: 2
      the CLS runtime is a cheap knockoff of the JVM, take a look at the API and its obvious
      Samba is a cheap knock-off of WinNT SMB server, but here's the secret - the knockoff *can* be better than the original.
      --
      A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
    4. Re:That's the power of .NET by Ed+Avis · · Score: 2

      So this compiler lets you access Microsoft's proprietary .Net class libraries. A native code O'Caml compiler can access the hundreds of libraries written in C, on a range of platforms. What's the big deal?

      --
      -- Ed Avis ed@membled.com
    5. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      And please enlighten us on how many different operating systems and CPU architectures .NET supports compared to Java. If you enjoy being locked into using a Microsoft operating system and x86 Intel CPU, then I guess .NET is for you.

    6. Re:That's the power of .NET by dthable · · Score: 1

      I'll agree that sharing the library with many other languages is kind of a cool concept....for an academic study. I've worked at enough companies and sat in on the standards committees to know what's going to happen.

      1) Sell management on .Net. Promise that the current skill set can be used to create web applications.

      2) Form a standards committee to select one of the many languages for use in .Net. All new projects must be done in this language. Form a standard set of naming and structure guidelines.

      3) Hire a series of hot shot college grads and f*ck the system programmers who want to use their langauges because they are gods and know best.

      4) Develop the application with mixed languages for years.

      5) Watch all of the hot shot programmers who brought in non-standard technology leave for the next best thing.

      6) Hire teams of consultants to undo the mess known as your system because you don't have the resources to recruite people who know multiple langauges.

    7. Re:That's the power of .NET by Beliskner · · Score: 3, Interesting
      So this compiler lets you access Microsoft's proprietary .Net class libraries. A native code O'Caml compiler can access the hundreds of libraries written in C, on a range of platforms. What's the big deal?
      You are correct. Micro$oft is constructing a Developers' Superstore - a familiar place where any developer of any language will go to code. Micro$oft is trying to achieve branding.

      This is a tried and tested method, 50 years ago you went to the clothes store and bought some clothes, electrical store and bought some electricals, mechanical store and bought a washing machine, tool store and bought some tools.

      Micro$oft is trying to construt a "Wal-Mart" that everybody goes to instead of all these disparate places. Not bad, appeals to beginners.

      Right now a new developer says "I want to learn how to code" and you say, "Which platform? What type of program - textprocessing=Perl, compiler=Haskell, generalhighexecspeed=C++, generalhighdevelopmentspeed=Java, webdevelopment=PHP,J2EE,..." Micro$oft is trying to make it so that instead of all these disparate RPMs that confuse the heck out of newbie developers, you just use one IDE - Micro$oft's IDE, same as Wal-mart. The only difference (apart from the obvious) to a newbie will be that C++ has a compile button and Perl doesn't, his questions will become gradually more complicated after that. The weakness is that a bug in the CLR will affect all languages that use that functionality, you lose bug compartmentalisation and damage limitation.

      --
      A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
    8. Re:That's the power of .NET by Jabes · · Score: 1

      This compiler lets you access the .net framework, which is an ECMA standard. So it'll let you access Mono's, or p-net's class libraries. As well as Microsoft's.

      The "big deal" as you say, is that you can do the access the other way. So in my C# program, or VB.net, or Perl.net, I can make use of those elegant functional construct whenever I feel like it!

      _That's_ the power of .net

    9. Re:That's the power of .NET by Anonymous Coward · · Score: 1, Funny


      "Microsoft has finished screwing customers, ..."

      I'm shocked that you could say that! Microsoft will never finish screwing its customers.

    10. Re:That's the power of .NET by Zeinfeld · · Score: 2
      the CLS runtime is a cheap knockoff of the JVM, take a look at the API and its obvious.

      The CLR assembly code is based on the intermediate code from the Microsoft C++ compiler that existed several years before Java was made public. The byte code format of the Java VM and CLR are completely different. Java is a virtual machine and CLR is an intemediate code format of an object oriented compiler.

      C# is essentially a wrapper for the CLS API.

      Which is what you would expect from a modern programming language, remove all unnecessary inconsistencies you can.

      C# does have features that no other mainstream programming environment has had since the Lisp machine. All managed objects can be querried to examine the metadata, the programmer can define attributes of their own to be included in the metadata.

      What this means is that you can write a new data structure foo and then call XMLSerialize (foo) without having to do any more code. If you want to serialize to a specific schema you decorate the data structure definition with attributes. There is also a tool that does this for you.

      The really cool thing about .NET for language developers however is that you get access to all the tools of a high quality programming environment without a lot of work. You get the debugger, the class browser, access to the .NET libraries, and the language sensitive editing.

      --
      Looking for an Information Security student project suggestion?
      Try http://dotcrimeManifesto.com/
    11. Re:That's the power of .NET by Milo77 · · Score: 1

      While I agree it appears to be really neat that every language gets to use the same class library, in reality it is not so great. If what you said above is true, then J#(the java language on CLR) should be really neat. But it is not. Microsoft even went through the trouble of creating a whole new "sub" framework so you can call what appears to be "standard" java classes. Again you would think very cool - Now I can write java code that calls CLR library classes as well java classes!

      The only problem is that the version of JCL supported is prehistoric - oh, and adding CLR class calls makes your cross-platform java not cross-platform anymore (oh except for 95/98/ME/NT/2000/XP...hehehe).

      A language is more than its syntax, it is also its library of standard calls. Would anyone be impressed if C was available on the CLR but you had to call System.Console.WriteLine() instead of printf?

      So, yes we will see evey language under the sun arrive for the CLR, but you will either be a) writing code that looks more like C# then the target language, or b) writing code that looks like the target language, in which case we loose your suggested benefit of everyone having the same library functionality, or c) writing code that looks very similar to the target language except for a few extensions that were made in order to allow this smaller language to compete with the more popular one, in which case MS has successfully hijacked the smaller langauge.

    12. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      "Smaller languages can really compete with popular languages"

      Sure, but it's *not* OCaml, it's *not* Standard ML. It's really a new language, a "Mixed functional/imperative programming" language a that uses parts ("the core") of Caml. To play in .NET requires languages to become, in a sense, little more than "skins" for .NET, giving up things that make them unique. In the specific case of Caml, there's a very good discussion of this on the Caml list: OCaml on CLR/JVM? (archives at http://caml.inria.fr).

      On the "ease" of getting things to work with .NET and the CLR, a look at ActiveState's experiences in creating Perl and Python for .NET is instructive:

      http://www.activestate.com/Corporate/Initiatives /N ET/Research.html?_x=1

      As is this MS-sponsored paper comparing the CLR with the JVM:

      http://www2.fit.qut.edu.au/CompSci/PLAS//Compone nt Pascal/virtual_machines.pdf

      Moreover, with respect to just accessing the .NET libraries, in practical terms, how much further is this really than what was there before with OLE automation objects where languages like Javascript, Perl, Python, and even some Lisps had access to a range of COM objects? One could do ASP with Perl, use ADO with Perl. Now one can do ASP.NET with Perl, and use ADO.NET.

      There's lots of interesting stuff in .NET, and Visual Studio.NET's a decent enough development environment. But C#, VB.NET and JScript.NET likely will always be the only full members of the family (even Microsoft's own VBScript isn't allowed to play). Everything else likely will remain an academic exercise or a bit player.

    13. Re:That's the power of .NET by the_Speed_Bump · · Score: 1
      The weakness is that a bug in the CLR will affect all languages that use that functionality, you lose bug compartmentalisation and damage limitation.

      That's a two way street. The bug only has to be fixed once, and it's fixed for everybody. Considering Microsoft's track record, the fewer APIs they have to write, the better. ;)

      --
      "Break out the gin, and the small violin, I'm a raging success as a failure." --Firewater
    14. Re:That's the power of .NET by Beliskner · · Score: 2
      Yes. But considering how many people still run unpatched IIs servers infected by Code Red.... Everybody with an unpatched zlib raise your hands ;-)

      Actually to be fair the last time I saw an NT4 box without SP6 was... about a couple of years ago so there's a lot of variance. If every popular app install e.g. latest Macromedia automatically overwrites the old buggy CLR with the latest one (like MFC libs).... Wow, that could be good, very few Java app installers automatically overwrite old JVMs.

      I foresee in 2 years people on /. bithcin' about Macromedia FlashPlayer v7 requiring a DRM-compliant CLR. Then in 20 years developers will become so lazy with drag-n-drop coding that every app uses CLR, then Windows XP^2 will only allow CLR apps to run and they'll deprecate the entire Win32 API. L33t Fortran, C and assembler coders will be 90 years old so nobody will be able to use "dangerous" ByteArrays.

      --
      A caveman dreams of being us, the incalculable power and riches. We dream of being Q, then what?
    15. Re:That's the power of .NET by Anonymous Coward · · Score: 0
      Ummm... excuse me but the .NET framework is NOT an ECMA standard. I tiny subset of the framework and the C# language has been submitted to the ECMA.

      Also to note is that Microsoft and ECMA have yet to come to an agreement under what terms the work under the ECMA process will be licensed. ECMA allows licensing under "reasonable" terms. What they will consider "reasonable" in this case is yet to be seen.

    16. Re:That's the power of .NET by g4dget · · Score: 2
      the CLS runtime is a cheap knockoff of the JVM,

      The CLR is clearly a knockoff of the JVM, but it is not a "cheap knockoff". With the CLR, Microsoft fixes problems that Sun has promised to address years ago but failed to do anything about. I, for one, am tired of listening to Sun's unfulfilled promises.

      Microsoft has finished screwing customers, and is on to screwing programmers.

      I have no doubt that if you become a Microsoft customer, you will get screwed. But the open C#/CLR implementations (Mono, P.NET) look a lot more promising than the open Java implementations (gcj, Kaffe), in terms of completeness and conformance to a published specification (ECMA C#). And the reason for that is that Sun did not want the competition and Sun did not want an open, well-defined specification, while the existence of Java forced Microsoft to be more open than they usually would be.

    17. Re:That's the power of .NET by tshak · · Score: 2

      the CLS runtime is a cheap knockoff of the JVM

      I suggest you read a book like "Compiling for the .NET CLR" which is written by a computer scientist who has been working with Abstract Stack Machines for many years (the JVM included). A fool is thought to be wise when he keeps his mouth shut.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    18. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      Yay. Java. Write once, debug everywhere.

    19. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      You forgot:

      7. Fire the project manager who, under massive stress, was compelled to follow the .NET solution by management, who later cover their asses by assigning blame all around.

      Like you, I've seen it happen...

    20. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      And generic peanut butter *can* be better than brand name. What does this have to do with JVM and CLS? Not much, but neither did your post.

    21. Re:That's the power of .NET by RetroGeek · · Score: 2, Insightful

      the CLS runtime is a cheap knockoff of the JVM

      And the JVM is a cheap knockoff of P-CODE.

      "The intermediate code produced by the Pascal-P compiler." And this was in 1976.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    22. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      This is what /. is all about, can't get past the MS tag, and be logical.

      Offcourse you 1 h4t3 MS c4us3 1t'5 c00l half wits, that any derived language from .NET are at the end the same shit, because they are based on the same CLR, so you can't expect totally new languages to come out unless you went out and did your own CLR, but then that would bring incompatibility problems, so basically it not happening. MS in my opinion applied a known pattern creating the CLR (virtual machines are not new, to the dicks that think java innovated it) for their languages, and made it extendible for anyone who wanted to code on .NET to bring along new languages they felt comfortable on, after all, they had based their CLR on that extensibility, which I think was a good idea, me as a .NET developer would like to develop on scheme# or whatever, I can go and create my own implementation, so what's wrong with that? Fuck if someone created a c# implementation for JVM, there would not be any of this 'Sun is 3v1l'. Get over it.

    23. Re:That's the power of .NET by alext · · Score: 2

      And the closed Java implementations on Linux and BSD are a lot more promising (as in production-ready) than Mono et al.

      In fact, with alternative hardware platforms such as PPC and ARM diluting the hold of x86-based Linux, anyone now writing end-user Linux apps in something other than Java should pause to consider how accessible and maintainable their products will be.

      I agree Java will certainly face a challenge from the Dotnet platform. F Sharp is a very clear warning signal to Sun, and it won't just be academics who want to move on from C++ and Simula 67.

    24. Re:That's the power of .NET by gaj · · Score: 2
      In fact, with alternative hardware platforms such as PPC and ARM diluting the hold of x86-based Linux, anyone now writing end-user Linux apps in something other than Java should pause to consider how accessible and maintainable their products will be.

      I make a living coding Java on Linux. Frankly, your statement is silly. First of all, JDKs on the "other" processors are well behind current x86 releases (ppc at 1.3.0, arm at 1.3.1, x86 at 1.4, for example). Second, having to deal with with what Java version is on the end user's machine leads to most of us distributing the JRE with our code. That means separate packages for each platform, and, given point one above, either limiting supported platforms or using an LCD java version.

      Given those (and other) issues, I think I would seriously consider C or C++ with perhaps wxwindows as the GUI toolkit for future end user apps. Java's standard library is nice, but the performance, memory and distribution hassles are (or can be) a bitch. Of course, they are somewhat balanced by Java's nice (not perfect, but nice) standard library and the fact that Java the language is easy to build good code in. It has warts, yes, but nothing to compare to the disfigured freak that is C++. Back on the first hand again, C++ and C leave the door open for additional end user niceties because they aren't using up all the cycles and bytes just standing still (modulo coder skill, of course).

      Not that I hate Java, mind you. Again, its standard library is pretty damn nice (not perfect, but what is?) and the language itself is, IMHO, better than C++ from an every day point of view. I just think that its hype factor is still too damn high.

    25. Re:That's the power of .NET by alext · · Score: 2

      I make a living coding Java on Linux. Frankly, your statement is silly.

      How can the point be silly if you've decided to code in Java? Or are your technical choices made at random?

      Second, having to deal with with what Java version is on the end user's machine leads to most of us distributing the JRE with our code.

      That's bizarre - most companies do precisely the opposite. For example, BEA provide a WebLogic install specific to Windows that does include a VM, because Windows is a relatively well-defined base, but for Linux, Solaris, HP-UX etc. they provide one without. This is because they realize that choosing a VM on these platforms is generally the job of a sys admin and not something that their product alone should dictate.

      Given those (and other) issues, I think I would seriously consider C or C++ with perhaps wxwindows as the GUI toolkit for future end user apps.

      I suspect that there's some hollow laughter from other /. developers at this point. Anybody proposing C++ with GUI libraries (not to mention STL, database and threading libraries) as a more portable platform than Java is seriously out of touch with reality.

      Java's standard library is nice, but the performance, memory and distribution hassles are (or can be) a bitch.

      Performance is good enough to run high-volume transactions behind innumerable web sites. It's also good enough for intensive GUI work (e.g. JBuilder). Memory demands don't seem to be a problem, after all, people are developing apps that can run on phones. 'Distribution hassles' presumably refers to the same self-inflicted 'problem' above.

    26. Re:That's the power of .NET by caca_phony · · Score: 2

      Hi, this is me conspicuously not raising my hand regarding your zlib question, just trying to back up your point (I got the 0-day fixes through apt-get updgrade). I am actually kind of irritated by the way that programs for Windows so often come with hidden system upgrades. I guess after learning Linux first, it seems like a foo install should install foo, not foo, libbar libbaz and an out of date quuxlib to replace the newer one I already had.

      --
      ...and this lie crawls out of its mouth: 'I, the state, am the people.'
    27. Re:That's the power of .NET by g4dget · · Score: 2
      And the closed Java implementations on Linux and BSD are a lot more promising [...]

      What do you mean by "all"? There is effectively only one closed Java implementation on any platform: the one from Sun; all others are derived from it in one way or another. Even legal issues aside, the Java platform simply isn't well-specified enough to have any interoperable, fully independent implementations.

      In fact, with alternative hardware platforms such as PPC and ARM diluting the hold of x86-based Linux, anyone now writing end-user Linux apps in something other than Java should pause to consider how accessible and maintainable their products will be.

      Anyone writing applications in Java (meaning, Sun's Java language and the Java2 APIs) for Linux should consider the folly of writing open source applications that depend on a proprietary runtime and set of libraries. Sun can pull the rug out from under open source Java efforts quickly by changing the licensing terms on their "standard" Java libraries.

      And the closed Java implementations on Linux and BSD are a lot more promising (as in production-ready) than Mono et al.

      The closed source implementation of Java is not really suitable for open source work on Linux unless you want to hand the keys to Linux to Sun. And you can guess what they would want to do with it.

      The real choices for a Java-like open environment on Linux are the Java language with the JVM and non-standard libraries, or ECMA C# implementations, adding additional .NET features as needed. Neither choice is perfect, but ECMA C# is at least a well-defined target.

    28. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      I'm not laughing, and in fact I think you're stupid.

      So when bashing other Slashbots, refrain from speaking for me.

      Thank you.

    29. Re:That's the power of .NET by alext · · Score: 2

      In case it's not transparently obvious to everyone, I should point out that the above is complete FUD.

      Anyone contemplating developing Java on Linux applications should read the following to set their mind at rest:

      1. The list of already existing and completely open VM and class library ports at Kaffe.org. Sun can do nothing to restrict any of these clean-room developments, nor has it shown any sign of wishing to.

      2. Sun's Community Source license. This explains the terms on which Sun's own code is shared. Note that this license has proven open enough for the Blackdown Linux port to be developed. Interestingly, the Blackdown group have listed what they would ideally want from Sun to keep their implementation fully compatible, and a "better definition" of the Java platform doesn't appear to be needed.

      Attempts by Mono developers and other interested parties to discredit Java-on-Linux should be treated with great caution. Not only do they try to represent Sun and IBM as imposing more restrictions on open developments than Microsoft (presumably their status as actual open source contributors counts for nothing against the neutral and fair-dealing Redmond empire, well known for its 'embrace' of standards) but they deliberately misrepresent what parts of Dotnet are actually open and standardized. Any open app that uses a Dotnet GUI (Windows Forms or Web Forms) or database API (ADO.NET) is not using standard mechanisms - these APIs, and in fact over 1000 of the 1200 classes in Dotnet today, are entirely proprietary and are protected by patents.

      Oh, and I didn't use the word "all" - et al translates as 'and others', a somewhat different meaning.

    30. Re:That's the power of .NET by greenrd · · Score: 1
      The closed source implementation of Java is not really suitable for open source work on Linux unless you want to hand the keys to Linux to Sun.

      That's hyperbole.

      The Microsoft-dominated CLR is not really suitable for open source on Linux either - unless you want to make your software dependent on Microsoft's API - which may have "proprietary extensions" added at any time.

      I'd trust Sun over Microsoft any day.

    31. Re:That's the power of .NET by elflord · · Score: 2
      The Microsoft-dominated CLR is not really suitable for open source on Linux either - unless you want to make your software dependent on Microsoft's API - which may have "proprietary extensions" added at any time.

      Again, there's mono. "Proprietary extensions" are not really a problem. Microsoft add "proprietary extensions" to C++ all the time, it doesn't stop me using C++ (I just ignore their extensions, and their C++ development tools ;-)

    32. Re:That's the power of .NET by kingkade · · Score: 1

      Right, but those proprietary .net libraries aren't proprietary at all since they simply adhere to the open .net IL spec.

    33. Re:That's the power of .NET by Anonymous Coward · · Score: 0

      The only reason Microsoft added J# to the mix is to help migrate existing J++ applications and their developers onto .NET and that is why the language revision is 1.1(1.2?).

    34. Re:That's the power of .NET by g4dget · · Score: 2
      The Microsoft-dominated CLR is not really suitable for open source on Linux either - unless you want to make your software dependent on Microsoft's API - which may have "proprietary extensions" added at any time.

      Of course, Microsoft will extend the hell out of C#/CLR, just like Sun keeps adding APIs to Java. Both are trying to make their platforms so big and complex that they are unclonable and that they stay in complete control.

      The difference is that for C#/CLR, we get an open, well-defined standard: ECMA C#. It defines a lot more APIs than standards for, say, C or C++. It's a good basis to start from. Furthermore, most people just won't care whether their Mono code runs with Microsoft's C# implementation or not--it just isn't relevant what Microsoft does.

      As I said in my previous post, I don't know whether C#/CLR will work out for open source development. It may well not. Give it a year or two. What I do know is that Java definitely isn't working out: Sun has failed to follow through on most of their commitments, and technically, Java has failed to evolve much as well.

      I'd trust Sun over Microsoft any day.

      I consider it foolish to trust either company. What I trust is a standards process and an open source implementation of the standard with a well-defined license. ECMA C# has both.

    35. Re:That's the power of .NET by gaj · · Score: 2

      I make a living coding Java on Linux. Frankly, your statement is silly.
      How can the point be silly if you've decided to code in Java? Or are your technical choices made at random?
      The original statement was silly regardless of what I code in. We originally chose Java because we build a cross-platform GUI based tool. In ther real world that brings us down to Java or C/C++ with GUI wrapper libraries. For technical, political and logistical reasons Java was chosen. Not random at all.

      Second, having to deal with with what Java version is on the end user's machine leads to most of us distributing the JRE with our code.
      That's bizarre - most companies do precisely the opposite. For example, BEA provide a WebLogic install specific to Windows that does include a VM, because Windows is a relatively well-defined base, but for Linux, Solaris, HP-UX etc. they provide one without. This is because they realize that choosing a VM on these platforms is generally the job of a sys admin and not something that their product alone should dictate.
      Silly rabbit. You're thinking of the system JRE. Our install of the JRE is used by our program alone. We certainly don't touch the system JRE on any os, Windows or not. That would be stupid. As for "most companies" doing precisely the opposite, I thing a better phrasing would be "some companies". In fact, several of our OEMs either requested that we use our own JRE, or thought it was a good idea. I'm on the fence, myself, but this method has real advantages.

      Given those (and other) issues, I think I would seriously consider C or C++ with perhaps wxwindows as the GUI toolkit for future end user apps.
      I suspect that there's some hollow laughter from other /. developers at this point. Anybody proposing C++ with GUI libraries (not to mention STL, database and threading libraries) as a more portable platform than Java is seriously out of touch with reality.
      Or not. See Mozilla, OpenOffice, Abyword, etc. More importandly, see many interal apps written using wxwindos or QT. As for STL; no one said it had to be used; in fact, I'm not not that big a fan of C++ in general, just pointing out that it would be no less a hassle than Java in some cases, and not much more in others. As for databse access, ODBC libs are there for C/C++; more importantly, the apps I write aren't db apps, so this is NaP. Threading? Pthreads is ugly, yes, but sufficiently portable. Java threading is much simpler, yes. This is major area where Java did improve upon it's parent's methods. As for my being out of touch with reality: guilty as charged, given your definition of reality.
      Java's standard library is nice, but the performance, memory and distribution hassles are (or can be) a bitch.
      Performance is good enough to run high-volume transactions behind innumerable web sites. It's also good enough for intensive GUI work (e.g. JBuilder). Memory demands don't seem to be a problem, after all, people are developing apps that can run on phones. 'Distribution hassles' presumably refers to the same self-inflicted 'problem' above.
      Performance of long running apps where latency isn't a major issue is indeed acceptable. No point in being faster than you need to be, I suppose. As for holding up JBuilder an an icon of GUI usablility, it is a perfect example. I've not seen a pure Java app that is much better. Is it useable? Yes. But it still has annoying lags, even on a decent machine (say P4 1.5GHz, 1/2 GB RAM). You can build useable GUIs (I do), but only just barely, only with much tuning and only if the end user has a decent machine to run it on. As for you comments about memory, the Java that runs in phones (J2ME/MIDP) is not the Java used on workstations. The libraries are much different (especially the GUI classes: neither Swing nor AWT). Also, the memory handling is completely different (including a much simpler GC, one of the big reasons for memory use in J2SE). In short, that says nothing about J2SE (any implementation).

      I stand by my original comments. I never said I wouldn't use Java, just that it is certainly not the no brainer, silver-bullet sollution for cross-platform development that the hype machine makes it out to be.

    36. Re:That's the power of .NET by ahde · · Score: 2

      Smaller languages can really compete with popular languages...as long as they are c#

    37. Re:That's the power of .NET by ahde · · Score: 2

      out of curiosity, since you're confident you've got them all, how many apps have a static zlib? I saw some preliminary lists when the advisories came out, but nothing definitive.

  2. What the F? by zoomshorts · · Score: 0

    F#/OCaml/ML is a mixed functional-imperative programming language which is excellent for medium-advanced programmers Sounds like double speak to me. But I gave up programming 20 years ago, I was an assembler weenie.

    1. Re:What the F? by Anonymous Coward · · Score: 0

      Now you're a slashdot weenie. One step forward, two steps back.

    2. Re:What the F? by darkstar2a · · Score: 1
      I've looked through alot of the comments as well as the website and I agree with you but take it one step further.

      Why in all the comments I've read din't anyone blast this whole topic for the name.

      F*c am all
      F* A Caml

      If this is really true, someone needs to take a look back at some of the naming issues.


      Darkstar2a
  3. Will there be.....? by Rhinobird · · Score: 1, Offtopic

    Will there be a language called S# (pronounced shash). You know, something that beauty contestants can program in...something to demonstrate during the talent portion. Although, I think I'd rather see some do Wynona Rider's ping pong ball trick personally...

    --
    If Mr. Edison had thought smarter he wouldn't sweat as much. --Nikola Tesla
    1. Re:Will there be.....? by Theodore+Logan · · Score: 1
      Not that I know of. There will, however, probably be an F# Component Kit.

      America - where even acronyms are censored.

      --

      "If you think education is expensive, try ignorance" - Derek Bok

    2. Re:Will there be.....? by Anonymous Coward · · Score: 0

      Don't you mean the F# User Component Kit?

    3. Re:Will there be.....? by Chris+Pimlott · · Score: 2

      I vote for S^ instead... 'shat'

    4. Re:Will there be.....? by loply · · Score: 1

      This wouldnt have been off topic if it wasnt the latest slashdot trend to applaud dotNet.

    5. Re:Will there be.....? by Anonymous Coward · · Score: 0

      talk about missing the point...

  4. Re:Mirror by Anonymous Coward · · Score: 0

    Do you have any more of these? email me at stuffinthings@hotmail.c_om

  5. Wynona Rider's ping pong ball trick by Anonymous Coward · · Score: 0
    1. Re:Wynona Rider's ping pong ball trick by Anonymous Coward · · Score: 0

      Learn to use Google :P

      http://www.google.com/search?hl=en&lr=&ie=UTF8&o e= UTF8&q=Winona+Ryder+ping+pong+ball+trick&spell=1

  6. Re:Mirror by Anonymous Coward · · Score: 0
  7. Why don't they use Smalltalk and stop F#$% around? by crovira · · Score: 2, Interesting

    All this shit and more has been available for years in Smalltalk.

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
  8. ATTENTION 560160 by Anonymous Coward · · Score: 0
    SUBJECT: 560160
    POST: 3664514

    The Department of Homeland Security is required by law to notify you that you have been identified as a terrorist threat and your recent post (3664514) has been logged in your e-dossier.

    The Department of Homeland Security is also required to notify you that you may access your e-dossier through the Freedom of Information Act (FOIA).

  9. For F#ck sake!!! by Anonymous Coward · · Score: 0

    this is /. !!!

    /.'ers shouldn't give a s#it about this stuff, apart from bagging it.

    i'm getting more and more suspicious of the "yet another pro-M$ article."

    Next there'll be another article on "what a fabulous pice of kit the x-pox is.."

  10. Here code for accessing SQL-Server on BSD (NT) by Anonymous Coward · · Score: 0

    NT means No Text.
    What were you expecting to see.., as if SQL-Server ran on BSD ...

    Cheers.

  11. Grow up. Please. by tlhf · · Score: 1

    What, you mean, it wasn't a pro open source article? Read site description. Originally, this was News for nerds. Stuff that matters.. It only picked up the ridiculously anti-MS slant after it was bought by VALinux. (Well, I think it was known as VALinux at the time, it seems to be constantly changing betwixt the /VA(\w+)/ names.) They seem to be slowly moving back to a less partisan position.

    And anyway, it's hardly explicity pro Microsoft. It's just stating that a new language is availible.

    tlhf
    xxx
    And if you do want to be a true open source advocate, you need to understand proprietry software, for otherwise you are ignorant.

    1. Re:Grow up. Please. by Milo77 · · Score: 1

      As some one who was reading /. before VALinux was in the picture I can honestly say you don't know what you're talking about. It has always been pro-linux and anti-microsoft. Perhaps its gotten more so in the last couple of years, but it has never been a bastion of objectivity.

    2. Re:Grow up. Please. by PythonOrRuby · · Score: 1
      anti-microsoft

      I think the word you're looking for instead is, "intelligent". It rolls off the tongue much more easily.

    3. Re:Grow up. Please. by tlhf · · Score: 1

      Heheheh. You honestly think the world is that simple?

      tlhf
      xxx

    4. Re:Grow up. Please. by PythonOrRuby · · Score: 1

      Heheheh. You honestly think the world is that simple?

      It seems rather simple for an intelligent person to be against Microsoft, yes.

    5. Re:Grow up. Please. by Phroggy · · Score: 2

      Read site description. Originally, this was News for nerds. Stuff that matters.. It only picked up the ridiculously anti-MS slant after it was bought by VALinux.

      Slashdot is a bit less pro-Debian than it once was, perhaps, but it's always been pro-Linux and anti-Microsoft. Your user ID doesn't suggest that you've been around long enough to know, though.

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    6. Re:Grow up. Please. by tlhf · · Score: 1

      Oh, sure, it's always been anti-microsoft to a certain extent, but I found that it became "ridiculously" so after the take over. Maybe I was just looking at Slashdot in a more cynical eye. As for my user ID; I remember seeing sig a while ago which went something like "I was an Anonymous Coward for years, but all I got was this sucky uid". Well, I think I got the first bit of that quote right. Granted that I wasn't around when the 3 digits were still going, but I've been around the blog scene for a good few years.

      tlhf
      xxx

  12. B# by Anonymous Coward · · Score: 0

    Why even bother, when the B# language (aka, 'C') has been around for ages ;-)

  13. Support for .NET generics by Jabes · · Score: 2, Informative
    From the web page:


    F# also happens to be the first released .NET language that is able to produce Generic IL, and the compiler was really designed with this target language in mind. However the compiler can also produce standard .NET binaries, which is just as well because there is no publicly available release of a .NET Common Language Runtime for .NET that supports generics.


    So it looks like there are releases of Microsoft's jitter that have full support for execution-time expansion of generics. I can't wait!
    1. Re:Support for .NET generics by Anonymous Coward · · Score: 0

      C# will be getting generics in the next version of the .NET Framework (can't remember the development name, it is named after an Island off the coast of Washington, the version after that is code-named 'Orca', which is a nicer island than the one who's name I can't remember, but further away)

  14. Re:Why don't they use Smalltalk and stop F#$% arou by dpbsmith · · Score: 5, Insightful

    Amen, brother.

    I wouldn't mind it so much if someone would IMPROVE on Smalltalk, but why do we have to spend twenty years devising languages that are not quite as good as Smalltalk (in the name of efficiency, or compatibility, or ease of learning for people that have never learned more than one computer language...)

    Smalltalk is the only language I've ever used that I felt truly extended my reach as a programmer and truly enabled me to do easily things that would have been difficult in other languages.

    It is also the only language in which I have truly taken big, complicated, rich pieces of code that did ALMOST what I wanted and spent very small amounts of time subclassing them and making them do EXACTLY what I wanted--and without having to spend hours reverse-engineering and understanding what the original code was doing.

  15. MSFT public-relations apocalypse. by Vulture_ · · Score: 1
    I can't believe a language named "F#" got past Microsoft's marketing department. Or are they retarded enough to think it won't get expanded to "F#@%"?

    I even thought this was some kind of joke or parody when I read the headline. I expanded it to "F#@%" without even thinking about it. And you don't have to be a computer scientist to be able to make fun of it this way.

    I'd love to be a fly on the wall when Darth Ballmer hears about this one...

    --

    The only way the typical /.er can pick up a chick is with a forklift. -- AC

    1. Re:MSFT public-relations apocalypse. by matt_wilts · · Score: 3, Funny

      >I can't believe a language named "F#" got past
      > Microsoft's marketing department. Or are
      > they retarded enough to think it won't get
      >expanded to "F#@%"?

      You think that's bad? As a non-programmer I expanded "F#/OCaml/ML" to "f*ck em all"...

    2. Re:MSFT public-relations apocalypse. by mughi · · Score: 2
      >I can't believe a language named "F#" got past
      > Microsoft's marketing department. Or are
      > they retarded enough to think it won't get
      >expanded to "F#@%"?

      You think that's bad? As a non-programmer I
      expanded "F#/OCaml/ML" to "f*ck em all"...

      Or.... for the paranoid out there... perhaps with the federal prosecution being dropped and everything else, this is MS's statement directly to programmers:
      "Programmers??? F#/OCaml/ML"

    3. Re:MSFT public-relations apocalypse. by Decimal · · Score: 2

      I can't believe a language named "F#" got past Microsoft's marketing department. Or are they retarded enough to think it won't get expanded to "F#@%"?/i.

      Eventually, Microsoft will release a simplified version of F#. They could call it BrainF#.

      --

      Remember "Bring 'em on"? *sigh
    4. Re:MSFT public-relations apocalypse. by technomom · · Score: 1

      That's how I pronounced it too. Precisely why, when I first read this story, I thought for SURE it was a hoax/joke/urban legend/whatever.

      Way to go, Microsoft.

      JoAnn

  16. The power to lobotimize languages? by SuperKendall · · Score: 5, Insightful

    Take a look here, at the comparison of F# to OCaml.

    This is what I really dislike about .NET - the promise of multiple langauges, with the DELIVERY of multiple crippled langauges. If MS succeeds I can predict what will happen - the demise of almost any other interesting language, as developers are drawn in by the supposed "compatibility" of the C# libraries in thier favorite languages. But devoid of many interesting langauge features, combined with odd syntax for acccessing those wonderful Java, er, C# base libraries they wlll just drift to using C# (the ONLY language not neutered by the platform).

    I think you are really a troll, but in any case you bring to light a common ignorance about the whole .NET platform that should be corrected whenever possible.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:The power to lobotimize languages? by frleong · · Score: 2
      This is what I really dislike about .NET - the promise of multiple langauges, with the DELIVERY of multiple crippled langauges
      I don't know why you're calling me a troll (because I may seem to attack Java? But I like Java too and I actively program JSP and servlets at work!). But the point is that .NET allows these smaller languages to be put in commercial arena, which is good, because it promotes competition and may actually force the big ones to take some of the nicer features of these academic languages and everybody will benefit by then.
      --
      ¦ ©® ±
    2. Re:The power to lobotimize languages? by VP · · Score: 3, Insightful
      Maybe he called you a troll because you said:
      Although there are other languages that can run on JVM, the ease of getting inheritance and cooperation to this level is only possible in .NET.

      And if you had looked at the language description, you would have seen that F# lacks the following:
      • Substructures/Namespaces/Packages
      • Functors
      • Inheritance (authoring)
      • Structured classes
      • Variance on type parameters
      • Labels
      • Default parameters
      • "Printf" style formatting

      Therefore your claim, that somehow getting parts of a language to run on .NET could be beneficial in some way, rings hollow...
    3. Re:The power to lobotimize languages? by Anonymous Coward · · Score: 0
      But it seems that many of these so called academic features are being dropped because the underlying virtual machine does not or cannot support them well. Which I think was the point the previous poster was trying to get across.

      It does not benefit anyone if we end up getting a host of dumbed down languages as a replacement for the "original" languages. That will make it harder in the long run to introduce new language features to the developers. Every new language feature must fit into the existing VM model, otherwise it is discarded.

    4. Re:The power to lobotimize languages? by SuperKendall · · Score: 2

      I am truly sorry for calling the post a troll if it was not - I calculated it might be a troll not so much for attacking Java (indeed, it did not really do so at all) as seemingly being a bit too blindly supportive of .NET as a generic language platform.

      In truth, I'm not aware of any language features that are that much more easily implemented on the .NET platform as opposed to the JVM - it even seems like both will be supporting Generics about the same time (the cynical among us would say .NET is waiting for the Java JSR to be finalized to see how Generics should be implemented in .NET!! ;-) )

      I think the difference is that with .NET, Microsoft is strongly supporting multiple langauges on the platform while in Java, multiple langauges are fundimentially supported by the VM but not encouraged by tools - so while the JVM could have a multi-langauge develoipment tool, no-one has seen the benefit of doing so and thus none have been built.

      While the mutli-langauge drive seems great at first, like I was saying I find it very disturbing that the same thing could happen to languages that has happened to OS's - we could enter a long dark period where the only real "language" you could program in is .NET, with only the ability to choose your favorite syntax (with your favorite syntax eventually and inevitably becoming C#). I like Java a lot but I also like to see work on other langauges (like Ruby) progress, and hate to see a movement to one unisex langauge.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    5. Re:The power to lobotimize languages? by frleong · · Score: 2
      While the mutli-langauge drive seems great at first, like I was saying I find it very disturbing that the same thing could happen to languages that has happened to OS's - we could enter a long dark period where the only real "language" you could program in is .NET, with only the ability to choose your favorite syntax (with your favorite syntax eventually and inevitably becoming C#). I like Java a lot but I also like to see work on other langauges (like Ruby) progress, and hate to see a movement to one unisex langauge.
      I see a different future scenario. Sure, the popular languages (C++, Java and presumably C#) will remain popular, but the lateral competition from these academic languages will more likely influence the future syntax of these popular languages. This benefits almost everybody in the end, i.e. users of these popular languages, I assume.
      --
      ¦ ©® ±
    6. Re:The power to lobotimize languages? by Anonymous Coward · · Score: 0


      It really sucks how x86 assembler doesn't implement so many constructs needed by higher level languages.. I mean how can you do generic programming without support for it at the instruction level?

    7. Re:The power to lobotimize languages? by SuperKendall · · Score: 1

      I'll have to mull that over - the additon of Generics to both .NET and the JVM would seem to support that argument.

      I guess I worry there will be no "next language", the way there was C++ after C, and Java after that. Each was fairly different in how you thought about programs and approached problems - I consider my past experience with Scheme and ELisp and C and C++ and Java programming to be invaluable in even day-to-day programming.

      If all languages do after this point is evolve slowly using only the most popular features from marginal side projects, I think languages will stagnate at a time when everything else is changing so fast - quantum computing, nanotech, etc. that software might fall behind. In a way, I guess Generics could also provide the conterexample to your argument as well - look how long a very desired feature took to be included in the VM! What happens when more radical features cme along, will things ever be adopted by the "mainstream" langauges.

      If you look out at the horizon now, what looks like "the next langage"? I got into C++ and Java early on in adoption cycles, it seemed like if you were paying attentiion you could see each of those on the rise early on. But what is coming next? Even if it is C#, I can't count it as a change as it is so close to Java as it is in how you think about problems. There is no apprent change of thinking coming along, and that seems odd.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    8. Re:The power to lobotimize languages? by frleong · · Score: 2
      In a way, I guess Generics could also provide the conterexample to your argument as well - look how long a very desired feature took to be included in the VM! What happens when more radical features cme along, will things ever be adopted by the "mainstream" langauges.
      It took long because there was no competition. When Sun detected the forthcoming of .NET, it immediately jumped into concretizing ideas like generics. Marginal academic projects didn't have much influence before because many people wouldn't even bother to test them if they couldn't use the existing libraries to compare head-to-head language features (e.g. create the same application using different languages). Now that they can be brought forward, their influence will increase accordingly.
      --
      ¦ ©® ±
    9. Re:The power to lobotimize languages? by kubrick · · Score: 1

      This is what I really dislike about .NET - the promise of multiple langauges, with the DELIVERY of multiple crippled langauges.

      MS isn't doing this to make programmers' lives easier, they're doing it to make it easier for companies with codebases in other languages (and programmers schooled in those languages) to switch to .NET. Once the MS push is underway, any complaints about missing features in the new platform's implementations get dismissed as "just more grumbling"...

      It's a feature of dubious technical merit which seems to have been included more for marketing and business purposes than to enhance the actual utility of the platform.

      --
      deus does not exist but if he does
    10. Re:The power to lobotimize languages? by angel'o'sphere · · Score: 2

      When Sun detected the forthcoming of .NET, it immediately jumped into concretizing ideas like generics.
      How old is .NET? 2 years?
      The sun integration path for generics exists since 1997. At that time the Pizza compiler was crafted by the team of Martin Oderski.

      Marginal academic projects didn't have much influence before because many people wouldn't even bother to

      This marginal academic project is now the foundation for Java with Generics. Java 1.5 will include generics and for Java 1.4 you can downlaod at sun a version including generics (JSR014).

      However you are right if you like to say that generics should have been included from the start on.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:The power to lobotimize languages? by lfourrier · · Score: 1

      everybody who studied .Net admire Microsoft for the marvellous creation of the concept of skinable langages.

      You use C# with a vb skin, with a fortran skin, with a cobol skin, now with a Caml skin.

      But as with Winamp, what's important is the tune you play.

    12. Re:The power to lobotimize languages? by frleong · · Score: 2
      How old is .NET? 2 years? The sun integration path for generics exists since 1997. At that time the Pizza compiler was crafted by the team of Martin Oderski.
      Being in the path doesn't mean anything if nothing much else was done. It took them FIVE years, an eternity in the Internet age, to get only the technology in beta testing (when will JDK 1.5 be released?) Five years ago, dot com mania has not even started.
      --
      ¦ ©® ±
    13. Re:The power to lobotimize languages? by angel'o'sphere · · Score: 2

      Sun crafted several frame works around Java, APIs and libraries.

      No idea how compareable .NET is ... at least Java has now deep roots in all enterprise relevant software developments.

      Well, FIVE years :-) .... the language was nearly stable over five years, the rescent assert introduction (faulty done IMHO) and templates soon (in about 12 month, you can download a eary birds version right now if you wish, search for JSR 014)
      are the only mayor language enhancements.

      Lets see what Microssoft is doing over the next five years and what OTOH SUN and teh Java Community will do.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  17. Another .net language by archen · · Score: 1

    Instead of messing around with other languages, why don't they FIX VB? Call it VB# or something. As it stands right now VB is a very F'ed up language. It's so horribly inconsistent with so much cruft in backwards compatability that the language just needs to be redone.

    1. Re:Another .net language by Anonymous Coward · · Score: 0

      hehe... they can't fix anything. the only thing
      they are capable of doing is to introduce
      yet another os/programming language/game console/etc
      and hope they got it all right (the whole m$ staff
      takes a weeks holiday and goes out to look for
      shooting stars to make that wish).

  18. Making ML ugly by Anonymous Coward · · Score: 0
    This combines the difficult learning curve of OCAML with the immaturity of .NET while diminishing neither. I'm rather surprised something really bothered with this.

    ML itself is supposed to be an "elegant" language that really shows the power of functional languages, which shows off the real power of computers - Turing machines. However, ML code can be easily ported to mainstream imperative languages, so why would someone go through more hassle trying to write this F# code and mix it in with the rest of C#/J#?

    Let the people decide what languages they want to use. Be it Lisp, Java, or even assembly. Don't let one company redefine every language for us so we'll soon forget that code was one a portable thing. (Remember, .NET's so called "portability" is rather questionable, based on Microsoft's favorite practices).

    I'm sticking to the great SML taught at my university.

  19. To destroy languages is the power of .NET by Baki · · Score: 4, Interesting

    Just compare any .NET language with the original, (C++ versus the real thing, F# versus ML etc). What you see is that any language, in order to achive interoperability at this level (including inheritance etc) and thus get access to .NET libraries, needs to be mutated into something different.

    Only superficially all .NET languages are different, only superficially they are like their originals (syntax etc). In fact all .NET languages are structurally alike, only the syntax is somewhat different.

    Therefore, should .NET succeed in the marketplace, it would be an enormous loss. The choice (of languages) is just fake. In fact it is total assimilation and destruction of variety.

    I have nothing against the virtual machine idea (C# + CLR) which is 100% like Java + the JVM. That is a good principle which has its uses (just asking why not go with Java, C# merely adds some syntactic sugar but brings no true improvements such as templates or multiple inheritance). But this plan/strategy of so mutating all existing languages in all alike .NET variants is horrible.

    1. Re:To destroy languages is the power of .NET by Anonymous Coward · · Score: 0

      that's why i stick to B# for my programming needs.

    2. Re:To destroy languages is the power of .NET by g4dget · · Score: 2
      Only superficially all .NET languages are different, only superficially they are like their originals (syntax etc).

      F# is a language with type variables, type inference, and lexical closures. Those are real differences, not just syntax. I'd be overjoyed if, say, Java had support for them, but it doesn't.

      (C# + CLR) which is 100% like Java + the JVM

      No, C#/CLR are not "100% like" Java/JVM. C#/CLR is clearly based on Java/JVM, but Microsoft added a few features that make some difference. Among others, the CLR offers support for value types, pointer manipulation, and (experimentally) genericity. Those features do change the runtime significantly relative to the JVM (whether for better or for worse is a separate debate).

    3. Re:To destroy languages is the power of .NET by ajp · · Score: 1

      I have nothing against the virtual machine idea (C# + CLR) which is 100% like Java + the JVM. That is a good principle which has its uses (just asking why not go with Java, C# merely adds some syntactic sugar but brings no true improvements such as templates or multiple inheritance).
      Nice use of buzzwords! I'm not going to argue your main point--that CLR-targetted languages are all too similar. To some extent, I agree, to some extent, I'm undecided. But to say that C# adds nothing is ridiculous. First, Sun has a death-grip on all JVM languages (MS doesn't restrict the CLR). Second, Java targets its own windowing system. The CLR toolkit works psuedo-natively with the world's largest deployed OS: not in a dorky little VM window. Lastly, the CLR doesn't include the export keyword nor does it support creating Beowulf clusters. Why did you ignore these obvious design failures?

    4. Re:To destroy languages is the power of .NET by DickBreath · · Score: 2

      C#/CLR is clearly based on Java/JVM, but Microsoft added a few features that make some difference. Among others, the CLR offers support for value types, pointer manipulation, and (experimentally) genericity.

      You didn't mention an important one which is a big lack in JVM. That is: tail recursion. Does it have it?

      --

      I'll see your senator, and I'll raise you two judges.
    5. Re:To destroy languages is the power of .NET by redhog · · Score: 2

      You probably mean tailö-recusion-optimization (that iss, that tail calls get optimized into jumps, that doesn't grow the stack).

      It i not up to the JVM to implement or lack proper tail-recursion-optimization, but up to the java compiler. I know that a (standard compliant) Scheme compiler has been written targeting java bytecode. The Scheme standard requires proper tail-recursion-optimization.

      --
      --The knowledge that you are an idiot, is what distinguishes you from one.
    6. Re:To destroy languages is the power of .NET by PythonOrRuby · · Score: 1
      the world's largest deployed OS

      As a tangent, is this the case? Windows may have huge marketshare, but that's the sum of everything from Win 3.11 on up, and I know a LOT of people still running unpatched versions of Windows 95. So how large is the actual target market for .NET applications?

    7. Re:To destroy languages is the power of .NET by Baki · · Score: 2

      Java does not necessarily target its own windowing system. Via JNI one can bind any native window system you like (in fact IBM just did this with SWT in eclipse).

      As a language, what does C# (or any .NET language for that mattre) add? None of them have multiple inheritance. C++.NET has templates, but that is also in the works for Java (not for C# as far as I know, but as soon as Java has it C# shall probably follow).

      Yes, there are differences in licensing. But as we all know, CLR's openness is mostly cosmetic. Key to real usage of CLR shall be the standard class libraries, which are not open and only available on Windows. Really, this licensing issue is so weird. People keep complaining about Sun, where Sun has learned the hard way that they have to play it hard to avoid perversion of the Java standard as a platform neutral technology that runs everywhere.

      Microsoft tried to subvert this, they almost succeeded; only after years of legal battle and sharpening of licensing rules Sun could avoid fragmentation and MSFTs usual 'embrace and extend' way. After MSFT saw they could not do this with Java, they even completely dropped it and came up with .NET.

      In practice, Java runs on almost any platform around. In practice (even though CLR is supposedly open) .NET shall run only on Windows.

    8. Re:To destroy languages is the power of .NET by g4dget · · Score: 2
      It i not up to the JVM to implement or lack proper tail-recursion-optimization, but up to the java compiler.

      No, this is not true. TRO can happen whenever a method calls another method just before returning. But the JVM lacks the primitives for expressing this concept in general and it isn't guaranteed to perform the optimization automatically, either. When a Scheme compiler performs TRO on top of the JVM, it can't be using JVM method calls.

      I know that a (standard compliant) Scheme compiler has been written targeting java bytecode. The Scheme standard requires proper tail-recursion-optimization.

      Java is Turing equivalent, so you can implement any language on top of it (in the worst case, as a full interpreter). The real question for CLR/JVM is whether the optimization happens naturally when you map onto its built-in notion of functions. And for JVM, the answer appears to be "no".

    9. Re:To destroy languages is the power of .NET by DGolden · · Score: 2

      The JVM (basically a neutered Forth VM) can't do proper-tail-recursion the "easy" way- it lacks the required stack manipulation primitives, according to some people they left them out for security reasons at the time of design.

      The fully-rnrs-scheme-compliant scheme, SISC on the JVM uses the JVM heap, not stack, where most schemes on real processors would use the processor's real stacks, munging them for tail-recursion.

      --
      Choice of masters is not freedom.
    10. Re:To destroy languages is the power of .NET by Blue+Lozenge · · Score: 1
      Only superficially all .NET languages are different, only superficially they are like their originals (syntax etc). In fact all .NET languages are structurally alike, only the syntax is somewhat different.

      I am so sick of reading this .NET FUD. When you develop a language for .NET, nobody says that you have to write just another OO language with a new syntax. You can do whatever the hell you want with your language. The only requirements imposed by .NET are that you must support some mechanism to interface with the common language runtime using the common types and maybe the common framework classes.

      Let's take Managed C++ for example... I can write a .NET module that has a single function as the entry point from .NET. Once inside that function, I can do anything I want, use any C++ construct I want, all without .NET imposing any constraints on me or my program.

      With F#, I can write all the crazy functional non-OO code I want. The only part of my code that must fit the common .NET OO model is the part that interfaces with the outside world. That's IT.

      Think of .NET as the glue that binds all these laguages together. Only the parts of your code that touch that glue must fit to its model. This is unavoidable if you want different languages to talk to each other. In the rest of your code, you can use whatever non-.NET constructs you want to use.

    11. Re:To destroy languages is the power of .NET by mark_lybarger · · Score: 2

      In practice, Java runs on almost any platform around. In practice (even though CLR is supposedly open) .NET shall run only on Windows.

      well said! though, it's not highly recommended (at least from my past expereience) to try running a weblogic java app server on a win 2K box, it is possible and does work.

    12. Re:To destroy languages is the power of .NET by evilpenguin · · Score: 2

      I've been programming in C++ for, cripes, it must be ten years now and I've been doing Java on paying basis for three years. This is an honest and sincere question. Can anyone give me examples of where multiple inheritance is a) necessary, and b) superior to the Java trick of interfaces?

      In my experience, multiple inheritance kills reuse, and is somtimes so overused that you get a complex, rootless graph of classes. I actually dislike multiple inheritance. Now, I freely admit that this could be product of ignorance of the the intelligent use of the feature.

      By contrast, I genuinely like the Java system of interfaces. It adds a "works-like" or "can-do" semantic to the traditional object semantics of "is-a" and "has-a." In my experience, it is easier to keep clean and extend, and it doesn't really overcomplicate the class heirarchy.

      Mind you, I've programmed in C for nearly 20 years, so it took a long time to really become an OO programmer instead of a C programmer who uses class libraries -- which is what I believe about 60% of C++ programmers really are. I think C++ took off because of the relatively easy transition from C, but I think all of my complaints about C++ come from the holdover baggage of C.

      Things I dislike in C++
      o "virtual" Sure, high efficiency, but can make for real confusion. "Which method got called?" I like Smalltalk and Java better on this.

      o Multiple inheritance. I like interfaces. Please tell me why I'm wrong (the ony cure for ignorance is confession).

      o Operator overloading (this is also something I like). Here my complaint is bad use of operator overloading. How am I supposed to know what it means to increment an Employee?

      o Memory management. Being an old C and later C++ man I was highly dubious about Java's garbage collection model. One month of Java and I totally changed my tune. An entire class of bugs simply disappears. With Java "It compiles, therefore it works" became almost true. Never in C++.

      o Pointers and instances. I don't like (and its just for cleanliness reasons -- not on principle) that you can instantiate an object both by declaration and allocation. In practice, I've ended up using object pointers all the time. When I mix object pointers (read references) and declared objects I end up confusing programmers who must maintain my code in the future. (Should "payment" be deleted or just go out of scope?)

      o No root class. In Smalltalk and Java you get many advantages from having a root class that at some point every other class inherits from. In fact, it gets rid of many of the cases where templates are required in C++ (but not all -- I do like templates!)

      Things I really like about C++:

      o Templates. You can't beat 'em.

      o Operator overloading. When you use it well, it's nice. One bit of code I wrote a long time ago that I use over and over again is a file-backed array class. Overload the subcript operator and your go right to line "n" of a text file. It works so well I haven't had to change a bit of code in it in five years.

      o Speed. Java sucks on speed. It just does.

      o Destructors. I really miss destructors in Java. Even though I consider it a small price to pay for losing the memory management/pointer bugs that are so easy to make in C/C++, it is nice (REALLY nice) to have a method that is ALWAYS called when the object is destroyed (no longer used), as opposed to when it happens to get garbage collected. This is especially noticed when dealing with resources outside of the language, like DB connections and sockets to external services. Sure, you code around this, but a destructor is really nice.

      So, set me straight!

      (No holy war intended here -- I love almost all the languages I've programmed in for one reason or another. They all have their uses.)

    13. Re:To destroy languages is the power of .NET by angel'o'sphere · · Score: 2


      You didn't mention an important one which is a big lack in JVM. That is: tail recursion. Does it have it?

      Tail Recursion is not the issue of a VM; be it CLR or JVM. Its a issue of the language.

      Java supports recursion, like all modern languages except perhaps some BASICSs.

      Do you perhaps mean tail recursion elimination? Thats an optimization which is done by the compiler.

      Elimination of recursion, tail recirsion or others is hard in late bound invocations. In Java its only easy doable for static or final methods.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    14. Re:To destroy languages is the power of .NET by angel'o'sphere · · Score: 2


      The JVM (basically a neutered Forth VM) can't do proper-tail-recursion the "easy" way- it lacks the required stack manipulation primitives, according to some people they left them out for security reasons at the time of design


      Can you explain that deeper or provide a link to a paper?

      I learned Tail Recursion Elimination is done by unrolling a recursive call into a loop.

      fib(int n) {
      if (n == 0) return 1;
      if (n == 1) return 1;
      return n * fib(n-1); // tail of fuction fib-n
      // and a call to fib-n-1
      }

      fib_loop(int n) {
      if (n == 0) return 1;
      if (n == 1) return 1; // end of loop!
      int res = 1; // known from loop end
      for (int i = n; i > 0; i--) {
      res *= i;
      }
      return res;
      }

      This is PURE HIGH LEVEL language code, and tail recursion elimination is applied! This has nothing to do with the underlying virtual machine, IMHO.

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:To destroy languages is the power of .NET by curri · · Score: 2, Informative

      A few things (this is not a flame, your ideas seem reasonable enough :)

      1. virtual In java (If I understand correctly) EVERY method is virtual. So you may not like the idea of non-virtual methods. They are there for performance. You can, of course, just declare all your methods virtual :)

      2. Multiple inheritance is a more powerful mechanism, compared with interfaces. If you use pure-virtual classses, it can be equivalent to interfaces (although you can still attach some code), but it can do more.

      The standard example is when you have 2 separate class hierarchies (sp?), and need to have a class that belongs to both. Say you have a GUI framework, and a persistence framework and want a persistent window :)

      IF you had the code for both frameworks, you could probably change some things for interfaces.

      My problem with interfaces is that they only pass type info, but no code; they make for a cleaner mechanism, but if you actually need to get code from 2 different classes you're screwed.

      It may just be philosophical differences; I like the philosophy behind C++ (the programmer knows what (s)he wants to do, it's not the language's problem if they don't), and felt Java as taking things away because they're dangerous :)

      3. Pointers/memory management It is nice to have garbage collection, and memory issues in C++ get to be more complicated. But you get more flexibility, performance and destructors :)

      It's not that hard to mix pointers and instances most of the times. You would never delete an instance, of course, and very few times take the address of an instance (there are references in C++ now; it's not C). Also, you can use auto_ptr and all those goodies.

    16. Re:To destroy languages is the power of .NET by Anonymous Coward · · Score: 0

      Self-calls are easy. The hard case is tail calls to other functions (which is used less often for iteration but can be an extremely powerful idiom). The Scheme standard also requires optimization of non-self tail calls.

    17. Re:To destroy languages is the power of .NET by bentini · · Score: 2
      That's not tail-recursion elimination. That's transforming recursion into iteration.

      Also, your test if(n == 1) return 1 is unnecessary. As are both tests in the second version of the code. Tail recursion elimination still recurs, it just doesn't use any more stack space.

      As a test, try to make mutually recursive tail recursive calls optimized. E.G., even and odd, where even returns 1 if n == 0, odd(n-1) otherwise, and odd returns !even(n-1).

      -Dan

    18. Re:To destroy languages is the power of .NET by evilpenguin · · Score: 2

      Yeah, I know (and agree with) everything you are saying, but you haven't made a compelling case for me. I would never want C++ to go away, but the number of situations in which I would use it has gone way, way down.

      I actually wish Java wasn't so focused on the VM concept, which is nice, but I would rather have true native code compilers for Java that produced solid, fast code. My biggest gripes with Java are the slow VMs and outright bugs in the VM that cause lock-ups and runaway resource consumption in production cases.

      Separate rant: Sun should just GPL the whole JVM and JDK. I've had problems in production Java systems that I *know* are in the implementation of the VM itself, and there is NOTHING I ca do about it. When you write in C++, you can generate assembly source and you can see every byte of code your application executes (okay, maybe not the libraries -- which is why I use gcc, then I can if I want to). In Java, you've got a black box VM that you have no idea about. Most of the time that's fine, but if there is something broken in the VM, too bad. You're on your own.

      I guess it all boils down to there is no One True Language, One True Platform, or One True Operating System (or even One True License). It is all about freedom of choice.

  20. Remember April 1st? by WildBeast · · Score: 2

    Did you remember when Slashdot said that they'll post articles about there sponsors products? Well here's the result.

    I'm not anti-MS by any means but even I can notice that this F# have very limited appeal. Posting an article about it, is very suspicious.

    1. Re:Remember April 1st? by Anonymous Coward · · Score: 0
      Did you remember when Slashdot said that they'll post articles about there sponsors products? Well here's the result. I'm not anti-MS by any means but even I can notice that this F# have very limited appeal. Posting an article about it, is very suspicious.

      So, chump -- where is your evidence ???? Put up or shut up.

      The truth is that this is interesting, because OCaml is an open source language that a lot of the dying breed of slashdotters who can actually write code, are interested in. HTH.

    2. Re:Remember April 1st? by Anonymous Coward · · Score: 0

      Don't attribute to malice what you can more easily attribute to stupidity.

    3. Re:Remember April 1st? by JoshNarins · · Score: 1

      And the thing is, so many of the posts seem positive. I'm wondering if Microsoft is trolling!

      --
      NYC - Perl Programmer - Politics/Government/Economics
  21. Comment removed by account_deleted · · Score: 3, Informative

    Comment removed based on user account deletion

  22. good job on the generic implementation, but... by g4dget · · Score: 3, Insightful
    Looks like they did a good job on the generics support in their runtime. In particular, unlike batch C++ compilers, they delay generation of specialized code until it's needed. That gives you the efficiency of C++ (no boxing, for example) without the bloat. This is what Sun should have done. Instead, Java has a half-baked and not type-safe genericity hack. Even the more complex proposals for Java genericity have been more limited in comparison.

    Let's just hope that the specification and implementation strategy for .NET genericity will be open. While there doesn't seem to be anything terribly sophisticated or novel in it, Microsoft could conceivably have applied for a bunch of patents and may try to keep efforts like the Mono project from implementing this.

    As for F# itself, it seems to be a closed-source distribution only, which makes it uninteresting except as a technology demonstration. Microsoft almost certainly has no intention of supporting it commercially, making it effectively an orphaned, single-platform, non-evolving system. Even if it were a commercial product, lack of an open source distribution would make the chances of its adoption nearly zero.

  23. This up next ... by Anonymous Coward · · Score: 0

    Man gives flying fuck ...

    1. Re:This up next ... by global_diffusion · · Score: 1

      Already downloaded it off gnutella.

  24. Re:Why don't they use Smalltalk and stop F#$% arou by g4dget · · Score: 2

    No, "all this shit" has not been around in Smalltalk. OCAML incorporates a lot of ideas and technologies developed in the 1980's and 1990's, after Smalltalk was designed. Whether you need the extra power of OCAML or whether it gets in your way is a separate question, but OCAML is not a subset of Smalltalk and Smalltalk is not the be-all-and-end-all of all ideas in programming.

  25. Re:Why don't they use Smalltalk and stop F#$% arou by Anonymous Coward · · Score: 0
    Damn straight. Smalltalk Rules, and Kicks Ass. It is incredible that this particular wheel keeps getting re-invented.


    Smalltalk's problem is that you have to be quite intelligent to 'get it'. Whereas traditional languages are easier for stupid people to get started with.


    Its a crime that smalltalk is not more popular, but then people still use Linux when they could be using BeOS. Go figure.

  26. What .NET should really be usefull for by nonane · · Score: 1

    We have 4 developers doing inhouse development at the place where I work. The web interface programmer uses Java Servelets, the back end guy is forced to deal with Fortran because of lots of legacy code, I'm working with C and Perl in the middle tier. My boss asked me to write wrapper functions for Java which the web developer could use to access my C + Perl functions. I didn't have the patience or time to deal with JNI, so I decided to have a daemon run on the host and listen on a socket. The Java wrappers would recive a request from the web app, serialize it and send it over the a tcp connection on the same host. The C program listening on the other end will have to deserealize it, make sense of what the Java application wants to do, execute the function and send the results back (via serialization etc). Maybe JNI would have been easier, but my point is there is a lot of glue work I have to do just to get the C, Java and Perl talk to each other.

    .NET lets you integrate all this in one go. If, (I know this isn't possible...yet) every compiler we had was a .NET compatible, there would be no ugly glue between apps.

    Programming languages are the software developers tools much like a mechanic who has his wrench, pliers etc. Analyze the problem and select the tool which will give you maximum productivity. If I have to do alot of string processing, parsing etc, I'd go with Perl, for low level stuff I have C. AI stuff, prolog and lisp (although I'm not too good with prolog, but the damn goal searching,backtracking built in is excellent). You use the tool which will give you maximum flexibility and efficiency to solve your program. A big project can be broken into smaller boxes. .NET can be the glue which lets all the tools talk to each other. After all the FUD about XML, UDDI, IL, CLR, I think the goal of .NET is interoperability between programs. Which IMHO can make my life alot easier and much better.

    1. Re:What .NET should really be usefull for by Anonymous Coward · · Score: 0
      And you're an incompetent developer. You should be embarrassed, totally utterly ashamed for jury-rigging what would have been a simple, reliable and fast API interface with a serial interface over TCP/IP, which can *never* provide the same level of performance or reliability.

      I am embarrassed that someone who claims to be a developer would do such a thing - it speaks ill of the profession.

      You should be fired twice:

      • Once for changing the specification from an API to a "daemon running on a socket" and
      • A second time for actually implementing this abortion and pulling the wool over your boss's eyes about what you did.

      Sometimes intellectual laziness is not a virtue.

    2. Re:What .NET should really be usefull for by Anonymous Coward · · Score: 0

      Have you never heard of CORBA?

      CORBA is a language independant, machine independant, network transparent remote object specification, and I have seen C/C++, Java, Perl, Python and even VB (bleagh) implementations for it all work seemlessly.

      Some people would think of it as COM done correctly, you could just think of it as your TCP/IP service where someone else has done all the mundane work for you (the messaging protocols, connections, all that sort of stuff) and you can get on with the important bits which actually do something new.

      I just like the fact it can tie all the languages I have ever used for large projects (and many many more) together in a way whereby you can not only use the right language for the job, but even the right machine for the job if neccesary. When people bang on about object oriented langages, I think they fail to see the importance of continuing this approach into object oriented systems.

      CORBA has only been around for a decade or two, so will probably take a bit more time to mature as much as .NET has ;-)

    3. Re:What .NET should really be usefull for by nonane · · Score: 1

      CORBA would have been overkill for the interface. It _is_ good, but designed for a vastly more distributed enviroment.

    4. Re:What .NET should really be usefull for by nonane · · Score: 1

      You are right, but was not the entire story. In my opinion, the daemon was required. The program opened a connection to the database and prepared 15-20 queries to execute. If it were not for the daemon, a new connection to the database + repeated preparation of the queries will need to be done _everytime_ the java calls were made. Also, this is a distributed system, clients from all over the network need access to this method.

      Intellectual laziness is never a virtue.

    5. Re:What .NET should really be usefull for by Anonymous Coward · · Score: 0

      If those queries are going to be executed on a regular basis why on earth didn't you move the queries over to the database as either stored procedures or views that return a recordset?

    6. Re:What .NET should really be usefull for by nonane · · Score: 1

      It doesn't matter if I move the queries to the database, that won't get rid of the initial delay in connecting to the database and executing the stored procedure or selecting the view. Getting a connection to oracle takes around .5 secs (on our server atleast). Besides, like I mentioned, there will be other hosts on the network which require the information from the database massaged into another format by my older functions. I will need a daemon to listen for those.

      We have a host which contains configuration (in the database) and have clients that require this information. The problem with this is that the data models on each side are different, and the host side data has to be massaged to get it into the format acceptable to the client side. To make it more complicated; you can have _ALL_ the configuration sent to the clients at once, in which case the host side builds a virtual image of the client's contents in its memory and sends it all down to the client (takes around 100-150 queries to figure out what the client's image will look like). Or you can have a single update in which only 1 record on the host side gets updated; in which case doing 100-150 queries is inefficient. BUT If the server doesn't have a virtual map of the clients contents it doesn't know how to present the update to the client (one update can have an effect on multiple entries). I think I'm gonna put the logic on the client's end, the host will send the update and the client will process it and figure out what to do with it.

  27. Pay more for a brand name of asprin by 3seas · · Score: 2

    That's what this is about, Branding!!!

    I'm not interested in it. In fact I'm less then zero interested in it, as the generic brand contains the same ingredients and cost a whole hell of a lot less.

    For those stuck on words used. Microsoft is a brand name. GNU, FSF, GPL is the generic indicator, organization of establishing the generic and the licensing of the generic that insures it stays that way.

    1. Re:Pay more for a brand name of asprin by 3seas · · Score: 3, Interesting

      I should add that I'm so tired of Microsofts abstraction manipulations, or lies and manipulations of the meaning of words, etc...

      It's like the boy who cried wolf. At some point it just becomes more productive to simple ignore them and their distortion. While focusing on that which is without alot of crying wolf.

      Remember that developer use of .net is constrained to non-GLP work.

  28. Re:Why don't they use Smalltalk and stop F#$% arou by Anonymous Coward · · Score: 0
    Smalltalk is the only language I've ever used that I felt truly extended my reach as a programmer and truly enabled me to do easily things that would have been difficult in other languages.

    Then you are pretty inexperienced. There are plenty of languages around that are like Smalltalk, and many of them improve on it. Time hasn't stood still since 1980.

  29. Languages - an art form by ndogg · · Score: 2, Informative

    I see a few people complaining that there is "yet another language to learn."

    They ask, "Why bother creating another language? There is quite a number of them out there. Any of them should be able to solve almost any problem out there."

    Programming languages are an art form, and like any other art form, it deserves respect. Each programming language forces a programmer to think about a problem in a slightly different manner. Prolog forces a programmer to think in terms of goals to be achieved, and OO languages force a programmer to think in terms of self contained parts of the problem. Different programming languages make it easier to solve different types of problems. Haskell is a great language to represent infinite sequences due to its use of lazy evaluation.

    Would you tell a musician to not experiment with sounds not created by traditional instruments because there are so many musical instruments out there for him/her to use, and that any musical piece can be performed with any of them? Musicians come up with new sounds all the time because those new sounds allow them to view music from another perspective

    --
    // file: mice.h
    #include "frickin_lasers.h"
    1. Re:Languages - an art form by Anonymous Coward · · Score: 0

      Sorry. Microsoft deserves *NO* respect.

    2. Re:Languages - an art form by Devil's+Avocado · · Score: 1

      Aha! Finally somebody who has a clue about programming languages. There will always be new programming languages for the same reason that there will always be new musical instruments. People are creative and inventive, and have different ideas about aesthetics. Why have different programming languages that are all Turing equivalent? Well, cuz some like objects and some like functors, and some like both. Some like multiple inheritance and some like single inheritance. It's almost all a matter of aesthetics.

      -DA

  30. OK: I gather it's a South Park routine. by Anonymous Coward · · Score: 0


    I guess it never happened in real life.

  31. Re:To destroy languages is the power of .NET QWZX by Anonymous Coward · · Score: 0

    Just for the record, you don't have the FAINTEST idea of what you're talking about. All you're doing is parrating things you've heard, without actually having any first-hand knowledge.

    C# + CLR is nothing like Java + JVM. Proof? How many languages are available for the JVM? Not many, and those that are available are pretty brain damaged.

    Why don't you actually do some research before spouting off this complete bullshit.

  32. Suspicious....(or just really stupid) by Anonymous Coward · · Score: 0

    Hmmm...let's see...No copyright and really poor formatting on the f# homepage; plus, the combination F#/OCaml/ML reads 'Focaml' or 'Fuck 'em all'?

  33. M$ to port Intercal to .NET by killjoys · · Score: 1

    Micro$oft today announced the introduction of I#, a port of the intercal programming language. Said chief architect Bill Gates "The syntax of Intercal forms a perfect synergy with the way Micro$oft apps are designed. I predict that I# will overtake C# in being the most important development language in the World"

  34. Compromise for interoperability is not destruction by Carnage4Life · · Score: 4, Insightful

    Just compare any .NET language with the original, (C++ versus the real thing, F# versus ML etc). What you see is that any language, in order to achive interoperability at this level (including inheritance etc) and thus get access to .NET libraries, needs to be mutated into something different.

    Agreed, this is true of any mechanism that allows interoperability. Java does not allow one to effectively utilize benefits of the target platform so that it is interoperable across operating systems. Many would claim that this is a good thing. SOAP and web services are making people similarly compromise to enable building distributed applications something that is accessible to the average developer. Again this is widely considered A Good Thing

    Compromise for the sake of interoperability is something that is done all the time. The question typically is whether the amount of compromise is worth the benefits of interoperability.

    Only superficially all .NET languages are different, only superficially they are like their originals (syntax etc). In fact all .NET languages are structurally alike, only the syntax is somewhat different.

    I'm not sure what you mean by structurally alike but I'll hazard a guess and assume that you meant they are semantically alike. So far I have used 4 .NET languages to program; C#, JScript.NET, VB.NET, and Managed C++. Being skeptic I originally assumed that .NET Framework would simply be creating skinnable languages where the syntax may be different but the underlying semantics are mostly unchanged which in fact many claim is the case for VB.NET and C#.

    However, the more I used the languages the more I realized that although some similarities existed the core of the languages from my past; JScript and C++ was still in their .NET versions. I can still declare vars in JScript and best of all in managed C++ I get all my favorite C++ constructs (STL, the 4 casts, templates, etc) but can combine them "managed code" to get the benefits of .NET.

    Now there are certain compromises such as the fact that the CLR only supports single inheritance (which I believe some research language discussed a while ago on Slashdot found a workaround for) but in my opinion this is a small price to pay to be able to access my C++ objects from VB.NET or my C# objects from JScript.NET. I consider even better that there is one unified class library that I can count on across all the languages besides the language specific ones like the STL or the JScript function library.

    Disclaimer: I work for Microsoft but the thoughts expressed in this post are my opinion and do not reflect the opinions, intentions, plans or strategies of my employer

  35. F# ... C#? by Anonymous Coward · · Score: 0

    hmmm... Shouldn't F# have come before C#?
    Since their going backwards, I suppose D# must be next...

    1. Re:F# ... C#? by Anonymous Coward · · Score: 0

      err.. B# that is

  36. We have a moral imperative! by Anonymous Coward · · Score: 0

    We must stick our heads in the sand and pretend that anything having to do with Microsoft is not worth knowing!


    If it isn't linux-native, it isn't a REAL programming language!

  37. Should have called it "G"... by Anonymous Coward · · Score: 0

    ...since it would have been a musical tritone (the "devils interval") away from M$'s C#.

  38. cant' help it... by Anonymous Coward · · Score: 0

    Apparently this language is a perfect forth above C#.

  39. Re:Compromise for interoperability is not destruct by PythonOrRuby · · Score: 1
    Compromise for the sake of interoperability is something that is done all the time. The question typically is whether the amount of compromise is worth the benefits of interoperability.

    I think the real question here is not whether languages are limited to certain features in order to interoperate. This is a given, considering that so many languages offer functionality far beyond what C# brings to the table.

    The real question is whether the CLR, which is ostensibly separate from the C# language, allows these languages to implement the things that make them worthwhile in the first place.

    For instance, if I'm an Eiffel programmer, and I want to write a .NET program, can I use my favorite Eiffel features in addition to the .NET stuff, or do I get a bastardized language that's just going to drive me to C#?

    If this is the case, then all that's happening is Microsoft playing the old "bait 'n switch" with developers.

  40. music... by vectra14 · · Score: 1

    i wonder if they will make a E# when they run out of "black sharps". and then they'll realize that it's exactly the same as plain F :)

  41. F# made me think of Fortran by cheezfreek · · Score: 1

    Was anyone else thinking "Why would anyone need to port Fortran to the Common Language Infrastructure?" I was, before I read beyond the headline. Actually, after having read the CLI proposed standard, I had come to the conclusion that some Fortran 90 language features could not be supported by it in a portable fashion (F90 pointers, allocatables), so the initial shock of the headline was considerable. Could they not have come up with a better name for this?

    1. Re:F# made me think of Fortran by Anonymous Coward · · Score: 0

      There already is a Fortran compiler from .NET. It is available for download from Fujitsu. They also have a Cobol compiler too. They love the old stuff.

    2. Re:F# made me think of Fortran by cheezfreek · · Score: 1

      As far as I know, it only handles Fortran 77, not 90 or 95. This makes it less than desirable, as it can't compile about 90% of the Fortran code I personally see. (Please correct me if I'm wrong. I hope I am.)

    3. Re:F# made me think of Fortran by pne · · Score: 1

      I thought so, too.

      --
      Esli epei etot cumprenan, shris soa Sfaha.
  42. Or.. by Anonymous Coward · · Score: 0

    You could just use Java

  43. A terrible loss by Bodrius · · Score: 2

    It could have been called ML#, or M# if you really need the one letter thing. But now by calling it F# they have inflicted terrible damage on the community.

    Sure, it's F-unctional/imperative, but there are other Functional/imperative languages, how come they got the priviledge on the F? It's a non-intuitive choice for something based on ML, and it takes over the F...

    How many headlines in SatireWire et al could have been based on that F#? How many inside jokes, idiomatic expressions? An important piece of the .Net culture has been removed before it had time to blossom.

    Can you use "this F# S# is not compiling!" anymore? No, because it might not be implemented in F# and would confuse your co-workers, who would have otherwise understood your feelings exactly. We will see, ad nauseam, co-workers mocking poor F# developers with jokes that, in the pretense of sophistication ,will get old very quickly: "so, I hear you're using that F# language? Am I going to have to read that F# S# when you're done? I hated debugging that when I was in college, my prof was a F# A#".

    Confusion in the workplace will stifle any creative idiomatic use of F#, nagging by co-workers with repetitive jokes will stifle any creative alrogithmic use. F# will die and will kill the F# with it.

    Saying just "piece of S#!" is not the same. And how long before even that is removed, when they implement Smalltalk in .NET? What's next, A# for Algol?

    Why, Microsoft, why?!

    --
    Freedom is the freedom to say 2+2=4, everything else follows...
    1. Re:A terrible loss by Anonymous Coward · · Score: 0

      Notice that the guys who created F# are pretty
      much all working for Microsoft Research. They
      are definitely not marketing guys.

      To venture a guess: F# is probably a pun on
      the names of a class of academic functional
      languages such as F_2 (F sub 2), F_\omega,
      and so on.

  44. F Sharp (F#) by mlarios · · Score: 1

    I didn't know that musical notes could be used as a language on the internet.

  45. Re:Why don't they use Smalltalk and stop F#$% arou by psaltes · · Score: 1

    You might like Ruby. A lot of the ideas behind it follow from the smalltalk message passing paradigm, the iterators are quite similar, and a lot of former smalltalk fans seem to use it. It is not really meant as an improvement on smalltalk though; the syntax is completely different, and it borrows ideas from other languages too.

  46. Re:Why don't they use Smalltalk and stop F#$% arou by alext · · Score: 2

    Yeah, he probably meant to say LISP :-)

    Anyhow, there are plenty of better candidates for 'redundant language' to pick on (XML and its myriad of ways to computational completeness, Python, Javascript...)

  47. Re:Why don't they use Smalltalk and stop F#$% arou by entrox · · Score: 2

    That's not the point. I totally agree with what the parent poster said (just replace every occurance of "Smalltalk" with "Common Lisp" for my case).
    Why do people have to reinvent the wheel a thousand times, but never succeeding in making it truly round? WHAT advantage has Ruby over Common Lisp or Smalltalk? WHY did it have to be made? What, as a language, can it do that Smalltalk or Common Lisp can't? It's a waste of time, really.

    --
    -- The plural of 'anecdote' is not 'data'.
  48. smallscript... by (a*2)+(ron) · · Score: 1


    Why don't you look into smallscript?

  49. E# by mlinksva · · Score: 2

    F# looks cool, I've been meaning to learn O'Caml for awhile. But I really want to see E#.

  50. Re:Why don't they use Smalltalk and stop F#$% arou by Anonymous Coward · · Score: 0

    Examples? Or were you just happy to make an ad hominem attack, and didn't actually have useful information?

  51. Re:Compromise for interoperability is not destruct by Baki · · Score: 2

    I think the integration is too fine grained to implement really different languages, such as
    - not-OO at all (but purely functional or logical languages)
    - languages like ADA or OCCAM that have completely different parallelism paradigmas

    I prefer more loose integration, where different languages/environments can implement truely different paradigmas. Then you integrate for example by:
    - building a 'bridge' in the C, the de-facto glue language (JAVA has JNI, almost any language has some kind of interface to C
    - more coarse component mechanisms such as Corba (or COM or web services if you like)

    In more specialized environments (that thus are impossible to integrate at the fine level as .NET does) you can have more effective solutions for particular application domains.

  52. Too long by ajs · · Score: 2

    I'm getting sick of these long names like Coctothorpe and Foctothorpe. Can't we just go back to "C", "Perl" and exorbitantly long, "Pascal"?

  53. Re:-1, Annoying use of the phrase "Micro$oft" by Anonymous Coward · · Score: 0

    Egg man, please give me my eggs right now. Please? Did I make you mad, is that why you won't bring me my eggs? Or are there any chickens to lay any eggs anymore? Please egg man please, please I need my eggs!!!!!!!!

  54. Re:-1, Annoying use of the phrase "Micro$oft" by Anonymous Coward · · Score: 0
    Yeah you're right I'll call it Microshaft instead. They deserve to be called this name, I mean look at Apache so good on linux everybody should swatch over from BSD especially after SMP improvements in kernel2.4.

    Caldera is for l4mers, what if someone changes the kernel binares, who'd notice. Only compiling from source is safe, mustn't lie about linux's ease of use. It's like a linux test if you can't compile from source then you've failed the linux exam so have no right to install it. This'll fix all those damn linux root viruses when l4mers that don't know how to set up accounts install linux, their so stupid. All non-Slackware distros such as Redcrap^H^H^H^H^H^HRedhat should be illegal, that'll stop those viruses.

    Mod down those pro-Micro$oft posts, .NET is gonna be embraced and extended and is gonna kill linux. Moderators, please! Especially after that NSA-Key. I hate those damn RIAA people, which reminds me the special effects in Star Wars ep 2 are cheapskate render-lined trash, they should spend more on these movies.

    The majority of Americans have below average intelligence, can't they see that GPL'ed software will create so many software jobs! DoJ should force Windows 98 to become open source so that those poor third world countries like China can use it.

    I betcha .NET is slower than C and assembly, I mean how the heck do you put SSE2 instructions into CLR if CLR doesn't support it and compiles it itself? I wrote my programs onto FPGA that way it's faster than assembly no need even for fetch-and-decode, the chip's electronics handle it internally!! This is why everybody's going to switch back to OS/2 oooh I'm sorry AtheOS which copied OS/2 code. My Mother could use linux in her sleep. Why why why did Microshaft succeed when OS/2 and betamax was so much better??

    When .NET becomes popular, nobody's going to code in ugly C++ with dereferencing pointers, double free()s and all that trash. Everyone will code in VB and will use C++ modules. All C++ jobs will be gone. Everybody's gonna use linux kernel v2.4 I mean look at it's TCP stack compared to BSD 3.0, everybody keeps bragging about FreeBSD's TCP stack but that's trash. Hey Beliskner's cool and I'm bored.

  55. FUD by Hard_Code · · Score: 2, Insightful

    Well, I am a fulltime middleware Java programmer, and have no particular love for MS, but your post is mostly FUD. Microsoft is not trying to ingratiate themselves to *US*, the Slashdot crowd (duh!) - they are trying to jump off their legacy languages (VB, C++) into a J2EE-like world (which Java has had for years now), and to this goal, .NET/CLR is a pretty damn good architecture. The things which it *does* have over Java which are actually nice, is, for example, optional "unsafe" keywords for native integration, and auto-boxing (which Sun has now planned to introduce to Java in 1.5). .NET is a great platform for current Microsoft developers to migrate to a web-services/J2EE-like world, and it does a damn good job at it. I know if I was an MS developer I sure would rather develop in .NET/CLR/C# than the crap that they currently have to deal with (VB/C++/MFC/ActiveX/COM+).

    .NET is a good architecture for what it is designed for. That doesn't mean MS is not still going to try to do something evil with it, but it is plainly dishonest to spew FUD like that against it. Read the spec before bitching.

    --

    It's 10 PM. Do you know if you're un-American?
  56. Really F#? by Tarrio · · Score: 1

    Are you sure it is not Fortran for .NET? At least it looks just like it...

  57. I tried Squeak... by Anonymous Coward · · Score: 0
    ...and the sample programs ran so slowly on my Pentium166 I thought I was flashing back to 1988. Not the fastest machine admittedly, but still...I checked what the people on the wiki had to say, and it was "well, Moore's Law will fix it."

    If there's a free Smalltalk with reasonable performance, I might try again. Suggestions?

  58. Thanks for the interesting discussion by DonOnTheLoose · · Score: 1

    Hi all, This is Don, the Microsoft Research author of F#. It's early days yet for F# so I'm glad to hear what people have to say. F# is experimental around the edges, but I wanted a solid, sensible core that no one needed to argue about.... [ Actually, to be really honest, I just wanted a .NET compiler that meant I could keep programming the way I wanted to program and could reuse my existing investment in code, so thought "what the hell, I'll write a compiler..." ] For a version of ML (in this case Standard ML) with all the features such as functors enabled by using whole-program compilation please take a look at SML.NET - email Andrew Kennedy (akenn@microsoft.com) for more details. Andrew and co. will be posting a release in the next week or so. It rocks! OCaml is a moving target, as they are adding new features quite often, and some of the features I left out of F# were because I don't actually like them very much (labels for example - in this case something may be needed, but I don't think they got it quite right, at least not in the context of accessing .NET libraries.) But F# has all the features of OCaml that I actually like to use, with the exception of functors which I occasionally use very sparingly (and some day I'll probably add the equivalent functionality to F#). I think the first poster made an excellent point: simpler languages can work well in some areas of the modern programming landscape: adding new features to languages can give diminishing returns. Us programming languages researchers have been very guilty of forgetting how well tools such as Perl (and countless other scripting languages and small, special-purpose languages) have served their users. My apologies if I can't track all of this discussion, Don

    1. Re:Thanks for the interesting discussion by DonOnTheLoose · · Score: 1

      Oh yuck, I'd better practice my HTML.

  59. Agreed, language designers != VM designers by Ars-Fartsica · · Score: 2
    .Net is not the only game in town for standardizing a virtual machine. The Parrot project, which is associated with Perl 6, is working towards a highly performant (pseudo)register-based VM that will be available as a separate codebase should other language builders wish to use it.

    This makes sense - it is wasteful and time consuming for disparate teams to reinvent the VM.

    Now before getting on your high horse about these unique VMs exposing some key element that the others omit - just remember, every language is ultimately a wrapper/macro/syntax rewrite of your CPUs intruction set. Raising the level of assumption to the VM level is realistic.

    Now admittedly Parrot does not encapsulate a lot of the features in .Net (security, data abstraction, object pooling...etc etc), but its a step in the right direct.

    Don't underestimate .Net - it makes sense.

  60. SmallTalk is dead, get over it by Ars-Fartsica · · Score: 2

    There were a few stragglers still cranking around in SmallTalk a few years back, but at this point the prospects for this language having a real imapct is zilch. Throw it up on the scrap heap with Lisp and the other dead way-cool languages.

    1. Re:SmallTalk is dead, get over it by dvdeug · · Score: 2

      There were a few stragglers still cranking around in SmallTalk a few years back

      You mean like IBM? Last time I heard, VisualAge's IDE (and probably more) was written in Smalltalk.

      but at this point the prospects for this language having a real imapct is zilch.

      You mean, besides the impact it has already had? Smalltalk's OO strongly influenced how Java's OO was set up, among other things.

      Throw it up on the scrap heap with Lisp and the other dead way-cool languages.

      Um, Lisp? You know, the language that drives Sawfish and Emacs? It's hardly dead.

      What is it with people's desire to throw away all languages but a couple of the cool new ones? A compiler doesn't stop working because some one comes up with a new language; and a large part of the reason these languages die is because people go "does anyone use that language anymore" and use something different, whether or not there's actually support for the language, or whether or not it would be the best language for the job, or whether or not you would enjoy writing it in that language most. Guess what; there are good compilers for Ada and Lisp and O'Caml and Smalltalk on Linux and all major platforms, and besides the libraries which do exists, all those languages may interfacing C from them easy. If you feel like it would be easiest to use them, or it would produce the best code, use them! Maybe it will provoke a renassiance in the language; or maybe it will just get the job done well in an enjoyable fashion.

  61. Wrong, they are tools, not pieces of art by Ars-Fartsica · · Score: 3, Insightful

    The languages that succeed are those that solve a particular problem well in a particular domain, with extra points for being easy to learn and extra extra points for being used by the most people (network effects).

  62. Re:Compromise for interoperability is not destruct by HiThere · · Score: 2

    Eiffel# is a chopped down version of Eiffel, though the only thing that I really know is missing is the multiple inheritance. Unfortunately, that is so central to the core of Eiffel that I don't see how it could be considered the same language. More like Java with pre- and post-conditions. (It *may* include the equivalent of Java interfaces. I wasn't interested enough to look.)

    Other languages may be less severely chopped. E.g., C++ doesn't use multiple inheritance very much, and a version of interfaces would probably be a adequate substitute. And Ruby and Smalltalk don't use multiple inheritance at all. I'm not really sure where Common Lisp falls. The importation of modules isn't the same as multiple inheritance, but it does have similarities.

    If you want to look at the possibilities, check out the page "Languages for the Java VM" (sorry, I don't have the URL right to hand).

    A virtual machine is really just a high level assembler language. You can probably do anything with it, but some things will be more expensive than others. And these won't necessarily be the same things that are implied by the underlying hardware.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  63. I've got all day by flacco · · Score: 2

    F#UCKING C#UNTS, I say.

    doo bee doo bee doo bee doo bee doo bee doo bee doo bee doo bee

    --
    pr0n - keeping monitor glass spotless since 1981.
  64. What about portability? by SHEENmaster · · Score: 1

    I am a linux developer with significant windos experiance. Personally, the product sucks. No offense, I'm sure that you people at M$ are experianced programmers, but the commercial overhang is what makes windos inferior to Linux. Commercial UNIXes, while still unix, are closed and less stable, less secure. Your product needs a better command shell, it needs to conform to existing standards, and most importantly, it must accept that the competition is superior.

    --
    You can't judge a book by the way it wears its hair.
  65. Re:Compromise for interoperability is not destruct by Malcontent · · Score: 2

    Is it legal to use .NET to write GPLed applicatons? I heard that the license restricts the right of the programmer to choose how they wish the license their code. If this is the case (let me know if it's not) then any benefits the .NET platform may offer are useless.

    --

    War is necrophilia.

  66. Re:Why don't they use Smalltalk and stop F#$% arou by elflord · · Score: 2
    Why do people have to reinvent the wheel a thousand times, but never succeeding in making it truly round? WHAT advantage has Ruby over Common Lisp or Smalltalk?

    Comparing ruby to common lisp doesn't make a whole lot of sense, they're substantially different beasts. Can you write GUI applications in common Lisp ? (and would you want to ?) Ruby has more of an OO bias, while Common Lisp has a functional bias (though both are multi-paradigm).

    As for comparing it to smalltalk, IMO the main advantage Ruby has is that it's better at interoperating with the rest of the system. Smalltalk is great in a hypothetical universe where everyone programs in SmallTalk, but unfortunately, the real world doesn't work like that.

    It's not a question of "what (x) can do that (y) can't". You can do everything in assembly language , however, you may find some tools more convenient.

  67. Re:Compromise for interoperability is not destruct by King+of+the+World · · Score: 1
    Under the Visual Studio.NET eula you are not allowed to write GPL software (they don't mention the license specifically, only the usages defined under the GPL as being forbidden).

    Under the .NET CLR I'm not sure. Sorry.

  68. F#/OCaml == f**k em all? by phranque_z · · Score: 1

    I'd think it was intended as a joke except for three points.
    1. Its not April.
    2. None of the contributers to the MS article are named Ben Dover.
    3. It too intelligent (or simple depending on your point of view) for Microsoft to have put forth as a pun.

    Truth is stranger than Microsoft.

  69. you are confused by g4dget · · Score: 2
    The list of already existing and completely open VM and class library ports at Kaffe.org

    So? Kaffe is not an implementation of the Java platform. It is a VM with a bunch of classes that conforms to nothing in particular. In fact, as far as VMs go, there are better open source VMs out there; Intel's ORP, for example, beats Sun's JVM on many benchmarks. But a VM is not an implementation of the Java platform, it is only a tiny component.

    Sun's Community Source license [sun.com]. This explains the terms on which Sun's own code is shared. Note that this license has proven open enough for the Blackdown Linux [blackdown.org] port to be developed.

    I suggest you actually read the SCL some time. You will see that Sun retains all the important rights. Of course, they let Blackdown do a port for now. If Java on Linux stops suiting Sun, they can shut down the effort easily.

    Attempts by Mono developers and other interested parties to discredit Java-on-Linux should be treated with great caution. Not only do they try to represent Sun and IBM as imposing more restrictions on open developments than Microsoft

    I made no such claims; you are arguing a straw man.

    Any open app that uses a Dotnet GUI (Windows Forms or Web Forms) or database API (ADO.NET) is not using standard mechanisms

    So? And your point is what? With ECMA C#, we at least get a set of standard libraries that is considerably more complete than what other language standards (e.g., C, C++, CommonLisp) offer. There is nothing comparable for Java. For Java, we only get Sun's proprietary documentation and a bunch of books.

    these APIs, and in fact over 1000 of the 1200 classes in Dotnet today, are entirely proprietary and are protected by patents.

    Can you back up those claims with some facts?

    Anyone contemplating developing Java on Linux applications should read the following to set their mind at rest:

    I think anybody following your advice is a fool. When choosing a language and environment for open source development, we need binding commitments that it remains open and a well-defined language and library standard. ECMA C# represents such a binding commitment and standard. There is nothing equivalent for even the smallest part of Java.

    I used to think Java could fill the niche of a next generation application development language on Linux. But Sun has backed out of all commitments and is instead pushing "community" processes in which they retain the ultimate control over large parts of the Java platform.

    Maybe the open source C#/CLR efforts won't work out. Maybe Microsoft has some devious master plan and a bunch of aces up their sleeve. But whatever the situation with C#/CLR, I'm convinced that Java is not the answer. If you don't trust the open source C#/CLR efforts, my recommendation would be to stick with C/C++ for the time being, or use one of the many other open source languages.

  70. Re:Compromise for interoperability is not destruct by Malcontent · · Score: 2

    You know just when I think MS has hit the bottom of the slime bucket they do something to show me that there is no bottom of the MS slime pit. I can think of no other company who puts such restrictions on the usage of their IDEs of platforms.

    --

    War is necrophilia.

  71. html 101 by Anonymous Coward · · Score: 0

    i love the fact that the research dudes at microsoft write really bad websites... Highly entertaining !!!

    :)

  72. This is not really fair... by Tom7 · · Score: 2


    F# is not crippled. It's just missing the module constructs of O'Caml, which as far as I know should not cause any problem to be implemented -- they just aren't yet.

    SML.NET, which I think works (though I haven't checked) apparently implements all of SML, including its module language. SML's module language is even cooler than O'caml's, too.

  73. But, surely, five years from now... by antAllan · · Score: 1

    ... everyone will be programming in Objective-C anyway. Using Cocoa on Mac OS X. Or maybe GNUstep if they insist on using other OSes.

  74. OSX/Obj-C/Cocoa by Anonymous Coward · · Score: 0

    Give OSX a try. If nothing else, find an Apple store. Free (and awesome) dev tools, great language, decent enough docs, BSD-ish goodness underneath...

    I'd babble more but I'm just taking a quick break from coding. :D

  75. Tools are art too by Devil's+Avocado · · Score: 1

    Nobody said anything about "languages that succeed," or the languages that are "used by the most people." Success and popularity aren't the issues. The issue is why people create new languages. People create new languages to explore new ideas and new aesthetics, and even if those languages don't become huge successes the ideas that they explore often do. After all, there wouldn't be a C++ if there hadn't been a Simula.

    As for languages only being tools, just because you can use a car to commute to work doesn't mean that a classic antique restored to gleaming perfection isn't a work of art.

    -DA

  76. Re:Why don't they use Smalltalk and stop F#$% arou by psaltes · · Score: 2

    Well, this is not the sort of response I had expected. My post was quite honest in that I really thought the parent poster might actually like Ruby, given what they said, and I was suggesting it because odds are, they didn't know about it.

    Perhaps, in the event that you read this response, you should read this article
    and perhaps be enlightened (or not).

    I use ruby because I like it, simple as that. I've used a bunch of other languages, not common lisp, but scheme, ML, and a little bit of smalltalk (among others). And it just happened that ruby has won out at this point, possibly to be replaced by liking some other language (though probably not common lisp or smalltalk) some day.

    Anyone seriously thinking about the concept of reinventing the wheel should note the dramatic differences between the wheel that goes on the bottom of a 747, and the wheel used on a wagon 4000 years ago. Though it does seem like what you are asking is more like 'why doesn't everyone use common lisp, because it is the best language ever!' than actually 'why do people reinvent the wheel?'

    And posting on slashdot is much more of a waste of time than writing a language.

  77. Pardon me, but... by 75bhp · · Score: 1

    ... did anybody else read F#/OCaml/ML and register it phonetically as "F*ck 'em all"? ... ;-)

    it's a slow Sunday...

  78. References? by crisco · · Score: 2

    Do you have references for this? I'm sorry, I just can't believe this without corroborating material. There are too many GPL projects that compile under Visual Studio for this to have never been mentioned on /. before.

    --

    Bleh!

  79. Re:To destroy languages is the power of .NET QWZX by Patrik+Nordebo · · Score: 2

    Available for the JVM: Scheme, Basic, Logo, Prolog, Smalltalk, COBOL, Ada 95, Python, Ruby, Forth, Pascal, Modula-2, Oberon-2. To mention a few. There are many, many more, but these are the more well-known ones I could find easily and quickly. Some of them may be brain damaged, but I suspect most of them aren't.

  80. F# what a stupid name by forged · · Score: 1
    I thought this would be posted a zillion time already, and I'm surprised to see that it hasn't.

    I almost feel offended by the name. Doesn't it beg for play-on-words (f*** and the likes).

    F# -- the F***ing language

  81. The F# word by The+Girl+With+The+Br · · Score: 1

    MOM!!! Microsoft is being naughty again!!

    1. Re:The F# word by Anonymous Coward · · Score: 0

      Really?

  82. Re:Compromise for interoperability is not destruct by croanon · · Score: 0

    "Java does not allow one to effectively utilize benefits of the target platform so that it is interoperable across operating systems." That is because all the platforms has different properties. .NET is able to do it? Of course not. "So far I have used 4 .NET languages to program; C#, JScript.NET, VB.NET, and Managed C++." This is the question. Why should you use 4 crippled, same languages with different syntax, 1. in general, 2. in the same project, 3. in the same file FOR F#CKS SAKE? .NET is totally useless, since there is Java, which does everything .NET does, and more, since it has a huge community and thousands of open source frameworks / libraries / developers etc. behind.

    --
    Dear Bill, do you have a .net tatoo on your ass for marketing?
  83. Besides, F-Pound is the proper pronunciation. by bill_mcgonigle · · Score: 2


    The # symbol, is the pound or number symbol. Notice how the vertical lines slant to the right. The Sharp symbol has true verticals, with slanted horizontals. Different symbol. Go check out a Unicode chart, there's a symbol for Sharp, and it's different than the symbol for Pound.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    1. Re:Besides, F-Pound is the proper pronunciation. by forged · · Score: 1
      Call me old-fashioned but for me, the pound is the symbol for the British currency. The # is a hash.
      (note that I am from europe; I know that it's different for the guys in the US)

      You certainely have some good points otherwise. I never liked the C# name to start with, let alone F#.

      /forged-pound ;)

    2. Re:Besides, F-Pound is the proper pronunciation. by bill_mcgonigle · · Score: 1

      On the west side of the Atlantic, we typically use the curly-L symbol (last seen on my Commodore 64 keyboard) to denote the British currency. For weight measurement, many people use the # symbol. Grocers are big users. They typically scribble down an order on a brown paper bag, like: carrots 5# celery 10#. OK, so I'm dating myself.

      To me, # usually means comment. :)

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  84. Pronounced... by siesta+at+uni · · Score: 1

    F#/OCaml/ML

    Fock 'em all? Nah... :)

  85. F#? by Syberghost · · Score: 2

    When I first saw the name, I figured it was a new Fortran from Microsoft...

  86. Follow This - was (Re:Grow up. Please.) by tlhf · · Score: 1

    You said "It seems rather simple for an intelligent person to be against Microsoft, yes." I would say you're wrong.

    Let's do a little roleplaying, shall we?

    You're an intelligent centeral African woman, who was raped whilst a teen, and resultingly now has AIDS. You also have a child, and no full time job, and as such live pretty much a destitute life. The UNAIDS organisation provides some, if not enough, medication which helps with your condition. Without said medication, you'd almost certainly be dead, which would leave your child an orphan. The Bill and Melinda Gates Foundation gave $100,000,000 to help with AIDS relief in Africa[1]; a donation which they could not have afforded had Microsoft not performed monopolistic practices. Also, you don't really care about neither comparatively rich western nerds, nor ex m/BeOS|Netscape|Dr.Dos|Borland/ employees. Do you hate Microsoft?

    In such a situation, I very much doubt that I would hate Microsoft. But I guess that makes me stupid.

    tlhf
    xxx
    1. Shaan Online: With a Billion in Pledges, AIDS Fund Still Falls Short

  87. FUD alert by Anonymous+Brave+Guy · · Score: 2
    Under the Visual Studio.NET eula you are not allowed to write GPL software...

    Please stop spreading this garbage around. I've seen this claim made several times in the past month, but it still doesn't seem to be true for any VS EULA I've ever read. What you can't do is incorporate the redistributables into anything free/open source/GPL/etc. IOWs, you can't write your open source rival to MS' products using MFC, and then distribute all the MFC DLLs with it, for example. Nor can you give away the source code to MS libraries for free, even if you have that source code because you bought VS.

    They can hardly stop me using their editor to write source code as a plain text file, though. (Although they can stop me shipping the version compiled with VC++'s default start-up code, since that is going to link stuff that I'm not allowed to redistribute under the EULA, of course.)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  88. Re:Why don't they use Smalltalk and stop F#$% arou by UnknownSoldier · · Score: 1

    > but why do we have to spend twenty years devising languages that are not quite as good as Smalltalk (in the name of efficiency, or compatibility,

    Now Smalltalk may great at certain things, but it isn't the end-all or be-all. There are *reasons* new languages get invented -- to solve a problem more elegantly / efficiently / compactly then older languages. Sometimes speed (runtime) DOES matter.

    i.e. Let me know when I can use Smalltalk on the PS2. Until then, it's C++ and custom assembly, because when it comes to graphics, speed is more important then flexibility especially when you need to use every trick in the book to get a good framerate on consoles.

    > Smalltalk is the only language I've ever used that I felt truly extended my reach as a programmer

    That's great that the language maps to your problem domain. (Lucky B@$tard ;-) In my line of work, Smalltalk would be one of the worst possible languages to use because it doesn't interface with the hardware efficiently. Use the right tool for the job, yada yada yada.

    That's the great thing about programming in multiple languages -- you get to learn why they are better at solving certain problems then other languages.

    Sorry if my rebuttal sounds a little harsh but your post sounded like the beginnings of a "Holy War" and it's hard to tell if you're jazzed about other languages.

    Cheers

  89. why do i have to pay??? (.NET) by Anonymous Coward · · Score: 0

    all right, it's all nice, and you can joke on the name, but THE POINT: why do i have to use .NET, and pay for a thing that it's already done by a lot of others languages and system????
    but maybe....
    you want crossover programmin'!?!?!?
    use java, then!