ClojureScript beginners' home page
clojure-script.org
clojure-script.org
I don't speak in any official way for ClojureScript, but as an enthusiast, I wish this author had chosen a different URL to make that more clear.
Other ideas to mitigate the confusion: using a different logo in the corner; prefixing the html <title> with "unofficial"; and adding a more prominent link to clojurescript.org titled "Official ClojureScript Page".
The main purpose of this page is trying to make new developers come to ClojureScript feel better by providing informations. People in Clojure community already knew it so I don't have to emphasis that my side is unofficial again. Plus I added a link at the corner.
Still thanks for putting down you impressions. But I thought about you option before when posting to Reddit.
I actually thought it was the official website first time I visited the page. (The "Back to official" link is not clear enough)
I agree with the improvements that were suggested. (different logo or putting unofficial in the title)
Fine... Updated.
I was trying to ask what are the best snippet we should display. But it turned out we didn't reach a conclusion, not even close. https://clojureverse.org/t/which-piece-of-code-do-you-think-...
BTW what's your background? What do you refer to by "something they are familiar with in JS"?
> Clojure is a dialect of the Lisp programming language. Clojure is a general-purpose programming language with an emphasis on functional programming. ClojureScript is a compiler for Clojure that targets JavaScript.
On the other hand, if it's people who are familiar with Clojurescript...also why is it there? It's given no motivation on the page, and gets in the way of people finding what they're looking for.
Showing code is most direct way of telling people what ClojureScript is. The official side gave thousands of words but people with less knowledge just don't read. Code just tells, even audience don't get the whole ideas, they are impressed.
Also the page listed quite some projects which are important to the community, which the official one did not offer.
I made this page and collected feedbacks from ClojureVerse and WeChat group mainly. Definitely I need to serve wider audience. Please tell me more details what you feel confused on this page.
Having code is useful! Yes! But it is easier if people are guided to it. On the reddit thread you link, you link to two tweets containing the homepages for languages like CoffeeScript, PureScript, and LispyScript. All of these pages have code on the main page, yes.
But note that on all of them, the code snippets are motivated. LispyScript has eight lines of code across six heavily explained examples. PureScript has five lines of code that come after a tagline that explains what the language is, then ten bullet points explaining benefits. Each example of Elm code is separately motivated. The user is never left guessing why the code is there: the first snippet is "Javascript Interop"; the second "No Runtime Exceptions".
Compare that to clojure-script.org/. The first thing I see when I load the page is "InterOp". Interop of what? The first English word I see on the page is "Microsoft". Is Clojurescript a Microsoft project? This is inverted, where the page wants to dive into details about Clojurescript before even explaining what Clojurescript is. You wouldn't display a Western-style horse saddle, expect them to figure out on their own the differences between that and an English saddle when you don't state them, and you definitely wouldn't talk about that before explaining what horseback riding is!
If a new user tries to read the code, there can be confusions. True. There's still quite a gap in in front of new users who want to know ClojureScript better. Any examples you have seen that solves the problem while we still have so many snippets in the first screen?
So move the elevator pitch for Clojurescript to the top of the page. "Clojurescript is a compiler for Clojure that targets Javascript" is an explanation technically, but you might want to write something more about why you'd use Clojurescript.
For example, the first words you see on Elm's site are "A delightful language for reliable webapps.". So you'd use Elm to make webapps, and it should be enjoyable to use. Ruby says "A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write." Note how none of these focus on how the language is implemented; most users don't care. The language could have a compiler written in Brainfuck to compile to Lua, but that's all under the hood.
So write a sentence or two about why a programmer would choose Clojurescript for a task. What kinds of things does Clojurescript do well?
Also, I'd suggest motivating the snippets the way Elm does, where the user isn't left guessing why a snippet is there. It's explicitly explained.
PS. why don't you post it on Clojureverse as well? :-)
I'm learning Clojure now (coming from years of C++) and I love it. There is a bit of black magic (lein/cider make cmake look like a shell script) but CJS is a bit daunting b/c it has so many layers. CJS on Lumo on React on JS on the DOM ... I don't actually know what any of those words mean :P
btw - what's the Clojure scene like in China?
And we have WeChat group with 200+ people. There are many people interested in Clojure and some of them like me would love to try Clojure(Script) in our own projects.
Took less than 5 minutes under a linux server though, so thats something, I guess. But still, its kinda mind-blowing how much Win users are ignored.
then again, I'm probably just being oblivious.
Did you resolve it under windows?
I tried changing the .bat file as suggested and manually putting the zip in a folder, still no luck.
Post your question to http://clojureverse.org/ see if others can help.
I don't understand this adversial positioning.
If most open source software treats windows as a first class citizen among supported platforms then surely the project that does not follow this suit is the odd man out .. not the users who use windows as their computational substrate.
Ease of installation on windows is one factor that will matter to many users.
I dunno if you're trolling here (and if so, well done), but this attitude really gets under my skin. Excuse me for ranting at you, but I need to get this off my chest.
I think that this attitude is harmful to open source projects, and to projects of all kinds. In my experience, the people who use Windows usually haven't 'chosen' Windows; that decision was made for them by bureaucracy or money or time.
I go to a state university in a metro area, and roughly 90% of the people in my CS program use Windows. These kids have part-time jobs and families who need them. They commute over an hour each way to get to school, because they can't afford rent in the city. They don't have the cash to drop on a Mac. A lot of them are still on their first laptop, which they got back in high school, chosen for them by well-meaning parents with no clue about arcana like driver compatibility. It's probably got a smallish HDD, or a tiny SSD, barely enough space for a VM and Visual Studio (which, by the way, a mandatory class requires). This laptop is their primary and only computer, and it runs Windows. Maybe it'd run Linux too, if you didn't mess up the install. You wanna toss those dice with your only tool for getting your homework done on time?
And the intrepid few who do slap Linux on their computer pay for it, with their time. Every single Linux User Group meeting we have someone who comes in asking how to set up their laptop with the school wifi. These are smart people, often with graduate degrees, who struggle with wpa-supplicant et al; and we aren't even talking Arch here, just as many issues come up with Ubuntu. Windows Just Works (TM), in a way that Linux doesn't, and probably never will (and even really probably shouldn't). Linux may be free as in freedom, but it's not free as in beer, not if time is money.
So this is just one subset of the people you're targeting when you support the 82% [0] of computer users who use Windows. And I understand completely that Windows is a deeply unfun system to support. But supporting Windows is going to open up all kinds of contributors from nontraditional backgrounds to your project. Studies show that diverse teams are more creative [1] and, in a business context, more profitable [2]. (Side note: looking at that Wikipedia page, maybe it's time to support a first-class IDE for Android?)
These are the users you most desperately want to attract to your project, the ones who think differently than you do, who come from different backgrounds and whose ideas are shaped by different experiences than you. There are all kinds of initiatives going on right now (LLVM, for example [3]) to attract a more diverse open source developer base, and I think that's great. Supporting Windows is one more way to achieve that.
[0] https://en.wikipedia.org/wiki/Usage_share_of_operating_syste...
[1] https://www.gsb.stanford.edu/insights/diversity-work-group-p...
[2] https://www.credit-suisse.com/corporate/en/media/news/articl...
[3] http://blog.llvm.org/2018/03/international-womens-day-celebr...
Open source project developers which are not funded are also spending their valuable time to create something. Giving them grief for not supporting an platform (one that especially is anti-open) like windows is also not productive.
When software corporations push their software using their market power in adversarial fashion, some open source devs may opt to be adversarial in not choosing to support the platforms. It is a way to combat fire with fire.
Microsoft played major role in suppressing desktop linux with its adversarial, monopolistic policies pushing windows which is the reason why many people are robbed of choice.
I don't know why the open source developers who spend time giving something to the community should bear the brunt of evils of corporations.
This is similar to large corporations (who pollute everywhere because it would affect their profit margins not to) love movements like Go Green , etc (which are important in individual level ) as they divert attention and guilt to the consumer when the company could have done otherwise.
For me, I'm a web developer. And we all know how web developers hate Internet Explorers. I was a Ubuntu users in my first years learning programming before I got a macbook. There are always reasons for me to hate Windows, even though Windows has majority of the users.
I know that there is a new feature for it, but the documentation was a little cryptic. Ended up just adding some CLJSJS dependencies to my project and giving up on using the NPM module I _really_ wanted to use.
In the end, that could be because i'm just lazy, though. I'd love to hear what others think on this topic.
Checkout https://github.com/anmonteiro/lumo And https://andrearichiardi.com/blog/posts/lumo-npm-dependencies...
Does shadow-cljs integrate well into an existing figwheel/reagent project?
Thanks!
However, shadow-cljs REPL integration was also pretty hard to get working with my editor (spacemacs), because most of the tutorials assume you're using lein to build your project.
shadow-cljs is pretty dope though. Almost instantaneous rebuild times and basically no setup besides a small, understandable config file.
CLJSJS was a life-saver for me, at least.
http://nightcoders.net/ https://sekao.net/nightlight/ https://sekao.net/nightcode/