Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
namelosw
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
56 ms
·
511.
▲
by
namelosw
7y ago
Finally, flatMap is here. I really hope there could be syntactic sugar like do expression in Haskell, for in Scala, and LinQ in C# for flatMap instead of type limited version like async await. Another thing is pipe operator seems to be very
512.
▲
by
namelosw
7y ago
> by running it in your head This is probably related to a factor named 'local reasoning', procedural programing tried to encourage this through procedure, OO tried to encourage this through encapsulation, and FP encourage this
513.
▲
by
namelosw
7y ago
I remember there's a Slack architecture case study by AWS[0]. I was a little bit surprised that the architecture can hold such huge traffic. As a comparison, Discord use's tech stack is more niche and cutting edge[1], but they see
514.
▲
by
namelosw
7y ago
JS is way from settled. There was grunt and gulp before, and there are Webpack, Parcel, RollUp, Pika etc.
515.
▲
by
namelosw
7y ago
Exactly. Taking microservices as an example, once people are using it, they have to reinvent all kinds of ideas in a distributed way - distributed service registration, distributed stack trace, distributed process managing, stream processin
516.
▲
by
namelosw
7y ago
My personal choice would be Clojure. I learned Racket and Common Lisp but haven't used them build something production-grade yet. I don't even know how to properly build, deploy and monitor a Racket server yet. Racket is good but
517.
▲
by
namelosw
7y ago
Can confirm. From my colleagues, they said it's painful to have WeChat or AliPay working in China. Yet every citizen is intensively using them every day. For example, it's July and I haven't yet used cash once for this year,
518.
▲
by
namelosw
7y ago
Generics are highly reusable is true. But people don't read and write them often because of the language design. Most Hindley Milner typed languages like ML and Haskell by default are generic by default and it's not harder or more
519.
▲
by
namelosw
7y ago
I'm not totally against Racket without parens, but to gain popularity this seems not to be the first action should be taken. Like IDE, tooling, libraries/ecosystem improvements. For example, the documentation is really great, but
520.
▲
by
namelosw
7y ago
Why, most of the times I read the first few comments then decide if I'll click the link. Unless I can tell the content is what I want from the title and the domain. People on HN are quite good at calling out bullshits from articles.
521.
▲
by
namelosw
7y ago
No matter if it is a secret weapon, most of the companies in the industry won't even try because current tool works - despite working well or not. The major difference of the industry compared to 90s is everyone stop getting hyped by n
522.
▲
by
namelosw
7y ago
Not totally different, with strict immutability enforced for the whole language there's no need for borrow checking. Because there's no identity at all. You don't have to borrow number 3 because another number 3 is the same 3
523.
▲
by
namelosw
7y ago
I don't know what he refers to. But there is a specific kind of zero downtime deployments which can restart without losing in-memory state, like Erlang. Erlang also provides "fix in minutes, in production" stories he refers.
524.
▲
by
namelosw
7y ago
Great to see this, as I'm leaning the Fulcro/Pathom. The idea of server-side rendering is fascinating. With correct abstraction, there's no extra code required for every component at all. And there's no more ad-hoc clien
525.
▲
by
namelosw
7y ago
1. The more I dig into Lisps, the more I find Lisp is not a language. 'Lisp' is more like the term 'C-like'. Common Lisp, Scheme, and Emacs Lisp are way too different from each other. It's more like a comparison wit
526.
▲
by
namelosw
7y ago
In front-end application's perspective, yes, it's a single request. And in the back-end, after the query was parsed it would be split to a bunch of requests depends what's your data source. If the data source is in-memory the
527.
▲
by
namelosw
7y ago
It's mainly about reducing the number of read APIs. It can also reduce the number of reads through the dataloader. There are 10 different pages you need to read the 'Article' resource, in the index page you need the title and
528.
▲
by
namelosw
7y ago
IMO BEAM is a better VM than JVM despite the number of libraries. It provides a more robust, performant and observable platform for Web development. (Technically JVM is faster batch operations but for Web, most Elixir apps win) More importa
529.
▲
by
namelosw
7y ago
For internal APIS, one essential value Graphql provides is significantly reduce the number of read APIs. When using REST or RPC the number of APIs explodes, because RPC is too specific, while REST is not flexible, so people just keep rollin
530.
▲
by
namelosw
7y ago
> I have always struggled with OOP and have never found it a natural way of programming. 'Modern' OO languages are never natural. Actors are more natural. A typical day-to-day Java Spring web service workflow: 1. Receive reques
531.
▲
by
namelosw
7y ago
In most programming languages the boolean operation 'or' is actually 'xor'. But in type system the disjunction concept represents 'either', the concepts are more like how people refer to 'or'.
532.
▲
by
namelosw
7y ago
One thing zero dependencies bring is the size would become huge. Another thing is people either: 1. Use their own boring abstraction every time, and every abstraction might be different. 2. Not using abstraction at all, this makes JavaScrip
533.
▲
by
namelosw
7y ago
I guess it is because to program on the computer is to drawing blueprints to a generic circuit system. There are fixed-program computers like calculators (which are static combinations of circuits) and non-fixed-program computers which we s
534.
▲
by
namelosw
7y ago
This is So cool! Reatiflux is one of the most energetic community I have ever seen. Every time I use Slack I found the business model is not as generous as Elixir - there are too many constraints for free users/organizations.
535.
▲
by
namelosw
7y ago
Probably the hard part is not about overall traffic. If Slack have a billion channels, while every channel only has 10 to 1k users, it's much easier than say, if Discord having a million channels while some channel having 100k users. I
536.
▲
by
namelosw
7y ago
It's interesting to compare Slack's tech stack vs Discord. The tech stack of slack is pretty common, while the tech stack of Discord is very geeky: Elixir/Rust + Cassandra for crazy high concurrency, and React/React Nati
537.
▲
by
namelosw
7y ago
The Web Component API is too imperative. It's hard to composite, and too easy to let data out of sync (not being reactive). For a broader meaning of Web Component (plain React, Vue, etc), they provide good encapsulation and some degree
538.
▲
by
namelosw
7y ago
This is brilliant. I'm a shallow Clojure user, I like Clojure but every time I look into 'modern' Clojure code base I would see a lot stuartsierra/component. I know this is quite a library with high quality, but it'
539.
▲
by
namelosw
7y ago
I don't use this pattern to deal with the problems in my day to day JavaScript code in case other people confuse. I just think it's unfair to simply believe this is complex. It's simpler on mental. I'm not encouraging pe
540.
▲
by
namelosw
7y ago
I'm surprised that OCaml takes 1.0-1.6x, given originally Rust compiler was prototyped in OCaml...
More ›