F # - Domain Language

Is F # the future of programming languages? Is F # learning right? Any other languages ​​on the market that are equivalent to F #?

+4
source share
10 answers

F # is a universal object-oriented functional language, and there is nothing special about it specifically for domain languages, although you can probably easily create DSL inside F #.

If you're really interested in learning something like F #, now is the right time. If you want to learn a new language to increase your chances of hiring, then F # may not be a good choice if you are still not familiar with functional programming. You can try JavaScript , Python , Ruby or C # and use anonymous functions.

If you want to stick with something close to F #, there is something in the ML language family, especially OCaml . Haskell is a pure functional language in which there are no side effects (except in Haskell's monads). There is also a family of Lisp , Nemerle and several others.

+6
source

I would say that now is the right time, I sent a question to fsbugs last week, and the answer came back after a couple of hours from the person myself.

Now try to do this with C # ...

+5
source

Well, it never hurts to know another programming language and another way to look at things.

Since F # is unstable right now, as a language that has not yet been officially released, this may not be the best time; However, I still found out about it now.

+2
source

Functional languages ​​have existed for a long time, but they lack a practical ecosystem to make them relevant for everyone except a very specialized business developer (for example, a large investment bank that can be used to be able to throw some resources into functional programming for complex algorithms) .

Microsoft's effort is different from the purity of the F # language, but rather its planned debut as a first-class citizen of the main programming platform (.NET) and the likely very low friction that the host programmer will meet when he / she adds it to his existing infrastructure.

In .NET, you can already reference a VB project from a C # project (or vice versa) in one solution. But since the final intermediate language C # or VB is almost identical to 1 , .NET programmers today prefer to stick to one language (C # or VB) and participate in a chat conversation with those programmers who come from another (almost identical) dark side.

F #, on the other hand, will present a clearly different language tool. Therefore, you can continue programming in your preferred .NET environment (C # or VB), but when a separate functional subproject occurs, you can program this subproject in F # while still using all existing C # VB Assets.

As for the future, many people think that this is not so much the same size as it is suitable for the entire language, but rather a reduction in friction when choosing the right tool for a subproject / task at hand.

In terms of product release, Microsoft stated that it intends to deliver F # as part of the .NET family, but currently has only released a couple of CTPs (not in beta status yet), so I’d say there’s no rush to drop everything so that learn F # right now. (Ask me when I see the beta.)



1 XML literals in VB 2008 are most likely the most varied differences between VB and C #.

+2
source

F # and functional programming are the future. But there is also a rich flora of OO-oriented languages, procedural languages, and declarative languages ​​that already exist. None of the underlying concepts is new in any sense. Due to the strong integration over time, the future of multilingual (multi-program) -language systems looks bright and, probably, one of the trends that will change the landscape.

And yes, this is a fantastic time to find out F # that the community is small, bright and lush, the platform matures beautifully (do not forget that F # was launched in 2002) and will soon become part of Visual Studio.

As with other languages, it has been said that F # is heavily dependent on Ocml, to the extent possible by cross-compiling the code between them. F # also borrows sequence expressions and work processes (mondas) from Haskell. Scala is another interesting language in the same niche. In addition, functional constructs force them to use "traditional" languages, such as C # 3.0, C ++ (getting lambdas any day). Python has nice libraries for writing functional code. Linq and PLinq are essentially functional / decilitative in nature.

Lisp is the grandfather of it all and pretty smug about it!

+2
source

F # is not the future of programming languages. In fact, it is deeply rooted in the past. However, this is a great technology to learn, since it most likely represents a completely different way of thinking about programming than what you are probably used to.

Further, along with dynamic typing, functional programming is one of the concepts that have been outlined for wider inclusion in the next version of C #.

But go out and learn!

+1
source

Repeat the “Future” - FP is another tool in the box; sometimes the FP solution is very useful, and sometimes it is not so much. But remember that C # is getting better on the functional side of each iteration (although it’s unlikely that some of the specific aspects of FP for F # will ever be suggested, such as discriminatory unions, etc.).

In addition, the C # team discussed easier invariance, so it allows you to cross your fingers for a future version of C #. Also remember that parallel extensions / parallel LINQs bring many FP killer features directly to each .NET language.

Personally, I doubt very much that it [F #] will be a cylinder and that we will all suddenly switch to F #; for most business-oriented purposes, C # still makes a lot more sense of IMO, especially if it is intended for verification (you can write bad code in any language ...).

But if you are in one of those areas where FP makes sense and you use .NET, then F # is definitely worth a look.

+1
source

Since F # is basically "Functional Programming for .Net," there are a number of similar (and possibly more mature languages), such as:

  • Scala : Functional programming on the JVM.
  • Haskell : Functional programming using native code (or at least battery life).
0
source

If you want to do functional programming, go to Common LISP. This is a cross platform, very stable and has been around for a long time. It is also part of the LISP family; one of the most famous functional languages.

0
source

I am surprised Clojure was not mentioned in this discussion.

0
source

Source: https://habr.com/ru/post/1277715/


All Articles