HNHacker News
TopNewBestAskShowJobs

finalfantasia

248 karma · joined June 11, 2016

submissionscomments
finalfantasia··on What’s new in Swift 6.2
“Swift has turned into a gigantic, super complicated bag of special cases, special syntax, special stuff…”

— Chris Lattner, 2024

https://blog.jacobstechtavern.com/p/apple-is-killing-swift

finalfantasia··on Google Closure Library has been archived
For those who are interested, here is the official statement from the ClojureScript team regarding Google Closure Library going into “maintenance mode” and its impact on ClojureScript:

https://clojurescript.org/news/2024-01-24-release

finalfantasia··on Study Tips from Richard Feynman
This is also well known in the Clojure community as Hammock-Driven Development [1].

[1] https://youtu.be/f84n5oFoZBc

finalfantasia··on GC progress from JDK 8 to JDK 17
They changed the default garbage collector to G1 last year.[1]

[1] https://github.com/JetBrains/intellij-community/commit/edf1c...

finalfantasia··on Lisp as an Alternative to Java (2000)
> The bigger issue though is wasting time wrapping Java libraries and most comments I see about Clojure interop talk as if there is no cost to it.

You are not forced to "waste time" wrapping Java libraries. As a matter of fact, thanks to the interop features that are well thought out, using Java libraries directly via the interop is encouraged and preferred to wrappers (Java Time API is a good example.) You may _choose_ to write wrappers for Java libraries if they make consuming these libraries in your code a bit nicer.

> Clojure has good foundations but the ecosystem never really developed.

There's no separate ecosystem for Clojure(Script). The established ecosystems such as JVM, .NET, and JavaScript _are_ the Clojure ecosystem. The creator of Clojure(Script) realized that it would be practically impossible to build an ecosystem from scratch without significant investment (Sun spent billions of marketing dollars alone in Java) and thus deliberately chose to make Clojure(Script) a language hosted on well-developed platforms such as JVM, .NET, and JavaScript. Also because of this focus on being a hosted language, he went to great lengths to ensure the interop with its hosting platforms is as seamless as possible. If you need an example for awkward interop with Java, try Scala.

finalfantasia··on Six Years of Professional Clojure
Clojure developers tend to choose the official Clojure CLI tools [1] for new projects these days.

[1] https://clojure.org/guides/deps_and_cli

finalfantasia··on Six Years of Professional Clojure
To be fair, this is not unique to Clojure. You need to deal with stack traces no matter what as long as you're using any programming language that targets the JVM (even statically type-checked languages like Scala). There are some great articles [1][2] that discuss various simple techniques helpful for debugging and dealing with stack traces.

[1] https://eli.thegreenplace.net/2017/notes-on-debugging-clojur...

[2] https://cognitect.com/blog/2017/6/5/repl-debugging-no-stackt...

finalfantasia··on Six Years of Professional Clojure
Thanks to the dynamic nature of Clojure programs, experienced Clojure developers use the REPL-driven development workflow as demonstrated in this video [1].

[1] https://youtu.be/gIoadGfm5T8

finalfantasia··on Hands-on Scala Programming
I cannot answer your question. Since you love Python, I guess you don't have any problem with dynamic type-checking. You also mentioned Scheme, I take that as you don't mind parentheses either. :)

If you would like to try something that's closest to Scheme and has access to the rich libraries in both the Python and Java ecosystems, give Clojure a try. You have access to the Java libraries out of the box and, with libpython-clj [1], you get access to your familiar Python libraries.

[1] https://github.com/clj-python/libpython-clj

finalfantasia··on Clojure: A Lisp that wants to spread
According to the latest status update from a member of the Clojure core team [1], we may see improvements in startup time with the next version of Clojure (1.11).

[1] https://insideclojure.org/2020/02/28/journal/

finalfantasia··on Fancy Clojure REPL
I think what @iLemming meant is that she/he doesn’t understand the appeal of having a fancy REPL _UI_ (mostly virtual terminal emulator-based readline implementations) and working with it _directly_ as opposed to sending forms from your editor of choice to a REPL server.

I kind of hold the same opinion. Being more powerful, feature-rich, flexible than readline implementations, editors are, by design, more suited to editing forms. And, I believe, “sending forms from your editor to the REPL” is what the “REPL-driven development” encourages.

finalfantasia··on Using Firefox for a faster, calmer and distraction-free internet
Firefox just gained the ability to use Mac’s hardware media keys to control media playback in the latest beta/developer edition (71 right now): https://bugzilla.mozilla.org/show_bug.cgi?id=1575995
finalfantasia··on Opensourcing the Universal Package Manager
As a regular user and promoter of REPL.it, I like it very much and therefore submitted two PR’s [1][2] after seeing a blog post about how to contribute to it [3].

Unfortunately, those PR’s have been lingering up there for the past 4 months without any meaningful feedback. I fully understand that you are a business and therefore there are priorities but it would be great to get any kind of feedback on them in order for me proceed with further actions one way or another.

Anyway, thank you for providing such a nice tool for free and open-sourcing it!

[1] https://github.com/replit/polygott/pull/28

[2] https://github.com/replit/prybar/pull/30

[3] https://repl.it/site/blog/elisp

finalfantasia··on Thank You, Guido
To anyone who's interested in this topic, I strongly recommend this talk from Rich Hickey about "giving something to somebody that they can use and making a commitment": Spec-ulation (https://www.youtube.com/watch?v=oyLBGkS5ICk)
finalfantasia··on DuckDuckGo Search Improvements
If you're using Firefox, this extension might be a search engine-agnostic solution for you: https://addons.mozilla.org/en-US/firefox/addon/languageswitc...
finalfantasia··on Ask HN: Best Lisp for software development?
Based on your description, the Lisp that you're looking for should:

  - be the most modern one
  - have a robust ecosystem
    - package management
    - tooling
  - can be used for building production-ready software
  - be an easy sell to businesses
Clojure checks every single bullet point on that list; it

  - is *the most modern* Lisp that's designed from ground up (no historical baggage/cruft)
  - is hosted on *the Java platform* (i.e., "the Java world"), which is so far the most robust enterprise software ecosystem. This means that you have access to the most robust package management system (Leiningen/Maven), the most battle-tested and production-quality libraries, and the most powerful development tools (e.g., IntelliJ IDEA), and etc.
  - is created by a pragmatic/practical guy who wants to build production-ready software. It's not the result of an academic research/experiment/thesis.
  - is the result of a trade-off that makes it an easier sell to businesses. Businesses tend to be more conservative when it comes to choosing a platform to invest on and usually prefer the ones that are battle-tested, well-established, and well-supported. As of right now, it's the Java platform. No other enterprise software ecosystem can hold a candle to it.
Of course, you don't have to take my word for it, see what others have to say about Clojure.[1]

[1] https://en.wikipedia.org/wiki/Clojure#Popularity

finalfantasia··on Productivity brought by Clojure [slides]
It seems to me what you’re struggling with is functional programming (the paradigm) instead of Clojure (the language or grammar) itself. This is pretty common for people who are used to the C-like languages. I strongly recommend reading “Clojure for the Brave and True” [1] (especially, Part 2) to anyone who is getting started on either functional programming and/or Clojure.

[1] https://www.braveclojure.com/clojure-for-the-brave-and-true/

finalfantasia··on State of Clojure Survey 2019 Analysis
I was passively introduced to Clojure when I joined my current team at my current company a few years ago. After spending 5 years in a humongous, horribly-maintained Java code base, and a short period of time with a new-ish Scala code base that was littered with code written in almost all kinds of programming paradigms (procedural, object-oriented, and functional) and then being intimidated by the incidental complexity of the language itself prior to this transition, I was frustrated to realize the cruel fact that I had to learn another JVM language that feels even “weirder” and more “complicated” than Scala. At first, I had similar questions as you have now: “What makes this ‘ugly’ language so special that one of our smartest team leads preferred it to, say, Scala, Go, or Rust?” It was not until I watched one [1] of “Rich Hickey’s Greatest Hits” [2] did Clojure finally “click” with me. It’s all of those principles that were applied and the values that were upheld when Rich Hickey designed this elegant language. I cannot reiterate all of them here. Go watch those talks and give this language a serious try. You might end up falling in deep love with it just as I did. :-)

[1] https://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hi...

[2] https://changelog.com/posts/rich-hickeys-greatest-hits

finalfantasia··on PSA: Firefox Nightly now with experimental Wayland support
Yes, copy/paste between Firefox (on Wayland) and other apps was broken but was fixed in firefox-63.0.1-5.fc29.[1][2]

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1585393

[2] https://bodhi.fedoraproject.org/updates/FEDORA-2018-2d42997a...

finalfantasia··on PSA: Firefox Nightly now with experimental Wayland support
Fedora 29 has a “firefox-wayland” package that runs the latest stable release of Firefox (63 as of now) on Wayland (instead of XWayland). I’ve been using it for a long while and it’s been great!
finalfantasia··on PSA: Firefox Nightly now with experimental Wayland support
They post newsletters[1] about WebRender on a regular basis.

[1] https://mozillagfx.wordpress.com/2018/11/15/webrender-newsle...

finalfantasia··on Clojure at Netflix (2013) [slides]
As the leader in online affiliate marketing, we’ve just launched our analytics and insights platform that is written in Clojure [0]. If you like Clojure, come work with us [1].

[0] http://junction.cj.com/article/introducing-insights-cj-affil...

[1] https://engineering.cj.com

finalfantasia··on Problem Solving and Clojure 1.9 with Rich Hickey
If it helps, the core team uses Atlassian JIRA [0] for issue tracking and Atlassian Confluence [1] for design and planning discussions.

[0] https://dev.clojure.org/jira/browse/CLJ

[1] https://dev.clojure.org/display/design/Home

finalfantasia··on Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps
Wow, that was a lightning-fast response!

Thank you very much!

finalfantasia··on Repl.it 1.0: IDE that Grows from Playgrounds to Fullstack Apps
My favorite online REPL for Clojure.

It would be great if Parinfer [0] were integrated into the Clojure (and Scheme?) REPL.

[0] https://shaunlebron.github.io/parinfer/

finalfantasia··on Firefox 58
Until they provide a decent UI/UX to do that, you can use about:performance for now.
finalfantasia··on Date/Time Inputs Enabled on Firefox Nightly
This feature has already ridden the release train (currently in 57 beta) [1] and should be released with Firefox 57 next month.

[1] https://www.mozilla.org/en-US/firefox/57.0beta/releasenotes/