Skip to main content
added 128 characters in body
Source Link

this is also a good article on the topic: comparing-scala-to-fsharp

as always, best way is to try for yourself!

  • Scala has no ML type inference, and never will, and has very sad curly braces like C languages used just for scoping.
  • F# doesnt have higher order kinds (scala/haskell pp brag a lot a about it) also for a language design choice, the F# lang directive thought wasn't really needed in 99% of cases of real day to day programming and would confuse people (which indeed it does most of times)
  • F# uses curly braces for CE (Computation expressions) giving curly braces a total new meaning and dignity, for building monadic operations in the best expressive way ever. (see task, async, query, etc..)
  • has curly braces for scoping and makes OO pp feel more at "home"
  • JVM is "the big guy" in runtimesthe industry, but JVM world brags about popularity quite a lot (more than quality). Luckilly Python is now the most popular language and Java is going down day by day..
  • NET platform is an amazing runtime and people should get updated not talk about 20 years ago NET as Microsoft and open source DOTNET foundation did huuuuuge improvements on the area, so huge now it competes with GO and RUST and low level languages on performance in many many areas. cannot be said for JVM.
  • package management onin JVM(maven) and nodejs(npm) is a mess andmore complicated...
  • package management in NET works like a charm and is amazing, plus nuget is part of the dotnet tooling, not an "external thing" anymore, so dependencies are part of your .fsproj or a line in your script .fsx amazing.

Pros onof F#:

  • it's a NET6 language runs everywhere part of the NET6 platform
  • has scripting and a repl and can be used like python/nodejs/bash
  • has type providers and the |> pipe operator, making it awesome to work with collections and data
  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F#6 supports natively Task
  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • looks much closer to javascript and is much more readeable than scala
  • transpiles to javascript with Fable compiler
  • is awesome and the F# community is great
  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today
  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language
  • has automatic type generalization and everything is curriable
  • is supported on the bestvery good IDEs of the world : VsCode, Rider, VisualStudio
  • is opensource 100% and since long time
  • influences many languages (like C# and Typescript)
  • F# Synthax is more accessible and better as an entry level language too (~python) for people which never started programming

as always, best way is to try for yourself!

  • Scala has no ML type inference, and never will, and has very sad curly braces like C languages used just for scoping.
  • F# doesnt higher order kinds (scala/haskell pp brag a lot a about it) also for a language design choice, the F# lang directive thought wasn't really needed in 99% of cases of real day to day programming and would confuse people (which indeed it does most of times)
  • F# uses curly braces for CE (Computation expressions) giving curly braces a total new meaning and dignity, for building monadic operations in the best expressive way ever. (see task, async, query, etc..)
  • has curly braces for scoping and makes OO pp feel more at "home"
  • JVM is "the big guy" in runtimes, but JVM world brags about popularity quite a lot (more than quality). Luckilly Python is now the most popular language and Java is going down day by day..
  • NET platform is an amazing runtime and people should get updated not talk about 20 years ago NET as Microsoft and open source DOTNET foundation did huuuuuge improvements on the area, so huge now it competes with GO and RUST and low level languages on performance in many many areas. cannot be said for JVM.
  • package management on JVM and nodejs is a mess and complicated...
  • package management in NET works like a charm and is amazing, plus nuget is part of the dotnet tooling, not an "external thing" anymore, so dependencies are part of your .fsproj or a line in your script .fsx amazing.

Pros on F#:

  • it's a NET6 language runs everywhere part of the NET6 platform
  • has scripting and a repl and can be used like python/nodejs/bash
  • has type providers and the |> pipe operator, making it awesome to work with collections and data
  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F#6 supports natively Task
  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • looks much closer to javascript and is much more readeable than scala
  • transpiles to javascript with Fable compiler
  • is awesome and the F# community is great
  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today
  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language
  • has automatic type generalization and everything is curriable
  • is supported on the best IDEs of the world : VsCode, Rider, VisualStudio
  • is opensource 100% and since long time
  • influences many languages (like C# and Typescript)
  • F# Synthax is more accessible and better as an entry level language too (~python) for people which never started programming

this is also a good article on the topic: comparing-scala-to-fsharp

as always, best way is to try for yourself!

  • Scala has no ML type inference, and never will, and has very sad curly braces like C languages used just for scoping.
  • F# doesnt have higher order kinds (scala/haskell pp brag a lot a about it) also for a language design choice, the F# lang directive thought wasn't really needed in 99% of cases of real day to day programming and would confuse people (which indeed it does most of times)
  • F# uses curly braces for CE (Computation expressions) giving curly braces a total new meaning and dignity, for building monadic operations in the best expressive way ever. (see task, async, query, etc..)
  • package management in JVM(maven) and nodejs(npm) is more complicated...
  • package management in NET works like a charm and is amazing, plus nuget is part of the dotnet tooling, not an "external thing" anymore, so dependencies are part of your .fsproj or a line in your script .fsx amazing.

Pros of F#:

  • it's a NET6 language runs everywhere part of the NET6 platform
  • has scripting and a repl and can be used like python/nodejs/bash
  • has type providers and the |> pipe operator, making it awesome to work with collections and data
  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F#6 supports natively Task
  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • looks much closer to javascript and is much more readeable than scala
  • transpiles to javascript with Fable compiler
  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today
  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language
  • has automatic type generalization and everything is curriable
  • is supported on very good IDEs: VsCode, Rider, VisualStudio
  • is opensource since long time
  • influences many languages (like C# and Typescript)
  • F# Synthax is more accessible and better as an entry level language too (~python) for people which never started programming
deleted 488 characters in body
Source Link

The Accepted answer does not seem correct. F# is amazing and has amazing support for OO as well (being the .NET Objective CAML implementation originally). In fact it has an awesome interop with C# (even in the same solution).

https://dotnet.microsoft.com/en-us/

But as always, best way is to try for yourself!

try do this in scala now :D

The very big difference to understand when checking functional languages is understanding language families and history, and know why ML language was invented and why Milner won an ACM touring award for it.

The Why is the ML type system. both F# and Scala are statically (strongly) typed languages, but the mainstrongest differences in my view are  :

  • JVM the big beasthas curly braces for scoping and makes languagesOO pp feel more popular by default, doenst mean it's betterat "home"
  • JVM is "the big guy" in runtimes, but JVM world brags about popularity quite a lot (more than quality). Luckilly Python is now the most popular language and Java is going down day by day..
  • NET platform is an amazing runtime and people should get updated not talk about 20 years ago NET as Microsoft and open source DOTNET foundation did huuuuuge improvements on the area, so huge now it competes with GO and RUST and low level languages on performance in many many areas. cannot be said for JVM.
  • it's a NET6 language runs everywhere part of the NET6 platform

    it's a NET6 language runs everywhere part of the NET6 platform
  • has scripting and a repl and can be used like python/nodejs/bash

    has scripting and a repl and can be used like python/nodejs/bash
  • has type providers and the |> pipe operator, making it awesome to work with collections and data

    has type providers and the |> pipe operator, making it awesome to work with collections and data
  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)

    has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F#6 supports natively Task

    F#6 supports natively Task
  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco

    runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • looks much closer to javascript and is much more readeable than scala

    looks much closer to javascript and is much more readeable than scala
  • transpiles to javascript with Fable compiler

    transpiles to javascript with Fable compiler
  • is awesome and the F# community is great

    is awesome and the F# community is great
  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today

    is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today
  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language

    doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language
  • has automatic type generalization and everything is curriable

    has automatic type generalization and everything is curriable
  • is supported on the best IDEs of the world : VsCode, Rider, VisualStudio

    is supported on the best IDEs of the world : VsCode, Rider, VisualStudio
  • is opensource 100% and since long time

    is opensource 100% and since long time
  • influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)

    influences many languages (like C# and Typescript)
  • F# Synthax is more accessible and better as an entry level language too (~python)

    F# Synthax is more accessible and better as an entry level language too (~python) for people which never started programming
  • doesnt have curly braces for scoping (but has for CEs, no worries!)
  • doesnt have Higher order Kinds... Oh No! big drama moment? (btw has generic interfces..)
  • Many Scala pp which really tried F# do like F# more, but they can't adopt it on the JVM atm...

The Accepted answer does not seem correct. F# is amazing and has amazing support for OO as well (being the .NET Objective CAML implementation originally). In fact it has an awesome interop with C# (even in the same solution).

https://dotnet.microsoft.com/en-us/

But as always, best way is to try for yourself!

try do this in scala now :D

The very big difference to understand when checking functional languages is understanding language families and history, and know why ML language was invented and why Milner won an ACM touring award for it.

The Why is the ML type system. both F# and Scala are statically (strongly) typed languages, but the main differences are  :

  • it's a NET6 language runs everywhere part of the NET6 platform

  • has scripting and a repl and can be used like python/nodejs/bash

  • has type providers and the |> pipe operator, making it awesome to work with collections and data

  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)

  • F#6 supports natively Task

  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco

  • looks much closer to javascript and is much more readeable than scala

  • transpiles to javascript with Fable compiler

  • is awesome and the F# community is great

  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today

  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language

  • has automatic type generalization and everything is curriable

  • is supported on the best IDEs of the world : VsCode, Rider, VisualStudio

  • is opensource 100% and since long time

  • influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)

  • F# Synthax is more accessible and better as an entry level language too (~python)

  • doesnt have curly braces for scoping (but has for CEs, no worries!)
  • doesnt have Higher order Kinds... Oh No! big drama moment? (btw has generic interfces..)
  • Many Scala pp which really tried F# do like F# more, but they can't adopt it on the JVM atm...

as always, best way is to try for yourself!

The very big difference to understand when checking functional languages is understanding language families and history, and know why ML language was invented and why Milner won an ACM touring award for it.

The Why is the ML type system. both F# and Scala are statically (strongly) typed languages, but the strongest differences in my view are:

  • has curly braces for scoping and makes OO pp feel more at "home"
  • JVM is "the big guy" in runtimes, but JVM world brags about popularity quite a lot (more than quality). Luckilly Python is now the most popular language and Java is going down day by day..
  • NET platform is an amazing runtime and people should get updated not talk about 20 years ago NET as Microsoft and open source DOTNET foundation did huuuuuge improvements on the area, so huge now it competes with GO and RUST and low level languages on performance in many many areas. cannot be said for JVM.
  • it's a NET6 language runs everywhere part of the NET6 platform
  • has scripting and a repl and can be used like python/nodejs/bash
  • has type providers and the |> pipe operator, making it awesome to work with collections and data
  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F#6 supports natively Task
  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • looks much closer to javascript and is much more readeable than scala
  • transpiles to javascript with Fable compiler
  • is awesome and the F# community is great
  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today
  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language
  • has automatic type generalization and everything is curriable
  • is supported on the best IDEs of the world : VsCode, Rider, VisualStudio
  • is opensource 100% and since long time
  • influences many languages (like C# and Typescript)
  • F# Synthax is more accessible and better as an entry level language too (~python) for people which never started programming
  • doesnt have curly braces for scoping (but has for CEs, no worries!)
  • doesnt have Higher order Kinds... Oh No! big drama moment? (btw has generic interfces..)
deleted 287 characters in body
Source Link

The Accepted answer is slightly wrongdoes not seem correct. "just slightly". F# is amazing and has amazing support for OO as well (being the .NET Objective CAML implementation originally). In fact it has an awesome interop with C# (even in the same solution).

A note on package managementpackage management:

  • it's a NET6 language runs everywhere part of the NET6 platform
  • F# has scripting and a repl and can be used like python/nodejs/bash
  • F# has type providers and the |> pipe operator, making it awesome to work with collections and data
  • F# has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)

    it's a NET6 language runs everywhere part of the NET6 platform

  • F# 6 supports natively Task

    has scripting and a repl and can be used like python/nodejs/bash

  • F# runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco

    has type providers and the |> pipe operator, making it awesome to work with collections and data

  • F# looks much closer to javascript and is much more readeable than scala

    has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)

  • F# transpiles to javascript with Fable compiler

    F#6 supports natively Task

  • F# is awesome and the F# community is great

    runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco

  • F# is based on many years of academic research and 25+ years of OCAML as F# is an ocaml implementation for .NET, making it one of the best functional languages available today

    looks much closer to javascript and is much more readeable than scala

  • F# doesnt (yet) run on the JVM, but is both a .NET language and a node.js language

    transpiles to javascript with Fable compiler

  • F# has automatic type generalization and everything is curriable

    is awesome and the F# community is great

  • F# is supported on the best IDEs of the world : VsCode, Rider, VisualStudio

    is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today

  • F# is opensource 100% and since long time

    doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language

  • F# influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)

    has automatic type generalization and everything is curriable

  • Scala just is dumber as it's OO-like, making it a half-haskellish-java, but not having the type inference of haskell which is it's real power and much closer to F#.

    is supported on the best IDEs of the world : VsCode, Rider, VisualStudio

  • Check Haskell code, and you'll see it's much closer to F#

    is opensource 100% and since long time

  • Python code and F# code also are closer

    influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)

  • Javascript code and F# code also are closer

    F# Synthax is more accessible and better as an entry level language too (~python)

The Accepted answer is slightly wrong. "just slightly". F# is amazing and has amazing support for OO as well (being the .NET Objective CAML implementation originally). In fact it has an awesome interop with C# (even in the same solution).

A note on package management:

  • it's a NET6 language runs everywhere part of the NET6 platform
  • F# has scripting and a repl and can be used like python/nodejs/bash
  • F# has type providers and the |> pipe operator, making it awesome to work with collections and data
  • F# has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)
  • F# 6 supports natively Task
  • F# runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco
  • F# looks much closer to javascript and is much more readeable than scala
  • F# transpiles to javascript with Fable compiler
  • F# is awesome and the F# community is great
  • F# is based on many years of academic research and 25+ years of OCAML as F# is an ocaml implementation for .NET, making it one of the best functional languages available today
  • F# doesnt (yet) run on the JVM, but is both a .NET language and a node.js language
  • F# has automatic type generalization and everything is curriable
  • F# is supported on the best IDEs of the world : VsCode, Rider, VisualStudio
  • F# is opensource 100% and since long time
  • F# influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)
  • Scala just is dumber as it's OO-like, making it a half-haskellish-java, but not having the type inference of haskell which is it's real power and much closer to F#.
  • Check Haskell code, and you'll see it's much closer to F#
  • Python code and F# code also are closer
  • Javascript code and F# code also are closer

The Accepted answer does not seem correct. F# is amazing and has amazing support for OO as well (being the .NET Objective CAML implementation originally). In fact it has an awesome interop with C# (even in the same solution).

A note on package management:

  • it's a NET6 language runs everywhere part of the NET6 platform

  • has scripting and a repl and can be used like python/nodejs/bash

  • has type providers and the |> pipe operator, making it awesome to work with collections and data

  • has computation expressions, a very beautiful and simple way to write custom "monadic operations" in F# (not an expert here)

  • F#6 supports natively Task

  • runs on aspnetcore easilly with beautiful libraries such as Giraffe/Saturn/Falco

  • looks much closer to javascript and is much more readeable than scala

  • transpiles to javascript with Fable compiler

  • is awesome and the F# community is great

  • is based on many years of academic research and 25+ years of OCAML as is an ocaml implementation for .NET, making it one of the best functional languages available today

  • doesnt (yet?) run on the JVM, but is both a .NET language and a node.js language

  • has automatic type generalization and everything is curriable

  • is supported on the best IDEs of the world : VsCode, Rider, VisualStudio

  • is opensource 100% and since long time

  • influences many languages (like C# and Typescript) wheras scala not as much... infact most JVM people prefer kotlin to scala (wich is kind of a jvm C# with union types, still much more limited)

  • F# Synthax is more accessible and better as an entry level language too (~python)

Source Link
Loading