This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-04-17
Channels
- # aws (10)
- # beginners (64)
- # boot (3)
- # cider (20)
- # cljs-dev (32)
- # cljsrn (6)
- # clojure (126)
- # clojure-dusseldorf (3)
- # clojure-finland (1)
- # clojure-greece (1)
- # clojure-italy (7)
- # clojure-poland (3)
- # clojure-spec (46)
- # clojure-uk (100)
- # clojurescript (37)
- # cursive (11)
- # datomic (6)
- # defnpodcast (2)
- # emacs (1)
- # events (3)
- # figwheel (2)
- # fulcro (20)
- # immutant (2)
- # jobs (1)
- # jobs-discuss (9)
- # keechma (3)
- # lein-figwheel (1)
- # luminus (2)
- # lumo (3)
- # mount (2)
- # off-topic (19)
- # om (3)
- # om-next (2)
- # onyx (20)
- # other-languages (55)
- # parinfer (11)
- # pedestal (8)
- # portkey (3)
- # protorepl (3)
- # re-frame (22)
- # ring (9)
- # rum (1)
- # shadow-cljs (82)
- # spacemacs (28)
- # sql (15)
- # test-check (15)
- # testing (2)
- # tools-deps (102)
- # vim (26)
> Although Scala was never really designed for functional programming, a carefully chosen subset of the language has proven adept at real-world functional programming. http://degoes.net/articles/scalaz8-is-the-future
AFAIK it is a "one to rule them all - finally" language. Except logic programming maybe.
the Scala problem is that it can be anything to anyone, so among teams you will have to decide on a certain style and have thorough code reviews to prevent things to become a mess
The motivation was to have a better Java. Martin Odersky left Sun to implement the stuff he thought java needed.
generics in C# were first implemented in F# I believe. Language nerds who are ahead of the game
And then there are the language nerds that say: "our freshmen all come from university and we have a lot of them, so lets not put them through learning to use generics".
No, That was the reason why go does not have generics. Because they wanted a language thats easy to use.
I think Scala also supports higher kinded types, where Java only supports one level of generics? Could be wrong
are we talking about ML-style functors?
I’d have to assume that the .NET internals made it prohibitively difficult for some reason
F#'s adoption problem seemed to me to be partially an extended dearth of good tooling, and partially a lack of a 'killer use case'; they tout their type providers, but have a very difficult time selling their use cases.
OCaml on the other hand has a tiny ecosystem and very slow language evolution (with some quite important shortcomings)
I used to know some very enthusiastic f# people here, it seems they all moved on to other things these past few years
F# has a bizarre restrictions as well.
It always seemed to have weird restrictions from OCaml, but without a rationale for why they existed
@dpsutton I think C# killed F#, the tooling was way better, and each new release brought more and more functional features into C#.
@tbaldridge Can you name a few examples? I only dabbled with F# as a hobbyist
C# 7 has destructuring, Python style tuples, pattern matching,
C#'s version of Clojure's defrecord
is also in the works.
Yeah, something like this:
class Point(int X, int Y);
var v = Point With(X = 42, Y = 33)
They default to having public immutable members
(syntax is probably wrong)
exactly
And since this is .NET they're also value types and IIRC are passed around on the stack 😄
C# has a history of cannibalizing MS' other research projects - not necessarily a bad thing, but the research doesn't always end up seeing the light of day intact, either.
ah ok, that’s different from Scala then, although Scala has value classes but those can only wrap a primitive I believe