Earlier quoted context omitted.
> clourescript is not worth the hassle ClojureScript is one of the main reasons why Clojure makes sense in my business. I can use the same language and share the same business logic code between the server and the browser app. That's huge! Also, I avoid a load of problems related to communication and serialization, because the native serialization format is EDN, e.g. Clojure data structures. There is no need to adapt…
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?
Building a Startup on Clojure
41–50 of 215 posts
Re: Building a Startup on Clojure
#42Always great to see more start ups being built on Clojure! For folks interested, this is a great talk on the same subject: https://youtu.be/L9KcoRZcdbc Full disclojure: I work for the company in the talk, though I'm not one of the presenters.
Re: Building a Startup on Clojure
#43Re: Building a Startup on Clojure
#44Earlier 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.
Counterpoint Part 4: Esoteric languages by-nature have smaller populations of devs. They demand higher salaries for their specialist work. This can hurt you as you scale - salaries continue to increase (secularly), and the pool of possible engineers begins to shrink within your locale.
As an example, nobody knows Go when we hire them to write it.
Re: Building a Startup on Clojure
#45Earlier quoted context omitted.
> clourescript is not worth the hassle ClojureScript is one of the main reasons why Clojure makes sense in my business. I can use the same language and share the same business logic code between the server and the browser app. That's huge! Also, I avoid a load of problems related to communication and serialization, because the native serialization format is EDN, e.g. Clojure data structures. There is no need to adapt…
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?
* 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 as well
Re: Building a Startup on Clojure
#46Re: Building a Startup on Clojure
#47If 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…
Clojure is... esoteric now? I would understand if we were talking about, I don't know, INTERCAL. But Clojure? Is Scala 'esoteric' too?
> Python is a great language but there are no devs available where I live.
Ah, I see. Yeah, by that measure Clojure will be esoteric indeed. Python developers being rare is very surprising.
Re: Building a Startup on Clojure
#48I worked at a startup that was built on Clojure. It had trouble finding developers for reasonable salaries at the early mid stage. They decided to switch the stack to python at that point. Just an anecdote!
Building a company in Python feels like a bet against yourself ie the company/codebase will never get big enough that using Python (lack of static typing etc) will ever be a problem
Dynamic typing and the lack of a formal compilation step are great for productivity, but they come at a cost. You need a proper CI pipeline to run linters (granted, you need that in statically typed languages too) and, most importantly, you need to write tests. Sure, you need to write tests for any language, but not having them for languages like Python is going to bite you that much harder.
I've seen pretty large Python codebases that worked just fine. And smaller Java codebases that were unmaintainable.
Re: Building a Startup on Clojure
#49Earlier quoted context omitted.
> clourescript is not worth the hassle ClojureScript is one of the main reasons why Clojure makes sense in my business. I can use the same language and share the same business logic code between the server and the browser app. That's huge! Also, I avoid a load of problems related to communication and serialization, because the native serialization format is EDN, e.g. Clojure data structures. There is no need to adapt…
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?
Because Clojure is better designed. As are many other languages.
Re: Building a Startup on Clojure
#50For 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…
For view code I think hot reloading has been a great thing with Clojure/Script too. Everything is reloaded properly and the state remains.