Live data from Hacker News

Building a Startup on Clojure

wobaka.com

61–70 of 215 posts

Re: Building a Startup on Clojure

#61
post #16
post #12

Earlier quoted context omitted.

Counterpoint X 3 True. But if you have a good well-enforced, sane style guide, then expressive powerful languages can be a good thing. If you hire devs who care more about playing with the language than delivering value then you're hiring the wrong people. You can't ditch these languages because some people are sometimes attracted to them for the wrong reasons.

I actually did start a company using Clojure. All these points are true. Yes, it helped filter candidates in the early days, and also helped attract people to jobs that might otherwise not be that interesting or competitive. It's difficult for pre-funded companies to compete with the FANG companies. However, there were negatives. At the time the Clojure library landscape was less mature. Clojure developers would also…

I must note switching from novelty to boring phase is a crisis which every growing project will come through once it starts to expand its workforce. I saw it in teams with very average tech stack many times.

Re: Building a Startup on Clojure

#62
post #59
post #37

Earlier quoted context omitted.

If using the same business logic is one of the main reasons, why not JavaScript / TypeScript? Also, what are the limitations of JSON that EDN handles better?

Arguably the JVM is a better backend platform, due to better performance, observability, scalability, parallelism (it is not even a competition, and then we haven’t even talked about Loom), plus the least objective point of mine, more stable, battle tested libraries.

That's like saying that C++ is a better backend platform than the JVM due to better performance. For 95% of business web apps out there it doesn't matter, I mean, multiple business with evaluations in the billions of dollars have been created with runtimes 50x slower than nodejs.

Nodejs competes with Java in single threaded performance, I'll say normal JS code is faster than normal Java code. For web services that are IO bound, nodejs still competes with Java unless you go with all the batshit crazy complex reactive stuff in the Java world, supposedly is going to get better with the new green threads implementation.

Re: Building a Startup on Clojure

#63
post #30

Having built a business on Clojure: I'd highly recommend it. Stable, developed in a mature way over many years, with a fantastic and mature community. Together with ClojureScript it's one of very few solutions for writing server/browser apps with shared code, which enables interesting economies.

I would love to read a little about partsbox and the clojure behind it. Do you have an article published ?

Re: Building a Startup on Clojure

#64
post #60

Earlier quoted context omitted.

Some advantages of EDN: * Can represent sets `#{1 2 3 4 "foo" "bar" true false}` (JSON only supports arrays) * Maps/sets can contain arbitrary EDN as keys/values. `{[1 2] "foo", 5 :a, "5" :b, true -1, false 5}` or `#{[1 2] #{3 4} (5 6)}` (JSON only supports string keys on "objects") * Supports clojure types like keywords (`:foo`, `:bar/baz`) and symbols (`foo`, `bar/baz`), and can be extended to support other values…

I could probably look it up myself, but does EDN support comments?

Yep, two types in fact, line comments with ; and a discard sequence - you can tag code that is read (so it must be correct), but then discarded. We have edn files that are well documented with comments.

https://github.com/edn-format/edn#comments

Re: Building a Startup on Clojure

#65
post #62
post #59

Earlier quoted context omitted.

Arguably the JVM is a better backend platform, due to better performance, observability, scalability, parallelism (it is not even a competition, and then we haven’t even talked about Loom), plus the least objective point of mine, more stable, battle tested libraries.

That's like saying that C++ is a better backend platform than the JVM due to better performance. For 95% of business web apps out there it doesn't matter, I mean, multiple business with evaluations in the billions of dollars have been created with runtimes 50x slower than nodejs. Nodejs competes with Java in single threaded performance, I'll say normal JS code is faster than normal Java code. For web services that ar…

[deleted]

Re: Building a Startup on Clojure

#66

For me, the killer feature of Clojure is "REPL driven development". The ability to get rapid feedback as you build things up is incredible. I'll make a comment form and evaluate expressions within it to try things out as I go. By the time I've written any reasonably complex function, all of the pieces have been tested on various examples. Once I'm done, the comment form leaves a helpful record of my thought process.…

I kind of agree with you. I used to work with Common Lisp in a Desktop App (Nyxt browser). I had some fun playing with Racket. And I love Emacs. So, I am already into the Lisp idea. But, I was kind of disappointed with Clojure which is new in my life and has been used in my current job. Maybe you have a backend bias in your testimony? I have been working with ClojureScript (re-frame and reagent) on front-end stuff an…

Have you tried Figwheel[0]? This is how I maintain a REPL into a browser-based CLJS application under development.

[0]: https://figwheel.org

Re: Building a Startup on Clojure

#67
post #37

Earlier quoted context omitted.

If using the same business logic is one of the main reasons, why not JavaScript / TypeScript? Also, what are the limitations of JSON that EDN handles better?

Some advantages of EDN: * Can represent sets `#{1 2 3 4 "foo" "bar" true false}` (JSON only supports arrays) * Maps/sets can contain arbitrary EDN as keys/values. `{[1 2] "foo", 5 :a, "5" :b, true -1, false 5}` or `#{[1 2] #{3 4} (5 6)}` (JSON only supports string keys on "objects") * Supports clojure types like keywords (`:foo`, `:bar/baz`) and symbols (`foo`, `bar/baz`), and can be extended to support other values…

EDN also contains support for date and UUID literals, the former of which is a huge pain when using JSON and needing to communicate which standard you're using and remember to encode/decode on each side of the wire.

Re: Building a Startup on Clojure

#68
post #63
post #30

Having built a business on Clojure: I'd highly recommend it. Stable, developed in a mature way over many years, with a fantastic and mature community. Together with ClojureScript it's one of very few solutions for writing server/browser apps with shared code, which enables interesting economies.

I would love to read a little about partsbox and the clojure behind it. Do you have an article published ?

No, I don't, but I probably should write one. I write about my experiences in various posts/comments from time to time, but that is lost after several minutes, as The Internet moves on to the next shiny thing :-)

Re: Building a Startup on Clojure

#69
post #29

Echoing some of the other posters here: Clojure is fantastic, hiring (several) Clojure developers is hard. Conversely, you can also get to the end of your roadmap quickly (Clojure being great) and end up overstaffed. There's a different line to walk with languages like Clojure. Source: I walked this line.

Why not hire good non-Clojure devs and bootcamp them in Clojure over a month?

Ah, you probably want to pay them 70k/year.

Re: Building a Startup on Clojure

#70
post #2

If I was choosing a language to base the tech stack for a startup on these days I'd be very reluctant to pick anything that didn't have a local user group. Slightly more esoteric languages that enable you to write better code faster are brilliant, but if you're successful enough to grow quickly, or you can raise funding, you'll need to hire devs relatively early on. If you've chosen a stack that's too esoteric then t…

> Python is a great language but there are no devs available where I live.

Wow. Where on Earth do you live? Real question, not being sarcastic.

Presumably not the US. I've found Python developers even in some fairly small towns (approx 25K people).

Post reply on HN