HN user

pepper_sauce

132 karma
Posts0
Comments69
View on HN
No posts found.

You model your logic/domain as data using immutable values, and write functions that act on that data. There are a few good things that come from this design decision.

It means you can avoid getting into the situation where half your logic is encoded in the type system and enforced at compile time, and the other half as values at run-time. It's all values at run-time.

And for the same reason, you don't fall into the trap of "puzzle-solving" with a type system. Between run-time values and the compiler there is a world of infinite possibilities that some type systems (and I would also include some macro systems!) seem to encourage adding more and more layers to. Clojure tries to speak the language of data, which is a lot more grounded.

It's probably me but I can never seem to get Zulipchat to work for basic things like pulling up the history of #jobs.

The behaviour as described doesn't sound toxic unless they're using it to bully and are persisting after having discussed it. Your communication styles don't match and you need to handle it like any other inter-personal problem: talk to them about it. If you don't feel up to doing it 1 on 1 then ask your manager to help. If you've done all that then I'd say there's a problem and you need to escalate your response.

The modern workplace for an employee is really not designed to incentivize above average productivity. I don't claim to be an anything-X developer but I find my productivity runs in cycles. In the circumstances I've turned out high value work in a matter of hours or days, I've literally been told by colleagues to slow down because I was making them look bad, while management assume that's just how long the task takes. At the other end of the spectrum when I'm (relatively) under-performing nobody cares: that's just how long a task takes, and nobody feels threatened.

The damping effect is real.

Maybe they don't want to force their users to download several MB of framework libraries in order to use their website.

DOM manipulation is perfectly fine for interacting with styled documents, the web's forté. If your website amounts to a set of configuration forms and a blog then you probably don't need React.

The earliest use of the term in the DSM is "Attention Deficit Disorder (with and without Hyperactivity)". You're clearly working from your own colloquial definitions and applying the contents of a single blog post to an anecdotal data point of your hyperactive friend.

Your comment is inaccurate in the extreme. You don't understand the basics of the diagnosis, so please don't attempt to apply them across the internet.

DuckDuckGo Traffic 7 years ago

Same in the UK. Especially annoying if I search for a book to buy and only .com's appear in the results.

Static types enforced by a compiler catch more bugs in logic that can be encoded in the type system at build time. How costly are these bugs? It probably depends on context. For a business app/SaaS, is the compiler going to prevent your broken business rules from allowing -100 items to be added to a basket, crediting the "buyer"? I would say a developer who knows how to interpret requirements is more important here. On the other hand, a compiler is probably an amazing place for static types, but I don't write compilers and I'd wager most jobbing devs don't either.

Predicate assertions instrumented to run during development catch an equivalent amount and more, since they can evaluate data at run-time.

Dynamic types combined with argument destructuring allows for very loosely coupled modules. I can see it being similar to row polymorphism, but then you have to ask whether it's worth the extra time? In many business apps a significant portion of LoC is mapping JSON/XML to DTOs to Entities to SQL and back. If everything starts and ends with JSON coming from an unverified source, forcing it into a "safe space" statically typed business program is almost ignoring the forest for the trees, possibly even giving a false sense of security. It's (over) optimising one segment of the system; it's not necessarily a waste but it's probably time which can be better spent elsewhere.

During my university studies, a few classmates decided to edit a Wikipedia page for a niche technique in our field - changing the article to state it was invented by a rather boisterous member of our group.

The year following our graduation, my classmate heard from the tutor who runs the related course -- asking why the hell his students were claiming he invented such-and-such technique! Several students had cited Wikipedia without checking sources.

To answer your question, Wikipedia is a lower quality source than scientific journals for the same reason direct democracy isn't usually as good as representative democracy. We delegate trust in matters to an authority. Sometimes there are problems with the quality of the authority but at least there is a framework to work within.

Seeing as Amazon are now Embrace, Extend, Extinguishing profitable open-source service providers that are the primary contributors to the projects, I think it's a good thing Datomic isn't open source, and that it's worth paying $30/mo for.

According to the Stack Overflow Developer Survey[0] your intuition is wrong. C, C++, Java devs are paid less than average and F#, Clojure, Elixir devs above average. COBOL and Haskell didn't rank in the survey.

I 100% agree most engineers are severely underpaid. A lot of my colleagues get paid more than anyone in their family ever has (sometimes whole family put together) and just like to ride it out.

[0] https://insights.stackoverflow.com/survey/2019#salary