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."
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.
¦ ©® ±
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.
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
Do you have any more of these? email me at stuffinthings@hotmail.c_om
Uhh, I didn't get any hits at Google: Care to elaborate?
A even bigger mirror
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.
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).
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.."
NT means No Text. ...
What were you expecting to see.., as if SQL-Server ran on BSD
Cheers.
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.
Why even bother, when the B# language (aka, 'C') has been around for ages ;-)
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!
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.
"How to Do Nothing," kids activities, back in print!
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
Take a look here, at the comparison of F# to OCaml.
.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).
.NET platform that should be corrected whenever possible.
This is what I really dislike about
I think you are really a troll, but in any case you bring to light a common ignorance about the whole
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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.
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.
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.
.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.
.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.
.NET variants is horrible.
Only superficially all
Therefore, should
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
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.
Comment removed based on user account deletion
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.
Man gives flying fuck ...
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.
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.
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 compatible, there would be no ugly glue between apps.
.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.
.NET lets you integrate all this in one go. If, (I know this isn't possible...yet) every compiler we had was a
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.
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.
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.
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"
I guess it never happened in real life.
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.
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'?
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"
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.
.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.
.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#.
.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.
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
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
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
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
hmmm... Shouldn't F# have come before C#?
Since their going backwards, I suppose D# must be next...
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!
...since it would have been a musical tritone (the "devils interval") away from M$'s C#.
Apparently this language is a perfect forth above C#.
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.
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 :)
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?
You could just use Java
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.
.Net culture has been removed before it had time to blossom.
,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#".
.NET? What's next, A# for Algol?
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
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
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
Why, Microsoft, why?!
Freedom is the freedom to say 2+2=4, everything else follows...
I didn't know that musical notes could be used as a language on the internet.
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.
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...)
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'.
Why don't you look into smallscript?
F# looks cool, I've been meaning to learn O'Caml for awhile. But I really want to see E#.
Examples? Or were you just happy to make an ad hominem attack, and didn't actually have useful information?
I think the integration is too fine grained to implement really different languages, such as
.NET does) you can have more effective solutions for particular application domains.
- 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
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"?
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!!!!!!!!
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.
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?
Are you sure it is not Fortran for .NET? At least it looks just like it...
If there's a free Smalltalk with reasonable performance, I might try again. Suggestions?
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
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.
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.
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).
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.
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.
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.
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.
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.
Under the .NET CLR I'm not sure. Sorry.
--Giving to trolls for the benefit of us all
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.
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.
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.
Visual studio .NET restrictions on what licence you can release software under
--Giving to trolls for the benefit of us all
i love the fact that the research dudes at microsoft write really bad websites... Highly entertaining !!!
:)
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.
... everyone will be programming in Objective-C anyway. Using Cocoa on Mac OS X. Or maybe GNUstep if they insist on using other OSes.
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...
:D
I'd babble more but I'm just taking a quick break from coding.
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
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.
it's a slow Sunday...
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!
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.
I almost feel offended by the name. Doesn't it beg for play-on-words (f*** and the likes).
F# -- the F***ing language
MOM!!! Microsoft is being naughty again!!
"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
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)
F#/OCaml/ML
:)
Fock 'em all? Nah...
When I first saw the name, I figured it was a new Fortran from Microsoft...
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
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.
> 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,
;-) 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.
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
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
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!