7 ms·
If you compare the two it's obvious the F# author blatantly copied as much as he possibly could.
by 35bge57dtjku 9y ago
If you compare the two it's obvious the F# author blatantly copied as much as he possibly could.
- mercurial 9y agoF# is pretty much Microsoft's version of OCaml, but it diverges in some key features (for instance, it can do multicore but it does not have OCaml's functors).
- Layla454 9y agoIm making over $7k a month working part time. I kept hearing other people tell me how much money they can make online so I decided to look into it. Well, it was all true and has totally changed my life. This is what I do... http://www.joinmate2.Com http://www.joinmate2.Com
- davidgl 9y agoF# has added some new features on top of OCaml like: - Lightweight syntax - Active Patterns to extend pattern matching - Type Providers to make it easy to interact with json/sql in a type safe way It's a joy to work in https://stackoverflow.com/questions/179492/f-changes-to-ocaml#2485277 https://stackoverflow.com/questions/179492/f-changes-to-ocam...
- nv-vn 9y agoF#'s features don't feel that useful after working in OCaml though. I've tried it for various projects, but OCaml is honestly just as good in all those situations. I wonder if there's some specific type of project where F#'s features will really shine.
- mercurial 9y agoI can imagine the .NET interop is a big deal, especially if you need to do anything on Windows. Also, parallelism can be occasionally useful.
- nv-vn 9y agoYeah, I get that those are useful, but things like type providers or units of measure feel pretty useless to me and I'm not really sure if they're supposed to make me want to switch to F# or not. They certainly don't fill the place of OCaml's module system or object system or GADTs, PPXes, polymorphic variants, etc. To me OCaml's abstractions feel much more polished/as if they were all invented to fill some existing hole in the language and work together (rather than some random "cherry on top" feature that doesn't fix anything for me and is rarely useful).
- pjmlp 9y agoWell, a big decision point is what one uses as main development platform. Sadly OCaml support on Windows is not great, to put it nicely.
- mercurial 9y agoOn the other hand, it may be possible to use F# on Linux with .NET Core now.
- mixedCase 9y agoTooling is definitely far from mature. It's treated as a second class language in .NET, and on top Linux is treated a second class OS. I just tried to start a project with F# and ended up abandoning, and am looking into Rust right now. I considered OCaml but its lack of multicore support and the ecosystem situation made me drop it.
- pjmlp 9y agoYou are kind of right. My point was that even as second class citizen on .NET, F# has more tooling and available libraries than OCaml ever will on Windows. For a long time OPAM did not support Windows, and right now cygwin or Linux subsystem still seem to be better ways than straight Win32 application support. OCaml is quite nice on *NIX systems, on other kind of OSes not so much.
- sriram_malhar 9y ago> it's obvious the F# author blatantly copied That's a really unfortunate choice of words. It almost makes him look like he stole something in the middle of the night and never gave anyone credit. Don Syme worked on Project 7 which brought Generics to .NET, and then spoke with Leroy and others to bring OCaml to this environment. The next logical step was to implement an OCaml- style language directly, and the OCaml designers were very encouraging when we talked to them about bringing this class of languages into the .NET space. That led to the early versions of F#. See this interview: http://through-the-interface.typepad.com/through_the_interface/2008/10/an-interview--1.html http://through-the-interface.typepad.com/through_the_interfa...
- 35bge57dtjku 9y agoThat quote is an unfortunate choice of words! "an OCaml- style language" could be something as different as Haskell or SML, which are far more easily identified as different than OCaml. Instead he made something that looks 95% the same. And come on, "bringing this class of languages into the .NET space" sounds far different than "porting a copy of a language to .NET that's 95% the same." No, he didn't steal something in the middle of the night without giving credit, but that quote is still pretty disingenuous sounding. It's more like he copied OCaml and then only gave credit for using a similar style.
- sriram_malhar 9y agoWell, you are just piling on more unfortunate choices of words. You are accusing him of dishonesty ("then only gave credit"), and laziness; your "95% the same" comment implies that you think of a language only at the syntax level. That "5%" of F# that you imply is different from OCaml involved redoing the entire .NET framework, getting generics into it. For example, look at the early papers (from 2001) on "ILX: Extending the .NET Common IL for Functional Language Interoperability", they considered Haskell, OCaml and ML. The compiler was written in Haskell. Or "Transposing F to C#: Expressivity of parametric polymorphism in an object-oriented language". See Don Syme's talk on F# (https://www.infoq.com/presentations/F-Sharp-History-Today-Tomorrow https://www.infoq.com/presentations/F-Sharp-History-Today-To...).