News for hackers. Stuff that matters.

dukerutledge

Re:Haskell in Production on Thursday October 17, 2019 @02:40PM (#21285108)
> all in all i think it requires a lot of discipline that can easily break down, whereas some of the popular imperative languages you can still sort of plug along (=> punt the technical debt) despite that.

Interestingly I have the exact opposite perspective. Writing imperative or OOP code requires me to be excessively disciplined. It is extremely easy to build un-maintainable spaghetti. There is a whole cottage industry of methods for your discipline of choice: Clean, SOLID, TDD, etc. All these disciplines seem to boil down to the same systemic result, push effects to the edges of you program so you can more easily test, evolve and maintain. Functional programming (of the typed variety) tends to allow me to write garbage code, that is testable and can be easily evolved and maintained because the paradigm encourages me to be a good actor.

I've refactored production code in imperative languages and typed functional languages and only one of them allowed me to make HUGE sweeping changes with ease and high confidence.

Re:Haskell in Production on Thursday October 17, 2019 @02:15PM (#21284878)
This is pretty sound advice for any language. You always want most of your code to be dumb. You save high abstraction for things that have a sensible interface and are common enough to need DRYing. Haskell has a higher abstraction ceiling than most languages and there is less trodden ground, so there may be more opportunity to get lost down the rabbit hole. However Haskell2010 is a beautifully simple language that can solve all your problems (maybe with a bit more code than enabling 20 extensions will afford you).
Re:Dueling Rhetoric of Clojure and Haskell on Wednesday November 01, 2017 @03:03PM (#15604474)
I'm speaking about a philosophical dual.

For example: http://www.taoism.net/ttc/chapters/chap02.htm

Re:Dueling Rhetoric of Clojure and Haskell on Wednesday November 01, 2017 @02:13PM (#15603947)
I'd gladly storm into the breach with you :)

Hopefully we all agree that static types and dynamic types are useful. Those who use hyperbole are attempting some form of splitting. I think the point where we disagree is what the default should be. The truth is this discussion will rage on into oblivion because dynamic types and static types form a duality. One cannot exist without the other and they will forever be entangled in conflict.

Re:Dueling Rhetoric of Clojure and Haskell on Wednesday November 01, 2017 @02:07PM (#15603882)
There are a number of row type libraries and a proposed extension: https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/Ro...
Re:Category Theory for Programmers (2014) on Monday April 03, 2017 @05:20PM (#14027257)
Probably a similar question, but headed in the other direction "Why should I learn assembly?" You probably shouldn't. But in the process of learning it you might gain a greater understanding and intuition for how and why things work.
I'd disagree. Most business logic is just transformation of data structures in disguise. Once you have a sufficiently rich set of data structures this becomes abundantly clear.
Re:Why recursive data structures? on Monday January 02, 2017 @05:14PM (#13305008)
Reginald is definitely hinting at hylomorphisms here. I'd be curious to see if stream fusion could be achieved in JS for a hylomorphism.
Re:Why I’m thankful for JavaScript fatigue on Tuesday November 29, 2016 @03:05PM (#13065821)
Who works for an organization that changes their infrastructure every week? That business doesn't exist. That business already failed.
Re:Show HN: A fork of sudo with Touch ID support on Monday October 31, 2016 @01:19PM (#12838815)
If you are asking the question, should I use this?

"I am not a security expert."

No.

Re:The traits of a proficient programmer on Tuesday August 16, 2016 @03:19PM (#12299875)
Some of these remind me of Ed Kmett's YOW talk: "Stop Treading Water: Learning to Learn"

https://yow.eventer.com/yow-2014-1222/stop-treading-water-le...

Re:The cost of small modules on Monday August 15, 2016 @02:29PM (#12292397)
Now lets see some charts about build times.
Well, this will confuse the meaning of FRP even more. Poor Conal...
Re:Zero-cost futures in Rust on Thursday August 11, 2016 @02:00PM (#12270379)
Yeah, since rust is eager existential types seem like a necessary evil.
Re:Zero-cost futures in Rust on Thursday August 11, 2016 @01:40PM (#12270225)
So, existentially quantified types?
Re:The Future of Standard ML (2013) [pdf] on Thursday July 14, 2016 @05:42PM (#12097390)
Totally agree. There was a great example on /r/haskell the other day.

https://www.reddit.com/r/haskell/comments/4sdkch/haskel_newb...

Operators are certainly overused in Haskell, but sometimes they make something so much more readable.

Re:Ask HN: Who is hiring? (June 2016) on Wednesday June 01, 2016 @04:39PM (#11817963)
skedge.me - Senior Software Engineer – Backend

Role

We are looking for an experienced systems engineer to design and implement deployment automation, automatic failover, reliable backup/restoration, and scalable data storage strategies that can be distributed globally.

Our technology stack is based on Haskell, Postgres, NixOS, and we deploy to AWS with NixOps. Our ideal candidate is well versed in all these technologies, but most importantly has experience managing, scaling and monitoring high performance web services with any stack.

Additionally, we desire candidates with continuous deployment/delivery experience. Candidates should be familiar with being part of an on-call rotation, and developing a runbook. We rely on our continuous integration server to build, run tests, and provide binary caches of compiled assets to accelerate compilation. We automate anything we can. We know the value of a two line shell script and a one step build.

A typical week might include

Designing a strategy for horizontally sharing our database. Implementing graceful server shutdown on runaway memory consumption. Adding real-time metrics hooks to key areas in the code base, and adding alerts to our monitoring system. Developing an offline database jobs system, for zero downtime migration. Redesigning existing APIs to common industry practices (HATEOAS, cacheable urls, etc.). Profiling slow requests and implementing improvements. Addressing production issues from our existing clients. Fixing bugs and adding tests to our automated suite.

Qualifications

    Professional Haskell experience is desired but not required. Haskell expertise is required.
    BA/BS in Computer Science, related technical field or equivalent practical experience.
    Minimum 4 years experience writing scalable, reliable software.
Email [email protected] to apply.
Re:New Adventures for Elm on Monday January 04, 2016 @02:08PM (#10837715)
In frontend? Not 100%, but pretty much.
Re:Is Sound Gradual Typing Dead? [pdf] on Tuesday December 22, 2015 @03:28PM (#10780184)
A modern static type system allows this style of programming.
Re:FuckAdBlock on Wednesday September 02, 2015 @04:37PM (#10161761)
How about a business plan other than mine my users' info and sell them ads?

Older »