Should I /can I learn Clojure as a first programming language

Should I /can I learn Clojure as a first programming language

Whats a good into for the language?

Other urls found in this thread:

clojure.org/
sarabander.github.io/sicp/html/index.xhtml
cs.cmu.edu/~dst/LispBook/
gigamonkeys.com/book/
common-lisp.net/project/lispbox/
articulate-lisp.com/
braveclojure.com/
learnxinyminutes.com/docs/clojure/
clojuredocs.org/
clojure-toolbox.com/
clojars.org/
clojurewerkz.org/
en.wikipedia.org/w/index.php?title=Common_Lisp&oldid=402600249#The_function_namespace
twitter.com/AnonBabble

Don't bother, learn something useful like C# or Java

why user

i have some experience with C and Lua and Python , novice level but by no means would I consider myself a programmer

I thought clojure was interesting enough for me to really dive in

Nop, clojure begin base on Java, you need know Java to learn clojure.

It depends what you wanna do with programming.
The official clojure site has good intros.

clojure.org/

The best lisp into is the book Structure and Interpretation of Computer Programs

sarabander.github.io/sicp/html/index.xhtml

clojure just uses the jvm, you can technically write clojure with 0% knowledge of the java language

Clojure is Scheme for retards

Yeah, because everyone wants to write mind-numbingly boring backend processes for a mind-numbingly boring intranet.

Name one thing Clojure is good at, one implementation
Its just an academic wank language

>inb4 some hipster shit where literally any language could slot in and nothing would be lost

Go straight to the source and learn Common Lisp instead.

you have a good resource to do that?

i swear you people pick the most obscure shit you can find just to feel special.

>hmm, let's see a good first programming language to learn
>javascript
>python
>java
>c
>c#
...300 languages later
>clojure
>perfect, that's the one!

Begin with cs.cmu.edu/~dst/LispBook/ then move on to gigamonkeys.com/book/

How do I get set up for programming in this on windows :O

>not scheme

for

Clojure is the useful version of Scheme.

Scheme is an academic exercise and Clojure is an industry compromise. CL is the strongest offering from the Lisp-like languages, and the one that's the most true to its heritage.

Haven't tried Lisp on Windows, but there are ports of both SBCL and Clozure Common Lisp to Windows. You can use Emacs with SLIME to connect to either. If you don't mind proprietary software, you can get LispWorks or Allegro, they come with their own IDEs. Either of them has a free version, but they come with certain limitations.

Thoughts on: common-lisp.net/project/lispbox/

Already use a configured Emacs, so I haven't had a need for it, but I'd imagine that would work well.

Emacs+SLIME is the most common environment and Clozure is a very good Lisp implementation, so I'd say go for it.

>Should I /can I learn Clojure as a first programming language

Well, Clojure is a really great language.
But as a first language? I don't know.

You should rather start with Scheme.
Just download "Structure and Interpretation of Computer Programs", then install Racket on your PC (it has an "SICP mode" nowadays) and you're good to go.

Scheme is a pretty easy language (Sytnax-wise) and if you "know" Scheme, you can pick up Clojure or Common Lisp in no time. But Clojure has more functionalities and is tricky than Scheme. Its solves problems you usually don't have when you start programming. Also it IS simply a Java JAR, so if you learn a little bit of Java (at least the data types and exceptions) it might come in handy when learning Clojure. You should learn some Java along your journey as programmer anyway, even if you don't plan on working with it (which you shouldn't).


But if you are a stubborn one, then go with Clojure. It won't do permanent damage to you, so to say. But it is a little bit ugly to set up. Make sure you have installed Java correctly on your system (don't forget to set PATH and CLASSPATH !) and then go with Leiningen. A good book is "Clojure for the brave and the true".

can you still go through SICP using common lisp instead? what are the major differences really?

for instance what would be an example where i'd have to extensively change the SICP book code to get it working in common lisp

You can go through SICP using C. Speaking from experience.

If you're gonna learn a Lisp, do it right:
articulate-lisp.com/

Clojure vs Scala ?

Scala had more jobs
Scala creator want Scala becomes Haskell + OOP.
Scala start become Haskell shit.
Clojure comes from pragmatic men.

The deal about Scheme is that you have minimal syntax so you can focus on the task instead of the syntax. Can you do a Java tutorial with C++? Sure you can, but maybe it doesn't make much sense, because you constantly have to translate the syntax and work around differences in the languages.

The difference between CL and Scheme?
Well, there are some. It starts with the amount of syntax and functions you have to learn. Another big difference is that in Scheme variable names have local scope, while in CL not. This makes Scheme "cleaner", because you simply overshadow values. But CL is more practical for building real stuff where you WANT your database interface to be visible "everywhere"..

Even if you plan on giving CL or Clojure a try (you should!), I'd advise to start with Scheme. It's like learning C++, it's just generally good advice to start with C if only to learn the differences..


They are completely different!
Clojure is a small language with gives you big power because the Lisp heritage. It also gives you a nice JavaScript replacement (ClojureScript) and is generally used for DataScience and small, modular web stuff. It is build on Java, but you don't really need Java to use Scala.

Scala is more related to Haskell, you also have great power, but it's very implicit and generally harder to understand what it does (at least if we are talking about higher level Scala), because the many "hidden" features. Also Scala requires you to know Java, in fact you can even write Java in Scala. And nobody will give you a Scala Job if you are not great with Java, it's more of a "Java Senior Dev" language. So unless you learned Java and some Haskell, don't even bother, it will be only frustrating.

I want to use CL! But it looks like thats bad. I'm sad now. I'm very sorry for being so fucking awful

clojure professional programmer here.
Learn scheme/racket, then go and learn whatever you like. Sup Forums brainlets will spout memes about how nice is their special snowflake language, but the truth is that you need to learn programming, not programming in $language - which is precisely what scheme has been used for decades.
I'd also personally recommend SICP as an introductory book, as it's written in a very nice conversational style and explains some quite complex concepts in a pretty easy way - but yeah, YMMV.

what do you do as a job that you use clojure?

and so common lisp is a bad idea?

Thank you for your answers.
Turns out Haskell is my favorite language and I am teaching Java atm so I will probably learn a bit of Scala.

>Scala start become Haskell shit.
what do you mean ? Where's scala headed ?

This user gets it

Sup Forums is a place where autists go for a sense of belonging

Really good language. More jobs out there for it than most functional languages. You'll have to learn the JVM alongside it, but every other programming language is gonna feel like a chore once you're good with Clojure.

I'd say it's a pretty enlightening first language.

this

> Not learning the most obscure programming shit to feel superior

Do you even Sup Forums?

not OP but I'm interested in clojure too. I've done some work with c# and js so far.

Whats the best resource the get started to clojure

You'll do most of your learning in REPL, then as you develop more you'll combine REPL use and compilation.

It's a Lisp, so there really isn't a ton to learn; a lot of functionality is in the core libraries and community libraries.

braveclojure.com/
learnxinyminutes.com/docs/clojure/

clojuredocs.org/
clojure-toolbox.com/
clojars.org/
clojurewerkz.org/

And basically just do some real shit. I was working on a business until I decided the idea didn't have legs, but we built the website (which was the product) in C#/.NET first, then Clojure. Took a fraction of the time and a fraction of the lines of code. Our server came out way more solid, too.

So yeah, just mess with toy projects and then start doing something real. Biggest strength to remember: Immutable arbitrary data structures are fantastic. Storing any data you want in any order of nested maps and lists really fits the real world well. Also translates well to JSON, so make liberal use of JSON to transfer Clojure data structures over networks.

common lisp is not a bad idea - it's just different. en.wikipedia.org/w/index.php?title=Common_Lisp&oldid=402600249#The_function_namespace like, different namespaces for functions and variables in CL but not in scheme, to name one. Mainly, the point is that scheme is a better language to learn, while CL is somewhat better suited to be productive, albeit with somewhat outdated libraries compared to, say, python and such.
> what do you do as a job that you use clojure
I'm writing a microservice-oriented backend based on CQRS principles - fancy name to say that I write backend for webshit, 'cause that what sells. I'd prefer to do something more interesting, but yeah, unless you go to germany or north - yuros can't into computers.

lisp vs haskell(ish)?

One first needs to learn to program, not the syntax of the first ALGOL-based shit he's being shilled. Programming paradigms, algoritms and data structures are the whole point of programming, not just knowing the syntax of $language. To do so you need the language that interferes the least with what you're trying to do - and the scheme is perfect for that task. More or less python is as well, but it severely lacks features while having tons of libraries; some people prefer it precisely because other than being quite nice as a learning tool you can also glue APIs in it pretty well.

also, listen to this user

>It's like learning C++, it's just generally good advice to start with C if only to learn the differences..

I fucking hate this meme.
Just because it gets parroted everywhere does not mean it's good advice.

Speak C and enter

i==1