This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-04-26
Channels
- # beginners (20)
- # cider (59)
- # cljsrn (6)
- # clojars (7)
- # clojure (91)
- # clojure-boston (1)
- # clojure-dusseldorf (3)
- # clojure-finland (1)
- # clojure-italy (8)
- # clojure-losangeles (1)
- # clojure-nl (16)
- # clojure-spec (25)
- # clojure-uk (113)
- # clojurescript (126)
- # core-async (27)
- # cursive (5)
- # data-science (3)
- # datomic (22)
- # emacs (24)
- # fulcro (30)
- # garden (7)
- # graphql (7)
- # leiningen (3)
- # nginx (1)
- # off-topic (63)
- # onyx (13)
- # portkey (1)
- # re-frame (1)
- # reagent (28)
- # shadow-cljs (92)
- # tools-deps (1)
- # uncomplicate (1)
- # vim (24)
- # yada (8)
Is the WebGPU api documented anywhere? I have found a few demos, but I don't see what new features it enables and I can't find a list of WebGPU functions that WebGL doesn't provide.
I am new to clojure and clojurescript, and I really like it because of repl. Though tests provide feedback, but repl is much more interactive and fastens the development I never used repl in scala applications(normal sbt app), or in typescript(in react or angular apps) Did anyone use repl in scala or typescript apps ?
From my experience at work most people use types and the typechecker for feedback rather then a repl.
yeah types and type checks just checks the type, we can argue that we can use Typescript playground or scala console as they are repls too, but they dont have the seamless integration: like going into a namespace and executing functions
Type system is partially like a REPL: in a REPL we detect type errors at runtime and fix them. Usually those languages like Haskell and Scala also offer some limited interactive (if it’s a real REPL is a discussion I don’t want to get into) where you can do like 50% of the cases you can do in Clojure.
Is that a language feature, or its just the clojure community invested more into repl that others ?
Imagine: run web request, inline def some values, inspect them, redefine function, repeat
this is what I’m doing on a day to day basis. in Haskell you have to restart your web server (I think, I’m not that experienced with it)
on the other hand, in typed languages like Haskell you do not have to restart that often if you rely on the type system and small snippets you test in ghci
yeah, with scala, I will have to restart my server to reflect the code change. Same is in typescript, I have to transpile again so with scala/typescript for coding (pure functions) steps for me are 1) Apply breakpoint, see what is happening 2) Do change 3) Reload (transpile or restart server) 4) refresh the request 5) inspect again or better write tests which is faster than above but still not as interactive as repl Where as in clojure/clojurescript 1) Run app and connect repl 2) switch to ns. Keep writing and testing pure functions until they work
right… there are situations where I wish the app was written in a typed language, like when I have to refactor 32 namespaces, but then again, those 32 namespaces were probably written a lot faster in Clojure in the first place, so we already had a head start
But I will have less fun now working on a Typescript and scala apps as I will miss the happy world of clojure repl
yeah grep is nice until you have to grep for four different ways keywords are used
yeah, didn’t want to go into this discussion, but just wanted to know if someone uses repl for typescript or scala in the same way as clojure
@rnagpal bottom line: REPLs just aren’t the same in non-Lisps, you don’t get the same level of interactivity
May I know what the reason for this statement ? like what exactly does lisp languages provide which enables repls to be so seamless
If you can just specify some terms/words, I can read myself in details. No need for a detailed answer
I think there's also the historical mindset that Lisp provides an interactive running system "as a whole" and the REPL is the standard way to deal with it. Smalltalk is similar in that you have a live, running system as part of your coding environment (and vice versa). Most languages treat the application as something separate from your development tool chain.
For example, when developing applications with Clojure, I start a REPL and then start the application -- and sometimes multiple applications -- from inside the REPL so my code grows "organically" while it's running, directly "inside" in my development environment.
I can choose to run a REPL inside any packaged, deployed application too (either programmatically, or at startup via the JVM options to start a Socket REPL).
Btw, I liked your comment on Haskell on clojureverse @seancorfield. I’ve been learning Haskell from Haskell Book and I quite like it, but I haven’t made any big applications with it yet. I think I’ll miss the REPL big time when I would enter that world professionally.
Since the unit of "compilation" is a top-level form, the REPL and the compiler work exactly the same way so you don't trade off anything for using a REPL in Clojure.
I have used a REPL in production to inspect what was going wrong (and occasionally repaired some data by using a database or Datomic function). Also I’ve used a REPL to debug an uberjar issue. Those are examples of non-dev usages of REPLs.
@borkdude Thanks. I really want to love Haskell. I always wanted it to be successful and popular. It was the culmination of everything so many of us had been working on during our academic exploration of FP in various forms.
REPLs in production are the very definition of "with great power comes great responsibility". We run one inside one of our complex, critical, polyglot apps, and have been known to apply patches without downtime (as well as inspecting and fixing data).
Also, we can do the same thing in by adding a debugger and adding code in debug console and executing it in scala
I’ve experimented with using a Clojure REPL in a Scala program once: https://blog.michielborkent.nl/blog/2016/07/26/clojure-from-scala/
@john we can say the same in Javascript also, that everything is first class. So what is the root cause repl works seamless in cljs and not in typescript, both are transpiled to JS
I tried to address that question more generally here : https://vvvvalvalval.github.io/posts/what-makes-a-good-repl.html
even if it's just to log out some stuff to see what's actually getting passed around
@scriptor I wasn't sure if it was generally acceptable to have a "weird" page like that so easily found
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-router-firewall-rules.html
ColorForth