Live data from Hacker News

Nubank acquires Cognitect

cognitect.com

101–110 of 281 posts

Re: Nubank acquires Cognitect

#101
post #86

Pretty strange how no one else sees that banks are very very fragile institutions, plus this one is heavily VC-ed, which makes everything they claim in public irrelevant (this is if we want to trust what any bank says at all). What is relevant is that Cognitect will now have 100% of income coming from the single (and fragile) source, they now do not have to compete and survive on their own, they can't say "no" when h…

How is a bank a fragile institution? Banks are the most heavily insured and protected institutions in any modern country.

In the US for example, banks not only contribute to federal insurance but also have built joint private reserves to weather economic turmoil. In the modern world banks rarely go bankrupt because if they did that would tank any confidence in the economy and create incredible chaos.

Even in failed states like Venezuela banks are still a major pillar of economy confidence.

Re: Nubank acquires Cognitect

#102

Why don't they take on the name Cognitect? It is a much better brand than Nubank and that would distinguish this from the many stories where a no brand or bad brand big co buys a good brand.

Is it a better brand? I believe Nubank offers b2c services. What are all those customers going to think when Nubank->Cognitect...

Re: Nubank acquires Cognitect

#103
post #86

Pretty strange how no one else sees that banks are very very fragile institutions, plus this one is heavily VC-ed, which makes everything they claim in public irrelevant (this is if we want to trust what any bank says at all). What is relevant is that Cognitect will now have 100% of income coming from the single (and fragile) source, they now do not have to compete and survive on their own, they can't say "no" when h…

How is a bank a fragile institution? Banks are the most heavily insured and protected institutions in any modern country. In the US for example, banks not only contribute to federal insurance but also have built joint private reserves to weather economic turmoil. In the modern world banks rarely go bankrupt because if they did that would tank any confidence in the economy and create incredible chaos. Even in failed s…

This is simply false - banks are not insured against failure and not protected unless some political move "too big to fail" is made, and this only makes systemic financial system failures worse.

Re: Nubank acquires Cognitect

#104
post #59
post #20

Did anyone else notice that the biggest non-academic supporters of functional programming seem to be financial institutions? Is it due to the nature of the problem space? Is it because finance people tend to be more analytical? Something else?

It is nature of the problem space which requires you to produce high quality code. If you have a small error in your program, the financial market participants will use it against you to profit. What you loose, others win! Google "fat finger" for examples. In banking you have to keep track of every transactions, see "double accounting". You never delete a transaction, you only retract! Mutablity can cause you a lot o…

I love immutability and Datomic as much as the next Clojure programmer. But this sounds quite a lot like post-hoc reasoning.

For example, there's quite a few situations where you require mutability in bank data (e.g. with government requirements, or when you want to rollback fraudulent trading). Sure, both are solvable with Datomic, but they don't scream "huge advantage with an immutable datastore".

And there are plenty of highly competitive industries where code quality matters, but they're not flocking to functional programming.

Don't get me wrong, I think functional programming is an absolutely great way to structure and think about programming (and have coded professionally in Clojure for the last 5 years or so). But I suspect the prevalence of FP in some industries is as much chance/social reasons than it is for some inherit superiority in the approach.

Re: Nubank acquires Cognitect

#105

Earlier quoted context omitted.

Is it better to be owned by an adtech company (React, Angular, Go)?

If you asked me that 15 years ago, I'd say "no". In hindsight, it sort of makes sense given their objective of increasing time spent online and the quality of the experience. The proposition here is that nubank will be the first bank to successfully turn into a software vendor. Maybe my worries will be nothing in 10 years, but no one can say its an obvious outcome.

Bloomberg and Jane street (not banks but still finance). They don't own OCaml but are heavily involved in its development.

Re: Nubank acquires Cognitect

#106
post #67
post #65

I am genuinely curious. I haven't heard the name Cognitect before. I checked the website and they seem like another software consultancy firm. Anything I am missing? HN is very picky, so they must be doing something special.

This is the company that employs Rich Hickey and most of (all?) other maintainers of Clojure, the programming language.

Ah. Makes sense. Thanks

Re: Nubank acquires Cognitect

#107
post #96
post #59

Earlier quoted context omitted.

It is nature of the problem space which requires you to produce high quality code. If you have a small error in your program, the financial market participants will use it against you to profit. What you loose, others win! Google "fat finger" for examples. In banking you have to keep track of every transactions, see "double accounting". You never delete a transaction, you only retract! Mutablity can cause you a lot o…

> It is nature of the problem space which requires you to produce high quality code. Wouldn’t a strongly-typed language be a better choice here?

I do not think so. The regulation is constantly changing and the meaning of names change frequently. Thus a "Verified Account" can mean different things over the years. The problem with types and object orientation is, that the names used in the domain diverge from the name used in source code (class name, types). Think about a class diagram with class names relating to each other. To represent the domain language better, you need to change a lot in a class diagram. Dynamic languages reduce the problem, as a lot less names are needed. Clojure spec is used for specification of data instead of types, but there is also clojure typed (which uses javas type system).

Re: Nubank acquires Cognitect

#108
post #96
post #59

Earlier quoted context omitted.

It is nature of the problem space which requires you to produce high quality code. If you have a small error in your program, the financial market participants will use it against you to profit. What you loose, others win! Google "fat finger" for examples. In banking you have to keep track of every transactions, see "double accounting". You never delete a transaction, you only retract! Mutablity can cause you a lot o…

> It is nature of the problem space which requires you to produce high quality code. Wouldn’t a strongly-typed language be a better choice here?

this is perhaps controversial but i actually think datomic is so powerful, it's worth using clojure for. in other words, the database is driving the choice of programming language.

the idea of viewing a database as an immutable state of the world at a given instant t0, and time becoming a parameter on that state of the world (in order to show changes as time goes forwards [or backwards!]), is extremely, extremely attractive for things like finance, whose first class citizens are among others:

- capability for audits e.g. show me the history of transactions from any particular account. since datomic is basically a collection of immutable facts over time, this is "free"

- distributed computing - datomic runs nicely across your own internal compute (often needed for financial stuff)

- transactions are no longer strings, but are actual data structures - this makes the gnarly steps of things like transferring assets across instruments a lot easier (i'd imagine). think about how you'd implement a shopping cart with transactions in postgres vs. how you'd do it with access to raw data structures

Re: Nubank acquires Cognitect

#109

Are there any technical posts from Nubank on how they manage such a large Clojure codebase (I guess it must be Clojure's largest user in the industry). I'm looking for things like how to refactor safely in the absence of static typing, for example. Do they make use of spec? I'm a big fan of static typing, but when using a dynamic language with immutable values and pattern matching, like Erlang, I don't miss it that m…

Not sure we have any talks about that specifically, but what I can say is that on the Clojure codebases:

- We rely heavily on testing (unit tests, property-based/generative and integration)

- We adopt a micro-services architecture, so most codebases are small enough that refactoring is easy, or sometimes we just replace the service altogether

- We leverage Schema (https://github.com/plumatic/schema) and/or clojure.spec (https://clojure.org/guides/spec) to annotate functions and data schemas, but it's opt-in

- We have static checking of data schemas across boundaries (e.g. checking data producers did not break consumers over HTTP or Kafka), which is where we found the most value (replaced complicated end-to-end tests)

Post reply on HN