Hacker News new | past | comments | ask | show | jobs | submit | firlefans's comments login

I personally found F# to be a decent alternative to Elm for small browser apps with Fable, Elmish/Feliz, Feliz.Plotly etc. You can generate typed interfaces for any libs you're missing which have a typescript interface using ts2fable, that's the kind of pragmatic tooling you need if you're veering off the well-trodden path in commercial development. Ionide in VSCode is excellent (though not perfect) and the compilation times are decent. In terms of community (which is not unimportant when it's that small) even the compiler gitter folks were super helpful when I had some reflection questions. Overall I'd use it again for small browser apps, for backend I guess it depends on your company and domain.


while I love F# too I think what hinders adoption is:

- training in FP: for an enterprise on the most crucial points is imho recruiting

- tooling: while the tooling is ok for F# (though not ReSharper grade by far!) it is still lacking

what I often see as refactoring is not that supported in F#/FP languages is the functional equivalent to spaghetti code, where function call after function call is piped without following SOLID principles/ Clean Code style.


I don't think you can apply the same principles to OO and FP but in terms of refactoring, my experience is that pure functional code is a joy to test and maintain. Small pure functions (again functions can only be pure functions, otherwise you're really talking about procedures), are by their nature easy to test, compose, cache, parallelise and pipeline. If that sounds bad to you, then fair enough.


> what I often see as refactoring is not that supported in F#/FP languages

Could you elaborate on this please? I have found easy, confident refactoring to be one of the biggest benefits of using this family of languages.


jet.com used it heavily for backend dev, grew quickly, were acquired by Walmart, 560million+ in funding: https://www.crunchbase.com/organization/jet

Even if you'd consider them the Jane Street of F#, it's a counterexample to your argument.


Not really.

https://careers.walmart.com/us/jobs/WD635714-senior-software...

>Top-notch programming skills, with an interest in functional programming languages. We use F# right now but are transitioning to Java.

It's still used for the warehouse distribution team though


How much of the jet.com code is still in use nowadays?

Having been through a couple of merges during my lifetime, I guess "it depends".


Hasn't Walmart rewritten all the Jet stuff in python and c# by now?

At least that's what I was being told five years ago.


I found this project to be easy to use, it produces SVG output with d3:

https://github.com/magjac/d3-graphviz


It's true that it's easier to write and arguably harder to read code when types are not specified, or at least it's handy for public interfaces between modules. Luckily this is easy to do and often done:

https://fsharpforfunandprofit.com/posts/function-signatures/

It's the same deal with Haskell, you don't HAVE to specify the types of your code but it can help check your assumptions as to what the compiler is inferring. I've frankly found that a more frequent issue in Haskell because of pervasive use of Monads and other higher-order constructs.


Can you clarify what you mean? It gets subducted by plate tectonics and becomes steam when heated, presumably it's still there..


Oh, so we'll be able to access that water again over geological time? That changes everything.


This article (which contains nothing but speculation) has been posted here already at least once.


Remote US only or remote EU also?


We currently have remote developers from the UK, Germany, and São Paulo. (We do wantjunior hires to be in the office, though, to facilitate mentoring.)

We do a solid amount of pair programming, but remote pairing via ScreenHero is pretty sweet. :)


What would the requirements to apply for remote, "non-junior", position be?


There are more details for each position at our jobs page :)

https://www.noredink.com/jobs


Remote EU too for non-junior candidates!


Way to ruin the fun for the rest of us ;)


More interesting to my mind is this (Diamondback Ruby):

http://www.cs.umd.edu/projects/PL/druby/

Some features:

--------------

Type inference:

DRuby uses inference to model most of Ruby’s idioms as precisely as possible without any need for programmer intervention.

Type annotations:

Methods may be given explicit type annotations with an easy to use syntax inspired by RDoc.

Dynamic checking:

When necessary, methods can be type checked at runtime, using contracts to isolate and properly blame any errant code, similar to gradual typing.

Metaprogramming support:

DRuby includes a combined static and dynamic analysis to precisely model dynamic meta-programming constructs, such as eval and method_missing.


I'm finding it hard to tell the difference between:

https://twitter.com/boredelonmusk

and

https://twitter.com/elonmusk


Yeah. @boredelonmusk is my favourite Twitter profile and I often can't see where the serious part ends and the joke starts.


Poe's Law? In a good way.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: