9 ms·
Clojure is a product design tool (2015)
- JSavageOne 3y agoNo programming language is a product design tool, what a ludicrous title. I think there are more blog posts about Clojure than software written in Clojure that people use.
- waffletower 3y agoSomeone help me get the karma needed to rightly downvote this.
- JSavageOne 3y agoIf you're only interested in downvoting rather than expressing an argument, perhaps you don't have an argument
- s17n 3y agoA designer who can’t code is like an architect who’s never been inside an actual building.
- lionkor 3y agoAnd a programmer who can't design is like an architect who cant draw
- jabradoodle 3y agoNot as overhyped as "web 3" though.
- jimbob45 3y agoI sure wish we could move beyond HTML + JS into a unified Clojure browser. HTML is what’s holding the web back and there’s no excuse for JS to be the only browser scripting language at this point.
- zengid 3y agoI think that once the WASM-GC is standardized and shipped (and perhaps once WASM can directly talk to the DOM), JavaScript will lose some dominance. I think a lot of folks will stick with it, personally, but I'm excited that more languages will eventually feel browser-native.
- nerdponx 3y agoPlease no. I like that webpages are still at least somewhat document-like rather than being only and entirely app-like.
- systems 3y agoCurrently whenever I think of Clojure I remember this post https://www.reddit.com/r/Clojure/comments/a79aln/clojure_web_development_what_a_nightmare/ https://www.reddit.com/r/Clojure/comments/a79aln/clojure_web... As far as I know the situation did not improve, I had high hopes for Clojure, but i think it will eventually be as forgotten as Groovy
- Lyngbakr 3y ago> How does someone who has never built a SPA before, let alone ever build a web application in Clojure/S suppose to get started? I think that Clojure for the Brave and True[0] is a good place to start for Clojure in general, while Web Development with Clojure: Build Large, Maintainable Web Applications Interactively[1] covers the web app side of things. [0] https://www.braveclojure.com/ https://www.braveclojure.com/ [1] https://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition/ https://pragprog.com/titles/dswdcloj3/web-development-with-c...
- shaunxcode 3y agoAww yes the fiction of no friction: the funnel back to blub. The way is no way.
- 147 3y agoI used to do Clojure professionally. I think the community’s disdain for frameworks really stunted Clojure’s adoption. Currently, I’m learning Elixir and Phoenix.
- jrvarela56 3y agohttp://www.winestockwebdesign.com/Essays/Lisp_Curse.html http://www.winestockwebdesign.com/Essays/Lisp_Curse.html Everything is pretty easy to build, so everyone rolls out their half-baked libraries.
- BaculumMeumEst 3y agoAs a hosted lisp, it doesn’t take much to keep Clojure usable. I don’t think it will be forgotten, but the ship has sailed on becoming mainstream.
- giovannibonetti 3y agoRelated: Penpot - The Open-Source design & prototyping platform [1] is implemented in Clojure. [1] https://github.com/penpot/penpot https://github.com/penpot/penpot
- trafnar 3y agoThe haml/clojure comparison made me feel compelled to share the Imba (https://imba.io/ https://imba.io/) equivalent. <p> "Sentence with a period after {<a href="#"> "a link"}." Working demo: https://scrimba.com/scrim/cW2QWgTd https://scrimba.com/scrim/cW2QWgTd
- fndex 3y agoIn Clojure, the HTML is just data, you can map, filter, reduce and merge it. I don't think that's the case with Imba.
- waffletower 3y agomap, filter, reduce and the usual suspects are great, but if you are working with something like HTML you might want to consider select, transform and traverse instead ala specter.
- nathants 3y agoreagent remains sota for frontend.
- cutler 3y agoOm is definitely not the place to start Clojure web development. I'm not sure it's even maintained. Kit and Fulcro are full-stack frameworks but if it's just SPA then re-frame is best option.
- swlkr 3y agoelectric is the state of the art in clojure nowadays from my understanding
- dustingetz 3y agothanks ! https://github.com/hyperfiddle/electric https://github.com/hyperfiddle/electric live tutorial - https://electric.hyperfiddle.net/ https://electric.hyperfiddle.net/
- barrell 3y agoI guess one note for anyone inspired is that re-frame is really just for state management - it doesn't compare to Om and definitely could not replace it. Reagent would be the best comparison, and if you wanted something equivalent to JavaScript's Redux you could use re-frame (in addition to your rendering library). However, I think for most people Reagent's built in state management can get them a lot further than one might think.
- fulafel 3y agoTo add, lots of Clojure programmers prefer wo work without big frameworks and prefer libraries, this avenue works well too if you are so inclined.
- michaelcampbell 3y agoI hated haml when I first saw it ... decade-ish ago? Hate it still. My current company uses it as a dying vestige of when _why and haml and hpricot were all the rage in ruby land.
- stanislavb 3y agoI hated HAML, too, when I first saw it. However, after embracing it, I can't go back to writing ERB or HTML directly anymore. All my projects were slowly transitioned to HAML. I'd say it was a similar case with Tailwind. I considered that everyone that was loving it was not thinking about the future, and I wouldn't make the effort to give it a proper go. Yet, I can't imagine working without Tailwind now. Moral of the story: some tech seems odd and useless in the beginning; however, if there's enough love and die-hard fans around it, maybe there's something in it.
- mjrbrennan 3y agoSame, I really don’t like HAML or Jade or other such things as a HTML replacement. I just never saw the point, it doesn’t seem like less work than just using HTML?
- th0ma5 3y agoClojure has been amazing for me in rapid prototyping of command line utilities. I never quite got the web app aspect beyond plain services, and I think clojurescript suffers from the greater 14 now 15 standards thinking the JavaScript world has with tooling.
- omgmajk 3y agoMy summer promise to myself is to get into the lisps and do some new stuff. I've been stuck with C, NASM, Python and JS/PHP for quite some time now and I feel like I should branch out. Clojure seems like a good choice but CL seems to be more recommended across sites I've read. I realize this might be slightly OT but, yeah.
- duncan-donuts 3y agoI’d recommend clojure. Clojure is a very modern feeling lisp and has nice features. I really enjoyed working with Common Lisp too and would also recommend it. Idk if I’ve ever had a better dev experience than working with Common Lisp. You do feel it’s age a lot more but it’s not really a problem. Either way you can’t go wrong imo.
- cfiggers 3y agoI started out with Clojure, but recently have been really enjoying Janet.[0] Janet is a tiny (the entire language, core library, interpreter, assembler, and compiler are all < 1 MB combined), some-batteries-included, embeddable Lisp implemented in C. It borrows a number of Clojure's design sensibilities but isn't married to the JVM. It has super-fast startup times, so it's great for scripting. It has a built-in event loop, so you can do concurrent stuff out of the box. And the accompanying build tool compiles straight to native executables (either statically or dynamically linked) so distribution is a breeze. If you're Clojure-curious but want something lighter-weight with (IMHO) a much more gradual learning curve, Janet is a great pick. [0] https://janet-lang.org https://janet-lang.org
- scruple 3y agoI started with CL in December '20 and used it for small toy projects for about 18 months and then, when my last child was born, completely forgot it exists. Janet looks really interesting. How did you go about learning it?
- cfiggers 3y agoI learned it mostly just by reading through the official documentation[0], but also by looking at code examples in the test suite of the compiler itself at janet-lang/janet[1], the official contrib library at janet-lang/spork[2], and hanging out in the community chatroom on gitter[3]. Recently, one of the veterans in the community published an online beginner-focused book called "Janet for Mortals" that I wholeheartedly recommend: https://janet.guide https://janet.guide Aside from that, the community and ecosystem around Janet is still very much developing. I don't know of any really good tutorials on YouTube, for example, and while I know of a blog or two there aren't many. So there's totally a niche for someone to create new content, if that's something you're interested in doing. [0] https://janet-lang.org/docs/index.html https://janet-lang.org/docs/index.html [1] https://github.com/janet-lang/janet https://github.com/janet-lang/janet [2] https://github.com/janet-lang/spork https://github.com/janet-lang/spork [3] https://gitter.im/janet-language/community https://gitter.im/janet-language/community
- lincpa 3y ago[dead]
- sethcalebweeks 3y ago> I spend that time on more important things, like polish. Ironic that Lisp is Polish Notation
- yakshaving_jgt 3y agoI feel like Clojure and its inventor have a kind of cultish fanbase. When working with it professionally, I didn't feel enlightened or inspired. I felt like I was spending a lot of time tracing execution paths to see where the nulls got in, as I would with Ruby or JavaScript. --- This is probably the cue for a Clojure acolyte to jump out of the bushes and tell me that all of this is solved with clojure.spec.
- Capricorn2481 3y agoI've been trying really hard to get into Clojure as a full stack dev, but this has been my experience as well. Building a simple crud app has been a nightmare. I find that: - The debugger sucks - There are other tools for debugging like Portal and Flowstorm, but they involve already knowing what the problem was so you can instrument the function and call it with the same arguments - Java stack traces make the above very hard to do. - You're a second class citizen if you don't use emacs. Half of Clojure devs are using the EMACS according to a community survey. Calva, the VSCode extension, does lots of automatic setup to make the REPL work, and when it doesn't work, you have no way to fix it. I have to restart the REPL a lot, which I'm told is the opposite experience I should be having. It took me days to set up a project just so my REPL would switch from Clojure to Clojurescript when I evaluate in different files, and everybody I asked about this didn't understand why I would need it because they were all using emacs. - Complaining about Javascript and React and then having your whole ecosystem wrap around Javascript and React is really obnoxious. Reagent is falling behind in React versions and it's missing out on performance enhancements. If you need to do niche React things, it's a pain in the ass. - This might just be me, but I used Citrus with Rum and I found it to be the most over abstracted thing I've ever seen in my life. I know it was inspired by re-frame, so maybe re-frame is the same. But it's like Redux X10 in terms of verbosity. - Call me crazy, but the Java interop is worse than other guest languages because there's huge impedance mismatch between functional and OOP. - There are very popular broken libraries. People say "It's okay if a library hasn't been updated in 6 years, because Clojure is so stable!." This is a total myth, there have been several flat out broken libraries being recommended in tutorials. - While people are working on frameworks (Biff, Fulcro), there are no "best choices" for a lot of problems yet and it leads to frustration just trying to make a simple crud app. The community hasn't been unfriendly or unhelpful, but sometimes it feels like I'm speaking to aliens.
- deleted 3y ago[deleted]
- jibbit 3y agocan anyone explain the Haml 'link-punctuation ritual' to me?
- a_c 3y agoBefore reading, I thought it is about Clojure helping designer to collaborate with engineers and getting customer insight on how the designed product is used. I was completely off.
- croes 3y ago>[:p "Sentence with period after " [:a {:href "#"} "a link"] "."] Isn't that Hiccup and not Clojure Script?
- jetti 3y agoIt is Clojurescript. It is just a vector that contains a keyword, map and string. The Hiccup library would convert that to HTML but at the end of the day, it is all Clojure(Script) data structures.
- ARandomerDude 3y agoYes, but the Hiccup library works with both Clojure and ClojureScript. Edit: I guess it’s the Hiccups port that works for Cljs. Either way hiccup notation is standard for both.
- thih9 3y agoShould we add (2015) to the submission title? The blog post has no date, but I found an earliest entry at waybackmachine from march that year [1]. [1]: https://web.archive.org/web/20150314172909/https://precursorapp.com/blog/clojure-is-a-product-design-tool https://web.archive.org/web/20150314172909/https://precursor... . Edit: I see the title has been updated, thanks!