TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Clojure Turns 15 panel discussion video

299 点作者 fogus超过 2 年前

27 条评论

rawoke083600超过 2 年前
I&#x27;ve started learning Clojure about a year ago, couldn&#x27;t say it was easy (the fault might be with me and not Clojure)<p>Clojure has a lot a faults (just look at some of the comments here) BUT and it&#x27;s a BIG BUT for me...<p>Clojure is SUPER FUN :)<p>Over the years(15+), I&#x27;ve been coding in PHP (suck it haters), Go, Rust,Java,Python AngularJS+, Svelte and I can honestly say for me, nothing is more fun that coding in Clojure.<p><i>It&#x27;s fun testing a function in &quot;realtime&quot; by just &quot;eval&quot; it on the spot. I don&#x27;t even code &quot;in the REPL&quot; I just use Calva and eval inline in VSCode<p></i>Maybe it&#x27;s cause it&#x27;s my new toy but it really does bring back the &quot;joy of coding&quot; I&#x27;ve been missing in the other languages.<p>*Learning Clojure became much more easier, once I told myself &quot;It&#x27;s Maps All The Way Down :D&quot; Sure there are stuff like atoms that make it possible to code around the &quot;immutability&quot; but that is like using a cheat-code to go back to the old ways. Yes there are many times when mutable-data-structures are required, but while learning, don&#x27;t grab for them as a first solution !<p>Anywhoo YMMV but once you get over the warts (many there are), much fun and insights awaits :)
评论 #34776703 未加载
评论 #34777855 未加载
评论 #34776777 未加载
评论 #34777331 未加载
BaculumMeumEst超过 2 年前
I love Clojure the language but I’ve never seen a more fragmented ecosystem.<p>There seems to be a pattern in the language of “a problem emerges &gt; a community solution gains traction &gt; Cognitect develops their own solution but its weird and undocumented”, like deps.edn over leiningen, spec over malli, pedestal over ring, etc.<p>Many prominent clojurists recommend deps.edn over leiningen and socket repl over nrepl, but I’ve seen very little guidance on how either actually work or how to use them.<p>Spec seems kind of weird and not well thought out either.<p>And Clojure CLI tools also seem like a total shitshow compared to go or rust’s tooling.<p>As a result working with Clojure feels puzzling and unpleasant, and I feel hesitant to use any community library or project in the language.
评论 #34776699 未加载
评论 #34776277 未加载
评论 #34776486 未加载
评论 #34775791 未加载
评论 #34778283 未加载
评论 #34775773 未加载
评论 #34783565 未加载
评论 #34782214 未加载
评论 #34779249 未加载
评论 #34783289 未加载
Per_Bothner超过 2 年前
To toot my own horn: The oldest still-active compiler-based language on the Java platform, besides Java, is as far as I know Kawa (<a href="https:&#x2F;&#x2F;gnu.org&#x2F;software&#x2F;kawa" rel="nofollow">https:&#x2F;&#x2F;gnu.org&#x2F;software&#x2F;kawa</a>). It started Summer 1996, and is still actively maintained. (Not as active as it used to be, to be true.) Like Clojure, it is a Scheme-like language, but (unlike Clojure) it is very compatible with &quot;regular&quot; Scheme (R7RS), though of couurse with lots of extensions. With a little bit of care (including optional type-specifiers), it is easy to write code that is as fast as Java code.
评论 #34778090 未加载
logistark超过 2 年前
I have the feeling that after Nubank bought Cognitech, Clojure has gone to stagnation. I mean, i feel that promoting and improving Clojure is no longer a priority. And another think that stinks me everytime Cognitech talks about Clojure they have to bring to the table Datomic. They tried to push Datomic on my company long time ago when they do some consultancy job at my company. You can skip all the talk, because is all about how good Clojure is and that is. No any eta about future features, improvements and fix problems of current Clojure users.<p>Lot of open source contributors have leave the community, because there is any plan on Clojure. I guess that Rick Hickey is happy with Clojure as it is now, and this is the way is going to stay. And still no Java 8 support for CompletableFuture, lambdas interface, Stream api, java.time, no pattern matching, java records, this group feels like a group of old programmers stuck at Java 6 that cannot move forward.
评论 #34787010 未加载
评论 #34781161 未加载
评论 #34784807 未加载
beders超过 2 年前
Lisp has ruined me forever. I&#x27;m not sure how I can go back to other languages.<p>I basically started out with Allegro Common Lisp on Sparc&#x27;s, went to Java because it was the shiny new thing, and then in 2017 finally took the plunge and have been addicted to Clojure ever since.<p>Don&#x27;t get me wrong: the learning curve can be steep, but the steepness - at least in my case - came from un-learning all the object-oriented stuff.<p>Once you understand the value of values and the simplicity it brings, it becomes such a joy to code in Clojure.<p>For the people on here disgusted by the JVM ecosystem: There are many alternatives for Clojure.<p>There&#x27;s Clojure for .NET, ClojureScript in at least two flavors that compile down to JavaScript, there&#x27;s a fast interpreter called babashka for scripting, there&#x27;s Clojerl for the Erlang VM, there&#x27;s jank - which adds gradual typing on a C++ runtime.<p>Oh, and there&#x27;s jobs that pay really well ;)
评论 #34780242 未加载
评论 #34781149 未加载
distantaidenn超过 2 年前
I love Clojure (and have touted such in past comments), but it suffers from a glaring problem: every library is half done and&#x2F;or abandoned. What happens is you end up modifying an existing library to fit your particular problem space. I needed a web framework. None of them just did things in a &quot;simple way&quot;. I ended up branching an existing one and have altered it (very heavily) to fit what I need. It&#x27;s now my go-to for all new projects.<p>The issue with us Lispers is that we love the language more than we do the tooling. Tooling be damned! So we all end up re-inventing the wheel for the 1000th time. We will never gain wide spread adoption, as such.<p>With Ruby, I have Rails. With Python: Django. With Clojure...well good luck. Every framework does one thing beautifully correct and about 10 things wrong. But hey, it&#x27;s up to you to modify the framework! Because that&#x27;s the Lisp way of doing things!<p>Maybe I should publish my bespoke framework one of these days...
评论 #34779345 未加载
评论 #34784647 未加载
评论 #34778746 未加载
olah_1超过 2 年前
Rich Hickey’s talks may outlive Clojure itself.<p>In some sense, the principles he taught and aimed for were the ideal. Clojure today wasn’t necessarily the ideal.<p>I think there could be room for a better Clojure than Clojure, so to speak
评论 #34778804 未加载
Naomarik超过 2 年前
I was writing a longer comment and deleted everything after it started to look like bragging.<p>All I&#x27;ll say is that I&#x27;m extremely grateful to Clojure for the life I&#x27;ve been able to live and what it&#x27;s allowed me to accomplish. This is truly a language for beating the averages.
ivanb超过 2 年前
The ultimate failing of Clojure as a tool is its inefficiency measured in $ per feature.<p>The language is not very approachable for junior programmers. You can grab a Python programmer and graft them on a Java or TS project and the same week they will deliver features and bugfixes. Reading other&#x27;s people code in Clojure is much harder especially when coming from imperative world. The language is terse. The documentation is terse and lacks examples. Library documentation is insufficient or non-existent. You have to read other people&#x27;s code. It is a really demanding activity aggravated by lack of static typing. You cannot just hover over a map in your IDE and see its structure. The value may have come through several transformations that add, transform and remove fields. To understand what arguments a function expects you have to decipher destructuring bindings which in real code can be ingenious, i.e. unreadable. And hold on to your butts when a clever teammate invents a flow of control macro and uses it throughout.<p>These and other reasons make the pool of candidates small, candidates &quot;over-qualified&quot; and expensive. If your expert quits, your whole endeavor is screwed.<p>I helped to rewrite a Clojure project that stalled due to lack of affordable talent. It&#x27;s been chugging along since then at a considerable pace. The new language is very popular and much less affected by the mentioned problems.<p>There is a mention of Penpot in this thread. Mark my words, when it comes a time to scale, they will rewrite the whole thing in a popular statically typed language.
评论 #34787285 未加载
评论 #34798437 未加载
siefca大约 2 年前
I remember writing about first official releases of Clojure around 2010 when I was an editor at heise online Poland. At the same time I was coding libraries in Ruby and one thing was drawing my attention: lazy enumerators.<p>During works on I18n library with pattern interpolation in Ruby I had chosen to use lazily executed methods which could be stacked with the dot operator, giving nice processing pipelines. Around that time I was reading about Clojure and it hit me how much easier would this be in this language, with function composition and sequences, not mentioning the Delays or Futures.<p>I think Clojure was the first language I decided to learn before conding anything serious. It took me like 2 years to really give it a try, and leave Ruby world, so in 2013 I was making notes explaining how the basics work, and in 2014 started writing a tutorial in Polish called &quot;Poczytaj mi Clojure&quot; (which could be freely translated as &quot;README Clojure&quot; (README meaning both &quot;Clojure, read to me&quot; and &quot;read me [some] Clojure&quot;. Through all 2015, during my sabatical, while sitting in a cafeteria almost every day, I coverd built-in special forms, functions, type systems, collections, sequences, macros and more, publishing it online.<p>In 2016 I started sharing first programs on Github. So I probably need about 2 more years to become advanced, according to &quot;Teach Yourself Programming in Ten Years&quot; – <a href="https:&#x2F;&#x2F;www.norvig.com&#x2F;21-days.html" rel="nofollow">https:&#x2F;&#x2F;www.norvig.com&#x2F;21-days.html</a><p>I remember trying Hydrox for documentation and so called literate programming approach, playing with function arguments and building macros changing positional args into named ones, using core.async and multimethods to build network bots, learning macros and protocols. I&#x27;ve made some free software libraries through the years, and I think I finally am able to build more complex systems.<p>Since I occasionally have a tendency to go into details too much, or to (re-)write things from scratch, I found Clojure to be the first language giving me enough power to finish those things in less than couple of weeks (1-2 months tops), and go back to a main project to continue. In other lanugages I tried for years I was kind of sinking into sub-projects (which needed to be taken care of) and hadn&#x27;t enough energy to go back and resume works on more generic, systemic level.
brundolf超过 2 年前
One of the things that stands out to me in this video is seeing devs who are much older than the average dev I encounter, who have continued to grow deeper in their skills and form deeper insights, sharing some of those insights. It&#x27;s something I don&#x27;t get to see very often and it&#x27;s encouraging
评论 #34783550 未加载
vaylian超过 2 年前
Clojure is the language that made me understand why Lisp matters: We can express ideas and instructions in a programming language with just a very basic set of tools. And we can use these tools to craft powerful and elegant abstractions. In addition, Clojure emphasizes immutable data structures, which, after some learning effort, made me write code that is much easier to reason about.
college_physics超过 2 年前
Clojure fans seem quite taken to hyperbole. If the language is such a &quot;joy&quot;, &quot;ultra-productive&quot; etc I would have expected after such a long period of existence some major open source project to be showing off what the language attributes allow you to do.<p>Happy to stand corrected if there is such a slam-dunk showcase that I&#x27;ve missed, I am actually interested to dig into clojure, if nothing else as a way to deepen my understanding of functional programming.
评论 #34780506 未加载
评论 #34781134 未加载
评论 #34781544 未加载
评论 #34781320 未加载
评论 #34780196 未加载
silver-arrow超过 2 年前
Excellent and very productive language. Personally, I did 15 years of straight Java (before that C and C++), then 5 years of Clojure. For me, the most telling dynamic is when I recently returned to a Java project and realized how much better Clojure is - even for large projects ;)<p>The lack of static typing, which is so often used as an argument against Clojure, is actually what makes Clojure better. The Java projects become a morass of types scattered into a myriad of packages; no matter how experienced you are with Java. Clojure&#x27;s dynamic underpinnings and its paradigm of hundreds of functions for a few data structures allows for very lean designs that are easier to wrap your head around and keep in your mental models.<p>The other features are just gravy: immutability built in, REPL interactivity, Transducers, Protocols etc.<p>I felt the pain going back to a Java project.
gemstones超过 2 年前
While I like Clojure as a language - I have never seen a language that engendered such hatred in PMs, EMs, sales, etc. I don&#x27;t know that it survives long term (in industry, it&#x27;ll survive for a long time as a hobby language.)
评论 #34776460 未加载
评论 #34775394 未加载
评论 #34775306 未加载
评论 #34783549 未加载
评论 #34775364 未加载
mrichman超过 2 年前
I tried getting into Clojure (I have an undergrad Lisp background). I just couldn&#x27;t become productive, and the tooling seems fragmented. Been moving many of my workloads from Go to Rust.
elwell超过 2 年前
I didn&#x27;t realize how nice I had it with Clojure until I went full-time Java.
评论 #34784571 未加载
cospaia超过 2 年前
Clojure changed my life. It made me realize how fun it is to code and switch back to being a programmer. This makes me a much happier person and thus a better husband and father. Never looking back. The Clojure Way just fits me perfectly.
agumonkey超过 2 年前
Can&#x27;t say I&#x27;m not happy to hear Rich Hickey talk again.
munro超过 2 年前
I could be reading the energy wrong, but damn it looks corporate bullshit sucked the life out of Rich
评论 #34785621 未加载
orestis超过 2 年前
Obligatory shout out to Babashka [0] which is interpreted Clojure. You just download a simple binary and you can get going. Widely used for quick-running scripts, with a lot of batteries included.<p>[0]: <a href="https:&#x2F;&#x2F;babashka.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;babashka.org&#x2F;</a>
eduction超过 2 年前
I have been using Clojure for a solo project for a while now and find it shockingly productive. I initially planned to limit how much of the language &quot;surface area&quot; I explored to keep focused on solving the problem but was able to productively use much more of Clojure than I expected:<p>-core.async for concurrency that led me speed up some tasks from ~1000ms to ~40ms (well, core.async got me to about 100ms, or closer to 5x speedup on other tasks, and then other optimizations got me the rest of the way). Also using refs for some very limited data sharing across go threads (apparently actually using refs and dosync, aka mvcc data structures, is rare).<p>-spec for parsing a dsl and validating input<p>-macros for a select few syntax and core async optimizations (avoiding unnecessary go block usage)<p>-multimethods for extensibility<p>-a fair amount of Java interop to use best in class libraries<p>-transients to help optimize performance in some places<p>-even transducers a few places (maybe 1 percent of my code if that, but still)<p>-edn for dsl files<p>I sense that where people have more friction is trying to work with other people, in teams and organizations. In the right organization this can clearly work, dedicated Clojure shops, but there can be resistance in other organizations, and it has to be &quot;smuggled in&quot;, and people worry about the ability to hire (especially for orgs that tend not to train heavily - nubank clearly trains a lot of programmers on Clojure but many shops don&#x27;t want to do this level of training). And then people will avoid using certain advanced features like macros or even some functional conventions (recursion, reduce and map etc instead of vanilla loops) because they worry it will make it harder to onboard people without Lisp or FP experience.<p>I honestly think this is Clojure&#x27;s big challenge, entrenched expectations and conventions in the industry and a desire to pull programmers off the shelf. In this talk (the one we&#x27;re all commenting on) Rich and others point at the productivity and fun of REPL driven development -- finding some way to really grow that and somehow take it to the next level -- as a possible solution, to offer yet another carrot to encourage people to make the leap to Clojure. It sounds like a good idea but I have no idea what that looks like exactly.<p>I honestly think the answer to getting more Clojure penetration may be the passage of time, as happened with python. I know nubank&#x2F;cognitect has been funding some open source work with small grants on top of Alex and Rich&#x27;s work (and Stuart&#x27;s?). This kind of basic grunt work can pay off long term. But it&#x27;s not a sexy answer and if it doesn&#x27;t work you&#x27;re at a dead end.
评论 #34781424 未加载
cfiggers超过 2 年前
I see some comments in here with the sentiment, &quot;Clojure—What am I missing?&quot; Here&#x27;s an attempt to answer that question. I am just a hobbyist and enthusiast programmer with no formal background in programming or CS, and no real experience using Clojure (or any other language, for that matter) &quot;in anger&quot; in a serious production environment. These are just some nobody&#x27;s two cents, take or leave them for whatever they&#x27;re worth to you.<p>From what I understand, there are some applications and domains that the JVM is highly optimized for—especially long-lived, highly concurrent server processes or stream processing applications where microseconds matter in order to keep up with real-time. The fly in the ointment (for some) is that Java itself is Object-oriented, compiled, statically typed, and uses mutable objects and data structures by default. Not everybody loves those design choices. And even of those who do, not everybody finds Java ergonomic (hence Scala and Kotlin, among others).<p>So, much like Scala and Kotlin do, vanilla Clojure just gives access to the JVM (and its <i>highly</i> mature library ecosystem) in different trappings. It&#x27;s a functional (rather than object-oriented), REPL-driven (rather than compiler-first), dynamically-typed, and immutable data-oriented language, with Lisp&#x27;s minimal syntax and structural editing experience. Plus, the designers have invested a lot of time and their cumulative decades of programming experience into making a really solid standard library that comes with a lot of smart affordances out of the box. That combo really works for some people.<p>Then, folks who appreciated the conveniences and good design in vanilla Clojure started looking for that dev experience in non-JVM contexts, which is how you get ClojureScript, ClojureDart, ClojErl, Babashka, Scittle, etc. And then, other Clojure-<i>inspired</i> languages pop up that don&#x27;t purely adhere to Clojure conventions, but co-opt significant portions of its well-designed syntax and standard library—languages like Janet (compiles to C) and Fennel (compiles to LUA) and Hy (compiles to Python).<p>And then, script kiddies like me come along and discover, Hey Wow, I can learn <i>one syntax</i> and suddenly be +80% dangerous in a dozen different environments, without having to start learning a new language from scratch in each one—from the JVM to the browser to mobile apps to native executables, I&#x27;ve got SOMETHING to start building on because I already know how to think in Clojure.<p>At this point, &quot;Clojure&quot; is not just &quot;a language,&quot; it&#x27;s a <i>category</i> of languages—just like Scheme is &quot;a Lisp,&quot; Janet is &quot;a Clojure.&quot; I don&#x27;t think that happens with uninteresting, poorly-designed, or irrelevant languages. Clojure scratches a specific itch, and not everybody has that itch to scratch. But whether Clojure is your cup of tea or not (and obviously for many people in this comment section, it&#x27;s not), I don&#x27;t think anyone can debate that it&#x27;s a significant project that justifies its own existence. That doesn&#x27;t obligate anybody to use it or even look at it twice, but I think it self-refutes a lot of the negativity that gets thrown its way.
rcarmo超过 2 年前
Nice to see, but I&#x27;m still sad Clojure is a hosted JVM language. I find it unwieldy for a lot of things where Go, Python and Chicken Scheme shine, and wish someone got ClojureScript to run natively in things like Bun or Deno so I could have one fast, small runtime.
评论 #34780567 未加载
Barrin92超过 2 年前
a little bit of an offtopic question, but given that the video has a sign language interpreter, is there a specific vocabulary for programming given how many unique terms there are, and is it harer to understand for people who rely on it than normal conversation?
garbagecoder超过 2 年前
For just the right thing, I&#x27;ve loved using Clojure and wish I could use it some more, but I rarely find that just right thing.
revskill超过 2 年前
I tried Clojure, but when i look for a good ORM, what i see is a paid library.
评论 #34775729 未加载
评论 #34775845 未加载
评论 #34778018 未加载
评论 #34776283 未加载
评论 #34776029 未加载
评论 #34788009 未加载
评论 #34785619 未加载
评论 #34778058 未加载
评论 #34785709 未加载
评论 #34780593 未加载
评论 #34809485 未加载